summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* Merge commit '85bfaa4949f4afcde19061def3e8a18988964858'James Almer2019-03-14
|\ | | | | | | | | | | | | * commit '85bfaa4949f4afcde19061def3e8a18988964858': aarch64: vp8: Use the proper aarch64 form for conditional branches Merged-by: James Almer <jamrial@gmail.com>
| * aarch64: vp8: Use the proper aarch64 form for conditional branchesMartin Storsjö2019-02-19
| | | | | | | | | | | | | | The previous form also does seem to assemble on current tools, but I think it might fail on some older aarch64 tools. Signed-off-by: Martin Storsjö <martin@martin.st>
| * aarch64: vp8: Fix assembling with armasm64Martin Storsjö2019-02-19
| | | | | | | | Signed-off-by: Martin Storsjö <martin@martin.st>
| * aarch64: vp8: Fix assembling with clangMartin Storsjö2019-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also partially fixes assembling with MS armasm64 (via gas-preprocessor). The movrel macro invocations need to pass the offset via a separate parameter. Mach-o and COFF relocations don't allow a negative offset to a symbol, which is handled properly if the offset is passed via the parameter. If no offset parameter is given, the macro evaluates to something like "adrp x17, subpel_filters-16+(0)", which older clang versions also fail to parse (the older clang versions only support one single offset term, although it can be a parenthesis. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '0801853e640624537db386727b36fa97aa6258e7'James Almer2019-03-14
|\| | | | | | | | | | | | | | | | | * commit '0801853e640624537db386727b36fa97aa6258e7': libavcodec: vp8 neon optimizations for aarch64 See 833fed5253617924c41132e0ab261c1d8c076360 Merged-by: James Almer <jamrial@gmail.com>
| * libavcodec: vp8 neon optimizations for aarch64Magnus Röös2019-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Partial port of the ARM Neon for aarch64. Benchmarks from fate: benchmarking with Linux Perf Monitoring API nop: 58.6 checkasm: using random seed 1760970128 NEON: - vp8dsp.idct [OK] - vp8dsp.mc [OK] - vp8dsp.loopfilter [OK] checkasm: all 21 tests passed vp8_idct_add_c: 201.6 vp8_idct_add_neon: 83.1 vp8_idct_dc_add_c: 107.6 vp8_idct_dc_add_neon: 33.8 vp8_idct_dc_add4y_c: 426.4 vp8_idct_dc_add4y_neon: 59.4 vp8_loop_filter8uv_h_c: 688.1 vp8_loop_filter8uv_h_neon: 216.3 vp8_loop_filter8uv_inner_h_c: 649.3 vp8_loop_filter8uv_inner_h_neon: 195.3 vp8_loop_filter8uv_inner_v_c: 544.8 vp8_loop_filter8uv_inner_v_neon: 131.3 vp8_loop_filter8uv_v_c: 706.1 vp8_loop_filter8uv_v_neon: 141.1 vp8_loop_filter16y_h_c: 668.8 vp8_loop_filter16y_h_neon: 242.8 vp8_loop_filter16y_inner_h_c: 647.3 vp8_loop_filter16y_inner_h_neon: 224.6 vp8_loop_filter16y_inner_v_c: 647.8 vp8_loop_filter16y_inner_v_neon: 128.8 vp8_loop_filter16y_v_c: 721.8 vp8_loop_filter16y_v_neon: 154.3 vp8_loop_filter_simple_h_c: 387.8 vp8_loop_filter_simple_h_neon: 187.6 vp8_loop_filter_simple_v_c: 384.1 vp8_loop_filter_simple_v_neon: 78.6 vp8_put_epel8_h4v4_c: 3971.1 vp8_put_epel8_h4v4_neon: 855.1 vp8_put_epel8_h4v6_c: 5060.1 vp8_put_epel8_h4v6_neon: 989.6 vp8_put_epel8_h6v4_c: 4320.8 vp8_put_epel8_h6v4_neon: 1007.3 vp8_put_epel8_h6v6_c: 5449.3 vp8_put_epel8_h6v6_neon: 1158.1 vp8_put_epel16_h6_c: 6683.8 vp8_put_epel16_h6_neon: 831.8 vp8_put_epel16_h6v6_c: 11110.8 vp8_put_epel16_h6v6_neon: 2214.8 vp8_put_epel16_v6_c: 7024.8 vp8_put_epel16_v6_neon: 799.6 vp8_put_pixels8_c: 112.8 vp8_put_pixels8_neon: 78.1 vp8_put_pixels16_c: 131.3 vp8_put_pixels16_neon: 129.8 This contains a fix to include guards by Carl Eugen Hoyos. Signed-off-by: Martin Storsjö <martin@martin.st>
| * h264/x86: sign extend int stride in deblock functionsJanne Grunau2019-01-27
| | | | | | | | Fixes checkasm errors after adding the h264 deblock tests.
* | avcodec/dvbsubdec: Check object positionMichael Niedermayer2019-03-14
| | | | | | | | | | | | | | | | | | | | Reference: ETSI EN 300 743 V1.2.1 7.2.2 Region composition segment Fixes: Timeout Fixes: 13325/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DVBSUB_fuzzer-5143979392237568 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/cdgraphics: Use ff_set_dimensions()Michael Niedermayer2019-03-14
| | | | | | | | | | | | | | | | Fixes: Timeout (17 sec -> 65 milli sec) Fixes: 13264/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CDGRAPHICS_fuzzer-5711167941509120 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec/zmbvenc: Add support for RGB formatsMatthew Fearnley2019-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This consists mostly of the following changes: - add newly supported pixel formats (RGB555LE, RGB565LE, BGR0) - select the ZMBV format (c->fmt) and bytes per pixel (c->bypp) based on avctx->pix_fmt - multiply widths/x-values by c->bypp, in places where bytes, not pixels, are expected - disable palette-writing code for non-palette pix_fmts - make a note about histogram[]'s datatype (it could need increasing if ZMBV_BLOCK is increased) - adjust the c->score_tab length to take up to (and including) 4 times the number of pixels in a block - initialise c->score_tab up to c->bypp * the number of pixels Note: the ZmbvFormat enum allows for additional bit depths: - 1,2,4-bit (palette) - 24-bit (RGB) At time of writing the specifics of these (e.g. channel order, bit alignment) are not currently defined, and DOSBox only implements support for 8/15/16/32 bpp. One might expect the 24-bit format - if implemented - to be BGR24, to have the same channel order as BGR0. However, the decoder in zmbv.c has been guessed to use RGB24, so I have chosen to not contradict this, and omitted specific support for this format.
* | avcodec/libdav1d: unref the frame on failureJames Almer2019-03-12
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | libdav1d: Add support for reading hdr10 metadataVittorio Giovara2019-03-12
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libdav1d: consistently use AVERROR return valuesJames Almer2019-03-12
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libdav1d: use a custom picture allocatorJames Almer2019-03-12
| | | | | | | | | | | | | | | | | | Replaces the libdav1d internal allocator. It uses an AVBufferPool to reduce the amount of allocated buffers. About 5% speed up when decoding 720p or higher streams. Reviewed-by: "Vittorio Giovara <vittorio.giovara@gmail.com>" Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libdav1d: move the pix_fmt enum array up in the fileJames Almer2019-03-12
| | | | | | | | | | | | This is in preparation for the following commit. Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/libdav1d: route dav1d internal logs through av_log()James Almer2019-03-12
| | | | | | | | | | | | | | Bump the minimum required version to the first one with the logger API callback. Reviewed-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/mpeg4videodec: Check idx in mpeg4_decode_studio_block()Michael Niedermayer2019-03-12
| | | | | | | | | | | | | | | | | | Fixes: Out of array access Fixes: 13500/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5769760178962432 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Kieran Kunhya <kierank@obe.tv> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/mpeg4videodec: Fix nonsense warningAndreas Rheinhardt2019-03-12
| | | | | | | | | | | | | | | | | | | | | | | | Since db772308941a2a338c7809f90d347219a6a93074 parsing of mpeg4-extradata lead to a "Failed to parse extradata" warning, because ff_mpeg4_decode_picture_header returns AVERROR_INVALIDDATA in case that no VOP was found. This patch adds a parameter to signify whether a header (where the absence of a VOP does not raise an error) or not is parsed. The first mode is of course used for parsing headers. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/imm4: Unreference previous frame on frame size changeMichael Niedermayer2019-03-10
| | | | | | | | | | | | | | | | | | Fixes: Out of array access Fixes: 13552/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_IMM4_fuzzer-5767949648920576 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>
* | avcodec/nvenc: add minimum driver version for SDK 8.2 and 9.0Timo Rothenpieler2019-03-10
| | | | | | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* | avcodec/proresenc_aw : fix interlace encoding for unsafe heightMartin Vignali2019-03-09
| | | | | | | | | | fix the call of the unsafe version of slice encoding in interlace mode fix padding line count in sub image with fill in interlace mode
* | avcodec/dxv: Correct integer overflow in get_opcodes()Michael Niedermayer2019-03-09
| | | | | | | | | | | | | | | | Fixes: 13099/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXV_fuzzer-5665598896340992 Fixes: signed integer overflow: 2147483647 + 7 cannot be represented in type 'int' Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/g723_1dec: actually decode second channelPaul B Mahol2019-03-07
| |
* | avcodec/imm4: fix artifacts on some files with special coding modePaul B Mahol2019-03-07
| |
* | avcodec/scpr: Fix use of uninitialized variableMichael Niedermayer2019-03-06
| | | | | | | | | | | | | | | | Fixes: Undefined shift Fixes: 12911/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5677102915911680 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/imm4: add support for mid-stream size changesPaul B Mahol2019-03-06
| |
* | avcodec/qtrle : improve 24bbp decoding speedMartin Vignali2019-03-04
| | | | | | | | | | | | benchmark on x86_64 : mainly raw data : 20 -> 39 fps mainly rle data : 97 -> 119fps
* | avcodec/qtrle : 32bpp dec copy two raw argb value at the same timeMartin Vignali2019-03-04
| | | | | | | | | | benchmark on x86_64 : 38 fps -> 40 fps
* | avcodec/qtrle : avoid swap in 32bpp decoding on little endianMartin Vignali2019-03-04
| | | | | | | | | | | | | | | | improve speed on little endian benchmark on x86_64 : mainly raw : 33fps -> 38fps mainly rle : 128fps -> 153 fps
* | lavc/libx265: signal CPB properties through side dataJan Ekström2019-03-03
| | | | | | | | | | This way values such as maxrate/bufsize can be utilized further down the chain.
* | avcodec/hcom: check that index into array is validPaul B Mahol2019-03-03
| |
* | avcodec/utils: remove commented out obsolete codePaul B Mahol2019-03-03
| |
* | avcodec/qpeg: Limit copy in qpeg_decode_intra() to the available bytesMichael Niedermayer2019-03-03
| | | | | | | | | | | | | | | | Fixes: Timeout (27 sec -> 39 milli sec) Fixes: 13151/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_QPEG_fuzzer-5717536023248896 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/aic: Check remaining bits in aic_decode_coeffs()Michael Niedermayer2019-03-03
| | | | | | | | | | | | | | | | Fixes: Timeout (78 seconds -> 2 seconds) Fixes: 13186/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AIC_fuzzer-5639516533030912 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/gdv: Check for truncated tags in decompress_5()Michael Niedermayer2019-03-03
| | | | | | | | | | | | | | Testcase: 13169/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_GDV_fuzzer-5666354038833152 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/bethsoftvideo: Check block_typeMichael Niedermayer2019-03-03
| | | | | | | | | | | | | | | | Fixes: Timeout (17 seconds -> 1 second) Fixes: 13184/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BETHSOFTVID_fuzzer-5711446296494080 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/diracdec: Correct max pixels checkMichael Niedermayer2019-03-03
| | | | | | | | | | | | | | | | | | | | | | Dirac internally allocates 5 images per plane and frame currently. One being the actual image the other 4 being filtered for motion compensation. Fixes: Out of memory Fixes: 12870/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5684825871089664 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()Michael Niedermayer2019-03-01
| | | | | | | | | | | | | | | | Fixes: runtime error: signed integer overflow: 2147483598 + 128 cannot be represented in type 'int' Fixes: 12926/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-5705100733972480 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/get_bits: add assertion to limit ouptut value of get_bitsMarton Balint2019-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Should fix the following Coverity false positives: Coverity CID #1415651. Coverity CID #1420392. Coverity CID #1420473. Coverity CID #1433770. Coverity CID #1435320. Coverity CID #1439573. Coverity CID #1439580. Coverity CID #1439588. Signed-off-by: Marton Balint <cus@passwd.hu>
* | avcodec/get_bits: use unsigned integers in show_bits and get_bitsMarton Balint2019-03-01
| | | | | | | | | | | | The return value is also unsigned. Signed-off-by: Marton Balint <cus@passwd.hu>
* | avcodec/avpacket: add some assertions to ensure pkt->data is not null if ↵Marton Balint2019-03-01
| | | | | | | | | | | | | | | | | | | | | | pkt->size > 0 This should fix the following Coverity false positives: Coverity CID #1405450. Coverity CID #1430930. Signed-off-by: Marton Balint <cus@passwd.hu>
* | avcodec/proresenc_aw : fix sub_image_with_fill for interlaced encodingMartin Vignali2019-02-27
| | | | | | | | used when width and/or height, not multiple of sclice dim
* | avcodec/mips: [loongson] mmi optimizations for VP9 put and avg functionsgxw2019-02-27
| | | | | | | | | | | | | | VP9 decoding speed improved about 60.5%(from 38fps to 61fps, tested on loongson 3A3000). Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | vaapi_encode_mpeg2: Add missing marker bit in time_codeMark Thompson2019-02-25
| | | | | | | | | | We don't have anything useful to put in this field, but there is still meant to be a marker bit in the middle of it.
* | vaapi_encode_mjpeg: Use common quality optionMark Thompson2019-02-25
| | | | | | | | | | | | Doesn't change anything, but makes the behaviour better match that of the other codecs (the CONSTANT_QUALITY_ONLY flag already ensures that CQP is the only RC mode selectable for MJPEG).
* | vaapi_encode_vp9: Fix whitespace after previous patchMark Thompson2019-02-25
| |
* | vaapi_encode_vp9: Enable support for more RC modesMark Thompson2019-02-25
| |
* | vaapi_encode_vp8: Enable support for more RC modesMark Thompson2019-02-25
| |
* | vaapi_encode_mpeg2: Enable support for more RC modesMark Thompson2019-02-25
| | | | | | | | Fixes #7650.
* | vaapi_encode_h265: Enable support for more RC modesMark Thompson2019-02-25
| | | | | | | | | | Also fixes QP going out of range when modified by the quant factor/offset values, and clarifies the QP behaviour for >8-bit modes.