Revision 46b4feec libavcodec/h263.c
libavcodec/h263.c  

2760  2760 
if(dc_pred_dir) dir=1; 
2761  2761 
} 
2762  2762 
s>pred_dir_table[xy]= dir; 
2763 


2764 
s>error_status_table[xy]= AC_ERROR; 

2765  2763 
}else{ /* P/S_TYPE */ 
2766  2764 
int mx, my, pred_x, pred_y, bits; 
2767  2765 
int16_t * const mot_val= s>motion_val[s>block_index[0]]; 
...  ...  
2790  2788  
2791  2789 
if(s>mbintra_table[xy]) 
2792  2790 
ff_clean_intra_table_entries(s); 
2793  
2794 
s>error_status_table[xy]= AC_ERROR; 

2795  2791 
continue; 
2796  2792 
} 
2797  2793 
cbpc = get_vlc2(&s>gb, inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); 
...  ...  
2815  2811 
mot_val[0+stride]= mot_val[2+stride]= 0; 
2816  2812 
mot_val[1 ]= mot_val[3 ]= 
2817  2813 
mot_val[1+stride]= mot_val[3+stride]= 0; 
2818 
s>error_status_table[xy]= DC_ERRORAC_ERROR; 

2819  2814 
}else{ 
2820  2815 
if(s>mbintra_table[xy]) 
2821  2816 
ff_clean_intra_table_entries(s); 
...  ...  
2864  2859 
mot_val[1] = my; 
2865  2860 
} 
2866  2861 
} 
2867 
s>error_status_table[xy]= AC_ERROR; 

2868  2862 
} 
2869  2863 
} 
2870  2864 
} 
...  ...  
2933  2927 
s>cbp_table[xy]&= 3; //remove dquant 
2934  2928 
s>cbp_table[xy]= cbpy<<2; 
2935  2929 
s>pred_dir_table[xy]= dir  (ac_pred<<7); 
2936 
s>error_status_table[xy]&= ~DC_ERROR; 

2937  2930 
}else if(s>mb_type[xy]&MB_TYPE_SKIPED){ 
2938  2931 
s>current_picture.qscale_table[xy]= s>qscale; 
2939  2932 
s>cbp_table[xy]= 0; 
...  ...  
2968  2961 
int ff_mpeg4_decode_partitions(MpegEncContext *s) 
2969  2962 
{ 
2970  2963 
int mb_num; 
2964 
const int part_a_error= s>pict_type==I_TYPE ? (DC_ERRORMV_ERROR) : MV_ERROR; 

2965 
const int part_a_end = s>pict_type==I_TYPE ? (DC_END MV_END) : MV_END; 

2971  2966 

2972  2967 
mb_num= mpeg4_decode_partition_a(s); 
2973 
if(mb_num<0) 

2968 
if(mb_num<0){ 

2969 
ff_er_add_slice(s, s>resync_mb_x, s>resync_mb_y, s>mb_x, s>mb_y, part_a_error); 

2974  2970 
return 1; 
2971 
} 

2975  2972 

2976  2973 
if(s>resync_mb_x + s>resync_mb_y*s>mb_width + mb_num > s>mb_num){ 
2977  2974 
fprintf(stderr, "slice below monitor ...\n"); 
2975 
ff_er_add_slice(s, s>resync_mb_x, s>resync_mb_y, s>mb_x, s>mb_y, part_a_error); 

2978  2976 
return 1; 
2979  2977 
} 
2980  2978  
...  ...  
2984  2982 
if(get_bits(&s>gb, 19)!=DC_MARKER){ 
2985  2983 
fprintf(stderr, "marker missing after first I partition at %d %d\n", s>mb_x, s>mb_y); 
2986  2984 
return 1; 
2987 
}else 

2988 
s>error_status_table[s>mb_x + s>mb_y*s>mb_width1]= MV_ENDDC_END; 

2985 
} 

2989  2986 
}else{ 
2990  2987 
if(get_bits(&s>gb, 17)!=MOTION_MARKER){ 
2991  2988 
fprintf(stderr, "marker missing after first P partition at %d %d\n", s>mb_x, s>mb_y); 
2992  2989 
return 1; 
2993 
}else 

2994 
s>error_status_table[s>mb_x + s>mb_y*s>mb_width1]= MV_END; 

2990 
} 

2995  2991 
} 
2992 
ff_er_add_slice(s, s>resync_mb_x, s>resync_mb_y, s>mb_x1, s>mb_y, part_a_end); 

2996  2993 

2997  2994 
if( mpeg4_decode_partition_b(s, mb_num) < 0){ 
2995 
if(s>pict_type==P_TYPE) 

2996 
ff_er_add_slice(s, s>resync_mb_x, s>resync_mb_y, s>mb_x, s>mb_y, DC_ERROR); 

2998  2997 
return 1; 
2998 
}else{ 

2999 
if(s>pict_type==P_TYPE) 

3000 
ff_er_add_slice(s, s>resync_mb_x, s>resync_mb_y, s>mb_x1, s>mb_y, DC_END); 

2999  3001 
} 
3000 


3001 
s>error_status_table[s>mb_x + s>mb_y*s>mb_width1]= DC_END; 

3002  3002  
3003  3003 
return 0; 
3004  3004 
} 
...  ...  
3071  3071 
} 
3072  3072 
} 
3073  3073  
3074 
s>error_status_table[xy]&= ~AC_ERROR; 

3075  
3076  3074 
/* perMB end of slice check */ 
3077  3075  
3078  3076 
if(s>mb_num_left <= 0){ 
...  ...  
3096  3094 
int16_t *mot_val; 
3097  3095 
static int8_t quant_tab[4] = { 1, 2, 1, 2 }; 
3098  3096  
3099 
s>error_status_table[s>mb_x + s>mb_y*s>mb_width]= 0; 

3100  
3101  3097 
if(s>mb_x==0) PRINT_MB_TYPE("\n"); 
3102  3098  
3103  3099 
if (s>pict_type == P_TYPE  s>pict_type==S_TYPE) { 
Also available in: Unified diff