vlc | branch: master | Jean-Baptiste Kempf <[email protected]> | Fri Jan 27 
02:18:46 2012 +0100| [f86e5ebbc95af8c0bcb8bcaa9ea6407fa69c0765] | committer: 
Jean-Baptiste Kempf

Avcodec: Fix slice-decoding of hwAccel + -mt

Close #5909 #5867

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f86e5ebbc95af8c0bcb8bcaa9ea6407fa69c0765
---

 modules/codec/avcodec/video.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
index 94257d4..b85ebc6 100644
--- a/modules/codec/avcodec/video.c
+++ b/modules/codec/avcodec/video.c
@@ -363,14 +363,17 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext 
*p_context,
          i_codec_id == CODEC_ID_VC1 || i_codec_id == CODEC_ID_WMV3) )
     {
 #ifdef HAVE_AVCODEC_MT
-        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 ) )
-          )
+        if( p_sys->p_context->thread_type & FF_THREAD_FRAME )
         {
             msg_Warn( p_dec, "threaded frame decoding is not compatible with 
ffmpeg-hw, disabled" );
             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
         p_sys->p_context->get_format = ffmpeg_GetFormat;
     }

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to