[FFmpeg-devel] [PATCH 5/5] libavcodec/jpeg2000dec.c: Remove log2_chroma check in pixel format selection
Michael Niedermayer
michael at niedermayer.cc
Sat Jun 27 02:34:40 EEST 2020
On Mon, Jun 22, 2020 at 12:12:08AM +0530, gautamramk at gmail.com wrote:
> From: Gautam Ramakrishnan <gautamramk at gmail.com>
>
> The log2_chroma_wh is derived from the sample separations of the
> codestream if the file is a j2k codestream. Not sure if sample
> separation is same is subsampling and whether using sample
> separation values from the codestream to determine pixel format.
> ---
> libavcodec/jpeg2000dec.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
> index c8c89803ac..2b9659bf96 100644
> --- a/libavcodec/jpeg2000dec.c
> +++ b/libavcodec/jpeg2000dec.c
> @@ -225,8 +225,6 @@ static int pix_fmt_match(enum AVPixelFormat pix_fmt, int components,
>
> case 1:
> match = match && desc->comp[0].depth >= bpc &&
> - (log2_chroma_wh >> 2 & 3) == 0 &&
> - (log2_chroma_wh & 3) == 0 &&
> (desc->flags & AV_PIX_FMT_FLAG_PAL) == pal8 * AV_PIX_FMT_FLAG_PAL;
> }
> return match;
Heres a better bug report
ffmpeg_g -i afl-testcase/p0_10.j2k -f null -
(the testcase should be the normal reference file before fuzzing, this crashed
before any fuzzing)
[...]
[jpeg2000 @ 0x555559d70880] bpno became invalid
Last message repeated 4 times
Program received signal SIGSEGV, Segmentation fault.
ff_jpeg2000_cleanup (comp=0x555559d76d40, codsty=0x555559d7f98c) at libavcodec/jpeg2000.c:604
604 int nb_code_blocks = prec->nb_codeblocks_height * prec->nb_codeblocks_width;
(gdb) bt
#0 0x0000555557043463 in ff_jpeg2000_cleanup (comp=0x555559d76d40, codsty=0x555559d7f98c) at libavcodec/jpeg2000.c:604
#1 0x0000555557045bc5 in jpeg2000_dec_cleanup (s=s at entry=0x555559d71fc0) at libavcodec/jpeg2000dec.c:2029
#2 0x000055555706263c in jpeg2000_decode_frame (avctx=0x555559d70880, data=0x555559d71880, got_frame=0x7fffffffd5e0, avpkt=<optimized out>) at libavcodec/jpeg2000dec.c:2416
#3 0x0000555556aad261 in decode_simple_internal (frame=<optimized out>, avctx=<optimized out>) at libavcodec/decode.c:342
#4 0x0000555556aad261 in decode_simple_receive_frame (frame=<optimized out>, avctx=<optimized out>) at libavcodec/decode.c:538
#5 0x0000555556aad261 in decode_receive_frame_internal (avctx=avctx at entry=0x555559d70880, frame=0x555559d71880) at libavcodec/decode.c:556
#6 0x0000555556aafa28 in avcodec_send_packet (avctx=avctx at entry=0x555559d70880, avpkt=avpkt at entry=0x7fffffffd6b0) at libavcodec/decode.c:614
#7 0x00005555567c9f23 in try_decode_frame (s=s at entry=0x555559d6e940, st=st at entry=0x555559d6fe00, avpkt=avpkt at entry=0x555559d76940, options=<optimized out>) at libavformat/utils.c:3111
#8 0x00005555567fad2a in avformat_find_stream_info (ic=0x555559d6e940, options=0x555559d70740) at libavformat/utils.c:3954
#9 0x00005555558c6eb9 in open_input_file (o=o at entry=0x7fffffffdcb0, filename=<optimized out>) at fftools/ffmpeg_opt.c:1185
#10 0x00005555558d1ea9 in open_files (l=0x555559d6e718, l=0x555559d6e718, open_file=0x5555558c2410 <open_input_file>, inout=0x555558c178b9 "input") at fftools/ffmpeg_opt.c:3302
#11 0x00005555558d1ea9 in ffmpeg_parse_options (argc=<optimized out>, argv=<optimized out>) at fftools/ffmpeg_opt.c:3342
#12 0x00005555558abcb9 in main (argc=6, argv=0x7fffffffe258) at fftools/ffmpeg.c:4848
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I have often repented speaking, but never of holding my tongue.
-- Xenocrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20200627/9839de33/attachment.sig>
More information about the ffmpeg-devel
mailing list