diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2013-03-09 21:26:09 -0800 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2013-04-19 23:17:26 +0300 |
commit | 3bd062bf7f818bcb410713a4717b65679056ed80 (patch) | |
tree | 97f4ec76c2dd11b62a24f87f7029113f5fb4a3b6 | |
parent | 68d8238cca52e50e8cc81bf2edcaf8088c52d4c0 (diff) | |
download | ffmpeg-3bd062bf7f818bcb410713a4717b65679056ed80.tar.gz |
vp3: Use hpeldsp instead of dsputil for half-pel functions
This makes vp3 independent of dsputil.
Signed-off-by: Martin Storsjö <martin@martin.st>
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | libavcodec/vp3.c | 9 |
2 files changed, 6 insertions, 5 deletions
@@ -1661,7 +1661,7 @@ vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" -vp3_decoder_select="dsputil vp3dsp videodsp" +vp3_decoder_select="hpeldsp vp3dsp videodsp" vp5_decoder_select="dsputil h264chroma videodsp vp3dsp" vp6_decoder_select="dsputil h264chroma huffman videodsp vp3dsp" vp6a_decoder_select="vp6_decoder" diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c index 7c26609b09..0211537eb5 100644 --- a/libavcodec/vp3.c +++ b/libavcodec/vp3.c @@ -38,6 +38,7 @@ #include "internal.h" #include "dsputil.h" #include "get_bits.h" +#include "hpeldsp.h" #include "videodsp.h" #include "vp3data.h" #include "vp3dsp.h" @@ -137,7 +138,7 @@ typedef struct Vp3DecodeContext { int keyframe; uint8_t idct_permutation[64]; uint8_t idct_scantable[64]; - DSPContext dsp; + HpelDSPContext hdsp; VideoDSPContext vdsp; VP3DSPContext vp3dsp; DECLARE_ALIGNED(16, int16_t, block)[64]; @@ -1556,7 +1557,7 @@ static void render_slice(Vp3DecodeContext *s, int slice) VP3 source but this would be slower as put_no_rnd_pixels_tab is better optimzed */ if(motion_halfpel_index != 3){ - s->dsp.put_no_rnd_pixels_tab[1][motion_halfpel_index]( + s->hdsp.put_no_rnd_pixels_tab[1][motion_halfpel_index]( output_plane + first_pixel, motion_source, stride, 8); }else{ @@ -1596,7 +1597,7 @@ static void render_slice(Vp3DecodeContext *s, int slice) } else { /* copy directly from the previous frame */ - s->dsp.put_pixels_tab[1][0]( + s->hdsp.put_pixels_tab[1][0]( output_plane + first_pixel, last_plane + first_pixel, stride, 8); @@ -1695,7 +1696,7 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx) if (avctx->pix_fmt == AV_PIX_FMT_NONE) avctx->pix_fmt = AV_PIX_FMT_YUV420P; avctx->chroma_sample_location = AVCHROMA_LOC_CENTER; - ff_dsputil_init(&s->dsp, avctx); + ff_hpeldsp_init(&s->hdsp, avctx->flags | CODEC_FLAG_BITEXACT); ff_videodsp_init(&s->vdsp, 8); ff_vp3dsp_init(&s->vp3dsp, avctx->flags); |