comparison h264.h @ 11145:8805efb4c3fd libavcodec

Move setting MB_TYPE_L0L1 for direct MBs up, this is simpler.
author michael
date Sat, 13 Feb 2010 15:57:49 +0000
parents 0f7dcfca7b2e
children 9673c7b54598
comparison
equal deleted inserted replaced
11144:0f7dcfca7b2e 11145:8805efb4c3fd
948 948
949 #if 1 949 #if 1
950 if(IS_INTER(mb_type) || (IS_DIRECT(mb_type) && h->direct_spatial_mv_pred)){ 950 if(IS_INTER(mb_type) || (IS_DIRECT(mb_type) && h->direct_spatial_mv_pred)){
951 int list; 951 int list;
952 for(list=0; list<h->list_count; list++){ 952 for(list=0; list<h->list_count; list++){
953 if(!USES_LIST(mb_type, list) && !IS_DIRECT(mb_type)){ 953 if(!USES_LIST(mb_type, list)){
954 /*if(!h->mv_cache_clean[list]){ 954 /*if(!h->mv_cache_clean[list]){
955 memset(h->mv_cache [list], 0, 8*5*2*sizeof(int16_t)); //FIXME clean only input? clean at all? 955 memset(h->mv_cache [list], 0, 8*5*2*sizeof(int16_t)); //FIXME clean only input? clean at all?
956 memset(h->ref_cache[list], PART_NOT_AVAILABLE, 8*5*sizeof(int8_t)); 956 memset(h->ref_cache[list], PART_NOT_AVAILABLE, 8*5*sizeof(int8_t));
957 h->mv_cache_clean[list]= 1; 957 h->mv_cache_clean[list]= 1;
958 }*/ 958 }*/
1447 mb_type|= MB_TYPE_INTERLACED; 1447 mb_type|= MB_TYPE_INTERLACED;
1448 1448
1449 if( h->slice_type_nos == FF_B_TYPE ) 1449 if( h->slice_type_nos == FF_B_TYPE )
1450 { 1450 {
1451 // just for fill_caches. pred_direct_motion will set the real mb_type 1451 // just for fill_caches. pred_direct_motion will set the real mb_type
1452 mb_type|= MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_DIRECT2|MB_TYPE_SKIP; 1452 mb_type|= MB_TYPE_L0L1|MB_TYPE_DIRECT2|MB_TYPE_SKIP;
1453 1453
1454 fill_decode_caches(h, mb_type); //FIXME check what is needed and what not ... 1454 fill_decode_caches(h, mb_type); //FIXME check what is needed and what not ...
1455 ff_h264_pred_direct_motion(h, &mb_type); 1455 ff_h264_pred_direct_motion(h, &mb_type);
1456 mb_type|= MB_TYPE_SKIP; 1456 mb_type|= MB_TYPE_SKIP;
1457 } 1457 }