Commit Graph

37853 Commits

Author SHA1 Message Date
Ronald S. Bultje
b51d7d89f8 x86/xvididct: remove use of ff_put/add_pixels_clamped function pointer.
Since there's separate SSE2 implementations of xvid_idct_put/add, this
patch has no practical impact on performance.
2017-04-06 10:03:27 -04:00
Ronald S. Bultje
40cbd686dc idct_arm: remove use of ff_put/add_pixels_clamped function pointer.
Instead, hardcode the use of the _arm implementation of add_pixels,
and use the C version for put_pixels (as no arm-optimized version
exists). Since there's separate implementations of idct{,_put,_add}
for neon, this has no practical impact on performance.
2017-04-06 10:03:27 -04:00
Ronald S. Bultje
083300bea9 pthread_frame: allow per-field ThreadFrame owners.
This tries to handle cases where separate invocations of decode_frame()
(each running in separate threads) write to respective fields in the
same AVFrame->data[]. Having per-field owners makes interaction between
readers (the referencing thread) and writers (the decoding thread)
slightly more optimal if both accesses are field-based, since they will
use the respective producer's thread objects (mutex/cond) instead of
sharing the thread objects of the first field's producer.

In practice, this fixes the following tsan-warning in fate-h264:

WARNING: ThreadSanitizer: data race (pid=21615)
  Read of size 4 at 0x7d640000d9fc by thread T2 (mutexes: write M1006):
    #0 ff_thread_report_progress pthread_frame.c:569 (ffmpeg:x86_64+0x100f7cf54)
[..]
  Previous write of size 4 at 0x7d640000d9fc by main thread (mutexes: write M1004):
    #0 update_context_from_user pthread_frame.c:335 (ffmpeg:x86_64+0x100f81abb)
2017-04-06 10:03:27 -04:00
Michael Niedermayer
b02027c79d avcodec/dvbsubdec: Replace fprintf(stderr) by av_log()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-05 23:57:08 +02:00
Rostislav Pehlivanov
c901ae9440 bitpacked: fix potential overflow
Fixes: CID1404842

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-05 20:51:13 +01:00
Ronald S. Bultje
7c7e7c44a6 huffyuv: assign correct per-thread avctx pointer to HYuvContext::avctx.
Fixes the following tsan warning when running fate-vsynth_lena-ffvhuff:

WARNING: ThreadSanitizer: data race (pid=6484)
  Write of size 8 at 0x7d64000154b8 by main thread (mutexes: write M1331):
    #0 update_context_from_user src/libavcodec/pthread_frame.c:331 (ffmpeg+0x000000dca887)
[..]
  Previous read of size 8 at 0x7d64000154b8 by thread T2 (mutexes: write M1334):
    #0 draw_slice src/libavcodec/huffyuvdec.c:857 (ffmpeg+0x000000bcc86f)
2017-04-05 15:36:53 -04:00
Damien Riegel
549acc9995 codec: bitpacked: add decoder
Add a codec capable of decoding some formats of the RFC4175. For now
it's only capable of handling YCbCr-4:2:2 with 8-bit or 10-bit depth.

For 8-bit it's a simple pass-through, for 10-bit it depacks the stream
in the AV_PIX_FMT_YUV422P10 pixel format.

Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-05 17:02:20 +01:00
Clément Bœsch
8c5c6871ba lavc: add AV_ prefix to CODEC_CAP_DELAY in doxy 2017-04-04 09:58:29 +02:00
Matthieu Bouron
3fce174d4f lavc/mediacodecdec: set AV_CODEC_CAP_AVOID_PROBING capability 2017-04-04 09:50:44 +02:00
Matthieu Bouron
6ffaf90b32 lavc/mediacodecdec: switch to AV_CODEC_CAP_DELAY 2017-04-04 09:50:44 +02:00
James Almer
c169ab4112 avcodec/Makefile: fix truehd encoder dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-03 18:08:43 -03:00
Clément Bœsch
7650bccdb1 Merge commit 'b34c6cd57a2e8aad5f773aea933f77883de320ec'
* commit 'b34c6cd57a2e8aad5f773aea933f77883de320ec':
  dvbsub: cosmetics: Group all debug code together

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-03 21:02:54 +02:00
Clément Bœsch
9f7ba0ac9d Merge commit 'b8cd7a3c8df2c3aac8d7a0b5a02d83caf61bd769'
* commit 'b8cd7a3c8df2c3aac8d7a0b5a02d83caf61bd769':
  dvbsub: Check for errors from system()

printf(...) replaced with fprintf(stderr, ...) for logging errors.

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-03 21:01:40 +02:00
Ronald S. Bultje
eff2861a75 png: set AVFrame flags/fields before calling setup_finished().
Fixes tsan warnings in fate-apng:

WARNING: ThreadSanitizer: data race (pid=51230)
  Read of size 4 at 0x7d50000042fc by main thread (mutexes: write M1000):
    #0 frame_copy_props frame.c:302 (ffmpeg:x86_64+0x1019a35d6)
[..]
  Previous write of size 4 at 0x7d50000042fc by thread T1 (mutexes: write M997):
    #0 decode_idat_chunk pngdec.c:708 (ffmpeg:x86_64+0x100f5562a)
2017-04-03 14:46:26 -04:00
Clément Bœsch
98c66e2fe4 Merge commit '81a3c42abe17e757fe890607f67201a240648993'
* commit '81a3c42abe17e757fe890607f67201a240648993':
  Drop some bogus Doxygen documentation.

See 9365dfcbf6

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-03 20:43:45 +02:00
Clément Bœsch
47d8410dac Merge commit 'a1d9de304fe63614e3aa8117fef17491fa80093d'
* commit 'a1d9de304fe63614e3aa8117fef17491fa80093d':
  Fix some mismatches between function parameter and doxygen parameter names.

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-03 20:41:16 +02:00
Ronald S. Bultje
478f1c3d5e png: split header state and data state in two separate variables.
Fixes a reported (but false) race condition in tsan for fate-apng:

WARNING: ThreadSanitizer: data race (pid=6274)
  Read of size 4 at 0x7d680001ec78 by main thread (mutexes: write M1338):
    #0 update_thread_context src/libavcodec/pngdec.c:1456 (ffmpeg+0x000000dacf0c)
[..]
  Previous write of size 4 at 0x7d680001ec78 by thread T1 (mutexes: write M1335):
    #0 decode_idat_chunk src/libavcodec/pngdec.c:737 (ffmpeg+0x000000dae951)
2017-04-03 10:08:29 -04:00
Ronald S. Bultje
1f50baa2b2 hevc: only write to max_ra and pocTid0 in the first slice.
Values from subsequent values are guaranteed to be identical (since
poc and nal_unit_type are checked to be the same between slices), so
this doesn't affect output in any way, but does resolve the remaining
reported race conditions (by tsan) in fate-hevc.

In practice, this fixes tsan warnings like this:

WARNING: ThreadSanitizer: data race (pid=25334)
  Read of size 4 at 0x7d9c0001adcc by main thread (mutexes: write M1386):
    #0 hevc_update_thread_context src/libavcodec/hevcdec.c:3310 (ffmpeg+0x000000b41c7c)
[..]
  Previous write of size 4 at 0x7d9c0001adcc by thread T1 (mutexes: write M1383):
    #0 hls_slice_header src/libavcodec/hevcdec.c:596 (ffmpeg+0x000000b43a22)
2017-04-03 09:51:10 -04:00
Ronald S. Bultje
1269cd5b6f pthread_frame: call update_context_from_user() after acquiring lock.
Otherwise the thread may still be in the middle of decoding a previous
frame, which would effectively trigger a race condition on any field
concurrently read and written.

In practice, this fixes tsan warnings like the following:

WARNING: ThreadSanitizer: data race (pid=17380)
  Write of size 4 at 0x7d64000160fc by main thread:
    #0 update_context_from_user src/libavcodec/pthread_frame.c:335 (ffmpeg+0x000000dca515)
[..]
  Previous read of size 4 at 0x7d64000160fc by thread T2 (mutexes: write M1821):
    #0 ff_thread_report_progress src/libavcodec/pthread_frame.c:565 (ffmpeg+0x000000dcb08a)
2017-04-03 09:48:53 -04:00
Ronald S. Bultje
467a053810 codec_desc: mark some lossless audio codecs as intraonly.
Fixes tsan warnings in several audio codecs (flac, alac, wavpack, tta
and tak) that look like this:

WARNING: ThreadSanitizer: data race (pid=14340)
  Read of size 4 at 0x7d64000169d8 by main thread (mutexes: write M1335):
    #0 update_context_from_thread src/libavcodec/pthread_frame.c:284 (ffmpeg+0x000000dc795f)
[..]
  Previous write of size 4 at 0x7d64000169d8 by thread T1 (mutexes: write M1333):
    #0 wavpack_decode_block src/libavcodec/wavpack.c:1012 (ffmpeg+0x00000112b175)
2017-04-03 09:36:32 -04:00
Ronald S. Bultje
e72690b18d h264: don't sync pic_id between threads.
This is how the ref list manager links bitstream IDs to H264Picture/Ref
objects, and is local to the producer thread. There is no need for the
consumer thread to know the bitstream IDs of its references in their
respective producer threads.

In practice, this fixes tsan warnings when running fate-h264:

WARNING: ThreadSanitizer: data race (pid=19295)
  Read of size 4 at 0x7dbc0000e614 by main thread (mutexes: write M1914):
    #0 ff_h264_ref_picture src/libavcodec/h264_picture.c:112 (ffmpeg+0x0000013b3709)
[..]
  Previous write of size 4 at 0x7dbc0000e614 by thread T2 (mutexes: write M1917):
    #0 build_def_list src/libavcodec/h264_refs.c:91 (ffmpeg+0x0000013b46cf)
2017-04-03 09:27:04 -04:00
Martin Vignali
8163314967 libavcodec/exr : fix scanline offset table recreation on big endian
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-03 03:02:50 +02:00
Jun Zhao
08087f5462 lavc/vaapi_encode: fix p_per_i calculate issue.
now gop_size <= (max_b_frames + 1) * p_per_i + 1 (IDR frame),
so celing p_per_i = (gop_size - 1 + max_b_frames) / (max_b_frames + 1)

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Leilei <leilei.shang@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-04-02 23:28:54 +01:00
Diego Biurrun
f8e29a3716 build: Add missing object dependency for extract_extradata bitstream filter
Cherry-picked from libav commit cfee5e1a0f

Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-02 16:09:23 -03:00
Michael Niedermayer
22b0daa1b3 Bump versions for master after 3.3
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-02 19:54:12 +02:00
Michael Niedermayer
e1cc7f83df Bump minor for 3.3
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-02 19:49:45 +02:00
James Almer
cbd2502939 avcodec/extract_extradata_bsf: make sure all parameter set NAL units were found for h264/hevc
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-01 17:59:06 -03:00
Paul B Mahol
358d4524cc avcodec/dnxhdenc: fix indentation issue
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-01 18:51:18 +02:00
Paul B Mahol
f078bc4c5e avcodec/dnxhdenc: DNxHR 444 and HQX support
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-04-01 18:46:40 +02:00
Clément Bœsch
507a85b93c Merge commit 'adb0e941c329a4778ade6dd0a326274472992f54'
* commit 'adb0e941c329a4778ade6dd0a326274472992f54':
  avpacket: Mark src pointer as constant

See 5bb3f88255

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 18:23:21 +02:00
Dzung Hoang
68e3c9a3b6 avcodec/exr: add support for scanline file where offsets are set to zero 2017-04-01 17:57:59 +02:00
Clément Bœsch
c7173e5098 Merge commit '76167140a91c081a0cf9d0abcaa4da18d1bacadb'
* commit '76167140a91c081a0cf9d0abcaa4da18d1bacadb':
  qsvdec: Drop stray extra braces around initializer

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 15:15:19 +02:00
Clément Bœsch
a032c5224d Merge commit '715b8243460836fb7dd15bf7e41668e773beb276'
* commit '715b8243460836fb7dd15bf7e41668e773beb276':
  qsv: Drop some unused variables

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 15:14:31 +02:00
Takayuki 'January June' Suwa
e3d8963c3c avcodec/dsddec: correct for DSD silence bit-ordering
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-01 12:51:00 +02:00
Clément Bœsch
52e6fb9c59 Merge commit 'f7407f56cbf820a147bd77d728ac9a72c587cc56'
* commit 'f7407f56cbf820a147bd77d728ac9a72c587cc56':
  golomb: Replace __PRETTY_FUNCTION__ with __func__ for tracing

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 11:26:23 +02:00
Clément Bœsch
e06b8b07d5 Merge commit 'e0b164576f7467b7b1127c18175e215dc1df011f'
* commit 'e0b164576f7467b7b1127c18175e215dc1df011f':
  qsv: Add VP8 decoder

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 11:21:02 +02:00
Clément Bœsch
f56a5fee37 Merge commit '182cf170a544bce069c8690c90b49381150a1f10'
* commit '182cf170a544bce069c8690c90b49381150a1f10':
  vp8: Return stream format information from parser

Return codes are adjusted to consume the whole packet in case of error
as the API does not allow returning AVERROR codes (a negative return
value is valid).

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 10:17:32 +02:00
James Almer
6171f178e7 x86/hevc_add_res: merge last remaining changes from 3d65359832
See https://lists.libav.org/pipermail/libav-devel/2016-October/079829.html
2017-03-31 20:49:45 -03:00
James Almer
678ab33861 Merge commit 'b6582b29277e00e5d49f400e58beefa5a21d83b8'
* commit 'b6582b29277e00e5d49f400e58beefa5a21d83b8':
  qsv: Add VC-1 decoder

See fb57bc6c34.
Merged for cosmetic purposes to reduce differences with libav.

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 17:42:12 -03:00
James Almer
4fe9d69648 Merge commit '0940b748bdba36c4894fc8ea6be631d821fdf578'
* commit '0940b748bdba36c4894fc8ea6be631d821fdf578':
  qsvdec: Only warn about unconsumed data if it happens more than once

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 17:16:39 -03:00
James Almer
b725b482c6 Merge commit '800d91d348c89fc8ca3fbec7696ab1ec8787acc6'
* commit '800d91d348c89fc8ca3fbec7696ab1ec8787acc6':
  Drop pointless void* casts

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 16:38:37 -03:00
James Almer
fc2a94219d Merge commit 'd316f9cefcd854071985c6f524a9a15348240264'
* commit 'd316f9cefcd854071985c6f524a9a15348240264':
  aac: Drop pointless cast

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 16:33:48 -03:00
James Almer
c4fd1e7b01 Merge commit '3b50dbc51fb0978d09c1a5b83d4bf5a59d170e1e'
* commit '3b50dbc51fb0978d09c1a5b83d4bf5a59d170e1e':
  ratecontrol: Use correct function pointer casts instead of void*

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 16:19:30 -03:00
James Almer
804ae6e30f Merge commit 'e5e8a26dcf6d572e841a7a191e4c96524367e3f9'
* commit 'e5e8a26dcf6d572e841a7a191e4c96524367e3f9':
  libxvid: Use proper context in av_log() calls

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 16:10:32 -03:00
James Almer
5694427dc3 Merge commit '72a19f4013ec2c7f8581416f8ad4bf81df163fb6'
* commit '72a19f4013ec2c7f8581416f8ad4bf81df163fb6':
  mpegaudiodsp: aarch64: Adjust function prototype after 2caa93b813

Merged-by: James Almer <jamrial@gmail.com>
2017-03-31 14:43:37 -03:00
Ronald S. Bultje
1ddc37051f h264: only assign H264Picture::mbaff for first slice.
The value must be identical between slices, since mbaff depends on
picture_structure and sps, both of which are checked to be identical
to the first slice before this point.

In practice, this silences some tsan warnings in fate-h264.
2017-03-31 08:26:24 -04:00
Ronald S. Bultje
b5300c8ad8 h264: don't write to source picture object in ff_h264_ref_picture().
Doing so is analogous to writing to source data in memcpy(), and causes
(harmless) tsan warnings in fate-h264.
2017-03-31 08:26:24 -04:00
Ronald S. Bultje
081c21ca55 lagarith: assign correct per-thread value to LagarithContext::avctx.
This fixes race conditions reported by tsan in fate-lagarith. The races
were because each thread's LagarithContext::avctx was set to the first
thread's AVCodecContext.
2017-03-31 08:26:24 -04:00
Ronald S. Bultje
73f863d751 fic: set pict_type/key_frame after (instead of during) slice decoding.
This fixes a race condition that was already documented in the source
code, and is also reported by tsan in fate-fic-avi.
2017-03-31 08:26:23 -04:00
Ronald S. Bultje
9e2050b698 codec_desc: mark fraps as an intra-only codec.
Fixes reported race conditions by tsan in fate-avio-direct.
2017-03-31 08:26:23 -04:00