Commit 9b28b4c6 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

avcodec: allow frame threading with hardware acceleration

Only MPEG1/2 slice threading is currently known as broken.

This rectifies commit df252eac.
parent 01c4f44e
...@@ -351,12 +351,14 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context, ...@@ -351,12 +351,14 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context,
i_codec_id == AV_CODEC_ID_H264 || i_codec_id == AV_CODEC_ID_H264 ||
i_codec_id == AV_CODEC_ID_VC1 || i_codec_id == AV_CODEC_ID_WMV3) ) i_codec_id == AV_CODEC_ID_VC1 || i_codec_id == AV_CODEC_ID_WMV3) )
{ {
#if defined(HAVE_AVCODEC_MT) //&& LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 1, 0) #if defined(HAVE_AVCODEC_MT)
# if (LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55, 1, 0))
if( p_sys->p_context->thread_type & FF_THREAD_FRAME ) if( p_sys->p_context->thread_type & FF_THREAD_FRAME )
{ {
msg_Warn( p_dec, "threaded frame decoding is not compatible with avcodec-hw, disabled" ); msg_Warn( p_dec, "threaded frame decoding is not compatible with avcodec-hw, disabled" );
p_sys->p_context->thread_type &= ~FF_THREAD_FRAME; p_sys->p_context->thread_type &= ~FF_THREAD_FRAME;
} }
# endif
if( ( p_sys->p_context->thread_type & FF_THREAD_SLICE ) && if( ( p_sys->p_context->thread_type & FF_THREAD_SLICE ) &&
( i_codec_id == AV_CODEC_ID_MPEG1VIDEO || i_codec_id == AV_CODEC_ID_MPEG2VIDEO ) ) ( i_codec_id == AV_CODEC_ID_MPEG1VIDEO || i_codec_id == AV_CODEC_ID_MPEG2VIDEO ) )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment