summaryrefslogtreecommitdiff
path: root/libavutil
Commit message (Collapse)AuthorAge
* 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>
* avutil/cuda_check: Fix non-dynamic-loader implementationPhilip Langdale2019-02-24
| | | | | | | | | The function typedefs we were using are only present when using the dynamic loader, which means compilation breaks for code directly using the cuda SDK. To fix this, let's just duplicate the function typedefs locally. These are not going to change.
* Merge commit '41cf3e3b1ca375962951fde1b90a03b16197d205'James Almer2019-02-20
|\ | | | | | | | | | | | | * commit '41cf3e3b1ca375962951fde1b90a03b16197d205': arm: Create proper .rdata sections for COFF Merged-by: James Almer <jamrial@gmail.com>
| * arm: Create proper .rdata sections for COFFMartin Storsjö2019-01-25
| | | | | | | | | | | | | | | | | | | | | | | | As .rodata isn't one of the default created sections for COFF, it was created as a read-write data section. By using the default .rdata section name for COFF, it automatically becomes a read-only data section. The existing ".section .rodata" works as intended for ELF though. This is based on an original patch and diagnose by Tom Tan <Tom.Tan@microsoft.com>. Signed-off-by: Martin Storsjö <martin@martin.st>
| * pixfmt: Add GRAY10Carl Eugen Hoyos2018-11-06
| | | | | | | | | | | | Based on 7471352f by Luca Barbato. Signed-off-by: James Almer <jamrial@gmail.com>
| * libavutil: Undeprecate the AVFrame reordered_opaque fieldMartin Storsjö2018-11-05
| | | | | | | | | | | | | | | | This was marked as deprecated (but only in the doxygen, not with an actual deprecation attribute) in 81c623fae05 in 2011, but was undeprecated in ad1ee5fa7. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Merge commit '5584abf69d83169a010aca404cd1cf95c23ad9ef'James Almer2019-02-20
|\| | | | | | | | | | | | | * commit '5584abf69d83169a010aca404cd1cf95c23ad9ef': arm: Emit .thumb_func directives Merged-by: James Almer <jamrial@gmail.com>
| * arm: Emit .thumb_func directivesMartin Storsjö2018-10-12
| | | | | | | | | | | | | | | | | | | | | | Prior to Xcode 9.3, the clang built-in assembler didn't support altmacro, and gas-preprocessor was used for assembling for arm/darwin. For thumb functions, gas-preprocessor took care of adding the .thumb_func directives, but when now being able to assemble without gas-preprocessor, we need to add these directives ourselves. Signed-off-by: Martin Storsjö <martin@martin.st>
* | avutil/cuda_check: avoid pointlessly exporting same symbol from two librariesTimo Rothenpieler2019-02-14
| |
* | lavu/parseutils: Allow to parse >= 100 hours.Carl Eugen Hoyos2019-02-09
| | | | | | | | | | Reported and tested by gamnark. Fixes ticket #7721.
* | avutil/ppc/cpu: Fix power8 linux detectionLauri Kasanen2019-02-05
| | | | | | | | | | The existing code was in no released kernel that I can see. The corrected code was added in 3.9.
* | lavu/imgutils: Use FFABS() instead of abs() for ptrdiff_t.Carl Eugen Hoyos2019-02-01
| | | | | | | | | | | | | | Fixes a warning with clang: libavutil/imgutils.c:314:16: warning: absolute value function 'abs' given an argument of type 'ptrdiff_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value
* | avcodec/mips: [loongson] optimize put_hevc_qpel_hv_8 with mmi.Shiyou Yin2019-01-22
| | | | | | | | | | | | | | Optimize put_hevc_qpel_hv_8 with mmi in the case width=4/8/12/16/24/32/48/64. This optimization improved HEVC decoding performance 11%(1.81x to 2.01x, tested on loongson 3A3000). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avutil/imgutils: Optimize memset_bytes() by using av_memcpy_backptr()Michael Niedermayer2019-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | This is strongly based on code by Marton Balint, and depends on the previous commit Fixes: Timeout Fixes: 11502/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664893810769920 Before: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664893810769920 in 11209 ms After: Executed clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664893810769920 in 4104 ms Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avutil/mem: Optimize fill32() by unrolling and using 64bitMichael Niedermayer2019-01-20
| | | | | | | | | | Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavu/frame: Fix typo.Carl Eugen Hoyos2019-01-18
| |
* | avutil: add ROI (Region Of Interest) data struct and bump versionGuo, Yejun2019-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The encoders such as libx264 support different QPs offset for different MBs, it makes possible for ROI-based encoding. It makes sense to add support within ffmpeg to generate/accept ROI infos and pass into encoders. Typical usage: After AVFrame is decoded, a ffmpeg filter or user's code generates ROI info for that frame, and the encoder finally does the ROI-based encoding. The ROI info is maintained as side data of AVFrame. Signed-off-by: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | intreadwrite: add AV_RL64A, AV_WL64APeter Ross2019-01-11
| | | | | | | | | | | | | | | | macros for reading and writing 64-bit aligned little-endian values. these macros are used by the DST decoder and give a performance boost on platforms that where the compiler must guard against unaligned memory access.
* | Add HDR dynamic metadata struct (for SMPTE 2094-40) to libavutilMohammad Izadi2018-12-21
| | | | | | | | | | | | | | | | The dynamic metadata contains data for color volume transform - application 4 of SMPTE 2094-40:2016 standard. The data comes from HEVC in the SEI_TYPE_USER_DATA_REGISTERED_ITU_T_T35. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | lavu/internal: Replace an empty loop with "do {}".Carl Eugen Hoyos2018-12-19
| | | | | | | | | | | | | | Silences a clang warning when not compiling for x86: libswscale/utils.c:345:13: warning: while loop has empty body Suggested-by: Nicolas George
* | avutil/tests/random_seed: seeds[] is uint32_t, therefore use PRIX32 macroPeter Ross2018-12-16
| | | | | | | | squelch format type warning
* | avutil/avsscanf: do not use long double functionsPaul B Mahol2018-12-15
| | | | | | | | Not needed when only double is used.
* | hwcontext_opencl: Use correct function to enumerate devicesMark Thompson2018-12-02
| | | | | | | | Also assert that all required functions are present.
* | avpriv_tempfile: add djgpp fallbackPeter Ross2018-11-28
| |
* | hwcontext_opencl: Only release command queue if it existsMark Thompson2018-11-28
| | | | | | | | | | If the frames context creation fails then the command queue reference need not exist when uninit is called.
* | avutil/mem: Fix invalid use of av_alloc_sizeMark Harris2018-11-26
| | | | | | | | | | | | | | | | | | | | | | The alloc_size attribute is valid only on functions that return a pointer. GCC 9 (not yet released) warns about invalid usage: ./libavutil/mem.h:342:1: warning: 'alloc_size' attribute ignored on a function returning int' [-Wattributes] 342 | av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size); | ^~~~~~~~~~~~~ Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avutil : add YUVA444P12 and YUVA422P12Martin Vignali2018-11-24
| |
* | avutil/avsscanf: do not use unsupported p suffix for hex variablePaul B Mahol2018-11-22
| |
* | avutil/avsscanf: use ptrdiff_t instead of off_tPaul B Mahol2018-11-19
| |
* | avutil/mem: Correct documentation of av_fast_*alloc(z)Andreas Rheinhardt2018-11-18
| | | | | | | | | | | | | | | | | | The current wording regarding size and min_size is completely wrong and ignores that min_size is indeed only a desired minimal size, not the actually allocated size. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavu/avsscanf: Do not mix declaration and code.Carl Eugen Hoyos2018-11-18
| | | | | | | | | | | | | | | | Fixes the following warning: libavutil/avsscanf.c: In function 'decfloat': libavutil/avsscanf.c:354:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] int bitlim = bits-3*(int)(rp-9); ^~~
* | avutil/cuda_check: Make sure this passes make fate-sourcePhilip Langdale2018-11-17
| | | | | | | | | | | | | | | | The header guards were unnecessarily non-standard and the c file inclusion trick means the files dont't have standard licence headers. Based on a patch by: Martin Vignali <martin.vignali@gmail.com>
* | lavu: add locale-independent sscanf implementationPaul B Mahol2018-11-16
| | | | | | | | | | | | Copied and adopted from musl implementation. * converted all 'long double' to 'double' * removed %m support
* | avutil/hwcontext_cuda: Define and use common CHECK_CU()Philip Langdale2018-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a pattern of wrapping CUDA calls to print errors and normalise return values that is used in a couple of places. To avoid duplication and increase consistency, let's put the wrapper implementation in a shared place and use it everywhere. Affects: * avcodec/cuviddec * avcodec/nvdec * avcodec/nvenc * avfilter/vf_scale_cuda * avfilter/vf_scale_npp * avfilter/vf_thumbnail_cuda * avfilter/vf_transpose_npp * avfilter/vf_yadif_cuda
* | libavutil: Undeprecate the AVFrame reordered_opaque fieldMartin Storsjö2018-11-05
| | | | | | | | | | | | | | | | This was marked as deprecated (but only in the doxygen, not with an actual deprecation attribute) in 81c623fae05 in 2011, but was undeprecated in ad1ee5fa7. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Bump minor version for master after 4.1 branchpointMichael Niedermayer2018-11-02
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Bump minor versions for branching 4.1Michael Niedermayer2018-11-02
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavu/frame: Add error report if av_image_fill_pointers fail.Jun Zhao2018-10-30
| | | | | | | | | | | | | | Add error handle if av_image_fill_pointers fail. Signed-off-by: Jun Zhao <mypopydev@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
* | avutil/pixdesc: Add av_write_image_line2(), av_read_image_line2()Michael Niedermayer2018-10-27
| | | | | | | | | | | | | | | | | | This is needed because of 32bit float formats (which are difficult to store in 16bits) This also fixes undefined behavior found by fate Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avutil/integer: Fix integer overflow in av_mul_i()Michael Niedermayer2018-10-24
| | | | | | | | | | Found-by: fate Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavu: bump version, add Changelog entryJosh de Kock2018-10-24
| |
* | lavc/h264: create AVFrame side data from H.264 timecodesDevin Heitmueller2018-10-23
| | | | | | | | | | | | | | | | | | Create SMPTE ST 12-1 timecodes based on H.264 SEI picture timing info. For framerates > 30 FPS, the field flag is used in conjunction with pairs of frames which contain the same frame timestamp in S12M. Ensure the field is properly set per the spec.
* | lavu/qsv: make a copy as libmfx alignment requirement for uploadingZhong Li2018-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Libmfx requires 16 bytes aligned input/output for uploading. Currently only output is 16 byte aligned and assigning same width/height to input with smaller buffer size actually, thus definitely will cause segment fault. Can reproduce with any 1080p nv12 rawvideo input: ffmpeg -init_hw_device qsv=qsv:hw -hwaccel qsv -filter_hw_device qsv -f rawvideo -pix_fmt nv12 -s:v 1920x1080 -i 1080p_nv12.yuv -vf 'format=nv12,hwupload=extra_hw_frames=16,hwdownload,format=nv12' -an -y out_nv12.yuv It can fix #7418 Signed-off-by: Zhong Li <zhong.li@intel.com>
* | lavu/hwcontext_qsv: Add support for AV_PIX_FMT_BGRA.Zhong Li2018-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RGB32(AV_PIX_FMT_BGRA on intel platforms) format may be used as overlay with alpha blending. So add AV_PIX_FMT_BGRA format support. One example of alpha blending overlay: ffmpeg -hwaccel qsv -c:v h264_qsv -i BA1_Sony_D.jsv -filter_complex 'movie=lena-rgba.png,hwupload=extra_hw_frames=16[a];[0:v][a]overlay_qsv=x=10:y=10' -c:v h264_qsv -y out.mp4 Rename RGB32 to be BGRA to make it clearer as Mark Thompson's suggestion. V2: Add P010 format support else will introduce HEVC 10bit encoding regression. Thanks for LinJie's discovery. Signed-off-by: Zhong Li <zhong.li@intel.com> Verified-by: Fu, Linjie <linjie.fu@intel.com>
* | avutil/tests/parseutils: add some big duration testsMarton Balint2018-10-07
| | | | | | | | Signed-off-by: Marton Balint <cus@passwd.hu>
* | avutil/parseutils: fix some overflows in duration calculationsMarton Balint2018-10-07
| | | | | | | | | | | | Also properly return AVERROR(ERANGE) in case of actual overflows. Signed-off-by: Marton Balint <cus@passwd.hu>
* | avutil/opt: check for minimum and maximum values when setting ↵Marton Balint2018-10-07
| | | | | | | | | | | | AV_OPT_TYPE_DURATION fields Signed-off-by: Marton Balint <cus@passwd.hu>
* | Merge commit '21733b39d0af5211d7b9f168ff3667ea86362e2b'Mark Thompson2018-10-06
|\| | | | | | | | | | | | | | | | | * commit '21733b39d0af5211d7b9f168ff3667ea86362e2b': lavu/qsv: fix a random hwupload failure regression Fixes CID #1439585. Merged-by: Mark Thompson <sw@jkqxz.net>
| * lavu/qsv: fix a random hwupload failure regressionZhong Li2018-10-03
| | | | | | | | | | | | | | | | Variable 'ret' hasn't been initialized,thus introducing a random hwupload failure regression due to qsv session uninitialized. Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | hwcontext_vaapi: Improve format mappingMark Thompson2018-09-23
| | | | | | | | | | | | | | Give the entries in the VAAPI format map table an explicit type and add functions to do the necessary lookups. Add another field to this table indicating whether the chroma planes are swapped (as in YV12), and use that rather than explicit comparisons where swapping is needed.