Commit graph

37962 commits

Author SHA1 Message Date
Rostislav Pehlivanov
03eb0515c1 mpegvideo_enc: disable optimized huffman coding with AMV or slice threads
Doesn't work yet with slice threading and won't work with AMV.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-09 21:53:31 +02:00
Michael Niedermayer
724bb805ef Revert "mjpegenc: disable huffman coding with AMV"
This was the wrong patch

This reverts commit 7f9b492d54.
2017-04-09 21:53:30 +02:00
James Almer
4588063f3e avcodec/hevcdec: remove duplicate extradata parsing function
Use ff_hevc_decode_extradata() instead, which correctly only tries
to decode parameter set NAL units and not any other NAL that may be
present in extradata.

Reviewed-by: nevcairiel
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-09 14:09:05 -03:00
James Almer
498e9e8e2a avcodec/hevc_parse: split build dependencies
Reviewed-by: nevcairiel
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-09 13:55:17 -03:00
James Almer
f1533979a2 avcodec/hevc_parse: allow setting apply_defdispwin when decoding SPS NAL units
Reviewed-by: nevcairiel
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-09 13:46:35 -03:00
James Almer
159ab4625b avcodec/hevc_parse: check for parameter set decoding failure
Reviewed-by: nevcairiel
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-09 13:46:33 -03:00
James Almer
aed84ee4d1 avcodec/svq1: zero initialize entries array
Fixes valgrind warnings about "Use of uninitialised value of size 8"

Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-09 13:38:41 -03:00
James Almer
521197ebec Merge commit 'e1dc5358af'
* commit 'e1dc5358af':
  build: Create a component for MPEG audio header decoding

Merged-by: James Almer <jamrial@gmail.com>
2017-04-09 12:29:58 -03:00
Clément Bœsch
63bb3db9aa Merge commit '0fdc9f81a0'
* commit '0fdc9f81a0':
  build: Add missing hevc_ps dependency for QSV HEVC encoder

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-09 15:10:30 +02:00
Paul B Mahol
20f7872d99 avcodec/hqx: add support for frame threads
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-09 10:50:11 +02:00
Paul B Mahol
24d9b0c29c avcodec/cllc: add support for frame threads
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-09 10:40:40 +02:00
Michael Niedermayer
9244b839b7 avcodec/dcadsp: Fix runtime error: signed integer overflow
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-09 03:51:19 +02:00
Rostislav Pehlivanov
45eeb1f785 mjpegenc: enable optimal huffman coding by default
As it gives excellent encoding gains at an insignificant speed increase
and passes fate without problems, it should now be safe to enable by
default.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-09 00:00:39 +01:00
Rostislav Pehlivanov
7f9b492d54 mjpegenc: disable huffman coding with AMV
Isn't supported.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-09 00:00:32 +01:00
Rostislav Pehlivanov
2c9be3882a mjpegenc_common: check for codec ID before using avctx->priv_data
When coding lossless jpeg the priv context will be pointing to LJpegEncContext
rather than MpegEncContext, which the function expects.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 23:57:39 +01:00
Clément Bœsch
b853d6aa5b Merge commit 'd82d5379ca'
* commit 'd82d5379ca':
  mmaldec: initialize refcount using atomic_init()

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-08 14:52:30 +02:00
Clément Bœsch
97745b131a Merge commit '5168026a05'
* commit '5168026a05':
  options_table: Do not rely on enum size as option bound

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-08 14:49:10 +02:00
Clément Bœsch
883fe17e3b Merge commit 'ff9db5cfd1'
* commit 'ff9db5cfd1':
  lavc: Use a stricter check for the color properties values

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-08 14:41:10 +02:00
Clément Bœsch
5be1440c74 Merge commit '0a35f128f3'
* commit '0a35f128f3':
  cabac: x86: Give optimizations header a more meaningful name

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-08 14:30:13 +02:00
Clément Bœsch
6e836052d8 Merge commit '5c89022542'
* commit '5c89022542':
  hevc: Drop pointless av_unused attribute

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-08 14:18:03 +02:00
Clément Bœsch
2d40fbe639 Merge commit '0983f9117f'
* commit '0983f9117f':
  metasound: Drop unused tables

This commit is mostly a noop, see
276a8666d2
e8319f602e

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-08 14:16:32 +02:00
Rostislav Pehlivanov
d0a3143193 opusenc: switch between intra/inter mode for coarse energy
Saves around 5kbps.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:54:56 +01:00
Rostislav Pehlivanov
c39fba703b opusenc: do not signal digital silence
Apparently its only use is to enable comfort noise/error recovery.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:48:28 +01:00
Rostislav Pehlivanov
42ffc67208 opusenc: minor style changes
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:40:33 +01:00
Rostislav Pehlivanov
63744d8afd opusenc: remove unused header entries and simplify normalization
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:27:33 +01:00
Rostislav Pehlivanov
a66121d964 opus_rc: add macros for checkpoint rollback
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:27:33 +01:00
Rostislav Pehlivanov
6d0b62a12b opus_celt: fix some style issues
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:27:33 +01:00
Rostislav Pehlivanov
db788de8ec mdct15: use existing complex multiplication macros
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-08 00:27:33 +01:00
James Almer
e7fb6bc32d avcodec/hevc_parse: ignore all non parameter set NAL units in extradata
While they shouldn't be present, they are harmless if they are.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-07 17:23:57 -03:00
Paul B Mahol
faa94a576f avcodec/utvideodec: add support for gradient prediction
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-07 20:11:23 +02:00
Ronald S. Bultje
2e664b9c1e pthread_frame: make accesses to debug field be protected by owner lock.
The av_log() is done outside the lock, but this way the accesses to the
field (reads and writes) are always protected by a mutex. The av_log()
is not run inside the lock context because it may involve user callbacks
and doing that in performance-sensitive code is probably not a good idea.

This should fix occasional tsan warnings when running fate-h264, like:

WARNING: ThreadSanitizer: data race (pid=10916)
  Write of size 4 at 0x7d64000174fc by main thread (mutexes: write M2313):
    #0 update_context_from_user src/libavcodec/pthread_frame.c:335 (ffmpeg+0x000000df7b06)
[..]
  Previous read of size 4 at 0x7d64000174fc by thread T1 (mutexes: write M2311):
    #0 ff_thread_await_progress src/libavcodec/pthread_frame.c:592 (ffmpeg+0x000000df8b3e)
2017-04-07 13:29:45 -04:00
Ronald S. Bultje
7f05c5cea0 h264: don't re-call ff_h264_direct_ref_list_init() w/ frame-mt.
I'm hoping that this will address the remaining tsan fate-h264 issues:

WARNING: ThreadSanitizer: data race (pid=24478)
  Read of size 8 at 0x7dbc0001c828 by main thread (mutexes: write M3243):
    #0 ff_h264_ref_picture src/libavcodec/h264_picture.c:107 (ffmpeg+0x0000013b78d8)
[..]
  Previous write of size 1 at 0x7dbc0001c82e by thread T2 (mutexes: write M3245):
    #0 ff_h264_direct_ref_list_init src/libavcodec/h264_direct.c:137 (ffmpeg+0x000001382c93)

But I'm not sure because I haven't been able to reproduce locally.
2017-04-07 13:29:45 -04:00
Clément Bœsch
8d94d9798a lavc/mjpegdec: allow failure while decoding APP
Fix decoding frame.jpg from ticket #267

Regression since 9c7ee3749 / 212c6a1d7
2017-04-07 18:05:20 +02:00
James Almer
7c1566fec3 avcodec/tta: Don't try to read more than MIN_CACHE_BITS bits
This fixes assertion failures introduced in 4fbb56acbe.

Reviewed-by: michaelni
Reviewed-by: durandal_1707
2017-04-07 12:52:17 -03:00
Michael Niedermayer
08117a4015 avcodec/h264: Check weight values to be within the specs limits.
Fixes: integer overflows
Fixes: 911/clusterfuzz-testcase-5415105606975488

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-07 15:33:17 +02:00
Clément Bœsch
9c7ee37490 Merge commit '212c6a1d70'
* commit '212c6a1d70':
  mjpegdec: Check return values of functions that may fail

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-07 10:17:53 +02:00
Clément Bœsch
e7326e2980 Merge commit '3ee5f25d37'
* commit '3ee5f25d37':
  dxva2: Adjust printf length modifiers where appropriate

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-07 10:08:53 +02:00
James Almer
00fb745a10 Merge commit '3fe2a01df7'
* commit '3fe2a01df7':
  lavc: move decoding-related code from utils.c to a new file

Merged-by: James Almer <jamrial@gmail.com>
2017-04-07 01:19:56 -03:00
James Almer
bd9057e74b Merge commit '328cd2b599'
* commit '328cd2b599':
  lavc: move encoding-related code from utils.c to a new file

Merged-by: James Almer <jamrial@gmail.com>
2017-04-07 00:42:38 -03:00
Diego Biurrun
b0f67d03c5 ac3enc: Avoid unnecessary macro indirections
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-07 00:25:55 -03:00
James Almer
e7ec8c181f Merge commit 'f0d3e43bd7'
* commit 'f0d3e43bd7':
  ac3enc: Reshuffle functions to avoid forward declarations

Merged-by: James Almer <jamrial@gmail.com>
2017-04-07 00:19:32 -03:00
James Almer
c37e8c0b7f Merge commit 'e22c63ac74'
* commit 'e22c63ac74':
  ac3enc: Reshuffle some float/fixed-mode ifdefs to avoid a dummy function

Merged-by: James Almer <jamrial@gmail.com>
2017-04-07 00:04:37 -03:00
James Almer
4fbb56acbe Merge commit '4adbb44ad1'
* commit '4adbb44ad1':
  tta: avoid undefined shifts

Merged-by: James Almer <jamrial@gmail.com>
2017-04-06 23:45:20 -03:00
Michael Niedermayer
61ee2ca775 avcodec/dvdsubdec: Fixes 2 runtime error: left shift of 170 by 24 places cannot be represented in type 'int'
Fixes: 619/clusterfuzz-testcase-5803914534322176

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-07 03:38:31 +02:00
Michael Niedermayer
afe950e1fa avcodec/bitpacked: Fix mixed declarations and statement
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-07 00:43:46 +02:00
wm4
15a23a8332 pthread_frame: don't return stale error codes after flush
Consider the following sequence of events:

- open a codec without AV_CODEC_CAP_DELAY
- decode call fails with an error
- ff_thread_flush() is called
- drain packet is sent

Then the last step would make ff_thread_decode_frame() return an error,
because p->result can still be set to an error value. This is because
submit_packet returns immediately if AV_CODEC_CAP_DELAY is not set, and
no worker thread gets the chance to reset p->result, yet its value is
trusted by ff_thread_decode_frame().

Fix this by clearing the error fields on flush.
2017-04-06 17:46:53 +02:00
James Almer
e5c11ab9ce avcodec: fix containts typo 2017-04-06 11:45:58 -03:00
Steve Lhomme
157e57a181 lavc: Add Content Light Level side metadata found in HEVC
These data are necessary when transmitting HDR over HDMI.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-06 11:38:15 -03:00
Shivraj Patil
2a512f86c1 build fix for mips
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2017-04-06 10:10:09 -04:00
Ronald S. Bultje
fed92adbb3 vp8: make mv_min/max thread-local if using partition threading.
Fixes tsan warnings like this in fate-vp8-test-vector-007:

WARNING: ThreadSanitizer: data race (pid=65909)
  Write of size 4 at 0x7d8c0000e088 by thread T1:
    #0 vp8_decode_mb_row_sliced vp8.c:2519 (ffmpeg:x86_64+0x100995ede)
[..]
  Previous write of size 4 at 0x7d8c0000e088 by thread T2:
    #0 vp8_decode_mb_row_sliced vp8.c:2519 (ffmpeg:x86_64+0x100995ede)
2017-04-06 10:03:28 -04:00