summaryrefslogtreecommitdiffstats
path: root/libavcodec
Commit message (Collapse)AuthorAgeFilesLines
* dxva2: fix surface selection when compiled with both d3d11va and dxva2Hendrik Leppkes2016-11-071-1/+2
| | | | | | | Fixes a regression introduced in be630b1e08ebe8f766b1798accd6b8e5e096f5aa Signed-off-by: Anton Khirnov <anton@khirnov.net>
* libx265: Add option to force IDR framesDerek Buitenhuis2016-11-072-2/+5
| | | | | | | This is in the same the same vein as 380146924ecad2e05e9dcc5c3c2e1b5ba47c51e8. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* x86: Drop stray semicolons after function definitionsDiego Biurrun2016-11-052-11/+11
| | | | | libavcodec/x86/rv40dsp_init.c:97:2: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic] libavcodec/x86/vp9dsp_init.c:94:40: warning: ISO C does not allow extra ‘;’ outside of a function [-Wpedantic]
* arm: vp9mc: Insert a literal pool at the middle of the fileMartin Storsjö2016-11-041-0/+1
| | | | | | | | | This fixes errors like this when building non-pic binaries with armv6 as baseline: Error: invalid literal constant: pool needs to be closer Signed-off-by: Martin Storsjö <martin@martin.st>
* Drop unreachable break and return statementsDiego Biurrun2016-11-034-7/+0
|
* dnxhdenc: Have function pointer prototype match implementationDiego Biurrun2016-11-031-2/+4
| | | | | libavcodec/dnxhdenc.c(326) : warning C4028: formal parameter 1 different from declaration libavcodec/dnxhdenc.c(329) : warning C4028: formal parameter 1 different from declaration
* pixblockdsp: Have function pointer prototype match implementationDiego Biurrun2016-11-031-2/+4
| | | | | | libavcodec/pixblockdsp.c(58) : warning C4028: formal parameter 1 different from declaration libavcodec/pixblockdsp.c(63) : warning C4028: formal parameter 1 different from declaration libavcodec/pixblockdsp.c(66) : warning C4028: formal parameter 1 different from declaration
* ituh263dec: Have function signature match across declaration and definitionDiego Biurrun2016-11-031-1/+5
| | | | | libavcodec/ituh263dec.c(215) : warning C4028: formal parameter 1 different from declaration libavcodec/ituh263dec.c(215) : warning C4028: formal parameter 2 different from declaration
* svq3: Drop unused function dctcoef_get()Diego Biurrun2016-11-031-5/+0
| | | | libavcodec/svq3.c:627:29: warning: unused function 'dctcoef_get' [-Wunused-function]
* intrax8: Have function signature match across declaration and definitionDiego Biurrun2016-11-031-1/+1
| | | | libavcodec/intrax8.c(776) : warning C4028: formal parameter 1 different from declaration
* options_table: Remove a now unnecessary include of config.hMartin Storsjö2016-11-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The include of config.h was added in 2012 in 1d9c2dc8, due to the use of CONFIG_SNOW_ENCODER ifdefs within options_table.h. When the snow codec was dropped later (in a0c5917f8 in 2013), this include no longer served any purpose. options_table.h is included in builds for the host as well, when building documentation. config.h should not be included in code that is built for the host, since it can contain workarounds for the target compiler/environment, like adding a missing define of restrict, defining getenv(x) to NULL for environments that lack getenv. The seemingly innocent include reordering in 2025d37871 broke builds that have getenv(x) defined to NULL in config.h (Windows CE and Windows Phone/RT), since libavcodec/options_table.h include config.h, while libavformat/options_table.h end up bringing in more system headers, and those system headers can contain a proper definition of getenv, which clash with the getenv define in config.h. This was avoided earlier as long as libavformat/options_table.h (or avformat.h) was included before libavcodec/options_table.h. This fixes builds for Windows Phone/RT and CE. Signed-off-by: Martin Storsjö <martin@martin.st>
* arm: vp9: Add NEON optimizations of VP9 MC functionsMartin Storsjö2016-11-036-3/+913
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This work is sponsored by, and copyright, Google. The filter coefficients are signed values, where the product of the multiplication with one individual filter coefficient doesn't overflow a 16 bit signed value (the largest filter coefficient is 127). But when the products are accumulated, the resulting sum can overflow the 16 bit signed range. Instead of accumulating in 32 bit, we accumulate the largest product (either index 3 or 4) last with a saturated addition. (The VP8 MC asm does something similar, but slightly simpler, by accumulating each half of the filter separately. In the VP9 MC filters, each half of the filter can also overflow though, so the largest component has to be handled individually.) Examples of relative speedup compared to the C version, from checkasm: Cortex A7 A8 A9 A53 vp9_avg4_neon: 1.71 1.15 1.42 1.49 vp9_avg8_neon: 2.51 3.63 3.14 2.58 vp9_avg16_neon: 2.95 6.76 3.01 2.84 vp9_avg32_neon: 3.29 6.64 2.85 3.00 vp9_avg64_neon: 3.47 6.67 3.14 2.80 vp9_avg_8tap_smooth_4h_neon: 3.22 4.73 2.76 4.67 vp9_avg_8tap_smooth_4hv_neon: 3.67 4.76 3.28 4.71 vp9_avg_8tap_smooth_4v_neon: 5.52 7.60 4.60 6.31 vp9_avg_8tap_smooth_8h_neon: 6.22 9.04 5.12 9.32 vp9_avg_8tap_smooth_8hv_neon: 6.38 8.21 5.72 8.17 vp9_avg_8tap_smooth_8v_neon: 9.22 12.66 8.15 11.10 vp9_avg_8tap_smooth_64h_neon: 7.02 10.23 5.54 11.58 vp9_avg_8tap_smooth_64hv_neon: 6.76 9.46 5.93 9.40 vp9_avg_8tap_smooth_64v_neon: 10.76 14.13 9.46 13.37 vp9_put4_neon: 1.11 1.47 1.00 1.21 vp9_put8_neon: 1.23 2.17 1.94 1.48 vp9_put16_neon: 1.63 4.02 1.73 1.97 vp9_put32_neon: 1.56 4.92 2.00 1.96 vp9_put64_neon: 2.10 5.28 2.03 2.35 vp9_put_8tap_smooth_4h_neon: 3.11 4.35 2.63 4.35 vp9_put_8tap_smooth_4hv_neon: 3.67 4.69 3.25 4.71 vp9_put_8tap_smooth_4v_neon: 5.45 7.27 4.49 6.52 vp9_put_8tap_smooth_8h_neon: 5.97 8.18 4.81 8.56 vp9_put_8tap_smooth_8hv_neon: 6.39 7.90 5.64 8.15 vp9_put_8tap_smooth_8v_neon: 9.03 11.84 8.07 11.51 vp9_put_8tap_smooth_64h_neon: 6.78 9.48 4.88 10.89 vp9_put_8tap_smooth_64hv_neon: 6.99 8.87 5.94 9.56 vp9_put_8tap_smooth_64v_neon: 10.69 13.30 9.43 14.34 For the larger 8tap filters, the speedup vs C code is around 5-14x. This is significantly faster than libvpx's implementation of the same functions, at least when comparing the put_8tap_smooth_64 functions (compared to vpx_convolve8_horiz_neon and vpx_convolve8_vert_neon from libvpx). Absolute runtimes from checkasm: Cortex A7 A8 A9 A53 vp9_put_8tap_smooth_64h_neon: 20150.3 14489.4 19733.6 10863.7 libvpx vpx_convolve8_horiz_neon: 52623.3 19736.4 21907.7 25027.7 vp9_put_8tap_smooth_64v_neon: 14455.0 12303.9 13746.4 9628.9 libvpx vpx_convolve8_vert_neon: 42090.0 17706.2 17659.9 16941.2 Thus, on the A9, the horizontal filter is only marginally faster than libvpx, while our version is significantly faster on the other cores, and the vertical filter is significantly faster on all cores. The difference is especially large on the A7. The libvpx implementation does the accumulation in 32 bit, which probably explains most of the differences. Signed-off-by: Martin Storsjö <martin@martin.st>
* vp9: Flip the order of arguments in MC functionsMartin Storsjö2016-11-035-75/+69
| | | | | | | | | This makes it match the pattern already used for VP8 MC functions. This also makes the signature match ffmpeg's version of these functions, easing porting of code in both directions. Signed-off-by: Martin Storsjö <martin@martin.st>
* bink: Have function pointer prototype match implementationDiego Biurrun2016-11-021-1/+3
| | | | libavcodec/binkdsp.c(156) : warning C4028: formal parameter 1 different from declaration
* idct: Have function pointer prototype match implementationDiego Biurrun2016-11-021-3/+5
| | | | libavcodec/idctdsp.c(175) : warning C4028: formal parameter 2 different from declaration
* aactab: Move extern keyword to the front of array declarationsDiego Biurrun2016-11-021-2/+2
| | | | libavcodec/aactab.h:49:1: warning: ‘extern’ is not at beginning of declaration [-Wold-style-declaration]
* qsv: Be informative when reporting that no data has been consumedLuca Barbato2016-10-301-1/+1
|
* Use avpriv_request_sample() where appropriateDiego Biurrun2016-10-292-13/+4
|
* srt: Adjust signedness of sscanf format stringsDiego Biurrun2016-10-281-1/+1
| | | | Fixes several warnings from -Wformat.
* dxtory: Drop nonsense ISO C printf conversion specifiers for standard typesDiego Biurrun2016-10-281-3/+3
|
* Use ISO C printf conversion specifiers where appropriateDiego Biurrun2016-10-285-12/+14
|
* hap: Adjust printf length modifiers to match variable typesDiego Biurrun2016-10-281-1/+1
| | | | | libavcodec/hapenc.c:121:20: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘size_t {aka unsigned int}’ [-Wformat=] libavcodec/hapenc.c:121:20: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘size_t {aka unsigned int}’ [-Wformat=]
* Adjust printf conversion specifiers to match variable signednessDiego Biurrun2016-10-285-10/+10
|
* dnxhdenc: Drop pointless, commented-out debug outputDiego Biurrun2016-10-271-9/+0
|
* h264_loopfilter: Do not print value of uninitialized variableDiego Biurrun2016-10-271-1/+1
| | | | libavcodec/h264_loopfilter.c:531:111: warning: variable 'edge' is uninitialized when used here [-Wuninitialized]
* mpegaudio: Do not print value of uninitialized variableDiego Biurrun2016-10-271-2/+2
| | | | libavcodec/mpegaudiodec_template.c:885:97: warning: variable 'x' is uninitialized when used here [-Wuninitialized]
* vaapi_decode: Remove vestigial unmap codeMark Thompson2016-10-241-4/+1
| | | | | | | The buffer map/unmap code was in an early version of this before it was committed, but the unmap was never removed. While wrong, this was harmless (and therefore unnoticed) because the buffers can't be mapped at this point - all drivers just did nothing with the call.
* vaapi_decode: Clear parameter buffers to fix picture reuseMark Thompson2016-10-241-0/+1
| | | | | | When decoding interlaced pictures, the structure is reused to render to the same surface twice. The parameter buffers were not being cleared, which caused the i965 driver to error out.
* vaapi_h264: fix RefPicList[] field flags.Gwenole Beauchesne2016-10-241-1/+2
| | | | | | | | | | | Use new H264Ref.reference field to track field picture flags. The H264Picture.reference flag in DPB is now irrelevant here. This is a regression from git commit a12d3188, and that affected multiple interlaced video streams. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
* hevc: x86: Add add_residual() SIMD optimizationsPierre Edouard Lepere2016-10-224-4/+416
| | | | | | | Initially written by Pierre Edouard Lepere <Pierre-Edouard.Lepere@insa-rennes.fr>, extended by James Almer <jamrial@gmail.com>. Signed-off-by: Alexandra Hájková <alexandra@khirnov.net>
* lavu: Add JEDEC P22 color primariesVittorio Giovara2016-10-212-1/+2
|
* hevc: factor out a repeated conditionAnton Khirnov2016-10-211-12/+8
|
* hevc: move the SliceType enum to hevc.hAnton Khirnov2016-10-217-52/+54
| | | | | Those values are decoder-independent and are also use by the VA-API encoder.
* audiodsp: x86: Remove pointless header fileDiego Biurrun2016-10-192-26/+3
| | | | | Its single forward declaration can be moved to the only place it is used, like is done for all other dsp init files.
* x86: videodsp: Add parentheses to expression to work around warningDiego Biurrun2016-10-191-1/+1
| | | | libavcodec/x86/videodsp.asm:128: warning: signed dword value exceeds bounds
* ppc: avcodec: Drop silly "_ppc" suffixes from files in ppc subdirectoriesDiego Biurrun2016-10-182-1/+1
|
* vaapi_encode: Write sequence header as extradataMark Thompson2016-10-172-0/+24
| | | | | Only works if packed headers are supported, where we can know the output before generating the first frame.
* vaapi_h265: Include header for slice typesMark Thompson2016-10-171-1/+1
| | | | | | The include was changed correctly in 4abe3b049d987420eb891f74a35af2cebbf52144 but then mistakenly changed back by c359d624d3efc3fd1d83210d78c4152bd329b765 (it's not just the NAL unit types which are used).
* x86: Add missing colons after assembly labelsDiego Biurrun2016-10-176-13/+13
| | | | | This fixes many warnings of the sort warning: label alone on a line without a colon might be in error
* lavc: add a bitstream filter for extracting extradata from packetsAnton Khirnov2016-10-164-2/+304
| | | | | This is intended as a replacement for the 'split' function exported by some parsers.
* hevcdec: move parameter set parsing into a separate headerAnton Khirnov2016-10-167-302/+339
| | | | | This code is independent from the decoder, so it makes more sense for it to to have its own header.
* hevcdec: split ff_hevc_diag_scan* declarations into a separate headerAnton Khirnov2016-10-167-6/+36
| | | | This will be useful in the following commits.
* hevcdec: drop the prototype of a non-existing functionAnton Khirnov2016-10-161-2/+0
|
* hevcdec: move decoder-independent declarations into a separate headerAnton Khirnov2016-10-1610-151/+180
| | | | | | | This way they can be reused by other code without including the whole decoder-specific hevcdec.h Also, add the HEVC_ prefix to them, since similarly named values exist for H.264 as well and are sometimes used in the same code.
* hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov2016-10-1620-22/+22
| | | | | This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
* Add GBRAP12 pixel format supportKieran Kunhya2016-10-121-0/+2
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* lavc: bsf: Document input/output codecparam alloc/init processVittorio Giovara2016-10-121-2/+5
|
* hevc: Add SSE2 and AVX IDCTAlexandra Hájková2016-10-112-30/+811
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* aarch64: Add missing sign extension in ff_h264_idct8_add_neonMartin Storsjö2016-10-101-0/+1
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* nvenc: Fix error logYogender Gupta2016-10-091-1/+1
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
OpenPOWER on IntegriCloud