On 3/25/2017 9:23 PM, Michael Niedermayer wrote: > On Sat, Mar 18, 2017 at 09:56:04AM +0100, wm4 wrote: >> From: Anton Khirnov <an...@khirnov.net> >> >> Certain hardware decoding APIs are not guaranteed to be thread-safe, so >> having the user access decoded hardware surfaces while the decoder is >> running in another thread can cause failures (this is mainly known to >> happen with DXVA2). >> >> For such hwaccels, only allow the decoding thread to run while the user >> is inside a lavc decode call (avcodec_send_packet/receive_frame). >> >> Merges Libav commit d4a91e65. >> >> Signed-off-by: wm4 <nfx...@googlemail.com> >> --- >> libavcodec/avcodec.h | 5 +++++ >> libavcodec/hwaccel.h | 24 +++++++++++++++++++++ >> libavcodec/pthread_frame.c | 52 >> ++++++++++++++++++++++++++++++++++++++++------ >> libavcodec/vaapi_h264.c | 2 ++ >> libavcodec/vaapi_mpeg2.c | 2 ++ >> libavcodec/vaapi_mpeg4.c | 3 +++ >> libavcodec/vaapi_vc1.c | 3 +++ >> libavcodec/vdpau_h264.c | 2 ++ >> libavcodec/vdpau_hevc.c | 2 ++ >> libavcodec/vdpau_mpeg12.c | 3 +++ >> libavcodec/vdpau_mpeg4.c | 2 ++ >> libavcodec/vdpau_vc1.c | 3 +++ >> libavcodec/version.h | 2 +- >> 13 files changed, 98 insertions(+), 7 deletions(-) >> create mode 100644 libavcodec/hwaccel.h >> >> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h >> index 1923c9648d..dbbe4febcd 100644 >> --- a/libavcodec/avcodec.h >> +++ b/libavcodec/avcodec.h >> @@ -3904,6 +3904,11 @@ typedef struct AVHWAccel { >> * AVCodecInternal.hwaccel_priv_data. >> */ >> int priv_data_size; >> + >> + /** >> + * Internal hwaccel capabilities. >> + */ >> + int caps_internal; >> } AVHWAccel; >> >> /** >> diff --git a/libavcodec/hwaccel.h b/libavcodec/hwaccel.h >> new file mode 100644 >> index 0000000000..17af43707c >> --- /dev/null >> +++ b/libavcodec/hwaccel.h >> @@ -0,0 +1,24 @@ >> +/* > >> + * This file is part of FFmpeg and was stolen from Libav. > > hmm
See 6476bb84bca36b4af5427c5e733fd7b33a985700 IMO, better not do silly things like this if they can make it to the tree by accident. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel