summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avcodec: allow multiple hwaccels for the same codec/pixfmtwm42017-11-10
| | | | | | | | | | | | | | | Currently, AVHWAccels are looked up using a (codec_id, pixfmt) tuple. This means it's impossible to have 2 decoders for the same codec and using the same opaque hardware pixel format. This breaks merging Libav's CUVID hwaccel. FFmpeg has its own CUVID support, but it's a full stream decoder, using NVIDIA's codec parser. The Libav one is a true hwaccel, which is based on the builtin software decoders. Fix this by introducing another field to disambiguate AVHWAccels, and use it for our CUVID decoders. FF_CODEC_CAP_HWACCEL_REQUIRE_CLASS makes this mechanism backwards compatible and optional.
* avcodec/cuvid: rename cuvid.c to cuviddec.cwm42017-11-10
| | | | | | | cuvid.c is used by Libav's CUVID hwaccel. Resolve the conflict and avoid future merge problems by renaming our decoder. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* Changelog: list the new aptX featuresRostislav Pehlivanov2017-11-10
| | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aptx: add raw muxer and demuxer for aptXAurelien Jacobs2017-11-10
|
* aptx: implement the aptX bluetooth codecAurelien Jacobs2017-11-10
| | | | | | The encoder was reverse engineered from binary library and from EP0398973B1 patent (long expired). The decoder was simply deduced from the encoder.
* decode: add a per-frame private data for hwaccel useAnton Khirnov2017-11-10
| | | | | | | | This will be useful in the CUVID hwaccel. It should also eventually replace current decoder-specific mechanisms used by various other hwaccels. Merges Libav commit 704311b2946d74a80f65906961cd9baaa18683a3.
* decode: add a mechanism for performing delayed processing on the decoded framesAnton Khirnov2017-11-10
| | | | | | This will be useful in the CUVID hwaccel. Merges Libav commit badf0951f54c1332e77455dc40398f3512540c1b.
* decode: add a method for attaching lavc-internal data to framesAnton Khirnov2017-11-10
| | | | | | | | Use the AVFrame.private_ref field. This new struct will be useful in the following commits. Merges Libav commit 359a8a3e2d1194b52b6c386f94fd0929567dfb67.
* avutil/frame: Add private_ref to AVFrameMichael Niedermayer2017-11-10
| | | | | | | This gives FFmpeg libs a field that they can freely and safely use. Avoiding the need of wrapping of a users opaque_ref field and its issues. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc/libx265: switch to ff_alloc_packet2Jun Zhao2017-11-10
| | | | | | | | | ff_alloc_packet have been deprecated, switch to use ff_alloc_packet2. Signed-off-by: Jun Zhao <jun.zhao@intel.com> Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc/libkvazaar: switch to ff_alloc_packet2.Jun Zhao2017-11-10
| | | | | | | | | ff_alloc_packet have been deprecated, switch to use the ff_alloc_packet2. Signed-off-by: Jun Zhao <jun.zhao@intel.com> Reviewed-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavu/timecode: clarify error msg for timecode_rateGyan Doshi2017-11-10
| | | | | | | | | | | The user-supplied value for timecode_rate in drawtext is rounded to nearest integer. So, a supplied value of 0.49 or lower is rounded to 0. This throws a misleading error message which says "Timecode frame rate must be specified". Changed message to account for values under one. Also noted supported framerates for drop TC. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/dashdec: use the current DASHContext for the rep_destSteven Liu2017-11-10
| | | | | | | fix ticket id: #6820 Signed-off-by: Steven Liu <lq@onvideo.cn> Tested-by: mrskman
* lavf/dashdec: Fix several memleaks.Carl Eugen Hoyos2017-11-10
| | | | | Signed-off-by: Carl Eugen Hoyos <ceffmpeg@gmail.com> Tested-by: Steven Liu <lq@chinaffmpeg.org>
* avcodec/cngdec: Fix integer clippingMichael Niedermayer2017-11-09
| | | | | | | | Fixes: runtime error: value -36211.7 is outside the range of representable values of type 'short' Fixes: 2992/clusterfuzz-testcase-6649611793989632 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* configure: fix the non pkg-config libmfx check on WindowsJames Almer2017-11-09
| | | | | | | Based on a patch by Aaron Levinson. Reviewed-by: alevinsn Signed-off-by: James Almer <jamrial@gmail.com>
* avdevice/decklink_dec: make some function staticJames Almer2017-11-09
| | | | | Reviewed-by: Aaron Levinson <alevinsn_dev@levland.net> Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/pngdec: fix av_bprint_finalize() usage.Nicolas George2017-11-09
|
* aacenc: mark the preset 5.0/5.1 layouts correctly with back speakersRostislav Pehlivanov2017-11-09
| | | | | | | | | | The spec is correct, it does list these layouts as having rear speakers. Questionable how many decoders correctly interpret those correctly since side is way more popular. Also fixes fate-aac-yoraw-encode. Reported-by: pkviet <pkv.stream@gmail.com> Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aacenc: use the PCE comment field for encoder IDRostislav Pehlivanov2017-11-09
| | | | | | Also handle extradata of variable size (for bitexact/if PCEs aren't used). Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* aacenc: support extended channel layouts using PCEsRostislav Pehlivanov2017-11-09
| | | | | | | | | | | | This commit implements support for PCE (Program Configuration Elements) in the AAC encoder, and as such allows for encoding of channel layouts not present in the presets defined by the spec (which only lists the 8 most common ones). This has been a highly requested feature and is also the first open source encoder to support this many layouts. Many thanks to pkviet <pkv.stream@gmail.com> who implemented support for and verified all channel layouts.
* pngdec: expose gAMA and cHRM chunks as side/meta dataRostislav Pehlivanov2017-11-09
| | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* pngdec: check for bprint finalization sucess on icc data parsingRostislav Pehlivanov2017-11-09
| | | | | | It can fail in case of OOM. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* vc2enc_dwt: pad the temporary buffer by the slice sizeRostislav Pehlivanov2017-11-09
| | | | | | | | | | | | | | | Since non-Haar wavelets need to look into pixels outside the frame, we need to pad the buffer. The old factor of two seemed to be a workaround that fact and only padded to the left and bottom. This correctly pads by the slice size and as such reduces memory usage and potential exploits. Reported by Liu Bingchang. Ideally, there should be no temporary buffer but the encoder is designed to deinterleave the coefficients into the classical wavelet structure with the lower frequency values in the top left corner. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* configure: add missing avutil deps for hwcontext modulesJames Almer2017-11-08
| | | | | | Fixes ticket #6812 Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/scale2ref: Set output frame rate to main input frame rate.Carl Eugen Hoyos2017-11-08
| | | | Fixes ticket #6817.
* avformat/ty: fix format specifiers in debug log messagesJames Almer2017-11-08
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mips: Improve hevc non-uni hv mc msa functionsKaustubh Raste2017-11-08
| | | | | | | | Use mask buffer. Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com> Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Improve hevc uni weighted 4 tap vt mc msa functionsKaustubh Raste2017-11-08
| | | | | | | | | | Use global mask buffer for appropriate mask load. Use immediate unsigned saturation for clip to max saving one vector register. Remove unused macro. Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com> Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Improve hevc uni 4 tap hv mc msa functionsKaustubh Raste2017-11-08
| | | | | | | | | Use global mask buffer for appropriate mask load. Remove unused macro and table. Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com> Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips: Improve hevc bi wgt 4 tap hv mc msa functionsKaustubh Raste2017-11-08
| | | | | | | | | Use global mask buffer for appropriate mask load. Use immediate unsigned saturation for clip to max saving one vector register. Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com> Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/qsvenc_jpeg: fix copyright headerJames Almer2017-11-08
| | | | | | Fixes fate-source after 1926f13a206bfbd99abf536e7424e2b321f2e2ad. Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm/llviddsp: fix warnings about mixed declaration and codeJames Almer2017-11-08
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* Merge commit '70946e605924e2108c39f96faa369c220177f301'James Almer2017-11-08
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '70946e605924e2108c39f96faa369c220177f301': h264dec: Fix mix of lossless and lossy MBs decoding h264_cabac: Fix CABAC+8x8dct in 4:4:4 h264dec: fix Lossless Decoding (Profile 244) for 8x8 Intra Prediction This commit is a noop, see 6f7ca1f55be1270e0d7c33409de4473e4dd00add 840b41b2a643fc8f0617c0370125a19c02c6b586 cf231b68da1150c100114f2c5671b7ed740f917a Merged-by: James Almer <jamrial@gmail.com>
| * h264dec: Fix mix of lossless and lossy MBs decodingAnton Mitrofanov2017-07-26
| | | | | | | | | | | | CC: libav-stable@libav.org Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * h264_cabac: Fix CABAC+8x8dct in 4:4:4Anton Mitrofanov2017-07-26
| | | | | | | | | | | | | | | | | | Use the correct ctxIdxInc calculation for coded_block_flag. Keep old behavior for old versions of x264 for backward compatibility. CC: libav-stable@libav.org Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * h264dec: fix Lossless Decoding (Profile 244) for 8x8 Intra PredictionYogender Kumar Gupta2017-07-26
| | | | | | | | | | | | CC: libav-stable@libav.org Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '45c4bf3df03ef53ae61fa1473424d4ae024f22e4'James Almer2017-11-08
|\| | | | | | | | | | | | | * commit '45c4bf3df03ef53ae61fa1473424d4ae024f22e4': h264dec: track the last seen value of x264_build Merged-by: James Almer <jamrial@gmail.com>
| * h264dec: track the last seen value of x264_buildAnton Khirnov2017-07-26
| | | | | | | | | | | | | | | | | | | | Do not use the one in the SEI directly as that is reset at certain points. Inspired by patches from Michael Niedermayer <michaelni@gmx.at> and Anton Mitrofanov <BugMaster@narod.ru>. CC: libav-stable@libav.org
* | Merge commit '45df7adc1d9b7e8fbae5af9328baa6ab3562002b'James Almer2017-11-08
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '45df7adc1d9b7e8fbae5af9328baa6ab3562002b': imgutils: add function to clear an image to black lavc, lavu: move frame cropping to a convenience function rmdec: add missing brackets to compound statement This commit is a noop, see 65b83ce01b94eae944290c11257799a9288f2d4c caa12027baf1180453846c58da08fc87accc0ff6 463b81de2b252691d75417643597c42684bf830d Merged-by: James Almer <jamrial@gmail.com>
| * imgutils: add function to clear an image to blackwm42017-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Black isn't always just memset(ptr, 0, size). Limited YUV in particular requires relatively non-obvious values, and filling a frame with repeating 0 bytes is disallowed in some contexts. With component sizes larger than 8 or packed YUV, this can become relatively complicated. So having a generic function for this seems helpful. In order to handle the complex cases in a generic way without destroying performance, this code attempts to compute a black pixel, and then uses that value to clear the image data quickly by using a function like memset. Common cases like yuv410p10 or rgba can't be handled with a simple memset, so there is some code to fill memory with 2/4/8 byte patterns. For the remaining cases, a generic slow fallback is used. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * lavc, lavu: move frame cropping to a convenience functionwm42017-07-26
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * rmdec: add missing brackets to compound statementSean McGovern2017-07-25
| | | | | | | | Accidentally left out of 95ce02b35d3d1bb16111031df1d82a6e4d894d36.
* | Merge commit '550cb6a85d0f7211289f7a789527d48cb29460ff'James Almer2017-11-08
|\| | | | | | | | | | | | | * commit '550cb6a85d0f7211289f7a789527d48cb29460ff': lavf/vf_deinterlace_qsv: Enable the qsv deinterlace vpp Merged-by: James Almer <jamrial@gmail.com>
| * lavf/vf_deinterlace_qsv: Enable the qsv deinterlace vppHuang, Zhengxu2017-07-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current qsv deinterlace module does not work at all because MSDK needs user to pass extra parameters to enable hint functions,such as denoise,deinterlace,composition and so on. Usage:-hwaccel qsv -r 25 -c:v h264_qsv -i in -vf deinterlace_qsv=bob -b 2M -maxrate 3M -c:v h264_qsv -y out.h264 Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com> Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com> Signed-off-by: Andrew Zhang <huazh407@gmail.com> Change-Id: I9e7ddcf884f2788c2820f6c98affacfb9d8f3287 Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2'James Almer2017-11-08
|\| | | | | | | | | | | | | * commit '2fd6e7d077f590e4d7195356f9baeb271f8b9ae2': libavcodec/mjpeg_qsv: Add QSV MJPEG encoder Merged-by: James Almer <jamrial@gmail.com>
| * libavcodec/mjpeg_qsv: Add QSV MJPEG encoderHuang, Zhengxu2017-07-25
| | | | | | | | | | | | | | | | | | | | | | usage: -hwaccel qsv -c:v h264_qsv -i in -c:v mjpeg_qsv -global_quality 80 -f mjpeg out Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com> Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com> Signed-off-by: Andrew Zhang <huazh407@gmail.com Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
* | Merge commit '2b1324bd167553f49736e4eaa94f96da9982925e'James Almer2017-11-08
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '2b1324bd167553f49736e4eaa94f96da9982925e': lavf: allow avformat_close_input() with NULL dxva: DXVA2_ModeHEVC_VLD_Main10 does not support Main caf: add an Opus tag hevc: Make sure to update the current frame transfer characteristic This commit is a noop, see dc9735eb67ca696d926922735a9bf01776d5c328 b4093e60c51af493a6dad7819264ef769736227f 5a3b602acda68fe5ca09082dc753179450a97a13 c64da19bbc1d3b405703ef3b705dba39a450504f 36cd017acd9cac0e6695124c052a59fb1fc13145 Merged-by: James Almer <jamrial@gmail.com>
| * lavf: allow avformat_close_input() with NULLwm42017-07-22
| | | | | | | | | | | | This is consistent with how other destructors behave. Signed-off-by: Anton Khirnov <anton@khirnov.net>
| * dxva: DXVA2_ModeHEVC_VLD_Main10 does not support Mainwm42017-07-22
| | | | | | | | | | | | | | | | This mode apparently does not support decoding of HEVC Main (8 bit). With D3D11 and Intel drivers on Windows 10 I get green corruption, while using DXVA2_ModeHEVC_VLD_Main works. Signed-off-by: Anton Khirnov <anton@khirnov.net>