| 80 | } |
| 81 | |
| 82 | static int decode_ext_header(Wmv2Context *w){ |
| 83 | MpegEncContext * const s= &w->s; |
| 84 | GetBitContext gb; |
| 85 | int fps; |
| 86 | int code; |
| 87 | |
| 88 | if(s->avctx->extradata_size<4) return -1; |
| 89 | |
| 90 | init_get_bits(&gb, s->avctx->extradata, s->avctx->extradata_size*8); |
| 91 | |
| 92 | fps = get_bits(&gb, 5); |
| 93 | s->bit_rate = get_bits(&gb, 11)*1024; |
| 94 | w->mspel_bit = get_bits1(&gb); |
| 95 | s->loop_filter = get_bits1(&gb); |
| 96 | w->abt_flag = get_bits1(&gb); |
| 97 | w->j_type_bit = get_bits1(&gb); |
| 98 | w->top_left_mv_flag= get_bits1(&gb); |
| 99 | w->per_mb_rl_bit = get_bits1(&gb); |
| 100 | code = get_bits(&gb, 3); |
| 101 | |
| 102 | if(code==0) return -1; |
| 103 | |
| 104 | s->slice_height = s->mb_height / code; |
| 105 | |
| 106 | if(s->avctx->debug&FF_DEBUG_PICT_INFO){ |
| 107 | av_log(s->avctx, AV_LOG_DEBUG, "fps:%d, br:%d, qpbit:%d, abt_flag:%d, j_type_bit:%d, tl_mv_flag:%d, mbrl_bit:%d, code:%d, loop_filter:%d, slices:%d\n", |
| 108 | fps, s->bit_rate, w->mspel_bit, w->abt_flag, w->j_type_bit, w->top_left_mv_flag, w->per_mb_rl_bit, code, s->loop_filter, |
| 109 | code); |
| 110 | } |
| 111 | return 0; |
| 112 | } |
| 113 | |
| 114 | int ff_wmv2_decode_picture_header(MpegEncContext * s) |
| 115 | { |
no test coverage detected