ffmpeg | branch: master | Ronald S. Bultje <rsbul...@gmail.com> | Mon Apr 3 09:36:32 2017 -0400| [467a0538100b193d205a922737358dcc8e957e94] | committer: Ronald S. Bultje
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) > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=467a0538100b193d205a922737358dcc8e957e94 --- libavcodec/avcodec.h | 2 +- libavcodec/codec_desc.c | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index d780477..6f38b3f 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -724,7 +724,7 @@ typedef struct AVCodecDescriptor { /** * Codec uses only intra compression. - * Video codecs only. + * Video and audio codecs only. */ #define AV_CODEC_PROP_INTRA_ONLY (1 << 0) /** diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c index 9711019..041b797 100644 --- a/libavcodec/codec_desc.c +++ b/libavcodec/codec_desc.c @@ -2313,7 +2313,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_AUDIO, .name = "flac", .long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"), - .props = AV_CODEC_PROP_LOSSLESS, + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { .id = AV_CODEC_ID_MP3ADU, @@ -2341,7 +2341,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_AUDIO, .name = "alac", .long_name = NULL_IF_CONFIG_SMALL("ALAC (Apple Lossless Audio Codec)"), - .props = AV_CODEC_PROP_LOSSLESS, + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { .id = AV_CODEC_ID_WESTWOOD_SND1, @@ -2383,7 +2383,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_AUDIO, .name = "tta", .long_name = NULL_IF_CONFIG_SMALL("TTA (True Audio)"), - .props = AV_CODEC_PROP_LOSSLESS, + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { .id = AV_CODEC_ID_SMACKAUDIO, @@ -2404,7 +2404,8 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_AUDIO, .name = "wavpack", .long_name = NULL_IF_CONFIG_SMALL("WavPack"), - .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS, + .props = AV_CODEC_PROP_INTRA_ONLY | + AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS, }, { .id = AV_CODEC_ID_DSICINAUDIO, @@ -2712,7 +2713,7 @@ static const AVCodecDescriptor codec_descriptors[] = { .type = AVMEDIA_TYPE_AUDIO, .name = "tak", .long_name = NULL_IF_CONFIG_SMALL("TAK (Tom's lossless Audio Kompressor)"), - .props = AV_CODEC_PROP_LOSSLESS, + .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSLESS, }, { .id = AV_CODEC_ID_METASOUND, _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog