comparison vc1.c @ 3693:e9be5d4bad80 libavcodec

Support for BI-frames in Advanced Profile
author kostya
date Sat, 09 Sep 2006 11:32:36 +0000
parents 7857ae840b0b
children 8765ee4eaa45
comparison
equal deleted inserted replaced
3692:7857ae840b0b 3693:e9be5d4bad80
1324 VC1Context *v = avctx->priv_data; 1324 VC1Context *v = avctx->priv_data;
1325 int i; 1325 int i;
1326 1326
1327 av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32)); 1327 av_log(avctx, AV_LOG_DEBUG, "Entry point: %08X\n", show_bits_long(gb, 32));
1328 get_bits1(gb); // broken link 1328 get_bits1(gb); // broken link
1329 get_bits1(gb); // closed entry 1329 avctx->max_b_frames = 1 - get_bits1(gb); // 'closed entry' also signalize possible B-frames
1330 v->panscanflag = get_bits1(gb); 1330 v->panscanflag = get_bits1(gb);
1331 get_bits1(gb); // refdist flag 1331 get_bits1(gb); // refdist flag
1332 v->s.loop_filter = get_bits1(gb); 1332 v->s.loop_filter = get_bits1(gb);
1333 v->fastuvmc = get_bits1(gb); 1333 v->fastuvmc = get_bits1(gb);
1334 v->extended_mv = get_bits1(gb); 1334 v->extended_mv = get_bits1(gb);
1590 case 2: 1590 case 2:
1591 v->s.pict_type = I_TYPE; 1591 v->s.pict_type = I_TYPE;
1592 break; 1592 break;
1593 case 3: 1593 case 3:
1594 v->s.pict_type = BI_TYPE; 1594 v->s.pict_type = BI_TYPE;
1595 return -1; 1595 break;
1596 // break;
1597 case 4: 1596 case 4:
1598 v->s.pict_type = P_TYPE; // skipped pic 1597 v->s.pict_type = P_TYPE; // skipped pic
1599 v->p_frame_skipped = 1; 1598 v->p_frame_skipped = 1;
1600 return 0; 1599 return 0;
1601 } 1600 }
1634 if (v->quantizer_mode == QUANT_FRAME_EXPLICIT) 1633 if (v->quantizer_mode == QUANT_FRAME_EXPLICIT)
1635 v->pquantizer = get_bits(gb, 1); 1634 v->pquantizer = get_bits(gb, 1);
1636 1635
1637 switch(v->s.pict_type) { 1636 switch(v->s.pict_type) {
1638 case I_TYPE: 1637 case I_TYPE:
1638 case BI_TYPE:
1639 status = bitplane_decoding(v->acpred_plane, &v->acpred_is_raw, v); 1639 status = bitplane_decoding(v->acpred_plane, &v->acpred_is_raw, v);
1640 if (status < 0) return -1; 1640 if (status < 0) return -1;
1641 av_log(v->s.avctx, AV_LOG_DEBUG, "ACPRED plane encoding: " 1641 av_log(v->s.avctx, AV_LOG_DEBUG, "ACPRED plane encoding: "
1642 "Imode: %i, Invert: %i\n", status>>1, status&1); 1642 "Imode: %i, Invert: %i\n", status>>1, status&1);
1643 v->condover = CONDOVER_NONE; 1643 v->condover = CONDOVER_NONE;
1754 if (v->s.pict_type == I_TYPE && v->dquant) { 1754 if (v->s.pict_type == I_TYPE && v->dquant) {
1755 av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); 1755 av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n");
1756 vop_dquant_decoding(v); 1756 vop_dquant_decoding(v);
1757 } 1757 }
1758 1758
1759 v->bi_type = 0;
1760 if(v->s.pict_type == BI_TYPE) {
1761 v->s.pict_type = B_TYPE;
1762 v->bi_type = 1;
1763 }
1759 return 0; 1764 return 0;
1760 } 1765 }
1761 1766
1762 /***********************************************************************/ 1767 /***********************************************************************/
1763 /** 1768 /**