summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* cbs: Refcount all the things!Mark Thompson2018-02-20
| | | | | | | | This makes it easier for users of the CBS API to get alloc/free right - all subelements use the buffer API so that it's clear how to free them. It also allows eliding some redundant copies: the packet -> fragment copy disappears after this change if the input packet is refcounted, and more codec-specific cases are now possible (but not included in this patch).
* cbs_h264: Add hack for pic_timing with no active SPSMark Thompson2018-02-20
| | | | | If there is exactly one possible SPS but it is not yet active then just assume that it should be the active one.
* cbs_h2645: Remove active ps references when it is replacedMark Thompson2018-02-20
|
* cbs: Demote the "decomposition unimplemented" warningMark Thompson2018-02-20
| | | | | | This is harmless and should not be a warning - unknown units are passed through to the write functions unchanged, and no other code will interact with them.
* vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalidMark Thompson2018-02-20
| | | | | The iHD driver looks at entries beyond num_ref_idx_l[01]_active_minus1 for unknown reasons.
* vaapi_encode: Destroy output buffer pool before VA contextMark Thompson2018-02-20
| | | | | The buffers are created associated with the context, so they should be destroyed before the context is. This is enforced by the iHD driver.
* vaapi_encode: Allocate slice structures and parameter buffers dynamicallyJun Zhao2018-02-20
| | | | | | | | | This removes the arbitrary limit on the allowed number of slices and parameter buffers. From ffmpeg commit e4a6eb70f471eda36592078e8fa1bad87fc9df73. Signed-off-by: Mark Thompson <sw@jkqxz.net>
* cbs: Minor comment fixes / cosmeticsMark Thompson2018-02-20
|
* cbs: Add an explicit type for coded bitstream unit typesMark Thompson2018-02-20
| | | | Also fix conversion specifiers used for the unit type.
* cbs: Allocate the context inside the init functionMark Thompson2018-02-20
| | | | | ... instead of making callers allocate it themselves. This is more consistent with other APIs in libav.
* build: Ignore generated mpeg12framerate test binaryDiego Biurrun2018-02-12
|
* avcodec/vc1dec: fix mby_start for interlaced contentMichael Niedermayer2018-02-11
| | | | | | Bug-Id: 1100 Bug-Id: ffmpeg/Ticket2531 Cc: libav-stable@libav.org
* lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWNRuiling Song2018-02-12
| | | | | | | | MFX_LOOKAHEAD_DS_UNKNOWN means auto. -1 is not a valid value. Signed-off-by: Ruiling Song <ruiling.song@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* qsvenc: AVBR is not supported on non-windows OSZhong Li2018-02-12
| | | | | | | AVBR is supported from API 1.3 but only available for Windows Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* lavc: Add per-thread surfaces in get_hw_frame_parameters()Mark Thompson2018-02-11
| | | | | | | | This number is definitely required when frame threading is enabled, so add it here rather than forcing all users to handle it themselves. DXVA2 contained this addition in specific code as well (therefore being added twice in the internal case) - just remove it from there.
* lavc: Add support for increasing hardware frame pool sizesMark Thompson2018-02-11
| | | | | | | | | | AVCodecContext.extra_hw_frames is added to the size of hardware frame pools created by libavcodec for APIs which require fixed-size pools. This allows the user to keep references to a greater number of frames after decode, which may be necessary for some use-cases. It is also added to the initial_pool_size value returned by avcodec_get_hw_frames_parameters() if a fixed-size pool is required.
* Drop some unnecessary config.h #includesDiego Biurrun2018-02-06
|
* avpacket: Initialize the allocated padding area in side dataMartin Storsjö2018-02-01
| | | | | | | | This makes sure that consumers of the side data actually can rely on the padding as intended, without having the callers of av_packet_new_side_data to explicitly zero initialize it. Signed-off-by: Martin Storsjö <martin@martin.st>
* vc1: skip motion compensation when data for last picture is invalidSean McGovern2018-01-30
| | | | | Bug-Id: 1101 Cc: libav-stable@libav.org
* qsvdec: Relax the surface vs coded dimension checkZhong Li2018-01-26
| | | | | | | | | | | | | | | Fix a common vp8 decoding failure. Many vp8 clips cannot decode if hw_frames_ctx is enabled, reporting "Error during QSV decoding.: incompatible video parameters (-14)". It is due to mfx.FrameInfo.Width/Height not matching coded_w/coded_h. See: avconv -hwaccel qsv -init_hw_device qsv -c:v vp8_qsv -i vp8-test-vectors-r1/vp80-00-comprehensive-001.ivf -vf "hwdownload,format=nv12" -pix_fmt yuv420p -f md5 - Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* qsv: Skip the packet if decoding failureRuiling, Song2018-01-25
| | | | | | | | | MediaSDK may fail to decode some frame, just skip it. Otherwise, it will keep decoding the failure packet repeatedly without processing any packet afterwards. Signed-off-by: Ruiling Song <ruiling.song@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* qsv: better to use alignment by 16 and HEVC 10b requires alignment by 32Maxym Dmytrychenko2018-01-08
|
* Add support for H.264 and HEVC hardware encoding for AMD GPUs based on AMF SDKMichael Wootton2018-01-04
| | | | | | | Requires AMF headers for at least version 1.4.4.1. Signed-off-by: Mikhail Mironov <mikhail.mironov@amd.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* x264: Support version 153Luca Barbato2017-12-27
| | | | It has native simultaneus 8 and 10 bit support.
* mmaldec: Fix compilation after 2fcb0090Martin Storsjö2017-12-20
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* lavc: Mark all AVHWAccel structures as constMark Thompson2017-12-19
|
* lavc: Delete all fake hwaccelsMark Thompson2017-12-19
| | | | They are now unused.
* lavc: Remove register mechanism for hwaccelsMark Thompson2017-12-19
| | | | | | | There is no longer any need for a list of them at runtime, because decoders now carry the pointers to their associated hwaccels internally. The file containing external declarations is now used to make the list of hwaccels for configure.
* lavc: Deprecate av_hwaccel_next() and av_register_hwaccel()Mark Thompson2017-12-19
|
* lavc: Use hardware config information in ff_get_format()Mark Thompson2017-12-19
| | | | | | | | | | | This removes the dependency that hardware pixel formats previously had on AVHWAccel instances, meaning only those which actually do something need exist after this patch. Also updates avcodec_default_get_format() to be able to choose hardware formats if either a matching device has been supplied or no additional external configuration is required, and avcodec_get_hw_frames_parameters() to use the hardware config rather than searching the old hwaccel list.
* webp: Fix alpha initialisationMark Thompson2017-12-19
| | | | | | | | ff_get_format() in the next patch will reject formats which aren't in the offered list, so the hack in 7cb9296db872c4221453e5411f242ebcfca62664 is no longer valid. Change the hack by adding a new field in the VP8 decoder context to indicate that it's actually WebP and don't call ff_get_format() at all in that case.
* lavc: Add hardware config metadata for decoders supporting hardware outputMark Thompson2017-12-19
| | | | | | | | | 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.
* lavc: Add codec metadata to indicate hardware supportMark Thompson2017-12-19
|
* avcodec: add metadata to identify wrappers and hardware decoderswm42017-12-14
| | | | | | | | | | | | | | | | | | | | | Explicitly identify decoder/encoder wrappers with a common name. This saves API users from guessing by the name suffix. For example, they don't have to guess that "h264_qsv" is the h264 QSV implementation, and instead they can just check the AVCodec .codec and .wrapper_name fields. Explicitly mark AVCodec entries that are hardware decoders or most likely hardware decoders with new AV_CODEC_CAPs. The purpose is allowing API users listing hardware decoders in a more generic way. The proposed AVCodecHWConfig does not provide this information fully, because it's concerned with decoder configuration, not information about the fact whether the hardware is used or not. AV_CODEC_CAP_HYBRID exists specifically for QSV, which can have software implementations in case the hardware is not capable. Based on a patch by Philip Langdale <philipl@overt.org>. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* qsv: Support explicit lookahead downscalingLuca Barbato2017-12-12
|
* qsv/vp8dec: fixes memory leak issueLi, Zhong2017-12-12
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* lavc/qsvenc: add error messeage if ICQ unsupported.Li, Zhong2017-12-12
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* lavc/qsvenc: ICQ/VCM/QVBR are not avilable on LinuxLi, Zhong2017-12-12
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* lavc/qsvenc: set HRD buffer sizeLi, Zhong2017-12-12
| | | | | | | | | | Hypothetical Reference Decoding (HRD) model assumes that data flows into a buffer of the fixed size BufferSizeInKB with a constant bitrate. Smaller BufferSizeInKB means smaller frame size variations, but more difficult to maintain HRD. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* hevc: Add hevc_get_pixel_4/8/12/16/24/32/48/64Alexandra Hájková2017-12-08
| | | | | | | | | | | | | | | | | | | | | | | Checkasm timings: block size bitdepth C NEON 4 8 bit: 146.7 48.7 10 bit: 146.7 52.7 8 8 bit: 430.3 84.4 10 bit: 430.4 119.5 12 8 bit: 812.8 141.0 10 bit: 812.8 195.0 16 8 bit: 1499.1 268.0 10 bit: 1498.9 368.4 24 8 bit: 4394.2 574.8 10 bit: 3696.3 804.8 32 8 bit: 5108.6 568.9 10 bit: 4249.6 918.8 48 8 bit: 16819.6 2304.9 10 bit: 13882.0 3178.5 64 8 bit: 13490.8 1799.5 10 bit: 11018.5 2519.4 Signed-off-by: Martin Storsjö <martin@martin.st>
* vaapi_h265: Add named options for setting profile and levelMark Thompson2017-12-06
| | | | Also fixes the default, which previously contained a nonsense value.
* vaapi_h264: Add named options for setting profile and levelMark Thompson2017-12-06
|
* vaapi: Make the decode profile matching more explicitMark Thompson2017-12-02
| | | | | Also fixes a bug where it could attempt to decode with an unsupported codec if allow-profile-mismatch was set.
* vaapi_h264: Fix VUI max_dec_frame_bufferingJun Zhao2017-12-02
| | | | | | | | | This should refer to the existing SPS structure, not the VAAPI sequence parameter buffer (which is not yet initialised). From ffmpeg commit f31478ba1472afe5c1eed60f219ae331816425a2. Signed-off-by: Mark Thompson <sw@jkqxz.net>
* vaapi_h265: Enable VBR modeJun Zhao2017-12-02
| | | | | | | | To match vaapi_h264. From ffmpeg commit 385cafb07ac1e46433931ea9749a134efd7350be. Signed-off-by: Mark Thompson <sw@jkqxz.net>
* cbs_mpeg2: Fix marker_bit typeMark Thompson2017-12-02
|
* cbs: Add padding to slice data allocationsMark Thompson2017-12-02
| | | | | These may be read by the bitstream reader, so they should include the necessary padding for overreads.
* stereo3d: Support view type for frame sequence typeVittorio Giovara2017-11-28
| | | | | | Implement detection in h264 and hevc and insertion in framepack filter. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* prores: Always assume limited rangeVittorio Giovara2017-11-28
| | | | As defined by the specification.
* qsvenc: cavlc option is only available for h264Li, Zhong2017-11-24
| | | | | | | | Moving option definition to h264 implementation and fixing command line defaults in order to properly respect cavlc input value Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>