[FFmpeg-devel] [PATCH] lavf/utils: extend has_codec_parameters() to make it show what info is missing

Stefano Sabatini stefasab at gmail.com
Tue Jul 17 09:04:47 CEST 2012


On date Monday 2012-07-16 05:04:55 +0200, Michael Niedermayer encoded:
> On Mon, Jul 16, 2012 at 12:30:58AM +0200, Stefano Sabatini wrote:
> > Improve feedback.
> > ---
> >  libavformat/utils.c |   47 ++++++++++++++++++++++++++++++-----------------
> >  1 files changed, 30 insertions(+), 17 deletions(-)
> > 
> > diff --git a/libavformat/utils.c b/libavformat/utils.c
> > index 39527a6..74b6746 100644
> > --- a/libavformat/utils.c
> > +++ b/libavformat/utils.c
> > @@ -2265,30 +2265,40 @@ static void estimate_timings(AVFormatContext *ic, int64_t old_offset)
> >      }
> >  }
> >  
> > -static int has_codec_parameters(AVStream *st)
> > +static int has_codec_parameters(AVStream *st, char *error, size_t error_size)
> >  {
> >      AVCodecContext *avctx = st->codec;
> > -    int val;
> > +
> > +#define FAIL(errmsg) do {                               \
> > +        if (error)                                      \
> > +            av_strlcpy(error, errmsg, error_size);      \
> > +        return 0;                                       \
> > +    } while (0)
> > +
> 
> passing a flag into has_codec_parameters() and printing the message
> in there when its != 0 seems cleaner
> not sure if theres a even cleaner way

The problem is that when the codec parameters are checked the codec is
not yet set, so you'll see a message of the kind:

[flv @ 0x3303160] max_analyze_duration 5000000 reached at 5018000
[NULL @ 0x33095c0] Unspecified frame size
[flv @ 0x3303160] Could not find codec parameters (Video: h264, 204 kb/s)

which is not very useful.
-- 
FFmpeg = Fundamental Fiendish Mystic Purposeless Enhancing Game


More information about the ffmpeg-devel mailing list