diff options
author | Seungha Yang <seungha@centricular.com> | 2021-07-08 19:03:06 +0900 |
---|---|---|
committer | Seungha Yang <seungha@centricular.com> | 2021-07-08 19:06:28 +0900 |
commit | f57370c4db96827b061932aa958415c1eb62c100 (patch) | |
tree | f1eb26a8fa6267f2e02f2f4da79dc2912e956d7f /sys | |
parent | 64190e745298e0144b3683c2a227a13b2009c539 (diff) | |
download | gstreamer-plugins-bad-f57370c4db96827b061932aa958415c1eb62c100.tar.gz |
mfvideosrc: Fix negotiation when interlace-mode is specified
Given caps does not need to be strictly subset of device caps.
Allow accept it if device caps and requested caps can intersect
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1619
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2384>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/mediafoundation/gstmfcapturewinrt.cpp | 2 | ||||
-rw-r--r-- | sys/mediafoundation/gstmfsourcereader.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/mediafoundation/gstmfcapturewinrt.cpp b/sys/mediafoundation/gstmfcapturewinrt.cpp index 8ce4ba1d3..87475a3e6 100644 --- a/sys/mediafoundation/gstmfcapturewinrt.cpp +++ b/sys/mediafoundation/gstmfcapturewinrt.cpp @@ -687,7 +687,7 @@ gst_mf_capture_winrt_set_caps (GstMFSourceObject * object, GstCaps * caps) } for (const auto& iter: desc_list) { - if (gst_caps_is_subset (iter.caps_, caps)) { + if (gst_caps_can_intersect (iter.caps_, caps)) { target_caps = gst_caps_ref (iter.caps_); self->capture->SetMediaDescription(iter); break; diff --git a/sys/mediafoundation/gstmfsourcereader.cpp b/sys/mediafoundation/gstmfsourcereader.cpp index 6c7b3fdf4..57a0a5a3b 100644 --- a/sys/mediafoundation/gstmfsourcereader.cpp +++ b/sys/mediafoundation/gstmfsourcereader.cpp @@ -693,7 +693,7 @@ gst_mf_source_reader_set_caps (GstMFSourceObject * object, GstCaps * caps) for (iter = self->media_types; iter; iter = g_list_next (iter)) { GstMFStreamMediaType *minfo = (GstMFStreamMediaType *) iter->data; - if (gst_caps_is_subset (minfo->caps, caps)) { + if (gst_caps_can_intersect (minfo->caps, caps)) { best_type = minfo; break; } |