diff mbox series

[FFmpeg-devel] avformat/yuv4mpegdec: increase header limit

Message ID 20221020160637.1835527-1-chemag@gmail.com
State Accepted
Commit a1a87b7a24532c87844eb21e20b52d898946d17f
Headers show
Series [FFmpeg-devel] avformat/yuv4mpegdec: increase header limit | expand

Checks

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

Commit Message

Chema Gonzalez Oct. 20, 2022, 4:06 p.m. UTC
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(-)

Comments

Paul B Mahol Oct. 21, 2022, 3:29 p.m. UTC | #1
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 mbox series

Patch

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)