Message ID | 20221020160637.1835527-1-chemag@gmail.com |
---|---|
State | Accepted |
Commit | a1a87b7a24532c87844eb21e20b52d898946d17f |
Headers | show |
Series | [FFmpeg-devel] avformat/yuv4mpegdec: increase header limit | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On 10/20/22, Chema Gonzalez <chemag@gmail.com> wrote: > From: Chema Gonzalez <chemag@fb.com> > > Allows demuxing UHD F1000000000:33333333 fps yuvj420p files > > ffmpeg (at HEAD as of now) is creating this: > > ``` > $ ffmpeg -y -i source.265 /tmp/foo.y4m >& /dev/null > ... > $ xxd /tmp/raw.y4m |less > 00000000: 5955 5634 4d50 4547 3220 5731 3932 3020 YUV4MPEG2 W1920 > 00000010: 4831 3038 3020 4631 3030 3030 3030 3030 H1080 F100000000 > 00000020: 303a 3333 3333 3333 3333 2049 7020 4130 0:33333333 Ip A0 > 00000030: 3a30 2043 3432 306d 7065 6732 2058 5953 :0 C420mpeg2 XYS > 00000040: 4353 533d 3432 304d 5045 4732 2058 434f CSS=420MPEG2 XCO > 00000050: 4c4f 5252 414e 4745 3d4c 494d 4954 4544 LORRANGE=LIMITED > 00000060: 0a46 5241 4d45 0a82 8282 8282 8282 8282 .FRAME.......... > ... > ``` > > Which cannot be parsed by the same ffmpeg decoder: > ``` > $ ffmpeg -i /tmp/foo.y4m /tmp/bar.y4m > ... > [yuv4mpegpipe @ 0x2b69a40] Header too large. > /tmp/foo.y4m: Invalid argument > ``` > > This is kicking the ball (per 0b1ff3265e9bdad3b4b6b97ced2f126cb3599568), > but seems to work. > --- > libavformat/yuv4mpegdec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c > index b24275acc1..c0972af7de 100644 > --- a/libavformat/yuv4mpegdec.c > +++ b/libavformat/yuv4mpegdec.c > @@ -27,7 +27,7 @@ > #include "yuv4mpeg.h" > > /* Header size increased to allow room for optional flags */ > -#define MAX_YUV4_HEADER 96 > +#define MAX_YUV4_HEADER 128 > #define MAX_FRAME_HEADER 80 > > static int yuv4_read_header(AVFormatContext *s) > -- > 2.37.3 > will apply soon. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c index b24275acc1..c0972af7de 100644 --- a/libavformat/yuv4mpegdec.c +++ b/libavformat/yuv4mpegdec.c @@ -27,7 +27,7 @@ #include "yuv4mpeg.h" /* Header size increased to allow room for optional flags */ -#define MAX_YUV4_HEADER 96 +#define MAX_YUV4_HEADER 128 #define MAX_FRAME_HEADER 80 static int yuv4_read_header(AVFormatContext *s)
From: Chema Gonzalez <chemag@fb.com> Allows demuxing UHD F1000000000:33333333 fps yuvj420p files ffmpeg (at HEAD as of now) is creating this: ``` $ ffmpeg -y -i source.265 /tmp/foo.y4m >& /dev/null ... $ xxd /tmp/raw.y4m |less 00000000: 5955 5634 4d50 4547 3220 5731 3932 3020 YUV4MPEG2 W1920 00000010: 4831 3038 3020 4631 3030 3030 3030 3030 H1080 F100000000 00000020: 303a 3333 3333 3333 3333 2049 7020 4130 0:33333333 Ip A0 00000030: 3a30 2043 3432 306d 7065 6732 2058 5953 :0 C420mpeg2 XYS 00000040: 4353 533d 3432 304d 5045 4732 2058 434f CSS=420MPEG2 XCO 00000050: 4c4f 5252 414e 4745 3d4c 494d 4954 4544 LORRANGE=LIMITED 00000060: 0a46 5241 4d45 0a82 8282 8282 8282 8282 .FRAME.......... ... ``` Which cannot be parsed by the same ffmpeg decoder: ``` $ ffmpeg -i /tmp/foo.y4m /tmp/bar.y4m ... [yuv4mpegpipe @ 0x2b69a40] Header too large. /tmp/foo.y4m: Invalid argument ``` This is kicking the ball (per 0b1ff3265e9bdad3b4b6b97ced2f126cb3599568), but seems to work. --- libavformat/yuv4mpegdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)