summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2021-07-08 19:03:06 +0900
committerTim-Philipp Müller <tim@centricular.com>2021-07-08 19:10:50 +0100
commitb9c92e35d608f6c0451066c4b451795683b1615f (patch)
tree30778cb6d9d0c659069fbf4085b1f15b56c8cf3f
parent5a4d1de5f6cb23a2f5be58c5b5f4ebe7f956f937 (diff)
downloadgstreamer-plugins-bad-b9c92e35d608f6c0451066c4b451795683b1615f.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/2391>
-rw-r--r--sys/mediafoundation/gstmfcapturewinrt.cpp2
-rw-r--r--sys/mediafoundation/gstmfsourcereader.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/mediafoundation/gstmfcapturewinrt.cpp b/sys/mediafoundation/gstmfcapturewinrt.cpp
index c2f4699ab..22d8ed582 100644
--- a/sys/mediafoundation/gstmfcapturewinrt.cpp
+++ b/sys/mediafoundation/gstmfcapturewinrt.cpp
@@ -609,7 +609,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 396151e81..995916e88 100644
--- a/sys/mediafoundation/gstmfsourcereader.cpp
+++ b/sys/mediafoundation/gstmfsourcereader.cpp
@@ -603,7 +603,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;
}