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 [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Democracy is the form of government in which you can choose your dictator
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel