02220b88fc
avcodec/thread: Don't use ThreadFrame when unnecessary
...
The majority of frame-threaded decoders (mainly the intra-only)
need exactly one part of ThreadFrame: The AVFrame. They don't
need the owners nor the progress, yet they had to use it because
ff_thread_(get|release)_buffer() requires it.
This commit changes this and makes these functions work with ordinary
AVFrames; the decoders that need the extra fields for progress
use ff_thread_(get|release)_ext_buffer() which work exactly
as ff_thread_(get|release)_buffer() used to do.
This also avoids some unnecessary allocations of progress AVBuffers,
namely for H.264 and HEVC film grain frames: These frames are not
used for synchronization and therefore don't need a ThreadFrame.
Also move the ThreadFrame structure as well as ff_thread_ref_frame()
to threadframe.h, the header for frame-threaded decoders with
inter-frame dependencies.
Reviewed-by: Anton Khirnov <anton@khirnov.net >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-02-09 17:22:35 +01:00
27f22f3383
all: Remove unnecessary libavcodec/internal.h inclusions
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2022-02-08 06:16:26 +01:00
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
f01d522cf3
avcodec/dxtory: Fix undefined shift with negative linesize
...
Fixes: left shift of negative value -128
Fixes: 30746/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-5906271469436928
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-02-28 20:11:03 +01:00
3291d994b7
avcodec/dxtory: Fix negative stride shift in dx2_decode_slice_420()
...
Fixes: left shift of negative value -640
Fixes: 26044/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-5631057602543616
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-10-04 16:54:11 +02:00
abebd87764
avcodec/dxtory: Fix negative shift in dx2_decode_slice_410()
...
Fixes: left shift of negative value -768
Fixes: 25574/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-6012596027916288
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-09-26 19:32:42 +02:00
c3d1c7f903
avcodec/dxtory: Fix negative shift in dxtory_decode_v1_410()
...
Fixes: left shift of negative value -256
Fixes: 25460/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-5073252341514240
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-09-26 19:32:42 +02:00
497debb171
avcodec/dxtory: Fix get_raw_size() for YUV
...
Fixes: out of array read
Fixes: 25455/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-6327985731534848
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-09-26 19:32:42 +02:00
1d1411822a
avcodec/dxtory: add frame threads support
2020-09-05 10:32:30 +02:00
a198b508e3
avcodec/dxtory: add missed rgb555/rgb565 formats for vflip case
2020-09-05 10:32:30 +02:00
4562d8e8d6
avcodec/dxtory: support subsampled formats with non-aligned size
...
Also unbreak decoding after 6e1a167c55
2020-09-05 10:32:30 +02:00
2d16b6bd3e
avcodec/dxtory: add support for vertically flipped frames
2020-09-03 18:03:27 +02:00
9570322a2d
avcodec/dxtory: Check slice_size against minimum in dxtory_decode_v2()
...
Fixes: Timeout (33sec -> 16 milli sec)
Fixes: 14181/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-5681840708386816
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-04-24 17:05:02 +02:00
d92034a06a
avcodec/dxtory: Check slice sizes before allocating image
...
Fixes: Timeout (26sec -> 2sec)
Fixes: 13612/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXTORY_fuzzer-5676845977042944
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-03-25 13:20:29 +01:00
3748746a4d
avcodec/dxtory: Remove code that corrupts dimensions
...
Fixes: Timeout
Fixes: 5796/clusterfuzz-testcase-minimized-5206729085157376
Does someone have a valid sample that triggers this path ?
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-02-20 15:27:51 +01:00
6e1a167c55
avcodec/dxtory: Fix bits left checks
...
Fixes: Timeout
Fixes: 4863/clusterfuzz-testcase-6347354178322432
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-01-23 21:48:31 +01:00
349a26f509
Merge commit '7a2b2b6a92c4b528ecb640790eca0aa790d858f4'
...
* commit '7a2b2b6a92c4b528ecb640790eca0aa790d858f4':
dxtory: Drop nonsense ISO C printf conversion specifiers for standard types
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-27 22:05:50 +02:00
7a2b2b6a92
dxtory: Drop nonsense ISO C printf conversion specifiers for standard types
2016-10-28 13:24:55 +02:00
ae753dbd0d
Merge commit 'b668662939de3a02454cfc9ba3e6d10b87527a40'
...
* commit 'b668662939de3a02454cfc9ba3e6d10b87527a40':
get_bits: Move BITSTREAM_READER_LE definition before all relevant #includes
The merge commit also includes changes for libavcodec/interplayacm.c and
libavcodec/truemotion2rt.c
Merged-by: Clément Bœsch <clement@stupeflix.com >
2016-06-29 11:35:10 +02:00
b668662939
get_bits: Move BITSTREAM_READER_LE definition before all relevant #includes
...
This avoids the danger that get_bits.h might get indirectly #included before
BITSTREAM_READER_LE is defined.
Also sort headers into canonical order where appropriate.
2016-06-07 13:09:57 +02:00
bd016dbf23
Mark tables used only within their files as static
2016-03-30 17:19:13 +02:00
76b6f4b7d9
avcodec/dxtory: Fix input size check in dxtory_decode_v1_410()
...
Fixes potential out of array read
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-11-15 00:32:19 +01:00
9caa9414cc
avcodec/dxtory: Fix input size check in dxtory_decode_v1_420()
...
Fixes out of array read
Fixes: c50c4aa6cefda71b19a31ea12302980c/asan_heap-oob_12be5fd_7011_33ebd015a74976215934add72b9c8352.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-11-15 00:26:01 +01:00
72773203a6
Merge commit 'd0f7e4a57fbffa0efb204d4274c3dd56fbfff946'
...
* commit 'd0f7e4a57fbffa0efb204d4274c3dd56fbfff946':
dxtory: Unify and rework the decoding routines
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com >
2015-09-08 14:34:09 +02:00
aa15e233c4
Merge commit 'a7e6fbd90e62d3320b1e26d8209fc0f55ee5b0be'
...
* commit 'a7e6fbd90e62d3320b1e26d8209fc0f55ee5b0be':
dxtory: Factorize the buffer loading
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com >
2015-09-08 14:27:05 +02:00
696634c5fa
Merge commit '6a6bc43f5f79587b8936334cc0b3a6616f4807ac'
...
* commit '6a6bc43f5f79587b8936334cc0b3a6616f4807ac':
dxtory: Factorize slice size checks
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com >
2015-09-08 14:23:53 +02:00
d0f7e4a57f
dxtory: Unify and rework the decoding routines
...
Do not make many assumption on the dimension of the slices and just
try to decode additional lines if there is enough data left.
Decodes all the samples kindly provided by ultramage.
2015-09-06 14:16:38 +02:00
a7e6fbd90e
dxtory: Factorize the buffer loading
...
And the checks nearby it.
2015-09-04 01:42:55 +02:00
6a6bc43f5f
dxtory: Factorize slice size checks
...
They are always the same.
2015-09-04 01:42:55 +02:00
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
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
088dfd3ff1
avcodec/dxtory: use init_get_bits8()
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2015-02-14 19:45:23 +00:00
b4ad2853c5
avcodec/dxtory: Use LL instead of L number suffix
...
This is probably unneeded and normal int would be fine, but its
safer to use LL and this isnt speed relevant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-02-01 20:00:10 +01:00
47f1596ece
avcodec/dxtory: use unaligned copy for unaligned addresses
...
Fixes undefined behavior
Fixes: asan_heap-oob_112c6b3_13_012.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-10-30 19:43:03 +01:00
ee2e5acdb1
avcodec/dxtory: remove unused variables
...
Found-by: Benoit Fouet <benoit.fouet@free.fr >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-09-26 12:51:40 +02:00
a43bcaafe2
avcodec/dxtory: Support dxtory-2.0.127.avi
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-09-25 23:46:56 +02:00
8d024c5107
Merge commit 'cc8163e1a3601a56f722a4720516e860bf1c6198'
...
* commit 'cc8163e1a3601a56f722a4720516e860bf1c6198':
avcodec: more correct printf specifiers
Conflicts:
libavcodec/4xm.c
libavcodec/alsdec.c
libavcodec/dfa.c
libavcodec/h264_ps.c
libavcodec/jpeg2000dec.c
libavcodec/lagarith.c
libavcodec/mpeg12dec.c
libavcodec/rv10.c
libavcodec/svq3.c
libavcodec/wmaprodec.c
libavcodec/xwddec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-03-22 18:43:40 +01:00
cc8163e1a3
avcodec: more correct printf specifiers
2014-03-22 14:08:20 +01:00
a392bf6570
avcodec/dxtory: fix src size checks
...
Fixes integer overflow
Fixes out of array read
Fixes: d104661bb59b202df7671fb19a00ca6c-asan_heap-oob_d6429d_5066_cov_1729501105_dxtory_mic.avi
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-02-16 21:13:02 +01:00
4b84a69ebb
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
dxtory: compressed RGB555/RGB565 decoding support
Conflicts:
libavcodec/dxtory.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-25 01:39:19 +01:00
2d0d1f7eb3
Merge commit '0e1ad2f591b87e944550c15b54e54f8189743289'
...
* commit '0e1ad2f591b87e944550c15b54e54f8189743289':
dxtory: add more compressed and uncompressed modes
Conflicts:
libavcodec/dxtory.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-25 01:33:42 +01:00
28e1eed3c2
dxtory: compressed RGB555/RGB565 decoding support
2014-01-24 20:09:51 +01:00
0e1ad2f591
dxtory: add more compressed and uncompressed modes
2014-01-24 20:09:44 +01:00
a298f934ec
Merge commit '025fd76e1a2623c858d8c686a73cc30980a314b0'
...
* commit '025fd76e1a2623c858d8c686a73cc30980a314b0':
dxtory: change error code for unexpected slice configuration
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-21 21:17:16 +01:00
9eb954b91d
Merge commit 'e91a3f1bdba9b4945e42c191d2e35e9844625fb4'
...
* commit 'e91a3f1bdba9b4945e42c191d2e35e9844625fb4':
dxtory: correctly handle YUV slices with average odd height
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-21 21:01:36 +01:00
025fd76e1a
dxtory: change error code for unexpected slice configuration
2014-01-21 17:47:50 +01:00
e91a3f1bdb
dxtory: correctly handle YUV slices with average odd height
2014-01-21 17:47:50 +01:00
d814a839ac
Reinstate proper FFmpeg license for all files.
2013-08-30 15:47:38 +00:00
b984c727f5
avcodec/dxtory: make def_lru[8] static
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-08-02 23:11:31 +02:00
3b03d7e251
dxtory v2 support
2013-05-28 13:35:09 +02:00