# HG changeset patch # User michael # Date 1115972245 0 # Node ID 58fb8e1efcaee0a527fcefe2e7b8955f541cd750 # Parent 6f04c7a5bf2496f8f1c336dee60fcd5a663ad025 10l (mb_type uninitalized and then changed and overwritten) diff -r 6f04c7a5bf24 -r 58fb8e1efcae h264.c --- a/h264.c Thu May 12 23:34:23 2005 +0000 +++ b/h264.c Fri May 13 08:17:25 2005 +0000 @@ -4191,7 +4191,7 @@ static void decode_mb_skip(H264Context *h){ MpegEncContext * const s = &h->s; const int mb_xy= s->mb_x + s->mb_y*s->mb_stride; - int mb_type; + int mb_type=0; memset(h->non_zero_count[mb_xy], 0, 16); memset(h->non_zero_count_cache + 8, 0, 8*5); //FIXME ugly, remove pfui @@ -4201,11 +4201,11 @@ } if(h->mb_field_decoding_flag) mb_type|= MB_TYPE_INTERLACED; - + if( h->slice_type == B_TYPE ) { // just for fill_caches. pred_direct_motion will set the real mb_type - mb_type= MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_DIRECT2|MB_TYPE_SKIP; + mb_type|= MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_DIRECT2|MB_TYPE_SKIP; fill_caches(h, mb_type, 0); //FIXME check what is needed and what not ... pred_direct_motion(h, &mb_type); @@ -4217,7 +4217,7 @@ else { int mx, my; - mb_type= MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_SKIP; + mb_type|= MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_SKIP; fill_caches(h, mb_type, 0); //FIXME check what is needed and what not ... pred_pskip_motion(h, &mx, &my);