Fix RTP/RTCP mux

This commit is contained in:
David Woodhouse 2015-03-06 16:49:49 +00:00
parent 7eb8e495c0
commit 736363ccfe
2 changed files with 53 additions and 1 deletions

View File

@ -0,0 +1,47 @@
From 3c8039642448e7ad383b2cd588f54e396e1788a8 Mon Sep 17 00:00:00 2001
From: Youness Alaoui <kakaroto@kakaroto.homelinux.net>
Date: Tue, 5 Aug 2014 14:06:07 -0400
Subject: [PATCH] srtpdec: Add support for RTP/RTCP mixing if data arrives on
RTCP pad
https://bugzilla.gnome.org/show_bug.cgi?id=734321
---
ext/srtp/gstsrtpdec.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/ext/srtp/gstsrtpdec.c b/ext/srtp/gstsrtpdec.c
index 5d42f44..892f683 100644
--- a/ext/srtp/gstsrtpdec.c
+++ b/ext/srtp/gstsrtpdec.c
@@ -560,20 +560,18 @@ validate_buffer (GstSrtpDec * filter, GstBuffer * buf, guint32 * ssrc,
gboolean * is_rtcp)
{
GstSrtpDecSsrcStream *stream = NULL;
+ GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
- if (!(*is_rtcp)) {
- GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
+ if (gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf)) {
+ if (gst_rtp_buffer_get_payload_type (&rtpbuf) < 64
+ || gst_rtp_buffer_get_payload_type (&rtpbuf) > 80) {
+ *ssrc = gst_rtp_buffer_get_ssrc (&rtpbuf);
- if (gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuf)) {
- if (gst_rtp_buffer_get_payload_type (&rtpbuf) < 64
- || gst_rtp_buffer_get_payload_type (&rtpbuf) > 80) {
- *ssrc = gst_rtp_buffer_get_ssrc (&rtpbuf);
-
- gst_rtp_buffer_unmap (&rtpbuf);
- goto have_ssrc;
- }
gst_rtp_buffer_unmap (&rtpbuf);
+ *is_rtcp = FALSE;
+ goto have_ssrc;
}
+ gst_rtp_buffer_unmap (&rtpbuf);
}
if (rtcp_buffer_get_ssrc (buf, ssrc)) {
--
2.1.0

View File

@ -10,7 +10,7 @@
Name: gstreamer1-plugins-bad-free Name: gstreamer1-plugins-bad-free
Version: 1.4.5 Version: 1.4.5
Release: 1%{?dist} Release: 2%{?dist}
Summary: GStreamer streaming media framework "bad" plugins Summary: GStreamer streaming media framework "bad" plugins
License: LGPLv2+ and LGPLv2 License: LGPLv2+ and LGPLv2
@ -20,6 +20,7 @@ URL: http://gstreamer.freedesktop.org/
# modified with gst-p-bad-cleanup.sh from SOURCE1 # modified with gst-p-bad-cleanup.sh from SOURCE1
Source0: gst-plugins-bad-free-%{version}.tar.xz Source0: gst-plugins-bad-free-%{version}.tar.xz
Source1: gst-p-bad-cleanup.sh Source1: gst-p-bad-cleanup.sh
Patch1: 0001-srtpdec-Add-support-for-RTP-RTCP-mixing-if-data-arri.patch
BuildRequires: gstreamer1-devel >= %{version} BuildRequires: gstreamer1-devel >= %{version}
BuildRequires: gstreamer1-plugins-base-devel >= %{version} BuildRequires: gstreamer1-plugins-base-devel >= %{version}
@ -147,6 +148,7 @@ aren't tested well enough, or the code is not of good enough quality.
%prep %prep
%setup -q -n gst-plugins-bad-%{version} %setup -q -n gst-plugins-bad-%{version}
%patch1 -p1
%build %build
@ -343,6 +345,9 @@ chrpath --delete $RPM_BUILD_ROOT%{_libdir}/gstreamer-%{majorminor}/libgstcamerab
%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc %{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc
%changelog %changelog
* Fri Mar 06 2015 David Woodhouse <dwmw2@infradead.org> - 1.4.5-2
- Fix RTP/RTCP muxing (#1199578)
* Tue Feb 03 2015 Wim Taymans <wtaymans@redhat.com> - 1.4.5-1 * Tue Feb 03 2015 Wim Taymans <wtaymans@redhat.com> - 1.4.5-1
- Update to 1.4.5 - Update to 1.4.5