[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