diff mbox series

[FFmpeg-devel] avformat/rtsp: don't overwrite session control uri

Message ID 20201010232218.295220-1-andriy.gelman@gmail.com
State New
Headers show
Series [FFmpeg-devel] avformat/rtsp: don't overwrite session control uri
Related show

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make warning Make failed

Commit Message

Andriy Gelman Oct. 10, 2020, 11:22 p.m. UTC
From: Andriy Gelman <andriy.gelman@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@gmail.com>
---
 libavformat/rtsp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andriy Gelman Oct. 21, 2020, 5:39 p.m. UTC | #1
On Sat, 10. Oct 19:22, Andriy Gelman wrote:
> From: Andriy Gelman <andriy.gelman@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@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
Andriy Gelman Oct. 31, 2020, 2:16 p.m. UTC | #2
On Wed, 21. Oct 13:39, Andriy Gelman wrote:
> On Sat, 10. Oct 19:22, Andriy Gelman wrote:
> > From: Andriy Gelman <andriy.gelman@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@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.
diff mbox series

Patch

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));