diff mbox

[FFmpeg-devel,1/2] avcodec/mpeg4videodec: Ignore multiple VOL headers

Message ID 20180209212459.30350-1-michael@niedermayer.cc
State Accepted
Commit 63a4bdbf3b732504e54cc2b9ec0886e6242a90bc
Headers show

Commit Message

Michael Niedermayer Feb. 9, 2018, 9:24 p.m. UTC
Fixes: Ticket7005

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/mpeg4videodec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Michael Niedermayer Feb. 11, 2018, 11:06 a.m. UTC | #1
On Fri, Feb 09, 2018 at 10:24:58PM +0100, Michael Niedermayer wrote:
> Fixes: Ticket7005
> 
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/mpeg4videodec.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

applied

[...]
Carl Eugen Hoyos Feb. 11, 2018, 7:01 p.m. UTC | #2
2018-02-09 22:24 GMT+01:00 Michael Niedermayer <michael@niedermayer.cc>:
> Fixes: Ticket7005
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/mpeg4videodec.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> index 756753e2fc..19210d97fe 100644
> --- a/libavcodec/mpeg4videodec.c
> +++ b/libavcodec/mpeg4videodec.c
> @@ -2707,8 +2707,8 @@ int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
>
>          if (startcode >= 0x120 && startcode <= 0x12F) {
>              if (vol) {
> -                av_log(s->avctx, AV_LOG_ERROR, "Multiple VOL headers");
> -                return AVERROR_INVALIDDATA;
> +                av_log(s->avctx, AV_LOG_WARNING, "Ignoring multiple VOL headers\n");
> +                continue;
>              }

Is it expected that the warning is printed as following on decoding
now (context switches between NULL and mpeg4)?

Carl Eugen

$ ffmpeg -i mpeg-4.avi -f null -
ffmpeg version N-90001-gf2318ae Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58. 10.100 / 58. 10.100
  libavformat    58.  9.100 / 58.  9.100
  libavdevice    58.  1.100 / 58.  1.100
  libavfilter     7. 11.101 /  7. 11.101
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
  libpostproc    55.  0.100 / 55.  0.100
[mpeg4 @ 0x3eb2a00] Ignoring multiple VOL headers
    Last message repeated 3 times
Input #0, avi, from '../Samples/tickets/ticket7005/mpeg-4.avi':
  Duration: 00:00:03.08, start: 0.000000, bitrate: 2415 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (XVID / 0x44495658),
yuv420p, 640x480 [SAR 10:11 DAR 40:33], 2431 kb/s, 25 fps, 25 tbr, 25
tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
    Last message repeated 2 times
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf58.9.100
    Stream #0:0: Video: wrapped_avframe, yuv420p, 640x480 [SAR 10:11
DAR 40:33], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.10.100 wrapped_avframe
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
[NULL @ 0x3eb2a00] Ignoring multiple VOL headers
[mpeg4 @ 0x3ec63c0] Ignoring multiple VOL headers
frame=   77 fps=0.0 q=-0.0 Lsize=N/A time=00:00:03.08 bitrate=N/A speed= 164x
video:40kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
Michael Niedermayer Feb. 11, 2018, 10:59 p.m. UTC | #3
On Sun, Feb 11, 2018 at 08:01:36PM +0100, Carl Eugen Hoyos wrote:
> 2018-02-09 22:24 GMT+01:00 Michael Niedermayer <michael@niedermayer.cc>:
> > Fixes: Ticket7005
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> >  libavcodec/mpeg4videodec.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> > index 756753e2fc..19210d97fe 100644
> > --- a/libavcodec/mpeg4videodec.c
> > +++ b/libavcodec/mpeg4videodec.c
> > @@ -2707,8 +2707,8 @@ int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
> >
> >          if (startcode >= 0x120 && startcode <= 0x12F) {
> >              if (vol) {
> > -                av_log(s->avctx, AV_LOG_ERROR, "Multiple VOL headers");
> > -                return AVERROR_INVALIDDATA;
> > +                av_log(s->avctx, AV_LOG_WARNING, "Ignoring multiple VOL headers\n");
> > +                continue;
> >              }
> 
> Is it expected that the warning is printed as following on decoding
> now (context switches between NULL and mpeg4)?

It doesnt really switch, i guess the NULL is from the AVParser which does not 
have a codec setup and the context_to_name() uses the codec.
That is this looks like a unrelated issue of the Parser in general not printing 
a proper name

[...]
Carl Eugen Hoyos Feb. 12, 2018, 2:03 p.m. UTC | #4
2018-02-11 23:59 GMT+01:00 Michael Niedermayer <michael@niedermayer.cc>:
> On Sun, Feb 11, 2018 at 08:01:36PM +0100, Carl Eugen Hoyos wrote:
>> 2018-02-09 22:24 GMT+01:00 Michael Niedermayer <michael@niedermayer.cc>:
>> > Fixes: Ticket7005
>> >
>> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>> > ---
>> >  libavcodec/mpeg4videodec.c | 4 ++--
>> >  1 file changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
>> > index 756753e2fc..19210d97fe 100644
>> > --- a/libavcodec/mpeg4videodec.c
>> > +++ b/libavcodec/mpeg4videodec.c
>> > @@ -2707,8 +2707,8 @@ int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
>> >
>> >          if (startcode >= 0x120 && startcode <= 0x12F) {
>> >              if (vol) {
>> > -                av_log(s->avctx, AV_LOG_ERROR, "Multiple VOL headers");
>> > -                return AVERROR_INVALIDDATA;
>> > +                av_log(s->avctx, AV_LOG_WARNING, "Ignoring multiple VOL headers\n");
>> > +                continue;
>> >              }
>>
>> Is it expected that the warning is printed as following on decoding
>> now (context switches between NULL and mpeg4)?
>
> It doesnt really switch, i guess the NULL is from the AVParser which does not
> have a codec setup and the context_to_name() uses the codec.

Thank you, Carl Eugen
diff mbox

Patch

diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 756753e2fc..19210d97fe 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -2707,8 +2707,8 @@  int ff_mpeg4_decode_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb)
 
         if (startcode >= 0x120 && startcode <= 0x12F) {
             if (vol) {
-                av_log(s->avctx, AV_LOG_ERROR, "Multiple VOL headers");
-                return AVERROR_INVALIDDATA;
+                av_log(s->avctx, AV_LOG_WARNING, "Ignoring multiple VOL headers\n");
+                continue;
             }
             vol++;
             if ((ret = decode_vol_header(ctx, gb)) < 0)