From 22fb190a2f005513b1b757688edf6d76d392ab9b Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Fri, 6 Mar 2015 16:57:25 +0000 Subject: [PATCH] Don't force RTP jitterbuffer clock-rate --- ...er-Allow-rtp-caps-without-clock-rate.patch | 56 +++++++++++++++++++ gstreamer1-plugins-good.spec | 9 ++- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 0001-jitterbuffer-Allow-rtp-caps-without-clock-rate.patch diff --git a/0001-jitterbuffer-Allow-rtp-caps-without-clock-rate.patch b/0001-jitterbuffer-Allow-rtp-caps-without-clock-rate.patch new file mode 100644 index 0000000..f7b5365 --- /dev/null +++ b/0001-jitterbuffer-Allow-rtp-caps-without-clock-rate.patch @@ -0,0 +1,56 @@ +From a98341397d3522fdc7470c4220775035a2d1d790 Mon Sep 17 00:00:00 2001 +From: Youness Alaoui +Date: Thu, 7 Aug 2014 21:58:14 -0400 +Subject: [PATCH] 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 +--- + gst/rtpmanager/gstrtpjitterbuffer.c | 16 ++++------------ + 1 file changed, 4 insertions(+), 12 deletions(-) + +diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c +index c8c512e..0eccd1a 100644 +--- a/gst/rtpmanager/gstrtpjitterbuffer.c ++++ b/gst/rtpmanager/gstrtpjitterbuffer.c +@@ -342,9 +342,9 @@ static GstStaticPadTemplate gst_rtp_jitter_buffer_sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, +- GST_STATIC_CAPS ("application/x-rtp, " +- "clock-rate = (int) [ 1, 2147483647 ]" +- /* "payload = (int) , " ++ GST_STATIC_CAPS ("application/x-rtp" ++ /* "clock-rate = (int) [ 1, 2147483647 ], " ++ * "payload = (int) , " + * "encoding-name = (string) " + */ ) + ); +@@ -1364,9 +1364,7 @@ queue_event (GstRtpJitterBuffer * jitterbuffer, GstEvent * event) + GstCaps *caps; + + gst_event_parse_caps (event, &caps); +- if (!gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps)) +- goto wrong_caps; +- ++ gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps); + break; + } + case GST_EVENT_SEGMENT: +@@ -1397,12 +1395,6 @@ queue_event (GstRtpJitterBuffer * jitterbuffer, GstEvent * event) + return TRUE; + + /* ERRORS */ +-wrong_caps: +- { +- GST_DEBUG_OBJECT (jitterbuffer, "received invalid caps"); +- gst_event_unref (event); +- return FALSE; +- } + newseg_wrong_format: + { + GST_DEBUG_OBJECT (jitterbuffer, "received non TIME newsegment"); +-- +2.1.0 + diff --git a/gstreamer1-plugins-good.spec b/gstreamer1-plugins-good.spec index 6b8b8b4..57e9026 100644 --- a/gstreamer1-plugins-good.spec +++ b/gstreamer1-plugins-good.spec @@ -9,12 +9,13 @@ Name: gstreamer1-plugins-good Version: 1.4.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: GStreamer plugins with good code and licensing License: LGPLv2+ URL: http://gstreamer.freedesktop.org/ Source0: http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-%{version}.tar.xz +Patch1: 0001-jitterbuffer-Allow-rtp-caps-without-clock-rate.patch BuildRequires: gstreamer1-devel >= %{version} BuildRequires: gstreamer1-plugins-base-devel >= %{version} @@ -84,6 +85,7 @@ to be installed. %prep %setup -q -n gst-plugins-good-%{version} +%patch1 -p1 %build %configure \ @@ -202,7 +204,10 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' %changelog -* Wed Jan 28 2015 Bastien Nocera 1.4.5-1 +* Fri Mar 06 2015 David Woodhouse - 1.4.5-2 +- Don't force RTP jitterbuffer clock-rate (#1199579) + +* Wed Jan 28 2015 Bastien Nocera - 1.4.5-1 - Update to 1.4.5 * Fri Nov 14 2014 Kalev Lember - 1.4.4-1