| @@ -37,7 +37,7 @@ · 36 unmodified lines |
| 37 | #include "wmv2dec.h" | 37 | #include "wmv2dec.h" |
| 38 | | 38 | |
| 39 | typedef struct WMV2DecContext { | 39 | typedef struct WMV2DecContext { |
| 40 | MpegEncContext s; | 40 | MSMP4DecContext ms; |
| 41 | WMV2Context common; | 41 | WMV2Context common; |
| 42 | IntraX8Context x8; | 42 | IntraX8Context x8; |
| 43 | int j_type_bit; | 43 | int j_type_bit; |
| @@ -59,7 +59,7 @@ typedef struct WMV2DecContext { · 15 unmodified lines |
| 59 | static void wmv2_add_block(WMV2DecContext *w, int16_t *block1, | 59 | static void wmv2_add_block(WMV2DecContext *w, int16_t *block1, |
| 60 | uint8_t *dst, int stride, int n) | 60 | uint8_t *dst, int stride, int n) |
| 61 | { | 61 | { |
| 62 | MpegEncContext *const s = &w->s; | 62 | MpegEncContext *const s = &w->ms.m; |
| 63 | | 63 | |
| 64 | if (s->block_last_index[n] >= 0) { | 64 | if (s->block_last_index[n] >= 0) { |
| 65 | switch (w->abt_type_table[n]) { | 65 | switch (w->abt_type_table[n]) { |
| @@ -103,7 +103,7 @@ static int parse_mb_skip(WMV2DecContext *w) · 37 unmodified lines |
| 103 | { | 103 | { |
| 104 | int mb_x, mb_y; | 104 | int mb_x, mb_y; |
| 105 | int coded_mb_count = 0; | 105 | int coded_mb_count = 0; |
| 106 | MpegEncContext *const s = &w->s; | 106 | MpegEncContext *const s = &w->ms.m; |
| 107 | uint32_t *const mb_type = s->cur_pic.mb_type; | 107 | uint32_t *const mb_type = s->cur_pic.mb_type; |
| 108 | | 108 | |
| 109 | w->skip_type = get_bits(&s->gb, 2); | 109 | w->skip_type = get_bits(&s->gb, 2); |
| @@ -166,7 +166,7 @@ static int parse_mb_skip(WMV2DecContext *w) · 56 unmodified lines |
| 166 | | 166 | |
| 167 | static int decode_ext_header(WMV2DecContext *w) | 167 | static int decode_ext_header(WMV2DecContext *w) |
| 168 | { | 168 | { |
| 169 | MpegEncContext *const s = &w->s; | 169 | MpegEncContext *const s = &w->ms.m; |
| 170 | GetBitContext gb; | 170 | GetBitContext gb; |
| 171 | int fps; | 171 | int fps; |
| 172 | int code; | 172 | int code; |
| @@ -336,8 +336,8 @@ int ff_wmv2_decode_secondary_picture_header(MpegEncContext *s) · 163 unmodified lines |
| 336 | 2 * s->qscale, (s->qscale - 1) | 1, | 336 | 2 * s->qscale, (s->qscale - 1) | 1, |
| 337 | s->loop_filter, s->low_delay); | 337 | s->loop_filter, s->low_delay); |
| 338 | | 338 | |
| 339 | ff_er_add_slice(&w->s.er, 0, 0, | 339 | ff_er_add_slice(&s->er, 0, 0, |
| 340 | (w->s.mb_x >> 1) - 1, (w->s.mb_y >> 1) - 1, | 340 | (s->mb_x >> 1) - 1, (s->mb_y >> 1) - 1, |
| 341 | ER_MB_END); | 341 | ER_MB_END); |
| 342 | return 1; | 342 | return 1; |
| 343 | } | 343 | } |
| @@ -347,7 +347,7 @@ int ff_wmv2_decode_secondary_picture_header(MpegEncContext *s) · 3 unmodified lines |
| 347 | | 347 | |
| 348 | static inline void wmv2_decode_motion(WMV2DecContext *w, int *mx_ptr, int *my_ptr) | 348 | static inline void wmv2_decode_motion(WMV2DecContext *w, int *mx_ptr, int *my_ptr) |
| 349 | { | 349 | { |
| 350 | MpegEncContext *const s = &w->s; | 350 | MpegEncContext *const s = &w->ms.m; |
| 351 | | 351 | |
| 352 | ff_msmpeg4_decode_motion(s, mx_ptr, my_ptr); | 352 | ff_msmpeg4_decode_motion(s, mx_ptr, my_ptr); |
| 353 | | 353 | |
| @@ -359,7 +359,7 @@ static inline void wmv2_decode_motion(WMV2DecContext *w, int *mx_ptr, int *my_pt · 5 unmodified lines |
| 359 | | 359 | |
| 360 | static int16_t *wmv2_pred_motion(WMV2DecContext *w, int *px, int *py) | 360 | static int16_t *wmv2_pred_motion(WMV2DecContext *w, int *px, int *py) |
| 361 | { | 361 | { |
| 362 | MpegEncContext *const s = &w->s; | 362 | MpegEncContext *const s = &w->ms.m; |
| 363 | int xy, wrap, diff, type; | 363 | int xy, wrap, diff, type; |
| 364 | int16_t *A, *B, *C, *mot_val; | 364 | int16_t *A, *B, *C, *mot_val; |
| 365 | | 365 | |
| @@ -405,7 +405,7 @@ static int16_t *wmv2_pred_motion(WMV2DecContext *w, int *px, int *py) · 39 unmodified lines |
| 405 | static inline int wmv2_decode_inter_block(WMV2DecContext *w, int16_t *block, | 405 | static inline int wmv2_decode_inter_block(WMV2DecContext *w, int16_t *block, |
| 406 | int n, int cbp) | 406 | int n, int cbp) |
| 407 | { | 407 | { |
| 408 | MpegEncContext *const s = &w->s; | 408 | MpegEncContext *const s = &w->ms.m; |
| 409 | static const int sub_cbp_table[3] = { 2, 3, 1 }; | 409 | static const int sub_cbp_table[3] = { 2, 3, 1 }; |
| 410 | int sub_cbp, ret; | 410 | int sub_cbp, ret; |
| 411 | | 411 | |
| @@ -561,7 +561,7 @@ static int wmv2_decode_mb(MpegEncContext *s, int16_t block[6][64]) · 149 unmodified lines |
| 561 | static av_cold int wmv2_decode_init(AVCodecContext *avctx) | 561 | static av_cold int wmv2_decode_init(AVCodecContext *avctx) |
| 562 | { | 562 | { |
| 563 | WMV2DecContext *const w = avctx->priv_data; | 563 | WMV2DecContext *const w = avctx->priv_data; |
| 564 | MpegEncContext *const s = &w->s; | 564 | MpegEncContext *const s = &w->ms.m; |
| 565 | int ret; | 565 | int ret; |
| 566 | | 566 | |
| 567 | s->private_ctx = &w->common; | 567 | s->private_ctx = &w->common; |
| @@ -575,8 +575,8 @@ static av_cold int wmv2_decode_init(AVCodecContext *avctx) · 7 unmodified lines |
| 575 | | 575 | |
| 576 | decode_ext_header(w); | 576 | decode_ext_header(w); |
| 577 | | 577 | |
| 578 | return ff_intrax8_common_init(avctx, &w->x8, w->s.block, | 578 | return ff_intrax8_common_init(avctx, &w->x8, s->block, |
| 579 | w->s.mb_width, w->s.mb_height); | 579 | s->mb_width, s->mb_height); |
| 580 | } | 580 | } |
| 581 | | 581 | |
| 582 | static av_cold int wmv2_decode_end(AVCodecContext *avctx) | 582 | static av_cold int wmv2_decode_end(AVCodecContext *avctx) |