Update ndi recv
This commit is contained in:
100
src/main.cpp
100
src/main.cpp
@@ -276,78 +276,63 @@ PYBIND11_MODULE(NDIlib, m) {
|
|||||||
py::arg("instance"), py::arg("timeout_in_ms"));
|
py::arg("instance"), py::arg("timeout_in_ms"));
|
||||||
|
|
||||||
// Processing.NDI.Recv
|
// Processing.NDI.Recv
|
||||||
enum RecvBandwidth {
|
py::enum_<NDIlib_recv_bandwidth_e>(m, "RecvBandwidth", py::arithmetic())
|
||||||
RECV_BANDWIDTH_METADATA_ONLY = NDIlib_recv_bandwidth_metadata_only,
|
|
||||||
RECV_BANDWIDTH_AUDIO_ONLY = NDIlib_recv_bandwidth_audio_only,
|
|
||||||
RECV_BANDWIDTH_LOWEST = NDIlib_recv_bandwidth_lowest,
|
|
||||||
RECV_BANDWIDTH_HIGHEST = NDIlib_recv_bandwidth_highest
|
|
||||||
};
|
|
||||||
|
|
||||||
py::enum_<RecvBandwidth>(m, "RecvBandwidth", py::arithmetic())
|
|
||||||
.value("RECV_BANDWIDTH_METADATA_ONLY",
|
.value("RECV_BANDWIDTH_METADATA_ONLY",
|
||||||
RecvBandwidth::RECV_BANDWIDTH_METADATA_ONLY)
|
NDIlib_recv_bandwidth_metadata_only)
|
||||||
.value("RECV_BANDWIDTH_AUDIO_ONLY",
|
.value("RECV_BANDWIDTH_AUDIO_ONLY", NDIlib_recv_bandwidth_audio_only)
|
||||||
RecvBandwidth::RECV_BANDWIDTH_AUDIO_ONLY)
|
.value("RECV_BANDWIDTH_LOWEST", NDIlib_recv_bandwidth_lowest)
|
||||||
.value("RECV_BANDWIDTH_LOWEST", RecvBandwidth::RECV_BANDWIDTH_LOWEST)
|
.value("RECV_BANDWIDTH_HIGHEST", NDIlib_recv_bandwidth_highest)
|
||||||
.value("RECV_BANDWIDTH_HIGHEST", RecvBandwidth::RECV_BANDWIDTH_HIGHEST)
|
.value("RECV_BANDWIDTH_MAX", NDIlib_recv_bandwidth_max)
|
||||||
.export_values();
|
.export_values();
|
||||||
|
|
||||||
enum RecvColorFormat {
|
py::enum_<NDIlib_recv_color_format_e>(m, "RecvColorFormat", py::arithmetic())
|
||||||
RECV_COLOR_FORMAT_BGRX_BGRA = NDIlib_recv_color_format_BGRX_BGRA,
|
.value("RECV_COLOR_FORMAT_BGRX_BGRA", NDIlib_recv_color_format_BGRX_BGRA)
|
||||||
RECV_COLOR_FORMAT_UYVY_BGRA = NDIlib_recv_color_format_UYVY_BGRA,
|
.value("RECV_COLOR_FORMAT_UYVY_BGRA", NDIlib_recv_color_format_UYVY_BGRA)
|
||||||
RECV_COLOR_FORMAT_RGBX_RGBA = NDIlib_recv_color_format_RGBX_RGBA,
|
.value("RECV_COLOR_FORMAT_RGBX_RGBA", NDIlib_recv_color_format_RGBX_RGBA)
|
||||||
RECV_COLOR_FORMAT_UYVY_RGBA = NDIlib_recv_color_format_UYVY_RGBA,
|
.value("RECV_COLOR_FORMAT_UYVY_RGBA", NDIlib_recv_color_format_UYVY_RGBA)
|
||||||
#ifdef _WIN32
|
.value("RECV_COLOR_FORMAT_FASTEST", NDIlib_recv_color_format_fastest)
|
||||||
RECV_COLOR_FORMAT_BGRX_BGRA_FLIPPED =
|
.value("RECV_COLOR_FORMAT_BEST", NDIlib_recv_color_format_best)
|
||||||
NDIlib_recv_color_format_BGRX_BGRA_flipped,
|
.value("RECV_COLOR_FORMAT_E_BGRX_BGRA",
|
||||||
#endif
|
NDIlib_recv_color_format_e_BGRX_BGRA)
|
||||||
RECV_COLOR_FORMAT_FASTEST = NDIlib_recv_color_format_fastest,
|
.value("RECV_COLOR_FORMAT_E_UYVY_BGRA",
|
||||||
RECV_COLOR_FORMAT_E_BGRX_BGRA = NDIlib_recv_color_format_e_BGRX_BGRA,
|
NDIlib_recv_color_format_e_UYVY_BGRA)
|
||||||
RECV_COLOR_FORMAT_E_UYVY_BGRA = NDIlib_recv_color_format_e_UYVY_BGRA,
|
.value("RECV_COLOR_FORMAT_E_RGBX_RGBA",
|
||||||
RECV_COLOR_FORMAT_E_RGBX_RGBA = NDIlib_recv_color_format_e_RGBX_RGBA,
|
NDIlib_recv_color_format_e_RGBX_RGBA)
|
||||||
RECV_COLOR_FORMAT_E_UYVY_RGBA = NDIlib_recv_color_format_e_UYVY_RGBA
|
.value("RECV_COLOR_FORMAT_E_UYVY_RGBA",
|
||||||
};
|
NDIlib_recv_color_format_e_UYVY_RGBA)
|
||||||
|
|
||||||
py::enum_<RecvColorFormat>(m, "RecvColorFormat", py::arithmetic())
|
|
||||||
.value("RECV_COLOR_FORMAT_BGRX_BGRA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_BGRX_BGRA)
|
|
||||||
.value("RECV_COLOR_FORMAT_UYVY_BGRA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_UYVY_BGRA)
|
|
||||||
.value("RECV_COLOR_FORMAT_RGBX_RGBA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_RGBX_RGBA)
|
|
||||||
.value("RECV_COLOR_FORMAT_UYVY_RGBA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_UYVY_RGBA)
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
.value("RECV_COLOR_FORMAT_BGRX_BGRA_FLIPPED",
|
.value("RECV_COLOR_FORMAT_BGRX_BGRA_FLIPPED",
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_BGRX_BGRA_FLIPPED)
|
1000 + NDIlib_recv_color_format_BGRX_BGRA)
|
||||||
#endif
|
#endif
|
||||||
.value("RECV_COLOR_FORMAT_FASTEST",
|
.value("RECV_COLOR_FORMAT_MAX", NDIlib_recv_color_format_max)
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_FASTEST)
|
|
||||||
.value("RECV_COLOR_FORMAT_E_BGRX_BGRA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_E_BGRX_BGRA)
|
|
||||||
.value("RECV_COLOR_FORMAT_E_UYVY_BGRA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_E_UYVY_BGRA)
|
|
||||||
.value("RECV_COLOR_FORMAT_E_RGBX_RGBA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_E_RGBX_RGBA)
|
|
||||||
.value("RECV_COLOR_FORMAT_E_UYVY_RGBA",
|
|
||||||
RecvColorFormat::RECV_COLOR_FORMAT_E_UYVY_RGBA)
|
|
||||||
.export_values();
|
.export_values();
|
||||||
|
|
||||||
py::class_<NDIlib_recv_create_v3_t>(m, "RecvCreateV3")
|
py::class_<NDIlib_recv_create_v3_t>(m, "RecvCreateV3")
|
||||||
.def(py::init<const NDIlib_source_t, NDIlib_recv_color_format_e,
|
.def(py::init<const NDIlib_source_t, NDIlib_recv_color_format_e,
|
||||||
NDIlib_recv_bandwidth_e, bool, const char *>(),
|
NDIlib_recv_bandwidth_e, bool, const char *>(),
|
||||||
py::arg("source_to_connect_to") = NDIlib_source_t(),
|
py::arg("source_to_connect_to") = NDIlib_source_t(),
|
||||||
py::arg("color_format") = RECV_COLOR_FORMAT_UYVY_BGRA,
|
py::arg("color_format") = NDIlib_recv_color_format_UYVY_BGRA,
|
||||||
py::arg("bandwidth") = RECV_BANDWIDTH_HIGHEST,
|
py::arg("bandwidth") = NDIlib_recv_bandwidth_highest,
|
||||||
py::arg("allow_video_fields") = true, py::arg("ndi_name") = nullptr)
|
py::arg("allow_video_fields") = true,
|
||||||
|
py::arg("p_ndi_recv_name") = nullptr)
|
||||||
.def_readwrite("source_to_connect_to",
|
.def_readwrite("source_to_connect_to",
|
||||||
&NDIlib_recv_create_v3_t::source_to_connect_to)
|
&NDIlib_recv_create_v3_t::source_to_connect_to)
|
||||||
.def_readwrite("color_format", &NDIlib_recv_create_v3_t::color_format)
|
.def_readwrite("color_format", &NDIlib_recv_create_v3_t::color_format)
|
||||||
.def_readwrite("bandwidth", &NDIlib_recv_create_v3_t::bandwidth)
|
.def_readwrite("bandwidth", &NDIlib_recv_create_v3_t::bandwidth)
|
||||||
.def_readwrite("allow_video_fields",
|
.def_readwrite("allow_video_fields",
|
||||||
&NDIlib_recv_create_v3_t::allow_video_fields)
|
&NDIlib_recv_create_v3_t::allow_video_fields)
|
||||||
.def_readwrite("ndi_recv_name",
|
.def_property(
|
||||||
&NDIlib_recv_create_v3_t::p_ndi_recv_name);
|
"ndi_recv_name",
|
||||||
|
[](const NDIlib_recv_create_v3_t &self) {
|
||||||
|
auto ustr = PyUnicode_DecodeLocale(self.p_ndi_recv_name, nullptr);
|
||||||
|
return py::reinterpret_steal<py::str>(ustr);
|
||||||
|
},
|
||||||
|
[](NDIlib_recv_create_v3_t &self, const std::string &ndi_recv_name) {
|
||||||
|
static std::unordered_map<NDIlib_recv_create_v3_t *, std::string>
|
||||||
|
strs;
|
||||||
|
strs[&self] = py::str(ndi_recv_name);
|
||||||
|
self.p_ndi_recv_name = strs[&self].c_str();
|
||||||
|
});
|
||||||
|
|
||||||
py::class_<NDIlib_recv_performance_t>(m, "RecvPerformance")
|
py::class_<NDIlib_recv_performance_t>(m, "RecvPerformance")
|
||||||
.def(py::init<>())
|
.def(py::init<>())
|
||||||
@@ -374,12 +359,19 @@ PYBIND11_MODULE(NDIlib, m) {
|
|||||||
py::arg("video_data"), py::arg("audio_data"), py::arg("metadata"),
|
py::arg("video_data"), py::arg("audio_data"), py::arg("metadata"),
|
||||||
py::arg("timeout_in_ms"));
|
py::arg("timeout_in_ms"));
|
||||||
|
|
||||||
|
m.def("recv_capture_v3", &NDIlib_recv_capture_v3, py::arg("instance"),
|
||||||
|
py::arg("video_data"), py::arg("audio_data"), py::arg("metadata"),
|
||||||
|
py::arg("timeout_in_ms"));
|
||||||
|
|
||||||
m.def("recv_free_video_v2", &NDIlib_recv_free_video_v2, py::arg("instance"),
|
m.def("recv_free_video_v2", &NDIlib_recv_free_video_v2, py::arg("instance"),
|
||||||
py::arg("video_data"));
|
py::arg("video_data"));
|
||||||
|
|
||||||
m.def("recv_free_audio_v2", &NDIlib_recv_free_audio_v2, py::arg("instance"),
|
m.def("recv_free_audio_v2", &NDIlib_recv_free_audio_v2, py::arg("instance"),
|
||||||
py::arg("audio_data"));
|
py::arg("audio_data"));
|
||||||
|
|
||||||
|
m.def("recv_free_audio_v3", &NDIlib_recv_free_audio_v3, py::arg("instance"),
|
||||||
|
py::arg("audio_data"));
|
||||||
|
|
||||||
m.def("recv_free_metadata", &NDIlib_recv_free_metadata, py::arg("instance"),
|
m.def("recv_free_metadata", &NDIlib_recv_free_metadata, py::arg("instance"),
|
||||||
py::arg("metadata"));
|
py::arg("metadata"));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user