On Tue, Jul 21, 2015 at 9:13 AM, Hendrik Leppkes <[email protected]> wrote: > On Tue, Jul 21, 2015 at 8:43 AM, Steve Lhomme <[email protected]> wrote: >> In case the VideoContext is used by different threads internally or >> other threads externally >> --- >> libavcodec/d3d11va.h | 5 +++++ >> libavcodec/dxva2.c | 15 +++++++++++++-- >> libavcodec/version.h | 4 ++-- >> 3 files changed, 20 insertions(+), 4 deletions(-) >> >> diff --git a/libavcodec/d3d11va.h b/libavcodec/d3d11va.h >> index 2163b35..05d4fa6 100644 >> --- a/libavcodec/d3d11va.h >> +++ b/libavcodec/d3d11va.h >> @@ -89,6 +89,11 @@ struct AVD3D11VAContext { >> * Private to the Libav AVHWAccel implementation >> */ >> unsigned report_id; >> + >> + /** >> + * Mutex to access video_context >> + */ >> + HANDLE context_mutex; >> }; >> > > Without an allocation function to alloc this struct and init the > handle properly (since its init value is not 0, but > INVALID_HANDLE_VALUE), this seems like it might very easily run into > issues.
In the case of VLC, the allocation function would be inconvenient as we don't allocate all the pieces in the same place. Or do you mean a function to provide all the elements at once ? In this case it would be subject to ABI changes (just like to patch). > Why would the context be used by other threads, anyway? avcodec > certainly won't if you use it properly. In the case of VLC we use the ID3D11VideoContext in the vout which is in a different thread than the decoders. > - Hendrik > _______________________________________________ > libav-devel mailing list > [email protected] > https://lists.libav.org/mailman/listinfo/libav-devel _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
