comparison h263dec.c @ 10535:95f3daa991a2 libavcodec

Use get_bits_left() instead of size_in_bits - get_bits_count().
author rbultje
date Mon, 16 Nov 2009 17:42:43 +0000
parents cdf5b1ed3500
children c199eb2ad4ec
comparison
equal deleted inserted replaced
10534:4cd2ef16fb63 10535:95f3daa991a2
266 assert(s->mb_x==0 && s->mb_y==s->mb_height); 266 assert(s->mb_x==0 && s->mb_y==s->mb_height);
267 267
268 /* try to detect the padding bug */ 268 /* try to detect the padding bug */
269 if( s->codec_id==CODEC_ID_MPEG4 269 if( s->codec_id==CODEC_ID_MPEG4
270 && (s->workaround_bugs&FF_BUG_AUTODETECT) 270 && (s->workaround_bugs&FF_BUG_AUTODETECT)
271 && s->gb.size_in_bits - get_bits_count(&s->gb) >=0 271 && get_bits_left(&s->gb) >=0
272 && s->gb.size_in_bits - get_bits_count(&s->gb) < 48 272 && get_bits_left(&s->gb) < 48
273 // && !s->resync_marker 273 // && !s->resync_marker
274 && !s->data_partitioning){ 274 && !s->data_partitioning){
275 275
276 const int bits_count= get_bits_count(&s->gb); 276 const int bits_count= get_bits_count(&s->gb);
277 const int bits_left = s->gb.size_in_bits - bits_count; 277 const int bits_left = s->gb.size_in_bits - bits_count;
298 s->workaround_bugs &= ~FF_BUG_NO_PADDING; 298 s->workaround_bugs &= ~FF_BUG_NO_PADDING;
299 } 299 }
300 300
301 // handle formats which don't have unique end markers 301 // handle formats which don't have unique end markers
302 if(s->msmpeg4_version || (s->workaround_bugs&FF_BUG_NO_PADDING)){ //FIXME perhaps solve this more cleanly 302 if(s->msmpeg4_version || (s->workaround_bugs&FF_BUG_NO_PADDING)){ //FIXME perhaps solve this more cleanly
303 int left= s->gb.size_in_bits - get_bits_count(&s->gb); 303 int left= get_bits_left(&s->gb);
304 int max_extra=7; 304 int max_extra=7;
305 305
306 /* no markers in M$ crap */ 306 /* no markers in M$ crap */
307 if(s->msmpeg4_version && s->pict_type==FF_I_TYPE) 307 if(s->msmpeg4_version && s->pict_type==FF_I_TYPE)
308 max_extra+= 17; 308 max_extra+= 17;
323 323
324 return 0; 324 return 0;
325 } 325 }
326 326
327 av_log(s->avctx, AV_LOG_ERROR, "slice end not reached but screenspace end (%d left %06X, score= %d)\n", 327 av_log(s->avctx, AV_LOG_ERROR, "slice end not reached but screenspace end (%d left %06X, score= %d)\n",
328 s->gb.size_in_bits - get_bits_count(&s->gb), 328 get_bits_left(&s->gb),
329 show_bits(&s->gb, 24), s->padding_bug_score); 329 show_bits(&s->gb, 24), s->padding_bug_score);
330 330
331 ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_END|DC_END|MV_END)&part_mask); 331 ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, (AC_END|DC_END|MV_END)&part_mask);
332 332
333 return -1; 333 return -1;