[FFmpeg-devel] [PATCH] avformat/hls: fix compiling error

wm4 nfxjfg at googlemail.com
Tue Dec 26 01:46:25 EET 2017


On Mon, 25 Dec 2017 17:21:23 +0000
Aman Gupta <ffmpeg at tmm1.net> wrote:

> On Sun, Dec 24, 2017 at 7:48 PM Steven Liu <lq at chinaffmpeg.org> wrote:
> 
> > fix --disable-network compipling error
> >
> > Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
> > ---
> >  libavformat/hls.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/hls.c b/libavformat/hls.c
> > index f00e22dfef..51d83b7557 100644
> > --- a/libavformat/hls.c
> > +++ b/libavformat/hls.c
> > @@ -611,14 +611,16 @@ static void update_options(char **dest, const char
> > *name, void *src)
> >  static int open_url_keepalive(AVFormatContext *s, AVIOContext **pb,
> >                                const char *url)
> >  {
> > -    int ret;
> > +    int ret = 0;  
> 
> 
> Returning 0 does not make sense since that means no error.
> 
> 
> >      URLContext *uc = ffio_geturlcontext(*pb);
> >      av_assert0(uc);  
> 
> 
> This will trigger an assertion failure and crash.
> 
> 
> >      (*pb)->eof_reached = 0;
> > +#if CONFIG_HTTP_PROTOCOL
> >      ret = ff_http_do_new_request(uc, url);
> >      if (ret < 0) {
> >          ff_format_io_close(s, pb);
> >      }
> > +#endif  
> 
> 
> >      return ret;
> >  }  
> 
> 
> I think it would be better to #if the entire function body, and return some
> error code in the case where the feature is not available, like
> AVERROR_PROTOCOL_NOT_FOUND

Or a callback, to make this part of native AVIO or URLContext (or
whatever it's using). That would avoid all ifdeffery and build
fragility.


More information about the ffmpeg-devel mailing list