[FFmpeg-cvslog] r15804 - in trunk/libavcodec: avcodec.h beosthread.c dnxhdenc.c dv.c h264.c mpeg12.c mpegvideo_enc.c os2thread.c pthread.c utils.c w32thread.c

Mike Melanson mike
Thu Nov 13 02:30:40 CET 2008


Uoti Urpala wrote:
> On Wed, 2008-11-12 at 18:47 +0100, romansh wrote:
>> Author: romansh
>> Date: Wed Nov 12 18:47:23 2008
>> New Revision: 15804
>>
>> Log:
>> Making it easier to send arbitrary structures as work orders to MT workers
> 
>> Modified: trunk/libavcodec/h264.c
>> ==============================================================================
>> --- trunk/libavcodec/h264.c	(original)
>> +++ trunk/libavcodec/h264.c	Wed Nov 12 18:47:23 2008
>> @@ -6626,7 +6626,8 @@ static void filter_mb( H264Context *h, i
>>      }
>>  }
>>  
>> -static int decode_slice(struct AVCodecContext *avctx, H264Context *h){
>> +static int decode_slice(struct AVCodecContext *avctx, void *arg){
>> +    H264Context *h = *(void**)arg;
>>      MpegEncContext * const s = &h->s;
>>      const int part_mask= s->partitioned_frame ? (AC_END|AC_ERROR) : 0x7F;
>>  
>> @@ -7346,7 +7347,7 @@ static void execute_decode_slices(H264Co
>>          }
>>  
>>          avctx->execute(avctx, (void *)decode_slice,
>> -                       (void **)h->thread_context, NULL, context_count);
>> +                       (void **)h->thread_context, NULL, context_count, sizeof(void*));
>>  
>>          /* pull back stuff from slices to master context */
>>          hx = h->thread_context[context_count - 1];
>>
> 
> static void execute_decode_slices(H264Context *h, int context_count){
>     MpegEncContext * const s = &h->s;
>     AVCodecContext * const avctx= s->avctx;
>     H264Context *hx;
>     int i;
> 
>     if(context_count == 1) {
>         decode_slice(avctx, h);
>         ^^^^^^^^^^^^^^^^^^^^^^^

Is this what broke the H.264 decoder?

-- 
     -Mike Melanson




More information about the ffmpeg-cvslog mailing list