jitterbuffer: Allow rtp caps without clock-rate

The jitterbuffer shouldn't force clock-rate on its sink pad, this will cause a negotiation issue since rtpssrcdemux doesn't have the clock-rate and doesn't add it to the caps. The documentation states that the clock-rate can either be specified through the caps or through the request-pt-map signal, so we must remove clock-rate from the pad templates and we must accept the GST_EVENT_CAPS if the caps don't have the clock-rate.

https://bugzilla.gnome.org/show_bug.cgi?id=734322
This commit is contained in:
Youness Alaoui 2014-08-07 21:58:14 -04:00 committed by Olivier Crête
parent fa103ca5ad
commit a98341397d

View file

@ -342,9 +342,9 @@ static GstStaticPadTemplate gst_rtp_jitter_buffer_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK, GST_PAD_SINK,
GST_PAD_ALWAYS, GST_PAD_ALWAYS,
GST_STATIC_CAPS ("application/x-rtp, " GST_STATIC_CAPS ("application/x-rtp"
"clock-rate = (int) [ 1, 2147483647 ]" /* "clock-rate = (int) [ 1, 2147483647 ], "
/* "payload = (int) , " * "payload = (int) , "
* "encoding-name = (string) " * "encoding-name = (string) "
*/ ) */ )
); );
@ -1364,9 +1364,7 @@ queue_event (GstRtpJitterBuffer * jitterbuffer, GstEvent * event)
GstCaps *caps; GstCaps *caps;
gst_event_parse_caps (event, &caps); gst_event_parse_caps (event, &caps);
if (!gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps)) gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps);
goto wrong_caps;
break; break;
} }
case GST_EVENT_SEGMENT: case GST_EVENT_SEGMENT:
@ -1397,12 +1395,6 @@ queue_event (GstRtpJitterBuffer * jitterbuffer, GstEvent * event)
return TRUE; return TRUE;
/* ERRORS */ /* ERRORS */
wrong_caps:
{
GST_DEBUG_OBJECT (jitterbuffer, "received invalid caps");
gst_event_unref (event);
return FALSE;
}
newseg_wrong_format: newseg_wrong_format:
{ {
GST_DEBUG_OBJECT (jitterbuffer, "received non TIME newsegment"); GST_DEBUG_OBJECT (jitterbuffer, "received non TIME newsegment");