Commit Graph

85292 Commits

Author SHA1 Message Date
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 f4cee500e9 avformat/dump : Display Content Light Level metadata
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-06 11:40:31 -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
Steve Lhomme b378f5bd64 lavu: add support for Content Light Level side metadata
As found in HEVC.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-06 11:26:25 -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
Ronald S. Bultje 9a54c6f243 vp8: make wait/thread_mb_pos atomic.
Fixes tsan warnings like this in fate-vp8-test-vector-007:

WARNING: ThreadSanitizer: data race (pid=3590)
  Write of size 4 at 0x7d8c0000e07c by thread T2:
    #0 decode_mb_row_no_filter src/libavcodec/vp8.c:2330 (ffmpeg+0x000000ffb59e)
[..]
  Previous write of size 4 at 0x7d8c0000e07c by thread T1:
    #0 decode_mb_row_no_filter src/libavcodec/vp8.c:2330 (ffmpeg+0x000000ffb59e)
2017-04-06 10:03:28 -04:00
Ronald S. Bultje 83ae7e6350 x86/idctdsp_init: reindent. 2017-04-06 10:03:28 -04:00
Ronald S. Bultje 32baeafeee jrev/xvid: hardcode use of C put/add_pixels_clamped.
This removes the last use of the ff_put/add_pixels_clamped global
function pointers, and as such they are removed.

This patch has a negative effect on performance on MIPS, since there's
a SIMD-optimized put/add_pixels_clamped, but no xvid or jrev. From a
code maintenance point of view, that is probably acceptable.

Because the global function pointers are removed, this fixes the following
tsan warnings when running e.g. fate-dnxhr-parse:

WARNING: ThreadSanitizer: data race (pid=29917)
  Write of size 8 at 0x0000025b12d8 by thread T2 (mutexes: write M1543):
    #0 ff_idctdsp_init src/libavcodec/idctdsp.c:313 (ffmpeg+0x00000044b68e)
[..]
  Previous write of size 8 at 0x0000025b12d8 by thread T1 (mutexes: write M1541):
    #0 ff_idctdsp_init src/libavcodec/idctdsp.c:313 (ffmpeg+0x00000044b68e)
2017-04-06 10:03:28 -04:00
Ronald S. Bultje e0c205677f x86/simple_idct: add explicit sse2 simple_idct_put/add versions.
These use the mmx IDCT, but sse2 put/add_pixels_clamped implementations.
This way we don't need to use the ff_put/add_pixels_clamped function
pointers.
2017-04-06 10:03:28 -04:00
Ronald S. Bultje 2f0591cfa3 cavs: add a sse2 idct implementation.
This makes using the function pointer ff_add_pixels_clamped() unnecessary,
since we always know what the best implementation is at compile-time.
2017-04-06 10:03:28 -04:00
Ronald S. Bultje c9d98c5649 cavs: convert idct from inline asm to yasm. 2017-04-06 10:03:27 -04:00
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
Thierry Foucu ac24a8202a libavformat/mov: Fix memory leak, need to free the chapter tracks array
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-06 04:05:04 +02:00
tiejun.peng@foxmail.com 9fe73b0147 avformat/ftp: Solve a crash bug when network occur a exception
This fixes a proble where ffmpeg would cause crash to do a seek when the network disconnect.
The log like this:
01-01 10:53:03.441  6580  6580 F DEBUG   : backtrace:
01-01 10:53:03.441  6580  6580 F DEBUG   :     #00 pc 0002942e  /system/lib/libavformat.so (ffurl_write+9)

Signed-off-by: tiejun.peng <tiejun.peng@foxmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-04-05 23:57:08 +02: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
Kyle Swanson f3d8e0d369 avfilter/af_loudnorm: do not upsample during second-pass linear normalization
Signed-off-by: Kyle Swanson <k@ylo.ph>
2017-04-05 11:43:12 -05:00
Clément Bœsch d8eb40bd70 doc/general: fix project name after 2b1a6b1ae 2017-04-05 18:38:52 +02:00
Damien Riegel 01718dc0df rtp: rfc4175: add handler for YCbCr-4:2:2
This adds partial support for the RFC 4175 (raw video over RTP). The
only supported formats are the YCbCr-4:2:2 8 bit because it's natively
supported by FFmpeg with pixel format UYVY, and 10 bit which requires
the vrawdepay codec to convert the payload in a format handled by
FFmpeg.

Signed-off-by: Damien Riegel <damien.riegel@savoirfairelinux.com>
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2017-04-05 17:03:21 +01: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
James Almer 12290077d1 Merge commit 'bf2f748fc74fff5272075e1fe1c07b4152421526'
* commit 'bf2f748fc74fff5272075e1fe1c07b4152421526':
  configure: Use correct libm linker flag during math function checks

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 16:16:57 -03:00
James Almer 655418014c Merge commit 'ce6f780bc6656ad3895f81a988b239ad3c8af4b8'
* commit 'ce6f780bc6656ad3895f81a988b239ad3c8af4b8':
  configure: Add missing asyncts filter, movie filter, and output example deps

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 16:15:02 -03:00
James Almer b26b4d62be Merge commit '04698d528cac334b6b5cabd3384f01406a766285'
* commit '04698d528cac334b6b5cabd3384f01406a766285':
  configure: Use correct variable name in libsnappy test

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 16:08:21 -03:00
James Almer 743eae3cd6 Merge commit '30f0d1b997f15d667c05feab0b54f0b2814ba7a9'
* commit '30f0d1b997f15d667c05feab0b54f0b2814ba7a9':
  configure: Remove old avisynth support leftover

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 16:06:02 -03:00
James Almer d1ee6fb729 Merge commit '6a1ea4ec932f4fc9fdc00ec51ee070b298ddb35f'
* commit '6a1ea4ec932f4fc9fdc00ec51ee070b298ddb35f':
  arm: warn/error on movrelx usage problematic with PIC on ELF

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 16:04:29 -03:00
James Almer b9886e569a Merge commit '5bcc6f76f180d0f88269018727c92fc562fb8abb'
* commit '5bcc6f76f180d0f88269018727c92fc562fb8abb':
  configure: Disable warning C4703 with MSVC

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 16:03:05 -03:00
James Almer b30cd14b57 Merge commit 'bd9cd04626a98a752c5771d057a6b86779359904'
* commit 'bd9cd04626a98a752c5771d057a6b86779359904':
  w32pthreads: Fix function pointer casts

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:59:56 -03:00
James Almer 2c40adf218 Merge commit '233d50b275dd7cf6cc0656851e670e1b2dfba56f'
* commit '233d50b275dd7cf6cc0656851e670e1b2dfba56f':
  qt-faststart: Do not try to use fancy 64-bit seeking functions on mingw32ce

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:58:11 -03:00
James Almer 30518a68a7 Merge commit '537b5b773b317af79d3a5b576ee9683e15ed84f6'
* commit '537b5b773b317af79d3a5b576ee9683e15ed84f6':
  rtmpdh: Do global initialization before running the test

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:56:36 -03:00
James Almer 7d88bc10d5 Merge commit '2f99117f6ff24ce5be2abb9e014cb8b86c2aa0e0'
* commit '2f99117f6ff24ce5be2abb9e014cb8b86c2aa0e0':
  aarch64: vp9itxfm: Don't repeatedly set x9 when nothing overwrites it

This commit is a noop, see 37cb224e3e

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:53:58 -03:00
James Almer 7c5adf6c88 Merge commit '2dbe2aa2c2d4f02d2669feae45dee4fc45414813'
* commit '2dbe2aa2c2d4f02d2669feae45dee4fc45414813':
  rdt: Convert to the new bitstream reader
  ogg: Convert to the new bitstream reader
  mpegts: Convert to the new bitstream reader
  xsubdec: Convert to the new bitstream reader
  xan: Convert to the new bitstream reader
  wnv1: Convert to the new bitstream reader
  vima: Convert to the new bitstream reader
  vble: Convert to the new bitstream reader
  utvideodec: Convert to the new bitstream reader
  twinvq: Convert to the new bitstream reader
  tscc2: Convert to the new bitstream reader
  truespeech: Convert to the new bitstream reader
  tiertex: Convert to the new bitstream reader
  truemotion2: Convert to the new bitstream reader
  svq1dec: Convert to the new bitstream reader
  smacker: Convert to the new bitstream reader
  sipr: Convert to the new bitstream reader
  rtjpeg: Convert to the new bitstream reader
  ra288: Convert to the new bitstream reader
  ra144: Convert to the new bitstream reader

This merge is a noop, see
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-April/209609.html

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:51:14 -03:00
James Almer 52febc687b Merge commit '79566ec8c77969d5f9be533de04b1349834cca62'
* commit '79566ec8c77969d5f9be533de04b1349834cca62':
  arm: vp9itxfm: Rename a macro parameter to fit better

This commit is a noop, see f69dd26df5

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:42:18 -03:00
James Almer 7283725a08 Merge commit '721bc37522c5c1d6a8c3cea5e9c3fcde8d256c05'
* commit '721bc37522c5c1d6a8c3cea5e9c3fcde8d256c05':
  arm/aarch64: vp9itxfm: Fix indentation of macro arguments

This commit is a noop.

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:38:15 -03:00
James Almer e386a2f2fe Merge commit '06fec74cacbb0ef7f3e5ea0e6c9ced1b6fd7565d'
* commit '06fec74cacbb0ef7f3e5ea0e6c9ced1b6fd7565d':
  checkasm: vp9dsp: benchmark all sub-IDCTs (but not WHT or ADST).

This commit is a noop, see 1c8fbd7b90

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:28:56 -03:00
James Almer 6747fc436e Merge commit 'effc1430b2fe5997d9d55bf28dc507c27125eb27'
* commit 'effc1430b2fe5997d9d55bf28dc507c27125eb27':
  Revert "checkasm: vp9dsp: Benchmark the dc-only version of idct_idct separately"

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:26:18 -03:00
James Almer caf3c5b27f Merge commit '12ab667e219e7fbf8e9aef3731039b75c822df25'
* commit '12ab667e219e7fbf8e9aef3731039b75c822df25':
  matroska: use av_stream_add_side_data() for stereo3d side data
  mov: Use av_stream_add_side_data() for displaymatrix side data
  utils: Add av_stream_add_side_data()

This is a noop, see
2ab50647ff
77f033eb98
2343f23e4d

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:07:57 -03:00
James Almer 22164971b0 Merge commit '286ab878bd39b56008035638227b3ecb8ec5bbb7'
* commit '286ab878bd39b56008035638227b3ecb8ec5bbb7':
  fate.sh: Allow setting other make flags for running tests

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:03:34 -03:00
James Almer b20bf5584f Merge commit 'aa498c3183236a93206b4a0e8225b9db0660b50d'
* commit 'aa498c3183236a93206b4a0e8225b9db0660b50d':
  avpacket: fix leak on realloc in av_packet_add_side_data()

This commit is a noop, see 574929d8b6

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 14:51:46 -03:00
James Almer 81cc33adc6 Merge commit 'c7ab0eb3050acdd3b8cab2c55fc9c1b2e8610a65'
* commit 'c7ab0eb3050acdd3b8cab2c55fc9c1b2e8610a65':
  examples/decode_video: allocate the packet dynamically

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 14:47:09 -03:00
James Almer 52bce9a13d Merge commit '728ea23cce07467b732f538c87c13da13dd6dcf3'
* commit '728ea23cce07467b732f538c87c13da13dd6dcf3':
  examples/decode_video: switch to the new decoding API

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 14:41:23 -03:00
James Almer fddd6af45c Merge commit 'f78d360bba6dcfb585847a49a84e89c25950fbdb'
* commit 'f78d360bba6dcfb585847a49a84e89c25950fbdb':
  examples/decode_video: use a parser for splitting the input

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 14:37:27 -03:00
Matthieu Bouron 400378b7b3 doc/examples/extract_mvs: re-indent after previous commit 2017-04-04 14:10:22 +02:00
Matthieu Bouron 1cf93196fc doc/examples/extract_mvs: make pkt local to the main function 2017-04-04 14:10:22 +02:00
Matthieu Bouron 82116bd8a4 doc/examples/extract_mvs: switch to new decoding API 2017-04-04 14:10:22 +02:00
Clément Bœsch 6db36a0227 Merge commit '59ab9e8ba1df7e3347a4cd2bd56c32e74aede802'
* commit '59ab9e8ba1df7e3347a4cd2bd56c32e74aede802':
  examples/encode_video: allocate the packet dynamically

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:48:23 +02:00