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

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