diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-21 15:34:57 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-21 16:07:21 +0100 |
commit | db23d5de27187dd8f2ec5c6dfd98a8a363b0fda5 (patch) | |
tree | 01b9286e8a7d1e83c4b8d734d7767a3115838561 /libavcodec/wmv2.c | |
parent | 2cf9ab655549cf2f25ba57ee84baa6d38530ec3b (diff) | |
parent | e6bc38fd49c94726b45d5d5cc2b756ad8ec49ee0 (diff) | |
download | ffmpeg-db23d5de27187dd8f2ec5c6dfd98a8a363b0fda5.tar.gz |
Merge commit 'e6bc38fd49c94726b45d5d5cc2b756ad8ec49ee0'
* commit 'e6bc38fd49c94726b45d5d5cc2b756ad8ec49ee0':
wmv2: move IDCT to its own DSP context.
Conflicts:
libavcodec/dsputil.h
tests/ref/seek/vsynth2-wmv2
tests/ref/vsynth/vsynth1-wmv2
tests/ref/vsynth/vsynth2-wmv2
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/wmv2.c')
-rw-r--r-- | libavcodec/wmv2.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/libavcodec/wmv2.c b/libavcodec/wmv2.c index c338bb10df..fc82cb2723 100644 --- a/libavcodec/wmv2.c +++ b/libavcodec/wmv2.c @@ -28,8 +28,24 @@ av_cold void ff_wmv2_common_init(Wmv2Context * w){ MpegEncContext * const s= &w->s; - ff_init_scantable(s->dsp.idct_permutation, &w->abt_scantable[0], ff_wmv2_scantableA); - ff_init_scantable(s->dsp.idct_permutation, &w->abt_scantable[1], ff_wmv2_scantableB); + ff_wmv2dsp_init(&w->wdsp); + ff_init_scantable_permutation(s->dsp.idct_permutation, + w->wdsp.idct_perm); + ff_init_scantable(s->dsp.idct_permutation, &w->abt_scantable[0], + ff_wmv2_scantableA); + ff_init_scantable(s->dsp.idct_permutation, &w->abt_scantable[1], + ff_wmv2_scantableB); + ff_init_scantable(s->dsp.idct_permutation, &s->intra_scantable, + ff_wmv1_scantable[1]); + ff_init_scantable(s->dsp.idct_permutation, &s->intra_h_scantable, + ff_wmv1_scantable[2]); + ff_init_scantable(s->dsp.idct_permutation, &s->intra_v_scantable, + ff_wmv1_scantable[3]); + ff_init_scantable(s->dsp.idct_permutation, &s->inter_scantable, + ff_wmv1_scantable[0]); + s->dsp.idct_put = w->wdsp.idct_put; + s->dsp.idct_add = w->wdsp.idct_add; + s->dsp.idct = NULL; } static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int stride, int n){ @@ -38,7 +54,7 @@ static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int st if (s->block_last_index[n] >= 0) { switch(w->abt_type_table[n]){ case 0: - s->dsp.idct_add (dst, stride, block1); + w->wdsp.idct_add(dst, stride, block1); break; case 1: ff_simple_idct84_add(dst , stride, block1); |