Mercurial > libavcodec.hg
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; |