diff options
author | Hou Qi <qi.hou@nxp.com> | 2021-03-26 16:26:22 +0800 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2021-04-01 10:17:34 +0100 |
commit | d2b82cd8c476615b176da56c137543d84c7c7fad (patch) | |
tree | 44cd6d61522dd2e331541e377f7e82840a5ff568 | |
parent | b80518152799385fc31ac8fce086541ff1b97812 (diff) | |
download | gstreamer-plugins-good-d2b82cd8c476615b176da56c137543d84c7c7fad.tar.gz |
v4l2object: Use default colorimetry if that in caps is unknown
Some streams have unknown colorimetry in caps, but v4l2object sets
default values for each primaries. It will cause check colorimetry
fail when do gst_v4l2_video_colorimetry_matches().
To fix this, need to keep the unknown colorimetry in caps same as
the default value set by v4l2object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/930>
-rw-r--r-- | sys/v4l2/gstv4l2object.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 321a5dcf6..1e465af92 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -3394,6 +3394,16 @@ gst_v4l2_video_colorimetry_matches (const GstVideoColorimetry * cinfo, if (!gst_video_info_from_caps (&info, caps)) return FALSE; + /* if colorimetry in caps is unknown, use the default one */ + if (info.colorimetry.primaries == GST_VIDEO_COLOR_PRIMARIES_UNKNOWN) + info.colorimetry.primaries = cinfo->primaries; + if (info.colorimetry.range == GST_VIDEO_COLOR_RANGE_UNKNOWN) + info.colorimetry.range = cinfo->range; + if (info.colorimetry.matrix == GST_VIDEO_COLOR_MATRIX_UNKNOWN) + info.colorimetry.matrix = cinfo->matrix; + if (info.colorimetry.transfer == GST_VIDEO_TRANSFER_UNKNOWN) + info.colorimetry.transfer = cinfo->transfer; + if (gst_video_colorimetry_is_equal (&info.colorimetry, cinfo)) return TRUE; |