[FFmpeg-devel] [PATCH] rtp: Fix play multiple multicast streams with the same port
Michael Niedermayer
michael at niedermayer.cc
Thu Jan 7 18:52:33 CET 2016
On Thu, Jan 07, 2016 at 06:58:49PM +0800, Zhao Zhili wrote:
> I made a mistake that rtp and rtcp cannot be the same port. A new patch is
> appended.
>
> From: Zhao Zhili <wantlamy at gmail.com>
> Date: Thu, 7 Jan 2016 18:55:50 +0800
> Subject: [PATCH] rtp: Fix play multiple multicast streams with the same port
>
> We cannot play multiple multicast streams with the same port at the
> same time. This is because both rtp and rtcp port are opened in
> read-write mode, so they will not bind to the multicast address. Try
> to make rtp port as read-only by default to solve this bug.
>
> Signed-off-by: Zhao Zhili <wantlamy at gmail.com>
> ---
> libavformat/rtpproto.c | 6 ++++--
> libavformat/rtsp.c | 2 +-
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/libavformat/rtpproto.c b/libavformat/rtpproto.c
> index e0aa23e..04a40ea 100644
> --- a/libavformat/rtpproto.c
> +++ b/libavformat/rtpproto.c
> @@ -323,6 +323,7 @@ static int rtp_open(URLContext *h, const char *uri, int
> flags)
> char path[1024];
> const char *p;
> int i, max_retry_count = 3;
> + int rtcpflags;
>
> av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &rtp_port,
> path, sizeof(path), uri);
> @@ -387,12 +388,13 @@ static int rtp_open(URLContext *h, const char *uri,
> int flags)
> s->local_rtpport = -1;
> continue;
> }
> + rtcpflags = flags | AVIO_FLAG_WRITE;
> if (s->local_rtcpport < 0) {
> s->local_rtcpport = s->local_rtpport + 1;
> build_udp_url(s, buf, sizeof(buf),
> hostname, s->rtcp_port, s->local_rtcpport,
> sources, block);
> - if (ffurl_open(&s->rtcp_hd, buf, flags,
> &h->interrupt_callback, NULL) < 0) {
> + if (ffurl_open(&s->rtcp_hd, buf, rtcpflags,
> &h->interrupt_callback, NULL) < 0) {
the patch is corrupted by linebreaks
attaching it usually fixes that
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Old school: Use the lowest level language in which you can solve the problem
conveniently.
New school: Use the highest level language in which the latest supercomputer
can solve the problem without the user falling asleep waiting.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160107/b7125a2b/attachment.sig>
More information about the ffmpeg-devel
mailing list