Michael Niedermayer
864d1ef2fc
avcodec/jpeglsdec: force pal8 only once
...
Fixes: Infinite loop
Fixes: 33958/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_THP_fuzzer-6590264069193728
Fixes: 33981/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEGLS_fuzzer-5343224173559808
Fixes: 33986/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-6598815122587648
Fixes: 34001/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SMVJPEG_fuzzer-6171098111672320
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-06-02 22:35:36 +02:00
Michael Niedermayer
011006874c
avcodec/jpeglsdec: Set alpha plane in PAL8 so image is not 100% transparent
...
Fixes: tickets/3933/128.jls
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-05-03 21:34:22 +02:00
Michael Niedermayer
7f6ada4eea
avcodec/mjpegdec: Decode to PAL8 independant of the location of LSE
...
This simply performs a 2nd pass if a LSE is encountered with GRAY8
Fixes: tickets/3933/128.jls
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-05-03 21:34:22 +02:00
Michael Niedermayer
9fd06a3639
Revert "avcodec/mjpegdec: postpone calling ff_get_buffer() until the SOS marker"
...
This also temporary disables fate-jpegls which is re-enabled in the next commit
This reverts commit c8197f73e684b0edc450f3dc2b2b4b3fb9dedd0d.
2021-05-03 21:34:22 +02:00
Andreas Rheinhardt
a247ac640d
avcodec: Constify AVCodecs
...
Given that the AVCodec.next pointer has now been removed, most of the
AVCodecs are not modified at all any more and can therefore be made
const (as this patch does); the only exceptions are the very few codecs
for external libraries that have a init_static_data callback.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-27 10:43:15 -03:00
James Almer
c8197f73e6
avcodec/mjpegdec: postpone calling ff_get_buffer() until the SOS marker
...
With JPEG-LS PAL8 samples, the JPEG-LS extension parameters signaled with
the LSE marker show up after SOF but before SOS. For those, the pixel format
chosen by get_format() in SOF is GRAY8, and then replaced by PAL8 in LSE.
This has not been an issue given both pixel formats allocate the second data
plane for the palette, but after the upcoming soname bump, GRAY8 will no longer
do that. This will result in segfauls when ff_jpegls_decode_lse() attempts to
write the palette on a buffer originally allocated as a GRAY8 one.
Work around this by calling ff_get_buffer() after the actual pixel format is
known.
Signed-off-by: James Almer <jamrial@gmail.com>
2021-04-25 10:57:29 -03:00
Andreas Rheinhardt
718e03e5f2
avcodec/jpeglsdec: Don't presume the context to contain a JLSState
...
Before 9b3c46a081a9f01559082bf7a154fc6be1e06c18 every call to
ff_jpegls_decode_picture() allocated and freed a JLSState. This commit
instead put said structure into the context of the JPEG-LS decoder to
avoid said allocation. But said function can also be called from other
MJPEG-based decoders and their contexts doesn't contain said structure,
leading to segfaults. This commit fixes this: The JLSState is now
allocated on the first call to ff_jpegls_decode_picture() and stored in
the context.
Found-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-20 21:19:29 +02:00
Andreas Rheinhardt
9b3c46a081
avcodec/jpeglsdec: Don't allocate+free JPEGLSState for every frame
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-18 04:32:15 +02:00
Michael Niedermayer
980900d991
avcodec/jpeglsdec: Fix k=16 in ls_get_code_regular()
...
Fixes: Timeout
Fixes: left shift of 33046 by 16 places cannot be represented in type 'int'
Fixes: 29258/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-4889231489105920
Fixes: 29515/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-6161940391002112
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2021-02-10 12:28:29 +01:00
Anton Khirnov
e9a2a87773
mjpegdec: convert to receive_frame()
...
This will be useful in the following commit.
2020-12-10 10:03:58 +01:00
Andreas Rheinhardt
f3e645a796
avcodec/mjpegdec: Fix memleak upon init failure
...
This affected all decoders that used ff_mjpeg_decode_init() as init
function; and it also affected decoders that open jpeg decoders via
ff_codec_open2_recursive() as well as MxPEG.
Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2020-12-04 15:46:46 +01:00
Michael Niedermayer
675c6d1e17
avcodec/jpeglsdec: Apply transform only to initialized lines
...
Fixes: Timeout (110sec -> 1sec)
Fixes: 17123/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AMV_fuzzer-5636452758585344
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-08 16:24:58 +02:00
Michael Niedermayer
fe7fbf3a22
avcodec/jpeglsdec: Return error codes from ls_decode_line()
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-10-08 16:24:58 +02:00
Michael Niedermayer
f80224ed19
avcodec/jpeglsdec: Check for end of bitstream in ls_decode_line()
...
Fixes: 1773/clusterfuzz-testcase-minimized-4832523987189760
Fixes: Timeout
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-29 18:28:40 +01:00
Michael Niedermayer
fe533628b9
avcodec/jpeglsdec: Check ilv for being a supported value
...
Fixes: 1773/clusterfuzz-testcase-minimized-4832523987189760
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-10-29 18:28:40 +01:00
Michael Niedermayer
4bc3008d04
avcodec/jpeglsdec: Check get_bits_left() before decoding a picture
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-05-24 15:51:11 +02:00
Michael Niedermayer
e98dfeb27c
avcodec/jpeglsdec: check shift for values that cause overflow later
...
Fixes: 657/clusterfuzz-testcase-6674741433729024
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-02-24 00:38:45 +01:00
Michael Niedermayer
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:50:18 +02:00
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
513673a84d
Merge commit '7ca603f96f93d988e01d161d611f69a4ecaa3f02'
...
* commit '7ca603f96f93d988e01d161d611f69a4ecaa3f02':
jpegls: Check memory allocation
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 01:58:44 +02:00
Vittorio Giovara
7ca603f96f
jpegls: Check memory allocation
2015-05-31 15:03:31 +02:00
Michael Niedermayer
6d3f17838d
avcodec/jpeglsdec: assert that overflows end at exactly x=w
...
If that ever was untrue, there would be a bug in the code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 15:48:17 +02:00
Michael Niedermayer
8f7b022c8c
Merge commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25'
...
* commit '6a85dfc830f51f1f5c2d36d4182d265c1ea3ba25':
lavc: Replace av_dlog and tprintf with internal macros
Conflicts:
libavcodec/aacdec.c
libavcodec/audio_frame_queue.c
libavcodec/bitstream.c
libavcodec/dcadec.c
libavcodec/dnxhddec.c
libavcodec/dvbsubdec.c
libavcodec/dvdec.c
libavcodec/dvdsubdec.c
libavcodec/get_bits.h
libavcodec/gifdec.c
libavcodec/h264.h
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
libavcodec/h264_loopfilter.c
libavcodec/h264_refs.c
libavcodec/imc.c
libavcodec/interplayvideo.c
libavcodec/jpeglsdec.c
libavcodec/libopencore-amr.c
libavcodec/mjpegdec.c
libavcodec/mpeg12dec.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_parser.c
libavcodec/pngdec.c
libavcodec/ratecontrol.c
libavcodec/rv10.c
libavcodec/svq1dec.c
libavcodec/vqavideo.c
libavcodec/wmadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-20 04:10:10 +02:00
Vittorio Giovara
6a85dfc830
lavc: Replace av_dlog and tprintf with internal macros
2015-04-19 12:41:59 +01:00
Michael Niedermayer
a089d567f1
avcodec/jpeglsdec: support PAL1-PAL7
...
Fixes Ticket3933
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-22 20:31:03 +01:00
Michael Niedermayer
fa4bb7c5b2
Merge commit '5a0e953c2465be9d449d5f523c3d3e2b886910b2'
...
* commit '5a0e953c2465be9d449d5f523c3d3e2b886910b2':
mjpeg: Mark decoder family as thread safe
Conflicts:
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mxpegdec.c
libavcodec/sp5xdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-13 22:48:54 +01:00
Vittorio Giovara
5a0e953c24
mjpeg: Mark decoder family as thread safe
...
No global variables are used and the VLC tables are allocated without
static elements. This will allow using a JPEG decoding context within
other decoders.
2015-03-13 19:48:07 +00:00
Michael Niedermayer
06e7d58410
avcodec/jpeglsdec: Check run value more completely in ls_decode_line()
...
previously it could have been by 1 too large
Fixes out of array access
Fixes: asan_heap-oob_12240f5_1_asan_heap-oob_12240f5_448_t8c1e3.jls
Fixes: asan_heap-oob_12240f5_1_asan_heap-oob_12240f5_448_t8nde0.jls
Fixes: asan_heap-oob_12240fa_1_asan_heap-oob_12240fa_448_t16e3.jls
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-03 02:18:08 +02:00
Michael Niedermayer
0a5cc20d4a
avcodec/jpeglsdec: add cast to silence pointer type warning
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-03 22:54:01 +02:00
Michael Niedermayer
88ceede1fd
avcodec/jpegls: print coding parameters stored in LSE
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-11 23:39:09 +02:00
Michael Niedermayer
2773ab36cc
avcodec/jpeglsdec/ff_jpegls_decode_lse: check len field validity
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:12:44 +02:00
Michael Niedermayer
020600eed1
avcodec/jpeglsdec: ask for sample for "oversized image"
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-09 23:12:44 +02:00
Michael Niedermayer
fd2bcfc4d6
avcodec/jpeglsdec: fix palette parsing code
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 03:26:27 +02:00
Michael Niedermayer
254f653b24
avcodec/jpeglsdec: add PAL8 support
...
Fixes Ticket3478
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 13:43:44 +02:00
anatoly
2fade10cb0
Add support for picture_ptr field in MJpegDecodeContext
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
(cherry picked from commit e0e3b8b297bae5144f23fd4b46a1309857040b63)
Conflicts:
libavcodec/jpeglsdec.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-09 12:24:50 +01:00
Michael Niedermayer
cc0e47b550
avcodec/jpeglsdec: check err value for ls_get_code_runterm()
...
Fixes infinite loop
Fixes Ticket3086
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-30 23:32:51 +01:00
Michael Niedermayer
8aea97a49d
avcodec/jpeglsdec: Implement the 4th (lossy) transform
...
Fixes remainder of Ticket893
Std deviation from the intended image is 0.11, max sample error +-1
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-12 17:52:03 +02:00
Michael Niedermayer
8024b4880c
avcodec/jpeglsdec: support xfrm 1-3
...
Fixes 75% of Ticket893
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-11 16:10:18 +02:00
Michael Niedermayer
0718f0cc24
Merge commit 'bc8c1cdc7bfe7b1fe56df812aabdac3de2555cec'
...
* commit 'bc8c1cdc7bfe7b1fe56df812aabdac3de2555cec':
lavfi doxy: add a page for lavfi.
jpegls: check the scan offset
Conflicts:
libavcodec/jpeglsdec.c
libavfilter/avfilter.h
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-18 11:04:11 +02:00
Michael Niedermayer
7d84bb2bcc
Merge commit '4a4107b48944397c914aa39ee16a82fe44db8c4c'
...
* commit '4a4107b48944397c914aa39ee16a82fe44db8c4c':
jpegls: factorize return paths
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-18 10:22:39 +02:00
Michael Niedermayer
b53d6a47c5
Merge commit 'a5a0ef5e13a59ff53318a45d77c5624b23229c6f'
...
* commit 'a5a0ef5e13a59ff53318a45d77c5624b23229c6f':
jpegls: return meaningful errors
sparc: VIS mnemonics
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-18 10:05:00 +02:00
Luca Barbato
4a4107b489
jpegls: factorize return paths
2013-05-17 16:44:13 +02:00
Luca Barbato
a5a0ef5e13
jpegls: return meaningful errors
2013-05-17 16:44:13 +02:00
Luca Barbato
abad374909
jpegls: check the scan offset
...
Prevent an out of array bound write.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-05-17 16:44:13 +02:00
Michael Niedermayer
39354d6089
Merge commit 'ff4fc5ef12a37716c5c5d8928a2db92428e916ec'
...
* commit 'ff4fc5ef12a37716c5c5d8928a2db92428e916ec':
jpegls: K&R formatting cosmetics
Conflicts:
libavcodec/jpegls.c
libavcodec/jpegls.h
libavcodec/jpeglsdec.c
libavcodec/jpeglsenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-16 09:46:19 +02:00
Michael Niedermayer
0d83b5722e
Merge commit '9cacdabd1c8cd257a942d8289349c37d992989b7'
...
* commit '9cacdabd1c8cd257a942d8289349c37d992989b7':
jpegls: cosmetics: Drop some unnecessary parentheses
mpegvideo: Remove commented-out PARANOID debug cruft
Conflicts:
libavcodec/jpegls.c
libavcodec/mpegvideo.c
libavcodec/x86/mpegvideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-16 09:19:11 +02:00
Luca Barbato
ff4fc5ef12
jpegls: K&R formatting cosmetics
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-05-16 00:00:41 +02:00
Diego Biurrun
9cacdabd1c
jpegls: cosmetics: Drop some unnecessary parentheses
2013-05-15 23:58:04 +02:00
Michael Niedermayer
4acfe3d193
jpegls: fix off limit
...
Fixes part of CID717913
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-13 03:54:04 +02:00
Michael Niedermayer
c39916bc2f
jpeglsdec: move pict debug log under correct if()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-01 16:45:59 +02:00