tag | 8a5f79827600f88f9490c62a5ba7a3f71bc55e50 | |
---|---|---|
tagger | Michael Niedermayer <michael@niedermayer.cc> | Thu Apr 13 03:54:15 2017 +0200 |
object | 1968a1eef1cae22e162259d7082c2eea98d81e32 |
FFmpeg 3.3 release
commit | 1968a1eef1cae22e162259d7082c2eea98d81e32 | [log] [tgz] |
---|---|---|
author | Ronald S. Bultje <rsbultje@gmail.com> | Thu Apr 06 13:58:59 2017 -0400 |
committer | Michael Niedermayer <michael@niedermayer.cc> | Thu Apr 13 02:29:26 2017 +0200 |
tree | 0a470f8f550764b0df0044c091a5162f7850b391 | |
parent | f4f3bf3c94a9aa485c09d0c03d68ca79a4785866 [diff] |
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) (cherry picked from commit 2e664b9c1e73c80aab91070c1eb7676f04bdd12d) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
FFmpeg is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.
libavcodec
provides implementation of a wider range of codecs.libavformat
implements streaming protocols, container formats and basic I/O access.libavutil
includes hashers, decompressors and miscellaneous utility functions.libavfilter
provides a mean to alter decoded Audio and Video through chain of filters.libavdevice
provides an abstraction to access capture and playback devices.libswresample
implements audio mixing and resampling routines.libswscale
implements color conversion and scaling routines.aviocat
, ismindex
and qt-faststart
.The offline documentation is available in the doc/ directory.
The online documentation is available in the main website and in the wiki.
Coding examples are available in the doc/examples directory.
FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.
Patches should be submitted to the ffmpeg-devel mailing list using git format-patch
or git send-email
. Github pull requests should be avoided because they are not part of our review process and will be ignored.