1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

85283 Commits

Author SHA1 Message Date
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
Clément Bœsch
4ea942f2ce Merge commit '5f102a9559099429826e84758b8b5182244c52db'
* commit '5f102a9559099429826e84758b8b5182244c52db':
  examples/encode_video: switch to the new encoding API

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:44:45 +02:00
Clément Bœsch
dd0113da3c Merge commit 'fee0f1de2c6a9924acb74013436dbea8f2bd1ecb'
* commit 'fee0f1de2c6a9924acb74013436dbea8f2bd1ecb':
  examples/decode_audio: flush the decoder

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:40:34 +02:00
Clément Bœsch
d1105e8f43 Merge commit '9a38184a143a1560814b084aebe628f8df46e666'
* commit '9a38184a143a1560814b084aebe628f8df46e666':
  examples/decode_audio: allocate the packet dynamically

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:38:56 +02:00
Clément Bœsch
28fd79c9db Merge commit '45a1ce2ff7688656aacd53c27de5815a7ec13afe'
* commit '45a1ce2ff7688656aacd53c27de5815a7ec13afe':
  examples/decode_audio: handle planar audio now produced by the MP2 decoder

This commit is a noop, we use a simpler and more generic method to write
the samples.

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:37:11 +02:00
Clément Bœsch
3d12d10677 Merge commit '3d66717f7cb5555257244be8f5bce172ed3af7ac'
* commit '3d66717f7cb5555257244be8f5bce172ed3af7ac':
  examples/decode_audio: use the new audio decoding API

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:33:04 +02:00
Clément Bœsch
87e16e2b44 Merge commit '0946c754d99c05413e813ee515039adcf0f9232a'
* commit '0946c754d99c05413e813ee515039adcf0f9232a':
  examples/decode_audio: use a parser for splitting the input

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-04-04 11:27:37 +02:00
Clément Bœsch
34ec327f69 examples/decode_audio: reduce the scope of 2 variables 2017-04-04 11:17:35 +02: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