Commit 3bd062bf authored by Ronald S. Bultje's avatar Ronald S. Bultje Committed by Martin Storsjö

vp3: Use hpeldsp instead of dsputil for half-pel functions

This makes vp3 independent of dsputil.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 68d8238c
...@@ -1661,7 +1661,7 @@ vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel" ...@@ -1661,7 +1661,7 @@ vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel"
vc1image_decoder_select="vc1_decoder" vc1image_decoder_select="vc1_decoder"
vorbis_decoder_select="mdct" vorbis_decoder_select="mdct"
vorbis_encoder_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" vp5_decoder_select="dsputil h264chroma videodsp vp3dsp"
vp6_decoder_select="dsputil h264chroma huffman videodsp vp3dsp" vp6_decoder_select="dsputil h264chroma huffman videodsp vp3dsp"
vp6a_decoder_select="vp6_decoder" vp6a_decoder_select="vp6_decoder"
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include "internal.h" #include "internal.h"
#include "dsputil.h" #include "dsputil.h"
#include "get_bits.h" #include "get_bits.h"
#include "hpeldsp.h"
#include "videodsp.h" #include "videodsp.h"
#include "vp3data.h" #include "vp3data.h"
#include "vp3dsp.h" #include "vp3dsp.h"
...@@ -137,7 +138,7 @@ typedef struct Vp3DecodeContext { ...@@ -137,7 +138,7 @@ typedef struct Vp3DecodeContext {
int keyframe; int keyframe;
uint8_t idct_permutation[64]; uint8_t idct_permutation[64];
uint8_t idct_scantable[64]; uint8_t idct_scantable[64];
DSPContext dsp; HpelDSPContext hdsp;
VideoDSPContext vdsp; VideoDSPContext vdsp;
VP3DSPContext vp3dsp; VP3DSPContext vp3dsp;
DECLARE_ALIGNED(16, int16_t, block)[64]; DECLARE_ALIGNED(16, int16_t, block)[64];
...@@ -1556,7 +1557,7 @@ static void render_slice(Vp3DecodeContext *s, int slice) ...@@ -1556,7 +1557,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
VP3 source but this would be slower as VP3 source but this would be slower as
put_no_rnd_pixels_tab is better optimzed */ put_no_rnd_pixels_tab is better optimzed */
if(motion_halfpel_index != 3){ 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, output_plane + first_pixel,
motion_source, stride, 8); motion_source, stride, 8);
}else{ }else{
...@@ -1596,7 +1597,7 @@ static void render_slice(Vp3DecodeContext *s, int slice) ...@@ -1596,7 +1597,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
} else { } else {
/* copy directly from the previous frame */ /* copy directly from the previous frame */
s->dsp.put_pixels_tab[1][0]( s->hdsp.put_pixels_tab[1][0](
output_plane + first_pixel, output_plane + first_pixel,
last_plane + first_pixel, last_plane + first_pixel,
stride, 8); stride, 8);
...@@ -1695,7 +1696,7 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx) ...@@ -1695,7 +1696,7 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
if (avctx->pix_fmt == AV_PIX_FMT_NONE) if (avctx->pix_fmt == AV_PIX_FMT_NONE)
avctx->pix_fmt = AV_PIX_FMT_YUV420P; avctx->pix_fmt = AV_PIX_FMT_YUV420P;
avctx->chroma_sample_location = AVCHROMA_LOC_CENTER; 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_videodsp_init(&s->vdsp, 8);
ff_vp3dsp_init(&s->vp3dsp, avctx->flags); ff_vp3dsp_init(&s->vp3dsp, avctx->flags);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment