From ea43ef214a77a0219af9a9be922042fbf5e53f15 Mon Sep 17 00:00:00 2001 From: Ravi Kiran K N Date: Tue, 2 Sep 2014 13:52:43 +0530 Subject: [PATCH] smpte: Check if input caps are the same and create output caps from video info This makes sure that also properties like the pixel-aspect-ratio are the same between both streams and that the output caps contain all fields necessary for complete video caps. https://bugzilla.gnome.org/show_bug.cgi?id=735804 --- gst/smpte/gstsmpte.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index 8bc0d26190..a423b80852 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -507,10 +507,7 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte) gst_buffer_unmap (in2, &map); } - if (GST_VIDEO_INFO_WIDTH (&smpte->vinfo1) != - GST_VIDEO_INFO_WIDTH (&smpte->vinfo2) || - GST_VIDEO_INFO_HEIGHT (&smpte->vinfo1) != - GST_VIDEO_INFO_HEIGHT (&smpte->vinfo2)) + if (!gst_video_info_is_equal (&smpte->vinfo1, &smpte->vinfo2)) goto input_formats_do_not_match; if (smpte->position < smpte->end_position) { @@ -521,12 +518,7 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte) GstCaps *caps; GstSegment segment; - caps = - gst_caps_make_writable (gst_static_caps_get - (&gst_smpte_src_template.static_caps)); - gst_caps_set_simple (caps, "width", G_TYPE_INT, smpte->width, "height", - G_TYPE_INT, smpte->height, "framerate", GST_TYPE_FRACTION, - smpte->fps_num, smpte->fps_denom, NULL); + caps = gst_video_info_to_caps (&smpte->vinfo1); gst_pad_set_caps (smpte->srcpad, caps); gst_caps_unref (caps);