comparison rv10.c @ 1917:1c382d137275 libavcodec

rv20 (0x20201002) support
author michael
date Fri, 02 Apr 2004 21:04:56 +0000
parents 5ac49e7a1b8f
children e2501e6e7ff7
comparison
equal deleted inserted replaced
1916:f2d134308a70 1917:1c382d137275
386 if (get_bits(&s->gb, 1)){ 386 if (get_bits(&s->gb, 1)){
387 // av_log(s->avctx, AV_LOG_ERROR, "unknown bit3 set\n"); 387 // av_log(s->avctx, AV_LOG_ERROR, "unknown bit3 set\n");
388 // return -1; 388 // return -1;
389 } 389 }
390 seq= get_bits(&s->gb, 15); 390 seq= get_bits(&s->gb, 15);
391 if (s->avctx->sub_id == 0x20201002 && get_bits(&s->gb, 1)){
392 av_log(s->avctx, AV_LOG_ERROR, "unknown bit4 set\n");
393 // return -1;
394 }
391 mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1); 395 mb_pos= get_bits(&s->gb, av_log2(s->mb_num-1)+1);
392 s->mb_x= mb_pos % s->mb_width; 396 s->mb_x= mb_pos % s->mb_width;
393 s->mb_y= mb_pos / s->mb_width; 397 s->mb_y= mb_pos / s->mb_width;
394 }else{ 398 }else{
395 seq= get_bits(&s->gb, 8)*128; 399 seq= get_bits(&s->gb, 8)*128;
396 mb_pos= ff_h263_decode_mba(s); 400 mb_pos= ff_h263_decode_mba(s);
397 } 401 }
398 //printf("%d\n", seq); 402 //av_log(s->avctx, AV_LOG_DEBUG, "%d\n", seq);
399 seq |= s->time &~0x7FFF; 403 seq |= s->time &~0x7FFF;
400 if(seq - s->time > 0x4000) seq -= 0x8000; 404 if(seq - s->time > 0x4000) seq -= 0x8000;
401 if(seq - s->time < -0x4000) seq += 0x8000; 405 if(seq - s->time < -0x4000) seq += 0x8000;
402 if(seq != s->time){ 406 if(seq != s->time){
403 if(s->pict_type!=B_TYPE){ 407 if(s->pict_type!=B_TYPE){
412 return FRAME_SKIPED; 416 return FRAME_SKIPED;
413 } 417 }
414 } 418 }
415 } 419 }
416 // printf("%d %d %d %d %d\n", seq, (int)s->time, (int)s->last_non_b_time, s->pp_time, s->pb_time); 420 // printf("%d %d %d %d %d\n", seq, (int)s->time, (int)s->last_non_b_time, s->pp_time, s->pb_time);
417 421 /*for(i=0; i<32; i++){
422 av_log(s->avctx, AV_LOG_DEBUG, "%d", get_bits1(&s->gb));
423 }
424 av_log(s->avctx, AV_LOG_DEBUG, "\n");*/
418 s->no_rounding= get_bits1(&s->gb); 425 s->no_rounding= get_bits1(&s->gb);
419 426
420 s->f_code = 1; 427 s->f_code = 1;
421 s->unrestricted_mv = 1; 428 s->unrestricted_mv = 1;
422 s->h263_aic= s->pict_type == I_TYPE; 429 s->h263_aic= s->pict_type == I_TYPE;
476 case 0x20100001: 483 case 0x20100001:
477 case 0x20101001: 484 case 0x20101001:
478 s->low_delay=1; 485 s->low_delay=1;
479 break; 486 break;
480 case 0x20200002: 487 case 0x20200002:
488 case 0x20201002:
481 case 0x30202002: 489 case 0x30202002:
482 case 0x30203002: 490 case 0x30203002:
483 s->low_delay=0; 491 s->low_delay=0;
484 s->avctx->has_b_frames=1; 492 s->avctx->has_b_frames=1;
485 break; 493 break;