summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* lavc: Add coded bitstream read/write APIMark Thompson2017-08-12
|
* pixfmt: Support chroma-derived and ictcp color matricesVittorio Giovara2017-08-10
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: Add support for alternative transfer characterics SEIVittorio Giovara2017-08-10
| | | | | | | | | | 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>
* vaapi_encode: Move quality option to common codeMark Thompson2017-08-06
| | | | | | | | | Use AVCodecContext.compression_level rather than a private option, replacing the H.264-specific quality option (which stays only for compatibility). This now works with the H.265 encoder in the i965 driver, as well as the existing cases with the H.264 encoder.
* hevc: Validate the number of long term reference picturesMark Thompson2017-08-05
| | | | | This would overflow if the stream contained a value greater than the maximum allowed by the standard (32).
* hevc: Improve stream constraint values in common headerMark Thompson2017-08-05
| | | | | | | | Add comments to describe the sources of the constraint values expressed here, and add some more related values which will be used in following patches. Fix the incorrect values for SPS and PPS count (they are not the same as those used for H.264), and remove HEVC_MAX_CU_SIZE because it is not used anywhere.
* h264: Add stream constraint values to the common headerMark Thompson2017-08-05
| | | | With comments describing the derivation of each value.
* mov: move stsd finalization to an appropriate placeSean McGovern2017-07-31
| | | | | | | | | | | mov_finalize_stsd_codec() parses stream information from the ALAC extradata, so run it after the extradata processing is completed in mov_read_stsd(). Fixes playback of 96kHz ALAC streams muxed by qaac or the reference alac encoder. Adapted from an FFmpeg patch by Hendrik Leppkes <h.leppkes@gmail.com> Bug-Id: 1072
* mov: Do not set stsd_count if mov_read_stsd() failsSean McGovern2017-07-31
| | | | Based on an FFmpeg patch by Michael Niedermayer <michael@niedermayer.cc>
* mov: log and return early on non-positive stsd entry countsSean McGovern2017-07-30
| | | | Based on an FFmpeg patch by Michael Niedermayer <michael@niedermayer.cc>
* hevcdec: add a CUVID hwaccelAnton Khirnov2017-07-28
|
* fate/hevc: specify output pixel format explicitlyAnton Khirnov2017-07-28
| | | | This allows running those tests with hwaccel.
* hevcdec: set the active SPS before calling get_format()Anton Khirnov2017-07-28
| | | | This way the SPS is available to the hwaccel init code.
* avconv: when using -loop option bail out if seek to start failsPeter Große2017-07-28
| | | | | | | Fixes an infinite loop when a demuxer fails to seek to the start of the input. Signed-off-by: Peter Große <pegro@friiks.de> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* cuvid: add cuvid.h to SKIPHEADERSAnton Khirnov2017-07-27
|
* h264dec: add a CUVID hwaccelAnton Khirnov2017-07-26
| | | | | Some parts of the code are based on a patch by Timo Rothenpieler <timo@rothenpieler.org>
* decode: add a per-frame private data for hwaccel useAnton Khirnov2017-07-26
| | | | | | This will be useful in the CUVID hwaccel. It should also eventually replace current decoder-specific mechanisms used by various other hwaccels.
* decode: add a mechanism for performing delayed processing on the decoded framesAnton Khirnov2017-07-26
| | | | This will be useful in the CUVID hwaccel.
* decode: add a method for attaching lavc-internal data to framesAnton Khirnov2017-07-26
| | | | | | | | Use the AVFrame.opaque_ref field. The original user's opaque_ref is wrapped in the lavc struct and then unwrapped before the frame is returned to the caller. This new struct will be useful in the following commits.
* decode: avoid leaks on failure in ff_get_buffer()Anton Khirnov2017-07-26
| | | | | | | If the get_buffer() call fails, the frame might have some side data already set. Make sure it gets freed. CC: libav-stable@libav.org
* 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>
* 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
* 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.
* 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>
* 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>
* 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>
* caf: add an Opus tagAnton Khirnov2017-07-22
| | | | CC: libav-stable@libav.org
* hevc: Make sure to update the current frame transfer characteristicVittorio Giovara2017-07-21
| | | | | | | 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>
* rmdec: don't ignore the return value of av_get_packet()Sean McGovern2017-07-17
|
* build: Add feature test macros for glibc 2.19+Diego Biurrun2017-07-10
| | | | | | | glibc introduced _DEFAULT_SOURCE in version 2.19 to replace _BSD_SOURCE and _SVID_SOURCE, which were deprecated in version 2.20. Add _DEFAULT_SOURCE where the latter two are used to be forwards-compatible and avoid warnings about the use of deprecated definitions.
* flac: Use a local cache for decode_residual()Luca Barbato2017-07-09
| | | | | | About an additional 4% speedup. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* flac: Postpone unlikely condition checksLuca Barbato2017-07-09
| | | | | | About 2% speedup on gcc-6.3. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* flac: Convert to the new bitstream readerAlexandra Hájková2017-07-09
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* bitstream: Avoid undefined behavior in bitstream_skip()Luca Barbato2017-07-09
| | | | | | | | | | Do not use skip_remaining() to fully wipe the cache, as this could do a 64-bit shift of a 64-bit variable which is undefined behavior in C. Instead set the related variables to zero directly. Thanks to Uoti for pointing out the problem. CC: libav-stable@libav.org
* bink: Split read_dct_coeffs()Diego Biurrun2017-07-05
| | | | | This works around type aliasing violations and related warnings. Also add some missing error checking.
* fate: Add cinepak encoder vsynth testsDiego Biurrun2017-07-05
|
* cinepakenc: misc small changesDiego Biurrun2017-07-05
| | | | | | Avoid anonymously typedeffed structs and enums, drop an unused context member, fix a small wording mishap, sizeof(type) ---> sizeof(*variable), drop a needlessly verbose log message, use av_malloc_array() where appropriate.
* cinepakenc: K&R formatting cosmeticsDiego Biurrun2017-07-05
|
* cinepakenc: Stop using AVPictureTimothy Gu2017-07-05
|
* cinepakenc: Drop broken debug codeDiego Biurrun2017-07-05
|
* cinepakenc: add option handling for flexibilityaddr-see-the-website@aetey.se2017-07-05
| | | | | | | Now it is possible to adjust compression speed vs R/D when needed and also skip vintage player compatibility at will. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* cinepakenc: fixes and improvementsaddr-see-the-website@aetey.se2017-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | version 2013-02-08 Rl - fixes/optimization in multistrip encoding and codebook size choice, quality/bitrate is now better than that of the binary proprietary encoder version 2013-02-12 Rl - separated codebook training sets, avoided the transfer of wasted bytes, which yields both better quality and smaller files - now using the correct colorspace (TODO: move conversion to libswscale) version 2013-02-14 Rl "Valentine's Day" version: - made strip division more robust - minimized bruteforcing the number of strips, (costs some R/D but speeds up compession a lot), the heuristic assumption is that score as a function of the number of strips has one wide minimum which moves slowly, of course not fully true - simplified codebook generation, the old code was meant for other optimizations than we actually do - optimized the codebook generation / error estimation for MODE_MC version 2013-04-28 Rl - bugfixed codebook optimization logic version 2014-01-20 Rl - made the encoder compatible with vintage decoders and added some yet unused code for possible future incremental codebook updates - fixed a small memory leak version 2014-01-21 Rl - believe it or not, now we get even smaller files, with better quality (which means I missed an optimization earlier :) Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Add Cinepak encoderTomas Härdin2017-07-05
| | | | | | With permission of Tomas Härdin applied by Rl aetey.se Signed-off-by: Diego Biurrun <diego@biurrun.de>
* os_support: Use HAVE_UWP instead of manually checking WINAPI_FAMILYMartin Storsjö2017-07-05
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* d3d11va: Check WINAPI_FAMILY instead of HAVE_LOADLIBRARYMartin Storsjö2017-07-05
| | | | | | | | | | | | | If using the winstore compat library, a fallback LoadLibrary function does exist, that only calls LoadPackagedLibrary though (which doesn't work for dynamically loading d3d11 DLLs). Therefore explicitly check the targeted API family instead. Make this check a reusable HAVE_* component which other parts of the libraries can check when necessary as well. Signed-off-by: Martin Storsjö <martin@martin.st>