1f4cf92cfb
pthread_frame: merge the functionality for normal decoder init and init_thread_copy
...
The current design, where
- proper init is called for the first per-thread context
- first thread's private data is copied into private data for all the
other threads
- a "fixup" function is called for all the other threads to e.g.
allocate dynamically allocated data
is very fragile and hard to follow, so it is abandoned. Instead, the
same init function is used to init each per-thread context. Where
necessary, AVCodecInternal.is_copy can be used to differentiate between
the first thread and the other ones (e.g. for decoding the extradata
just once).
2020-04-10 15:24:54 +02:00
a1a8815220
libavcodec: Reduce the size of some arrays
...
This commit uses smaller types for some static const arrays to reduce
their size in case the entries can be represented in the smaller type.
The biggest savings came from inv_map_table in vp9.c.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2019-06-20 14:47:46 -03:00
951bb7632f
avcodec/aic: Check remaining bits in aic_decode_coeffs()
...
Fixes: Timeout (78 seconds -> 2 seconds)
Fixes: 13186/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AIC_fuzzer-5639516533030912
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-03 13:17:02 +01:00
5710fdaeae
avcodec/aic: fix decoding of videos which height is not multiple of 16
...
Fate output changes and under close inspection looks more correct.
Fixes #6187 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2018-04-02 16:17:18 +02:00
fa3e49568d
avcodec/aic: unbreak decoding of files with slice_width != 16
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-02-24 11:35:02 +01:00
91ed4e7196
avcodec: Mark some codecs with threadsafe init as such
...
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-07 23:31:25 +01:00
8e069eb525
avcodec/aic: add frame threading support
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2016-05-21 18:10:07 +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
4ff0c61ba8
Merge commit '303ec065a90498c29d384b4add2ac626bc38d5eb'
...
* commit '303ec065a90498c29d384b4add2ac626bc38d5eb':
aic: Fix slice size computation for widths multiples of 32 macroblocks
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-30 21:19:22 +02:00
303ec065a9
aic: Fix slice size computation for widths multiples of 32 macroblocks
...
CC: libav-stable@libav.org
2015-06-30 15:34:37 +02:00
98b95e7466
Merge commit 'd8d124eebcf2ec1f6a1936b12a4f00a48f08e85c'
...
* commit 'd8d124eebcf2ec1f6a1936b12a4f00a48f08e85c':
aic: Improve error reporting
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-17 20:53:34 +02:00
d8d124eebc
aic: Improve error reporting
2015-06-17 14:06:35 +01:00
75dbe4c1fa
Merge commit 'e878ec0d47cd6228c367b2f3128b76d7523f7255'
...
* commit 'e878ec0d47cd6228c367b2f3128b76d7523f7255':
aic: Fix decoding files with odd dimensions
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-03-03 20:41:44 +01:00
e878ec0d47
aic: Fix decoding files with odd dimensions
...
Normally the aic decoder finds the proper slice combination (multiple of
some number less than 32) but in case of odd width, it resorts to the
default values, which were actually swapped.
The number of slices is modified to account for such odd width cases.
CC: libav-stable@libav.org
2015-03-03 15:08:15 +00:00
86e7d20ac2
avcodec/aic: Use av_malloc_array
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-01-07 19:46:16 +01:00
d9e2aceb7f
Add missing "const" all over the place.
...
Only "./configure --enable-gpl" on x86 was tested.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de >
2014-08-29 18:57:25 +02:00
581b5f0b9b
Merge commit 'e3fcb14347466095839c2a3c47ebecff02da891e'
...
* commit 'e3fcb14347466095839c2a3c47ebecff02da891e':
dsputil: Split off IDCT bits into their own context
Conflicts:
configure
libavcodec/aic.c
libavcodec/arm/Makefile
libavcodec/arm/dsputil_init_arm.c
libavcodec/arm/dsputil_init_armv6.c
libavcodec/asvdec.c
libavcodec/dnxhdenc.c
libavcodec/dsputil.c
libavcodec/dvdec.c
libavcodec/dxva2_mpeg2.c
libavcodec/intrax8.c
libavcodec/mdec.c
libavcodec/mjpegdec.c
libavcodec/mjpegenc_common.h
libavcodec/mpegvideo.c
libavcodec/ppc/dsputil_altivec.h
libavcodec/ppc/dsputil_ppc.c
libavcodec/ppc/idctdsp.c
libavcodec/x86/Makefile
libavcodec/x86/dsputil_init.c
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/dsputil_x86.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-01 15:22:11 +02:00
e3fcb14347
dsputil: Split off IDCT bits into their own context
2014-06-30 07:58:46 -07:00
0a2004b6d1
avcodec/aic: fix quantization table permutation
...
Fixes Ticket3700
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-06-05 23:21:15 +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
ee77140afa
Merge commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2'
...
* commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2':
cosmetics: Group .name and .long_name together in codec/format declarations
Conflicts:
libavcodec/8svx.c
libavcodec/alac.c
libavcodec/cljr.c
libavcodec/dnxhddec.c
libavcodec/dnxhdenc.c
libavcodec/dpxenc.c
libavcodec/dvdec.c
libavcodec/dvdsubdec.c
libavcodec/dvdsubenc.c
libavcodec/ffv1dec.c
libavcodec/flacdec.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/g726.c
libavcodec/gif.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/h263dec.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopencore-amr.c
libavcodec/libopenjpegdec.c
libavcodec/libopenjpegenc.c
libavcodec/libspeexenc.c
libavcodec/libvo-amrwbenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/ljpegenc.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpeg12dec.c
libavcodec/mpeg4videodec.c
libavcodec/msmpeg4dec.c
libavcodec/pgssubdec.c
libavcodec/pngdec.c
libavcodec/pngenc.c
libavcodec/proresdec_lgpl.c
libavcodec/proresenc_kostya.c
libavcodec/ra144enc.c
libavcodec/rawdec.c
libavcodec/rv10.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tta.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/wavpack.c
libavcodec/xbmenc.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-10-04 12:34:23 +02:00
b2bed9325d
cosmetics: Group .name and .long_name together in codec/format declarations
2013-10-03 23:32:01 +02:00
bfe1445871
avcodec/aic: fix "warning: comparison of unsigned expression < 0 is always false"
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-09-12 17:14:55 +02:00
72abfba884
Merge commit '0f678c0214dccb355ed8955077a2bea46984fbc8'
...
* commit '0f678c0214dccb355ed8955077a2bea46984fbc8':
aic: Validate values read from the bitstream
Conflicts:
libavcodec/aic.c
See: 657875b145
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-09-12 14:33:49 +02:00
0f678c0214
aic: Validate values read from the bitstream
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st >
2013-09-12 10:54:54 +03:00
cced6f4d58
Merge commit 'e6d8acf6a8fba4743eb56eabe72a741d1bbee3cb'
...
* commit 'e6d8acf6a8fba4743eb56eabe72a741d1bbee3cb':
indeo: use a typedef for the mc function pointer
cabac: x86 version of get_cabac_bypass
aic: use chroma scan tables while decoding luma component in progressive mode
Conflicts:
libavcodec/aic.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-07-05 11:41:30 +02:00
410066986f
aic: use chroma scan tables while decoding luma component in progressive mode
...
For some unclear reason Apple decided to use the same scan tables for luma and
chroma in the progressive mode while using different ones for luma in the
interlaced mode.
2013-07-04 12:09:45 +02:00
657875b145
avcodec/aic: Fix vlc value checks
...
Fixes out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-22 21:30:28 +02:00
5bc892cb17
Merge commit '1232a1647ab27e024a3baf4d01d40c8d08d6ced9'
...
* commit '1232a1647ab27e024a3baf4d01d40c8d08d6ced9':
Apple Intermediate Codec decoder
movenc: Don't add base_data_offset in tfhd for PIFF files
Conflicts:
Changelog
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/codec_desc.c
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-05-17 10:38:08 +02:00
1232a1647a
Apple Intermediate Codec decoder
2013-05-17 06:31:05 +02:00