[FFmpeg-devel] [FFmpeg-cvslog] avformat/rtsp: support infinite initial_timeout for rtsp option

Andriy Gelman andriy.gelman at gmail.com
Mon Nov 9 19:52:39 EET 2020


Hi Limin, 

On Sat, 07. Nov 02:14, Limin Wang wrote:
> ffmpeg | branch: master | Limin Wang <lance.lmwang at gmail.com> | Tue Nov  3 18:15:21 2020 +0800| [c8101aabee654f6d147a4d89f77fa73e18908610] | committer: Limin Wang
> 
> avformat/rtsp: support infinite initial_timeout for rtsp option
> 
> Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> 
> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c8101aabee654f6d147a4d89f77fa73e18908610
> ---
> 
>  libavformat/rtsp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
> index 49c2d52375..4427bd268f 100644
> --- a/libavformat/rtsp.c
> +++ b/libavformat/rtsp.c
> @@ -2049,7 +2049,7 @@ static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st,
>                  }
>              }
>  #endif
> -        } else if (n == 0 && --runs <= 0) {
> +        } else if (n == 0 && rt->initial_timeout > 0 && --runs <= 0) {
>              return AVERROR(ETIMEDOUT);
>          } else if (n < 0 && errno != EINTR)
>              return AVERROR(errno);

Please ping before applying. 

This breaks:
ffplay -loglevel trace rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

The above link requires a timeout on the first call. After a timeout it will
switch from udp to tcp and the stream will work.

The issue now is that rtsp must have an infinite timeout from your changes. 
If a user tries to set a timeout it will switch to rtsp listen mode (which is
probably not what they intend if they are trying to stream from a server). 

--
Andriy


More information about the ffmpeg-devel mailing list