On Tue, 17 Nov 2015 17:39:31 -0500
Ganesh Ajjanagadde <gajjanaga...@gmail.com> wrote:

> ffio_ensure_seekback can fail due to e.g ENOMEM. This return value is
> checked here and a diagnostic is logged.
> 
> All usage of ffio_ensure_seekback in the codebase now has the return value 
> checked.
> 
> Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com>
> ---
>  libavformat/mp3dec.c | 6 ++++--
>  libavformat/rmdec.c  | 3 ++-
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c
> index 32ca00c..a14bccd 100644
> --- a/libavformat/mp3dec.c
> +++ b/libavformat/mp3dec.c
> @@ -380,11 +380,13 @@ static int mp3_read_header(AVFormatContext *s)
>          uint32_t header, header2;
>          int frame_size;
>          if (!(i&1023))
> -            ffio_ensure_seekback(s->pb, i + 1024 + 4);
> +            if ((ret = ffio_ensure_seekback(s->pb, i + 1024 + 4)) < 0)
> +                av_log(s, AV_LOG_WARNING, "ffio_ensure_seekback(): %s\n", 
> av_err2str(ret));
>          frame_size = check(s->pb, off + i, &header);
>          if (frame_size > 0) {
>              avio_seek(s->pb, off, SEEK_SET);
> -            ffio_ensure_seekback(s->pb, i + 1024 + frame_size + 4);
> +            if ((ret = ffio_ensure_seekback(s->pb, i + 1024 + frame_size + 
> 4)) < 0)
> +                av_log(s, AV_LOG_WARNING, "ffio_ensure_seekback(): %s\n", 
> av_err2str(ret));
>              if (check(s->pb, off + i + frame_size, &header2) >= 0 &&
>                  (header & SAME_HEADER_MASK) == (header2 & SAME_HEADER_MASK))
>              {
> diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
> index 4ec78ef..1cf0548 100644
> --- a/libavformat/rmdec.c
> +++ b/libavformat/rmdec.c
> @@ -576,7 +576,8 @@ static int rm_read_header(AVFormatContext *s)
>              size = avio_rb32(pb);
>              codec_pos = avio_tell(pb);
>  
> -            ffio_ensure_seekback(pb, 4);
> +            if ((ret = ffio_ensure_seekback(pb, 4)) < 0)
> +                av_log(s, AV_LOG_WARNING, "ffio_ensure_seekback(): %s\n", 
> av_err2str(ret));
>              v = avio_rb32(pb);
>              if (v == MKBETAG('M', 'L', 'T', 'I')) {
>                  int number_of_streams = avio_rb16(pb);

So why do you not just add the message to the function itself?

I also question the usefulness of the message. In such cases of OOM
everything goes to hell anyway. No reason to bloat the code with error
printing.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to