diff --git a/components/codecs/src/opencv_encoder.cpp b/components/codecs/src/opencv_encoder.cpp index 313d1e9b90c5f42748f65675eb14fb1e671ca2be..75f1a0553d9d8996fc4de710401c1b124bd6e411 100644 --- a/components/codecs/src/opencv_encoder.cpp +++ b/components/codecs/src/opencv_encoder.cpp @@ -28,9 +28,9 @@ bool OpenCVEncoder::supports(ftl::codecs::codec_t codec) { } bool OpenCVEncoder::encode(const cv::cuda::GpuMat &in, ftl::codecs::Packet &pkt) { - bool is_colour = in.type() == CV_8UC4 || in.type() == CV_8UC1; + bool is_colour = in.type() == CV_8UC4; - if (pkt.codec == codec_t::Any) pkt.codec = (is_colour && in.type() != CV_8UC1) ? codec_t::JPG : codec_t::PNG; + if (pkt.codec == codec_t::Any) pkt.codec = (is_colour) ? codec_t::JPG : codec_t::PNG; if (!supports(pkt.codec)) return false; if (!is_colour && pkt.codec == codec_t::JPG) { @@ -50,7 +50,7 @@ bool OpenCVEncoder::encode(const cv::cuda::GpuMat &in, ftl::codecs::Packet &pkt) in.download(tmp_); - if (!is_colour) { + if (!is_colour && in.type() == CV_32F) { tmp_.convertTo(tmp_, CV_16U, 1000.0f); }