| 28 | |
| 29 | |
| 30 | static int encode_ext_header(Wmv2Context *w){ |
| 31 | MpegEncContext * const s= &w->s; |
| 32 | PutBitContext pb; |
| 33 | int code; |
| 34 | |
| 35 | init_put_bits(&pb, s->avctx->extradata, s->avctx->extradata_size); |
| 36 | |
| 37 | put_bits(&pb, 5, s->avctx->time_base.den / s->avctx->time_base.num); //yes 29.97 -> 29 |
| 38 | put_bits(&pb, 11, FFMIN(s->bit_rate/1024, 2047)); |
| 39 | |
| 40 | put_bits(&pb, 1, w->mspel_bit=1); |
| 41 | put_bits(&pb, 1, s->loop_filter); |
| 42 | put_bits(&pb, 1, w->abt_flag=1); |
| 43 | put_bits(&pb, 1, w->j_type_bit=1); |
| 44 | put_bits(&pb, 1, w->top_left_mv_flag=0); |
| 45 | put_bits(&pb, 1, w->per_mb_rl_bit=1); |
| 46 | put_bits(&pb, 3, code=1); |
| 47 | |
| 48 | flush_put_bits(&pb); |
| 49 | |
| 50 | s->slice_height = s->mb_height / code; |
| 51 | |
| 52 | return 0; |
| 53 | } |
| 54 | |
| 55 | static av_cold int wmv2_encode_init(AVCodecContext *avctx){ |
| 56 | Wmv2Context * const w= avctx->priv_data; |
no test coverage detected