Commit 8ab6e44a authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Avcodec: Fix slice-decoding of hwAccel + -mt

Close #5909 #5867
(cherry picked from commit f86e5ebbc95af8c0bcb8bcaa9ea6407fa69c0765)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 509ff4ee
...@@ -355,14 +355,17 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context, ...@@ -355,14 +355,17 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context,
i_codec_id == CODEC_ID_VC1 || i_codec_id == CODEC_ID_WMV3) ) i_codec_id == CODEC_ID_VC1 || i_codec_id == CODEC_ID_WMV3) )
{ {
#ifdef HAVE_AVCODEC_MT #ifdef HAVE_AVCODEC_MT
if( ( p_sys->p_context->thread_type & FF_THREAD_FRAME ) || if( p_sys->p_context->thread_type & FF_THREAD_FRAME )
( ( p_sys->p_context->thread_type & FF_THREAD_SLICE ) &&
( i_codec_id == CODEC_ID_MPEG1VIDEO || i_codec_id == CODEC_ID_MPEG2VIDEO ) )
)
{ {
msg_Warn( p_dec, "threaded frame decoding is not compatible with ffmpeg-hw, disabled" ); msg_Warn( p_dec, "threaded frame decoding is not compatible with ffmpeg-hw, disabled" );
p_sys->p_context->thread_type &= ~FF_THREAD_FRAME; p_sys->p_context->thread_type &= ~FF_THREAD_FRAME;
} }
if( ( p_sys->p_context->thread_type & FF_THREAD_SLICE ) &&
( i_codec_id == CODEC_ID_MPEG1VIDEO || i_codec_id == CODEC_ID_MPEG2VIDEO ) )
{
msg_Warn( p_dec, "threaded slice decoding is not compatible with ffmpeg-hw, disabled" );
p_sys->p_context->thread_type &= ~FF_THREAD_SLICE;
}
#endif #endif
p_sys->p_context->get_format = ffmpeg_GetFormat; p_sys->p_context->get_format = ffmpeg_GetFormat;
} }
......
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