[vlc-commits] Avcodec: Fix slice-decoding of hwAccel + -mt

Jean-Baptiste Kempf git at videolan.org
Fri Jan 27 02:20:43 CET 2012


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | 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;
     }



More information about the vlc-commits mailing list