fix and simplify enumeration

This commit is contained in:
Naoto Kondo
2020-04-24 22:51:38 +09:00
parent 2a9ded4f34
commit 98d9dc01fc
2 changed files with 32 additions and 72 deletions

View File

@@ -30,7 +30,7 @@ def main():
img = cv.cvtColor(img, cv.COLOR_BGR2BGRA) img = cv.cvtColor(img, cv.COLOR_BGR2BGRA)
video_frame.data = img video_frame.data = img
video_frame.FourCC = ndi.FOURCC_TYPE_BGRX video_frame.FourCC = ndi.FOURCC_VIDEO_TYPE_BGRX
ndi.send_send_video_v2(ndi_send, video_frame) ndi.send_send_video_v2(ndi_send, video_frame)

View File

@@ -11,84 +11,44 @@ PYBIND11_MODULE(NDIlib, m) {
m.doc() = "NDI Plugin"; m.doc() = "NDI Plugin";
// Processing.NDI.structs // Processing.NDI.structs
enum FrameType { py::enum_<NDIlib_frame_type_e>(m, "FrameType", py::arithmetic())
FRAME_TYPE_NONE = NDIlib_frame_type_none, .value("FRAME_TYPE_NONE", NDIlib_frame_type_none)
FRAME_TYPE_VIDEO = NDIlib_frame_type_video, .value("FRAME_TYPE_VIDEO", NDIlib_frame_type_video)
FRAME_TYPE_AUDIO = NDIlib_frame_type_audio, .value("FRAME_TYPE_AUDIO", NDIlib_frame_type_audio)
FRAME_TYPE_METADATA = NDIlib_frame_type_metadata, .value("FRAME_TYPE_METADATA", NDIlib_frame_type_metadata)
FRAME_TYPE_ERROR = NDIlib_frame_type_error, .value("FRAME_TYPE_ERROR", NDIlib_frame_type_error)
FRANE_TYPE_STATUS_CHANGE = NDIlib_frame_type_status_change, .value("FRANE_TYPE_STATUS_CHANGE", NDIlib_frame_type_status_change)
FRAME_TYPE_MAX = NDIlib_frame_type_max .value("FRAME_TYPE_MAX", NDIlib_frame_type_max)
};
py::enum_<FrameType>(m, "FrameType", py::arithmetic())
.value("FRAME_TYPE_NONE", FrameType::FRAME_TYPE_NONE)
.value("FRAME_TYPE_VIDEO", FrameType::FRAME_TYPE_VIDEO)
.value("FRAME_TYPE_AUDIO", FrameType::FRAME_TYPE_AUDIO)
.value("FRAME_TYPE_METADATA", FrameType::FRAME_TYPE_METADATA)
.value("FRAME_TYPE_ERROR", FrameType::FRAME_TYPE_ERROR)
.value("FRANE_TYPE_STATUS_CHANGE", FrameType::FRANE_TYPE_STATUS_CHANGE)
.value("FRAME_TYPE_MAX", FrameType::FRAME_TYPE_MAX)
.export_values(); .export_values();
enum FourCCVideoType { py::enum_<NDIlib_FourCC_video_type_e>(m, "FourCCVideoType", py::arithmetic())
FOURCC_VIDEO_TYPE_UYVY = NDIlib_FourCC_video_type_UYVY, .value("FOURCC_VIDEO_TYPE_UYVY", NDIlib_FourCC_video_type_UYVY)
FOURCC_VIDEO_TYPE_UYVA = NDIlib_FourCC_video_type_UYVA, .value("FOURCC_VIDEO_TYPE_UYVA", NDIlib_FourCC_video_type_UYVA)
FOURCC_VIDEO_TYPE_P216 = NDIlib_FourCC_video_type_P216, .value("FOURCC_VIDEO_TYPE_P216", NDIlib_FourCC_video_type_P216)
FOURCC_VIDEO_TYPE_PA16 = NDIlib_FourCC_video_type_PA16, .value("FOURCC_VIDEO_TYPE_PA16", NDIlib_FourCC_video_type_PA16)
FOURCC_VIDEO_TYPE_YV12 = NDIlib_FourCC_video_type_YV12, .value("FOURCC_VIDEO_TYPE_YV12", NDIlib_FourCC_video_type_YV12)
FOURCC_VIDEO_TYPE_I420 = NDIlib_FourCC_video_type_I420, .value("FOURCC_VIDEO_TYPE_I420", NDIlib_FourCC_video_type_I420)
FOURCC_VIDEO_TYPE_NV12 = NDIlib_FourCC_video_type_NV12, .value("FOURCC_VIDEO_TYPE_NV12", NDIlib_FourCC_video_type_NV12)
FOURCC_VIDEO_TYPE_BGRA = NDIlib_FourCC_video_type_BGRA, .value("FOURCC_VIDEO_TYPE_BGRA", NDIlib_FourCC_video_type_BGRA)
FOURCC_VIDEO_TYPE_BGRX = NDIlib_FourCC_video_type_BGRX, .value("FOURCC_VIDEO_TYPE_BGRX", NDIlib_FourCC_video_type_BGRX)
FOURCC_VIDEO_TYPE_RGBA = NDIlib_FourCC_video_type_RGBA, .value("FOURCC_VIDEO_TYPE_RGBA", NDIlib_FourCC_video_type_RGBA)
FOURCC_VIDEO_TYPE_RGBX = NDIlib_FourCC_video_type_RGBX, .value("FOURCC_VIDEO_TYPE_RGBX", NDIlib_FourCC_video_type_RGBX)
FOURCC_VIDEO_TYPE_MAX = NDIlib_FourCC_video_type_max, .value("FOURCC_VIDEO_TYPE_MAX", NDIlib_FourCC_video_type_max)
};
py::enum_<FourCCVideoType>(m, "FourCCVideoType", py::arithmetic())
.value("FOURCC_VIDEO_TYPE_UYVY", FourCCVideoType::FOURCC_VIDEO_TYPE_UYVY)
.value("FOURCC_VIDEO_TYPE_UYVA", FourCCVideoType::FOURCC_VIDEO_TYPE_UYVA)
.value("FOURCC_VIDEO_TYPE_P216", FourCCVideoType::FOURCC_VIDEO_TYPE_P216)
.value("FOURCC_VIDEO_TYPE_PA16", FourCCVideoType::FOURCC_VIDEO_TYPE_PA16)
.value("FOURCC_VIDEO_TYPE_YV12", FourCCVideoType::FOURCC_VIDEO_TYPE_YV12)
.value("FOURCC_VIDEO_TYPE_I420", FourCCVideoType::FOURCC_VIDEO_TYPE_I420)
.value("FOURCC_VIDEO_TYPE_NV12", FourCCVideoType::FOURCC_VIDEO_TYPE_NV12)
.value("FOURCC_VIDEO_TYPE_BGRA", FourCCVideoType::FOURCC_VIDEO_TYPE_BGRA)
.value("FOURCC_VIDEO_TYPE_BGRX", FourCCVideoType::FOURCC_VIDEO_TYPE_BGRX)
.value("FOURCC_VIDEO_TYPE_RGBA", FourCCVideoType::FOURCC_VIDEO_TYPE_RGBA)
.value("FOURCC_VIDEO_TYPE_RGBX", FourCCVideoType::FOURCC_VIDEO_TYPE_RGBX)
.value("FOURCC_VIDEO_TYPE_MAX", FourCCVideoType::FOURCC_VIDEO_TYPE_MAX)
.export_values(); .export_values();
enum FourCCAudioType { py::enum_<NDIlib_FourCC_audio_type_e>(m, "FourCCAudioType", py::arithmetic())
FOURCC_AUDIO_TYPE_FLTP = NDIlib_FourCC_audio_type_FLTP, .value("FOURCC_AUDIO_TYPE_FLTP", NDIlib_FourCC_audio_type_FLTP)
FOURCC_AUDIO_TYPE_MAX = NDIlib_FourCC_audio_type_max, .value("FOURCC_AUDIO_TYPE_MAX", NDIlib_FourCC_audio_type_max)
};
py::enum_<FourCCAudioType>(m, "FourCCAudioType", py::arithmetic())
.value("FOURCC_AUDIO_TYPE_FLTP", FourCCAudioType::FOURCC_AUDIO_TYPE_FLTP)
.value("FOURCC_AUDIO_TYPE_MAX", FourCCAudioType::FOURCC_AUDIO_TYPE_MAX)
.export_values(); .export_values();
enum FrameFormatType { py::enum_<NDIlib_frame_format_type_e>(m, "FrameFormatType", py::arithmetic())
FRAME_FORMAT_TYPE_PROGRESSIVE = NDIlib_frame_format_type_progressive,
FRAME_FORMAT_TYPE_INTERLEAVED = NDIlib_frame_format_type_interleaved,
FRAME_FORMAT_TYPE_FIELD_0 = NDIlib_frame_format_type_field_0,
FRAME_FORMAT_TYPE_FIELD_1 = NDIlib_frame_format_type_field_1,
FRAME_FORMAT_TYPE_MAX = NDIlib_frame_format_type_max
};
py::enum_<FrameFormatType>(m, "FrameFormatType", py::arithmetic())
.value("FRAME_FORMAT_TYPE_PROGRESSIVE", .value("FRAME_FORMAT_TYPE_PROGRESSIVE",
FrameFormatType::FRAME_FORMAT_TYPE_PROGRESSIVE) NDIlib_frame_format_type_progressive)
.value("FRAME_FORMAT_TYPE_INTERLEAVED", .value("FRAME_FORMAT_TYPE_INTERLEAVED",
FrameFormatType::FRAME_FORMAT_TYPE_INTERLEAVED) NDIlib_frame_format_type_interleaved)
.value("FRAME_FORMAT_TYPE_FIELD_0", .value("FRAME_FORMAT_TYPE_FIELD_0", NDIlib_frame_format_type_field_0)
FrameFormatType::FRAME_FORMAT_TYPE_FIELD_0) .value("FRAME_FORMAT_TYPE_FIELD_1", NDIlib_frame_format_type_field_1)
.value("FRAME_FORMAT_TYPE_FIELD_1", .value("FRAME_FORMAT_TYPE_MAX", NDIlib_frame_format_type_max)
FrameFormatType::FRAME_FORMAT_TYPE_FIELD_1)
.value("FRAME_FORMAT_TYPE_MAX", FrameFormatType::FRAME_FORMAT_TYPE_MAX)
.export_values(); .export_values();
m.attr("SEND_TIMECODE_SYNTHESIZE") = py::int_(INT64_MAX); m.attr("SEND_TIMECODE_SYNTHESIZE") = py::int_(INT64_MAX);
@@ -661,7 +621,7 @@ PYBIND11_MODULE(NDIlib, m) {
m.def("framesync_capture_video", &NDIlib_framesync_capture_video, m.def("framesync_capture_video", &NDIlib_framesync_capture_video,
py::arg("instance"), py::arg("video_data"), py::arg("instance"), py::arg("video_data"),
py::arg("field_type") = FRAME_FORMAT_TYPE_PROGRESSIVE); py::arg("field_type") = NDIlib_frame_format_type_progressive);
m.def("framesync_free_video", &NDIlib_framesync_free_video, m.def("framesync_free_video", &NDIlib_framesync_free_video,
py::arg("instance"), py::arg("video_data")); py::arg("instance"), py::arg("video_data"));