1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-02-20 07:48:15 +02:00

41341 Commits

Author SHA1 Message Date
Martin Vignali
a3f65f5e9f avcodec/proresenc_aw : fix sub_image_with_fill for interlaced encoding
used when width and/or height, not multiple of sclice dim
2019-02-27 17:59:48 +01:00
gxw
4571c7c05d avcodec/mips: [loongson] mmi optimizations for VP9 put and avg functions
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>
2019-02-27 01:51:40 +01:00
Mark Thompson
f948082e5f vaapi_encode_mpeg2: Add missing marker bit in time_code
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.
2019-02-25 23:34:14 +00:00
Mark Thompson
fda6dcd0b0 vaapi_encode_mjpeg: Use common quality option
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).
2019-02-25 23:34:14 +00:00
Mark Thompson
c4c2c4df76 vaapi_encode_vp9: Fix whitespace after previous patch 2019-02-25 23:34:14 +00:00
Mark Thompson
28e619e268 vaapi_encode_vp9: Enable support for more RC modes 2019-02-25 23:34:14 +00:00
Mark Thompson
2efd63a315 vaapi_encode_vp8: Enable support for more RC modes 2019-02-25 23:34:14 +00:00
Mark Thompson
1e0fac7663 vaapi_encode_mpeg2: Enable support for more RC modes
Fixes #7650.
2019-02-25 23:33:59 +00:00
Mark Thompson
d237b6b549 vaapi_encode_h265: Enable support for more RC modes
Also fixes QP going out of range when modified by the quant factor/offset
values, and clarifies the QP behaviour for >8-bit modes.
2019-02-25 23:32:23 +00:00
Mark Thompson
f5eb08937e vaapi_encode_h264: Enable support for more RC modes
Also fixes QP going out of range when modified by the quant factor/offset
values.
2019-02-25 23:32:23 +00:00
Mark Thompson
f4d7bd6cdb vaapi_encode: Support more RC modes
Allow setting the mode explicitly, and try to make a sensible choice
given the available parameters if not.
2019-02-25 23:32:23 +00:00
Mark Thompson
9d5ca71ec2 vaapi_encode: Do not zero access unit structures
Following b8c45bbcbc207293f955e838ea66106f4b65b1ac they contain allocated
unit arrays which will get leaked.  These operations were inconsistently
applied and never actually needed (the old uninit left them in the correct
state), so just drop them entirely.
2019-02-25 23:27:11 +00:00
Andreas Rheinhardt
b8c45bbcbc libavcodec/cbs: Stop needlessly reallocating the units array
Currently, a fragment's unit array is constantly reallocated during
splitting of a packet. This commit changes this: One can keep the units
array by distinguishing between the number of allocated and the number
of valid units in the units array.

The more units a packet is split into, the bigger the benefit.
So MPEG-2 benefits the most; for a video coming from an NTSC-DVD
(usually 32 units per frame) the average cost of cbs_insert_unit (for a
single unit) went down from 6717 decicycles to 450 decicycles (based
upon 10 runs with 4194304 runs each); if each packet consists of only
one unit, it went down from 2425 to 448; for a H.264 video where most
packets contain nine units, it went from 4431 to 450.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2019-02-25 21:40:13 +00:00
Andreas Rheinhardt
c5b452ed2f filter_units, trace_headers: Always use fragment from context
This is in preparation for another patch that will stop needless
reallocations of the unit array.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
2019-02-25 20:38:57 +00:00
Michael Niedermayer
976dae8b32 avcodec/wcmv: Avoid copying frames if they are unchanged
Improves speed of the testcase by about a factor of 10

Fixes: Timeout
Fixes: 13132/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664190616829952

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
286a33e429 avcodec/wcmv: Copy/Init frame later
Speeds up error cases
Fixes: 13132/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WCMV_fuzzer-5664190616829952

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
e4289cb253 avcodec/error_resilience: Use a symmetric check for skipping MV estimation
This speeds up the testcase by a factor of 4

Fixes: Timeout
Fixes: 13100/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV2_fuzzer-5767533905313792

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
32d022d26d avcodec/mjpegdec: Fix stereo3d memleak
Fixes: 12937/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_THP_fuzzer-5714945346371584

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
160851bcee avcodec/arbc: Check nb_tiles against dimensions
Fixes: Timeout
Fixes: 12967/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ARBC_fuzzer-5639021454163968

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-25 18:03:24 +01:00
Michael Niedermayer
fc32e08941 avcodec/mlpdec: Insuffient typo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Michael Niedermayer
3f68948cb3 avcodec/pnm: Avoid structure pointer dereferences in inner loop in pnm_get()
Improves speed from 5.4 to 4.2 seconds
Fixes: 13149/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGM_fuzzer-5760833622114304
Fixes: 13166/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PGMYUV_fuzzer-5763216322330624

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Michael Niedermayer
177b40890c avcodec/zmbv: obtain frame later
The frame is not needed that early so obtaining it later avoids
the costly operation in case other checks fail.

Fixes: Timeout (14sec -> 4sec)
Fixes: 13140/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ZMBV_fuzzer-5738330308739072

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Michael Niedermayer
61523683c5 avcodec/jvdec: Check available input space before decode8x8()
Fixes: Timeout (78 sec -> 15 millisec)
Fixes: 13147/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JV_fuzzer-5727107827630080

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-23 22:48:35 +01:00
Martin Vignali
37e4c226c0 avcodec/proresenc_aw : indent after prev commit 2019-02-23 13:21:38 +01:00
Martin Vignali
132ed206d6 avcodec/proresenc_aw : add interlace encoding 2019-02-23 13:21:33 +01:00
Martin Vignali
e7cbbb7374 avcodec/proresenc_aw : merge funcs subimage_with_fill and subimage_alpha_with_fill 2019-02-23 13:21:29 +01:00
Martin Vignali
8a4a952e45 avcodec/proresenc_aw : move scantable to prores context 2019-02-23 13:21:25 +01:00
Martin Vignali
2016f9c3bc avcodec/proresenc_aw : move picture encoding after frame header write 2019-02-23 13:21:21 +01:00
Martin Vignali
6cc8cfe30c avcodec/proresenc_aw : simplify frame flags 2019-02-23 13:21:17 +01:00
Carl Eugen Hoyos
7e4d3dbe18 lavc/aarch64/h264dsp_init: Only use neon horizontal intra loopfilter for 4:2:0. 2019-02-20 23:56:21 +01:00
James Almer
72458b3f08 ppc/h264dsp: change loop filter stride argument to ptrdiff_t
This was missed in d5d699ab6e6f8a8290748d107416fd5c19757a1b

Signed-off-by: James Almer <jamrial@gmail.com>
2019-02-20 19:40:09 -03:00
James Almer
7b9ca44cbc arm/h264dsp: change loop filter stride argument to ptrdiff_t
This was missed in d5d699ab6e6f8a8290748d107416fd5c19757a1b

Signed-off-by: James Almer <jamrial@gmail.com>
2019-02-20 19:38:55 -03:00
James Almer
aa844dc46f aarch64/h264dsp: change loop filter stride argument to ptrdiff_t
This was missed in d5d699ab6e6f8a8290748d107416fd5c19757a1b

Signed-off-by: James Almer <jamrial@gmail.com>
2019-02-20 19:38:46 -03:00
Michael Niedermayer
5ccf296e74 avcodec/h264_direct: Fix overflow in POC comparission
Fixes: runtime error: signed integer overflow: 2147421862 - -33624063 cannot be represented in type 'int'
Fixes: 12885/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-5733516975800320

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-20 23:11:41 +01:00
James Almer
f05f210526 Merge commit 'eec93e57096aa4804862d62760442380c70d489b'
* commit 'eec93e57096aa4804862d62760442380c70d489b':
  libopenh264dec: Use a newer decoding entry point function

Merged-by: James Almer <jamrial@gmail.com>
2019-02-20 15:43:30 -03:00
James Almer
e4e04dce1f Merge commit '28a8b5413b64b831dfb8650208bccd8b78360484'
* commit '28a8b5413b64b831dfb8650208bccd8b78360484':
  h264/aarch64: add intra loop filter neon asm

Merged-by: James Almer <jamrial@gmail.com>
2019-02-20 15:42:01 -03:00
James Almer
4dc1f06f0c Merge commit '846c3d6aca5484904e60946c4fe8b8833bc07f92'
* commit '846c3d6aca5484904e60946c4fe8b8833bc07f92':
  h264/aarch64: optimize neon loop filter

Merged-by: James Almer <jamrial@gmail.com>
2019-02-20 15:41:03 -03:00
James Almer
d5d699ab6e avcodec/h264dsp: change loop filter stride argument to ptrdiff_t 2019-02-20 15:27:43 -03:00
James Almer
5ca7eb36b7 Merge commit 'bb515e3a735f526ccb1068031e289eb5aeb69e22'
* commit 'bb515e3a735f526ccb1068031e289eb5aeb69e22':
  h264/aarch64: sign extend int stride in loop filter asm

Merged-by: James Almer <jamrial@gmail.com>
2019-02-20 14:50:37 -03:00
James Almer
0c126431f9 Merge commit '90adbf4abf336f8042aecdf1e18fdf76a96304b1'
* commit '90adbf4abf336f8042aecdf1e18fdf76a96304b1':
  cook: Use the correct table for 6-bit stereo coupling

Merged-by: James Almer <jamrial@gmail.com>
2019-02-20 14:47:13 -03:00
Martin Storsjö
c8bc9d1380 aarch64: vp8: Move the vp8dsp makefile entries to the right places
Even if NEON would be disabled, the init functions should be built
as they are called as long as ARCH_AARCH64 is set.

These functions are part of a generic DSP subsytem, not tied directly
to one decoder. (They should be built if the vp7 decoder is enabled,
even if the vp8 decoder is disabled.)

Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit b4b27dce95a6d40bfcd78043d3abec7d80dae143)
2019-02-19 23:43:17 +02:00
Martin Storsjö
fecf75a5c4 aarch64: vp8: Remove superfluous includes
This fixes building with MSVC, which lacks unistd.h.

Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit ad32f7b1264dbc614f0db1c443d5361420e9e07e)
2019-02-19 23:42:16 +02:00
Martin Storsjö
7ddfa5e908 aarch64: vp8: Fix assembling with armasm64
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit 2eeac79936e83c4495cbe5905064ab797e9b45ff)
2019-02-19 23:42:03 +02:00
Martin Storsjö
c950beb68d aarch64: vp8: Fix assembling with clang
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>
(cherry picked from commit 26d7af4c381ee3c7b13b032b3817168b84b98ca6)
2019-02-19 23:41:47 +02:00
Matthew Fearnley
f2e89fe4d3 libavcodec/zmbvenc: motion estimation improvements/bug fixes:
- Clamp ME range to -64..63 (prevents corruption when me_range is too high)
- Allow MV's up to *and including* the positive range limit
- Allow out-of-edge ME by padding the prev buffer with a border of 0's
- Try previous MV before checking the rest (improves speed in some cases)
- More robust logic in code - ensure *mx,*my,*xored are updated together
2019-02-19 21:25:14 +01:00
Matthew Fearnley
2d80b56ce0 libavcodec/zmbvenc: block scoring improvements/bug fixes
- Improve block choices by counting 0-bytes in the entropy score
- Make histogram use uint16_t type, to allow byte counts from 16*16
(current block size) up to 255*255 (maximum allowed 8bpp block size)
- Make sure score table is big enough for a full block's worth of bytes
- Calculate *xored without using code in inner loop
2019-02-19 21:25:14 +01:00
hwren
ff03418348 lavc/libdavs2: fix parameter setting error
Signed-off-by: hwrenx <hwrenx@126.com>
2019-02-19 13:21:04 +08:00
hwren
11751f6252 lavc/libxavs2: use upper layer qp parameters first
Signed-off-by: hwrenx <hwrenx@126.com>
2019-02-19 13:21:04 +08:00
hwren
8754147db6 lavc/libxavs2: remove unused context parameter
Signed-off-by: hwrenx <hwrenx@126.com>
2019-02-19 13:21:04 +08:00
Kevin Backhouse via RT
894995c41e avcodec/htmlsubtitles: Fixes denial of service due to use of sscanf in inner loop for handling braces
Fixes: [Semmle Security Reports #19439]
Fixes: dos_sscanf2.mkv

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-02-17 10:29:42 +01:00