[FFmpeg-devel] [PATCH] avformat/rtsp: don't overwrite session control uri
Andriy Gelman
andriy.gelman at gmail.com
Mon Jan 18 00:53:38 EET 2021
On Sat, 31. Oct 10:16, Andriy Gelman wrote:
> On Wed, 21. Oct 13:39, Andriy Gelman wrote:
> > On Sat, 10. Oct 19:22, Andriy Gelman wrote:
> > > From: Andriy Gelman <andriy.gelman at gmail.com>
> > >
> > > Fixes #1941
> > >
> > > Currently the session control uri gets overwritten by the media's uri
> > > when mpegts is signalled in the media description. This happens because
> > > s->nb_streams doesn't count mpegts which is instead part of the private
> > > context in RTSPStream.
> > >
> > > Instead use rt->nb_rtsp_streams which counts all of the media streams
> > > signalled in the sdp.
> > >
> > > This solution was originally proposed by user "tpol" on trac:
> > > https://trac.ffmpeg.org/ticket/1941
> > >
> > > Signed-off-by: Andriy Gelman <andriy.gelman at gmail.com>
> > > ---
> > > libavformat/rtsp.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
> > > index e9fca034b4..4d5459ac41 100644
> > > --- a/libavformat/rtsp.c
> > > +++ b/libavformat/rtsp.c
> > > @@ -542,7 +542,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
> > > break;
> > > case 'a':
> > > if (av_strstart(p, "control:", &p)) {
> > > - if (s->nb_streams == 0) {
> > > + if (rt->nb_rtsp_streams == 0) {
> > > if (!strncmp(p, "rtsp://", 7))
> > > av_strlcpy(rt->control_uri, p,
> > > sizeof(rt->control_uri));
> > > --
> > > 2.28.0
> > >
> >
> > ping
> >
>
> ping
> Will apply this Monday if no one objects.
I haven't applied this patch yet because I had some problems testing with vlc.
vlc would close the socket connection after ~10 seconds, even though a 60second
timeout was advertised.
This was fairly recently fixed in vlc:
38d214bc4f2ef68dfe6859383e12a20ae91e62de
ce3269d4a20aba2f87fc3e512131cb31b9561b3e
So I'll go ahead and push.
--
Andriy
More information about the ffmpeg-devel
mailing list