Commit Graph

46179 Commits

Author SHA1 Message Date
James Almer
a2b090da79 avcodec/libsvtav1: fix compilation with old SVT-AV1 builds
Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-24 16:34:16 -03:00
James Almer
c33b404885 avcodec/libsvtav1: add a svtav1-params option to pass a list of key=value parameters
Signed-off-by: James Almer <jamrial@gmail.com>
2022-02-24 14:57:00 -03:00
Andreas Rheinhardt
636631d9db Remove unnecessary libavutil/(avutil|common|internal).h inclusions
Some of these were made possible by moving several common macros to
libavutil/macros.h.

While just at it, also improve the other headers a bit.

Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-24 12:56:49 +01:00
Andreas Rheinhardt
84f16bb5e6 avutil/avassert: Don't include avutil.h
Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-24 12:56:49 +01:00
Andreas Rheinhardt
155cd6baa4 Remove obsolete version.h inclusions
Forgotten in e7bd47e657.

Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-24 12:56:49 +01:00
Andreas Rheinhardt
321a3c244d avutil/log: Don't include avutil.h
It has been included since af5f434f8c
for deprecation reasons, but removing it has been forgotten after
it had served is purpose. So remove it.

For convenience, include version.h instead as LIBAVUTIL_VERSION_INT
is supposed to be used when creating AVClasses.

Reviewed-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-24 12:56:49 +01:00
Andreas Rheinhardt
b14321e307 avcodec/magicyuvenc: Remove unused context variable
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-23 11:52:28 +01:00
Andreas Rheinhardt
095ccc7b33 avcodec/magicyuvenc: Don't modify input frame
It need not be writable at all. Instead, use temporary buffers
for decorrelation.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-23 11:52:20 +01:00
Andreas Rheinhardt
416d4be626 avcodec/magicyuvenc: Add const where appropriate
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-23 11:52:03 +01:00
Andreas Rheinhardt
f57e522ce2 avcodec/magicyuvenc: Avoid unnecessary av_frame_clone()
It is unnecessary and unchecked; the intention seems to be to ensure
that the frame's data is writable, but it does not provide this.
This will be fixed in a latter commit.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-23 11:51:41 +01:00
Wenbin Chen
9da19c2909 libavcodec/qsvenc_hevc: encode RGB format rawvideo
Add support for hevc_qsv to input RGB format frame. It will
transform frame to yuv inside MediaSDK instead of using auto
scale. Now hevc_qsv supports directly encoding BGRA and X2RGB10
format. The X2RGB10 correspond to the A2RGB20 format and BGRA
correspond to RGB4 format in MediaSDK.

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-02-22 14:48:29 +08:00
Wenbin Chen
b1c26ce9fe libavcodec/qsvdec: use the parameter from decodeHeader to configure surface
MSDK recognizes both yuv420p10 and yuv420p9 as MFX_FOURCC_P010, but
parameters are different. When decode yuv420p9 video, ffmpeg-qsv will use
yuv420p10le to configure surface which is different with param from
DecoderHeader and this will lead to error. Now change it use
param from decoderHeader to configure surface.

Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
2022-02-22 14:48:21 +08:00
Andreas Rheinhardt
58492ce443 avcodec/mips: Fix checkheaders
mips has several headers that are only meant for inclusion in another
non-arch specific file; they do not even try to be standalone. So don't
test them in checkheaders.

Also fix vp9dsp_mips.h, an ordinary header missing some includes.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-21 13:10:10 +01:00
Andreas Rheinhardt
52e9113695 avcodec/aarch64/idct: Add missing stddef
Fixes checkheaders on aarch64.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-21 13:10:04 +01:00
Andreas Rheinhardt
dd2c871aa3 avcodec/cabac_functions: Add missing headers
Fixes make checkheaders on PPC, for which no arch-specific header
exists that indirectly includes attributes.h.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-21 13:09:57 +01:00
Paul B Mahol
b15d3db8b6 avcodec/wavpack: do not process only first non-zero field of int32info chunk
Fixes bitexact decoding with high bit depth samples.
2022-02-20 17:45:50 +01:00
Andreas Rheinhardt
3abb80f65b avcodec/msmpeg4dec: Reindent after the previous commit
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:35:30 +01:00
Andreas Rheinhardt
569a0d0012 avcodec/msmpeg4dec: Make initializing VLCs thread-safe
This automatically makes the remaining mpegvideo-decoders
(namely msmpeg4v[1-3], mss2, VC-1, VC-1 Image, WMV-[1-3]
and WMV-3 Image) init-threadsafe.
These were the last native codecs that were not init-threadsafe;
only wrappers for external libraries and for hardware accelerations
are now not init-threadsafe.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:29:45 +01:00
Andreas Rheinhardt
23b17f96f7 avcodec/avcodec: Decrease the amount of time while holding the lock
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:28:57 +01:00
Andreas Rheinhardt
1e93f42743 avcodec/vorbisdec: Mark decoder as init-threadsafe
It does not modify any static data in its init function.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:28:52 +01:00
Andreas Rheinhardt
8359803957 avcodec/ituh263dec: Reindent after the last commit
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:21:41 +01:00
Andreas Rheinhardt
f326855947 avcodec/ituh263dec: Make initializing VLCs thread-safe
This automatically makes the FLV, H.263, H.263+, Intel H.263,
MPEG-4, RealVideo 1.0 and RealVideo 2.0 decoders init-threadsafe.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:17:18 +01:00
Andreas Rheinhardt
6b39573547 avcodec/alsdec: Mark decoder as init-threadsafe
It does not initialize any static data in its init function.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:16:59 +01:00
Andreas Rheinhardt
3b08e046af avcodec/alsdec, mlz: Check allocation
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:11:06 +01:00
Andreas Rheinhardt
e925d5453b avcodec/alsdec: Improve code locality
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:10:56 +01:00
Andreas Rheinhardt
1fc631c94a avcodec/alsdec: Return directly upon error
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:10:40 +01:00
Andreas Rheinhardt
1070510c59 avcodec/apedec: Mark decoder as init-threadsafe
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:07:48 +01:00
Andreas Rheinhardt
3e0b6f42e3 avcodec/rv40: Make decoder init-threadsafe
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:06:53 +01:00
Andreas Rheinhardt
422e937586 avcodec/rv30: Mark decoder as init-threadsafe
Init-threadsafe since f697622f68.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 20:03:07 +01:00
Andreas Rheinhardt
1ece38668f avcodec/svq3: Mark decoder as init-threadsafe
The only interesting thing done in SVQ3's init function
is using zlib, but this is fine: https://zlib.net/zlib_faq.html#faq21

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-18 19:25:12 +01:00
Jiasheng Jiang
656cb0450a avcodec/vp3: Add missing check for av_malloc
Since the av_malloc() may fail and return NULL pointer,
it is needed that the 's->edge_emu_buffer' should be checked
whether the new allocation is success.

Fixes: d14723861b ("VP3: fix decoding of videos with stride > 2048")
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
2022-02-18 16:54:11 +11:00
Michael Niedermayer
f306b8e80a avcodec/jpeglsdec: Fix if( code style
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-02-15 21:35:41 +01:00
Michael Niedermayer
151f83584e avcodec/jpeglsdec: Check get_ur_golomb_jpegls() for error
Fixes: Timeout
Fixes: Invalid shift
Fixes: 44548/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEGLS_fuzzer-556487680891289
Fixes: 44569/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AMV_fuzzer-6302543246917632
Fixes: 44570/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_THP_fuzzer-4550196556595200
Fixes: 44592/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-5651610385121280
Fixes: 44571/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5094698987945984
Fixes: 44607/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5341352013987840

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2022-02-15 21:35:41 +01:00
Andreas Rheinhardt
538be75a69 avcodec/error_resilience: Remove unused label
Forgotten in be95df12bb.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-15 11:09:47 +01:00
Andreas Rheinhardt
d4b605afab avcodec/avcodec: Remove MpegEncContext forward declaration
Forgotten in be95df12bb.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-15 10:33:39 +01:00
Anton Khirnov
b648ece34b lavc: deprecate FF_IDCT_NONE
It was only used by XvMC.
2022-02-15 10:16:16 +01:00
Anton Khirnov
41d25efade lavc/xvmc.h: mark the header as deprecated 2022-02-15 10:16:16 +01:00
Anton Khirnov
be95df12bb lavc/mpeg*: drop the XvMC hwaccel code
XvMC was last relevant over 10 years ago, if ever. There is no reason to
use it today.
2022-02-15 10:16:15 +01:00
Andreas Schneider
59c647bcf3 avcodec/exif: Don't include tiff.h in exif.h
The exif.h header doesn't use anything from tiff.h. We also just need
to include tiff_common.h in .c files where it actually used.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 11:33:53 +01:00
Andreas Schneider
cf535d6d51 avcodec/exif: Include bytestream.h for GetByteContext
bytestream.h should be directly included for GetByteContext and not
rely on other headers to include it. It could be removed from there.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 11:32:08 +01:00
Andreas Rheinhardt
71547cb7b3 avcodec/pthread_frame: Remove nonsense error message
If a frame-threaded decoder with inter-frame dependencies
returns an error when decoding a frame and the returned frame
isn't clean, an error message is emitted claiming that this
is a bug. This seems to be based upon the thinking that
in this case a ThreadFrame has not been properly unreferenced.
Yet this is wrong, as decoders with inter-frame dependencies
don't use the frame for output for synchronization and therefore
don't use ThreadFrames at all for this. So unreferencing
this frame generically is fine and not a bug.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 10:13:37 +01:00
Andreas Rheinhardt
1b6b110f2f avcodec/vc1: Fix indentation
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 10:13:16 +01:00
Andreas Rheinhardt
c38a8576fe avcodec/8bps: Mark decoder as init-threadsafe
The only unorthodox thing that this codec's init function does
is calling ff_get_format(). Yet this is supposed to be save,
as any get_format callback already has to deal with the scenario
of different AVCodecContext's calling it simultaneously.

Reviewed-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 10:12:31 +01:00
Limin Wang
d15f65c469 avcodec/videotoolbox: add internal.h for header depenedency
Fixes build failures for videotoolbox

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 09:19:27 +01:00
Andreas Rheinhardt
71d3e717fb avcodec/mpegvideo_xvmc: Add missing mpegvideodec.h inclusion
Forgotten in 965cfc6684.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-14 09:16:36 +01:00
Andreas Rheinhardt
66d4c72162 avcodec/mpegpicture: Constify src parameter of ff_update_picture_tables
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-13 19:49:30 +01:00
Andreas Rheinhardt
8b856a9e53 avcodec/motion_est: Constify mv-table parameters where possible
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-13 19:49:29 +01:00
Andreas Rheinhardt
32ce3b7168 avcodec/mpegutils.h: Move DELAYED_PIC_REF macro to h264dec.h
It is only used by the H.264 decoder (as well as the dirac decoder,
which already uses a local copy).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-13 19:49:29 +01:00
Andreas Rheinhardt
629259bdb5 avcodec/mpegpicture: Don't check for DELAYED_PIC_REF
It is not set any more by any user of mpegvideo/mpegpicture.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-13 19:49:29 +01:00
Andreas Rheinhardt
c3e780c39b avcodec/mpegvideo_enc: Remove unused parameter from encode_mb_hq()
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2022-02-13 19:49:29 +01:00