Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-04-26lavc: Rename hwaccel.h to hwconfig.hMark Thompson
This already applied to decoders as well as hwaccels, and adding encoder support was going to make the name even more inaccurate.
2020-04-10pthread_frame: merge the functionality for normal decoder init and ↵Anton Khirnov
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-10lavc: replace AVCodecInternal.allocate_progress with an internal capAnton Khirnov
This is a constant codec property, so a capability flag is more appropriate.
2020-02-24lavc/hevcdec: add 4:2:2 8-bit/10-bit VAAPI decode supportLinjie Fu
Add decode support for 4:2:2 8-bt and 10-bit HEVC Range Extension clips. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
2020-01-17lavc/h2645_parse: Don't automatically remove nuh_layer_id > 0 packetsAndriy Gelman
HEVC standard supports multi-layer streams (ITU-T H.265 02/2018 Annex F). Each NAL unit belongs to a particular layer defined by nuh_layer_id in the header. Currently, all NAL units that do not belong to a base layer are automatically removed in ff_h2645_packet_split(). Some data may therefore be lost when future filters/decoders are designed to support multi-layer streams. A better approach is to forward nuh_layer_id > 0 packets and let blocks down the chain decide how to process them. The condition to remove packets has been moved to hevcdec and cbs. Found-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
2019-12-21avcodec/hevcdec: keep closed captions in sync between multiple thread contextsJames Almer
Based on h264 code. Reviewed-by: Limin Wang <lance.lmwang@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
2019-12-20avcodec/hevc_sei: switch to AVBufferRef buffer for a53 captionLimin Wang
Signed-off-by: Limin Wang <lance.lmwang@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
2019-09-16avcodec/hevcdec: Fix memleak of a53_captionMichael Niedermayer
Fixes: 15295/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5675655187922944 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16avcodec/hevcdec: repeat character in skipedMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-13avcodec/hevcdec: Check delta_luma_weight_l0/1Michael Niedermayer
Fixes: signed integer overflow: 1 + 2147483647 cannot be represented in type 'int' Fixes: 16041/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5685680656613376 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-07-14avcodec/hevcdec: set the SEI parameters early on the AVCodecContextSteve Lhomme
It's better to do it before the buffers are actually created. At least in VLC we currently don't support changing some parameters dynamically easily so we don't use the information if it comes after the buffer are created. Co-authored-by: James Almer <jamrial@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
2019-05-05avcodec/hevcdec: Declare that VDPAU can handle HEVC 4:4:4 contentManojGuptaBonda
The latest generation video decoder on the Turing chips supports decoding HEVC 4:4:4. This change adds AV_PIX_FMT_VDPAU as a valid format for HEVC 4:4:4 8 bit.
2019-03-27avcodec/hevcdec: Avoid only partly skiping duplicate first slicesMichael Niedermayer
Fixes: NULL pointer dereference and out of array access Fixes: 13871/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5746167087890432 Fixes: 13845/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5650370728034304 This also fixes the return code for explode mode Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-03-21avcodec/hevcdec: decode at most one slice reporting being the first in the ↵James Almer
picture Fixes deadlocks when decoding packets containing more than one of the aforementioned slices when using frame threads. Tested-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
2019-02-16avcodec/nvdec: Add support for decoding HEVC 4:4:4 contentPhilip Langdale
The latest generation video decoder on the Turing chips supports decoding HEVC 4:4:4. Supporting this is relatively straight-forward; we need to account for the different chroma format and pick the right output and sw formats at the right times. There was one bug which was the hard-coded assumption that the first chroma plane would be half-height; I fixed this to use the actual shift value on the plane. We also need to pass the SPS and PPS range extension flags.
2019-01-24h2645_parse: Make ff_h2645_packet_split reference-compatibleAndreas Rheinhardt
This is in preparation for a patch for cbs_h2645. Now the packet's rbsp_buffer can be owned by an AVBuffer. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2018-12-01avcodec/hevcdec: Check for overlapping slicesMichael Niedermayer
Fixes: Timeout Fixes: 10108/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-6222384351674368 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-10lavc/hevcdec: add ONLY_IF_THREADS_ENABLED where it is missing.Jun Zhao
add ONLY_IF_THREADS_ENABLED where it is missing. Signed-off-by: Jun Zhao <mypopydev@gmail.com> Reviewed-by: James Almer <jamrial@gmail.com>
2018-05-27lavc/hevcdec: Treat clean random access nals as keyframes for -skip_frame.Carl Eugen Hoyos
Fixes ticket #7227. Reviewed-by: Mark Thompson
2018-03-03avcodec/hevcdec: Declare that nvdec supports 12bit decodingPhilip Langdale
2018-02-19avcodec/hevcdec: Check luma/chroma_log2_weight_denomMichael Niedermayer
Fixes: signed integer overflow: 3 + 2147483647 cannot be represented in type 'int' Fixes: 5888/clusterfuzz-testcase-minimized-5634701067812864 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-21avcodec/hevcdec: use ff_hevc_uninit_parameter_sets()James Almer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-21libavcodec/hevcdec: implement skip_framesfan5
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-11-30Merge commit '99e9697e3a12ab4a6638a36b95edafd6a98f9eaa'James Almer
* commit '99e9697e3a12ab4a6638a36b95edafd6a98f9eaa': stereo3d: Support view type for frame sequence type Merged-by: James Almer <jamrial@gmail.com>
2017-11-28stereo3d: Support view type for frame sequence typeVittorio Giovara
Implement detection in h264 and hevc and insertion in framepack filter. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-11-27lavc: Add hardware config metadata for decoders supporting hardware outputMark Thompson
This includes a pointer to the associated hwaccel for decoders using hwaccels - these will be used later to implement the hwaccel setup without needing a global list. Also added is a new file listing all hwaccels as external declarations - this will be used later to generate the hwaccel list at configure time.
2017-11-14avcodec/hevc: implement new decode_params callback for VideoToolboxAman Gupta
Signed-off-by: Aman Gupta <aman@tmm1.net>
2017-11-11Merge commit 'b90fdb2c7199cc8b0e8d994fafba1fb4dc181d88'James Almer
* commit 'b90fdb2c7199cc8b0e8d994fafba1fb4dc181d88': hevcdec: add a CUVID hwaccel Adapted for ffmpeg by Timo Rothenpieler. Merged-by: James Almer <jamrial@gmail.com>
2017-11-11Merge commit '00fd914d4912322212e924c15f325cebf2fde8d3'James Almer
* commit '00fd914d4912322212e924c15f325cebf2fde8d3': hevcdec: set the active SPS before calling get_format() Merged-by: James Almer <jamrial@gmail.com>
2017-10-31Merge commit 'c3f0357bdf7d3c542aad2c58b94184b9f56edc41'James Almer
* commit 'c3f0357bdf7d3c542aad2c58b94184b9f56edc41': hevcdec: move the MD5 context out of HEVCSEIPictureHash back into HEVCContext Merged-by: James Almer <jamrial@gmail.com>
2017-09-29avcodec/videotoolbox: add hevc supportAman Gupta
Signed-off-by: Aman Gupta <aman@tmm1.net>
2017-07-28hevcdec: add a CUVID hwaccelAnton Khirnov
2017-07-28hevcdec: set the active SPS before calling get_format()Anton Khirnov
This way the SPS is available to the hwaccel init code.
2017-07-21hevc: Make sure to update the current frame transfer characteristicVittorio Giovara
Otherwise the first decoded frame will still be tagged with the original transfer instead of the alternative one. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-07-21hevc: Make sure to update the current frame transfer characteristicVittorio Giovara
Otherwise the first decoded frame will still be tagged with the original transfer instead of the alternative one. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-07-21avcodec/hevcdec: hevc_await_progress: declare |y| only if used.Wan-Teh Chang
hevc_await_progress() uses the variable |y| only inside the "if" block. So |y| only needs to be declared and initialized in that block. Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-07-05avcodec/hevcdec: do not let updated extradata corrupt stateMichael Niedermayer
Fixes: out of array access Fixes: 2451/clusterfuzz-testcase-minimized-4781613957251072 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-30hevcdec: properly export some side data with frame threadingwm4
I noticed this with mastering display data. If frame threading is enabled, this side data is exported only for some frames. It turns out it's not properly propagated to the worker threads. I didn't touch A53 captions, because that involves memory allocation and freeing the data as side data is exported. Micro bump so that API users can detect the bug fix.
2017-06-28hevc: Add support for alternative transfer characterics SEIVittorio Giovara
The use of this SEI is for backward compatibility in HLG HDR systems: older devices that cannot interpret the "arib-std-b67" transfer will get the compatible transfer (usually bt709 or bt2020) from the VUI, while newer devices that can interpret HDR will read the SEI and use its value instead. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-06-28hevc: Add support for alternative transfer characterics SEIVittorio Giovara
The use of this SEI is for backward compatibility in HLG HDR systems: older devices that cannot interpret the "arib-std-b67" transfer will get the compatible transfer (usually bt709 or bt2020) from the VUI, while newer devices that can interpret HDR will read the SEI and use its value instead. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-06-28avcodec/hevcdec: do basic validity check on delta_chroma_weight and offsetMichael Niedermayer
Fixes: runtime error: signed integer overflow: 2147483520 + 128 cannot be represented in type 'int' Fixes: 2385/clusterfuzz-testcase-minimized-6594333576790016 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-27dxva: add support for new dxva2 and d3d11 hwaccel APIswm4
This also adds support to avconv (which is trivial due to the new hwaccel API being generic enough). The new decoder setup code in dxva2.c is significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Merges Libav commit f9e7a2f95a7194a8736cc1416a03a1a0155a3e9f. Also adds untested VP9 support. The check for DXVA2 COBJs is removed. Just update your MinGW to something newer than a 5 year old release. Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-06-25avcodec/hevcdec: Do not check the first ff_init_cabac_decoder() call in ↵Michael Niedermayer
hls_decode_entry_wpp() for failure The result of the call is not used in any testcase but breaks some cases if its failure is considered. Fixes regression found by jamrial Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-24avcodec/hevcdec: Use error path if init_get_bits8() failsMichael Niedermayer
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-24avcodec/hevcdec: check ff_init_cabac_decoder() for failureMichael Niedermayer
Fixes: runtime error: left shift of 1965559808 by 4 places cannot be represented in type 'int' Fixes: 2333/clusterfuzz-testcase-minimized-5223935677300736 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>
2017-06-21avcodec/hevcdec: Check beta and tc offset in hls_slice_header()Michael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-17avcodec/hevcdec: Fix signed integer overflow in decode_lt_rps()Michael Niedermayer
Fixes: runtime error: signed integer overflow: 2147483647 + 6 cannot be represented in type 'int' Fixes: 2263/clusterfuzz-testcase-minimized-4800359627227136 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-15avcodec/hevcdec: Check nb_spsMichael Niedermayer
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-06-08dxva: add support for new dxva2 and d3d11 hwaccel APIswm4
This also adds support to avconv (which is trivial due to the new hwaccel API being generic enough). The new decoder setup code in dxva2.c is significantly based on work by Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites. Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-05-26avcodec/hevcdec: export cropping information instead of handling it internallyJames Almer
This merges commit a02ae1c6837a54ed9e7735da2b1f789b2f4b6e13 from libav, originally written by Anton Khirnov and skipped in fc63d5ceb357c4b760cb02772de0b50d0557140f. libavcodec/hevc_parser.c | 6 ++++-- libavcodec/hevc_ps.c | 31 ++++++++++++------------------- libavcodec/hevc_ps.h | 2 -- libavcodec/hevc_refs.c | 18 +++++------------- libavcodec/hevcdec.c | 7 ++++--- libavcodec/hevcdec.h | 2 -- 6 files changed, 25 insertions(+), 41 deletions(-) Signed-off-by: James Almer <jamrial@gmail.com>