summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2019-07-16 10:40:16 +0300
committerTim-Philipp Müller <tim@centricular.com>2019-08-10 21:21:05 +0100
commit92b29b8fb6422808f6d510818ef2bc21c72c7198 (patch)
tree2c2878084e4a4a066bbaaa63ca76464d70d4e09d
parent16205dd1cc5a8d8789aa24358a2cfc9461dcf082 (diff)
downloadgstreamer-plugins-base-92b29b8fb6422808f6d510818ef2bc21c72c7198.tar.gz
videoaggregator: We can only convert the format if a GstVideoAggregatorConvertPad is used
Otherwise assume that we can at least support any framerate.
-rw-r--r--gst-libs/gst/video/gstvideoaggregator.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c
index 93d263dc2..886121b02 100644
--- a/gst-libs/gst/video/gstvideoaggregator.c
+++ b/gst-libs/gst/video/gstvideoaggregator.c
@@ -1262,12 +1262,16 @@ gst_video_aggregator_pad_sink_getcaps (GstPad * pad, GstVideoAggregator * vagg,
n = gst_caps_get_size (srccaps);
for (i = 0; i < n; i++) {
s = gst_caps_get_structure (srccaps, i);
- gst_structure_set (s, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
- "height", GST_TYPE_INT_RANGE, 1, G_MAXINT,
- "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
+ gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT,
+ 1, NULL);
+
+ if (GST_IS_VIDEO_AGGREGATOR_CONVERT_PAD (pad)) {
+ gst_structure_set (s, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
+ "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
+ gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
+ "pixel-aspect-ratio", NULL);
+ }
- gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
- "pixel-aspect-ratio", NULL);
if (has_interlace_mode)
gst_structure_set (s, "interlace-mode", G_TYPE_STRING,
gst_video_interlace_mode_to_string (interlace_mode), NULL);
@@ -2400,12 +2404,15 @@ gst_video_aggregator_pad_sink_acceptcaps (GstPad * pad,
n = gst_caps_get_size (accepted_caps);
for (i = 0; i < n; i++) {
s = gst_caps_get_structure (accepted_caps, i);
- gst_structure_set (s, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
- "height", GST_TYPE_INT_RANGE, 1, G_MAXINT,
- "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
-
- gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
- "pixel-aspect-ratio", NULL);
+ gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT,
+ 1, NULL);
+
+ if (GST_IS_VIDEO_AGGREGATOR_CONVERT_PAD (pad)) {
+ gst_structure_set (s, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
+ "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
+ gst_structure_remove_fields (s, "colorimetry", "chroma-site", "format",
+ "pixel-aspect-ratio", NULL);
+ }
}
modified_caps = gst_caps_intersect (accepted_caps, template_caps);