comparison mpeg12enc.c @ 5446:9af99d2cce0f libavcodec

get rid of mb_type_len
author michael
date Wed, 01 Aug 2007 22:39:03 +0000
parents 5581a40c673a
children 493dc59d469a
comparison
equal deleted inserted replaced
5445:5581a40c673a 5446:9af99d2cce0f
560 put_bits(&s->pb, 2, cbp & 3); 560 put_bits(&s->pb, 2, cbp & 3);
561 } 561 }
562 } 562 }
563 s->f_count++; 563 s->f_count++;
564 } else{ 564 } else{
565 static const int mb_type_len[4]={0,4,3,2}; //bak,for,bi
566
567 if(s->mv_type == MV_TYPE_16X16){ 565 if(s->mv_type == MV_TYPE_16X16){
568 if (cbp){ // With coded bloc pattern 566 if (cbp){ // With coded bloc pattern
569 if (s->dquant) { 567 if (s->dquant) {
570 if(s->mv_dir == MV_DIR_FORWARD) 568 if(s->mv_dir == MV_DIR_FORWARD)
571 put_mb_modes(s, 6, 3, 1, 0); 569 put_mb_modes(s, 6, 3, 1, 0);
572 else 570 else
573 put_mb_modes(s, mb_type_len[s->mv_dir]+3, 2, 1, 0); 571 put_mb_modes(s, 8-s->mv_dir, 2, 1, 0);
574 put_qscale(s); 572 put_qscale(s);
575 } else { 573 } else {
576 put_mb_modes(s, mb_type_len[s->mv_dir], 3, 1, 0); 574 put_mb_modes(s, 5-s->mv_dir, 3, 1, 0);
577 } 575 }
578 }else{ // No coded bloc pattern 576 }else{ // No coded bloc pattern
579 put_bits(&s->pb, mb_type_len[s->mv_dir], 2); 577 put_bits(&s->pb, 5-s->mv_dir, 2);
580 if (!s->frame_pred_frame_dct) 578 if (!s->frame_pred_frame_dct)
581 put_bits(&s->pb, 2, 2); /* motion_type: frame */ 579 put_bits(&s->pb, 2, 2); /* motion_type: frame */
582 s->qscale -= s->dquant; 580 s->qscale -= s->dquant;
583 } 581 }
584 s->misc_bits += get_bits_diff(s); 582 s->misc_bits += get_bits_diff(s);
602 if (cbp){ // With coded bloc pattern 600 if (cbp){ // With coded bloc pattern
603 if (s->dquant) { 601 if (s->dquant) {
604 if(s->mv_dir == MV_DIR_FORWARD) 602 if(s->mv_dir == MV_DIR_FORWARD)
605 put_mb_modes(s, 6, 3, 1, 1); 603 put_mb_modes(s, 6, 3, 1, 1);
606 else 604 else
607 put_mb_modes(s, mb_type_len[s->mv_dir]+3, 2, 1, 1); 605 put_mb_modes(s, 8-s->mv_dir, 2, 1, 1);
608 put_qscale(s); 606 put_qscale(s);
609 } else { 607 } else {
610 put_mb_modes(s, mb_type_len[s->mv_dir], 3, 1, 1); 608 put_mb_modes(s, 5-s->mv_dir, 3, 1, 1);
611 } 609 }
612 }else{ // No coded bloc pattern 610 }else{ // No coded bloc pattern
613 put_bits(&s->pb, mb_type_len[s->mv_dir], 2); 611 put_bits(&s->pb, 5-s->mv_dir, 2);
614 put_bits(&s->pb, 2, 1); /* motion_type: field */ 612 put_bits(&s->pb, 2, 1); /* motion_type: field */
615 s->qscale -= s->dquant; 613 s->qscale -= s->dquant;
616 } 614 }
617 s->misc_bits += get_bits_diff(s); 615 s->misc_bits += get_bits_diff(s);
618 if (s->mv_dir&MV_DIR_FORWARD){ 616 if (s->mv_dir&MV_DIR_FORWARD){