Commit 704c9874 authored by Ronald S. Bultje's avatar Ronald S. Bultje Committed by Michael Niedermayer

vp56: use hpeldsp instead of dsputil for half-pel functions.

This makes vp5 and vp6 independent of dsputil.
parent d1293512
...@@ -1824,8 +1824,8 @@ vc1image_decoder_select="vc1_decoder" ...@@ -1824,8 +1824,8 @@ vc1image_decoder_select="vc1_decoder"
vorbis_decoder_select="mdct" vorbis_decoder_select="mdct"
vorbis_encoder_select="mdct" vorbis_encoder_select="mdct"
vp3_decoder_select="hpeldsp vp3dsp videodsp" vp3_decoder_select="hpeldsp vp3dsp videodsp"
vp5_decoder_select="dsputil h264chroma videodsp vp3dsp" vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp"
vp6_decoder_select="dsputil h264chroma huffman videodsp vp3dsp" vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp"
vp6a_decoder_select="vp6_decoder" vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder" vp6f_decoder_select="vp6_decoder"
vp8_decoder_select="h264pred videodsp" vp8_decoder_select="h264pred videodsp"
......
...@@ -349,7 +349,7 @@ static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src, ...@@ -349,7 +349,7 @@ static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src,
} else if (deblock_filtering) { } else if (deblock_filtering) {
/* only need a 12x12 block, but there is no such dsp function, */ /* only need a 12x12 block, but there is no such dsp function, */
/* so copy a 16x12 block */ /* so copy a 16x12 block */
s->dsp.put_pixels_tab[0][0](s->edge_emu_buffer, s->hdsp.put_pixels_tab[0][0](s->edge_emu_buffer,
src + s->block_offset[b] + (dy-2)*stride + (dx-2), src + s->block_offset[b] + (dy-2)*stride + (dx-2),
stride, 12); stride, 12);
src_block = s->edge_emu_buffer; src_block = s->edge_emu_buffer;
...@@ -376,7 +376,7 @@ static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src, ...@@ -376,7 +376,7 @@ static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src,
src_block+src_offset+overlap_offset, src_block+src_offset+overlap_offset,
stride, 8); stride, 8);
} else { } else {
s->dsp.put_pixels_tab[1][0](dst, src_block+src_offset, stride, 8); s->hdsp.put_pixels_tab[1][0](dst, src_block+src_offset, stride, 8);
} }
} }
...@@ -419,7 +419,7 @@ static void vp56_decode_mb(VP56Context *s, int row, int col, int is_alpha) ...@@ -419,7 +419,7 @@ static void vp56_decode_mb(VP56Context *s, int row, int col, int is_alpha)
for (b=0; b<b_max; b++) { for (b=0; b<b_max; b++) {
plane = ff_vp56_b2p[b+ab]; plane = ff_vp56_b2p[b+ab];
off = s->block_offset[b]; off = s->block_offset[b];
s->dsp.put_pixels_tab[1][0](frame_current->data[plane] + off, s->hdsp.put_pixels_tab[1][0](frame_current->data[plane] + off,
frame_ref->data[plane] + off, frame_ref->data[plane] + off,
s->stride[plane], 8); s->stride[plane], 8);
s->vp3dsp.idct_add(frame_current->data[plane] + off, s->vp3dsp.idct_add(frame_current->data[plane] + off,
...@@ -687,8 +687,8 @@ av_cold int ff_vp56_init_context(AVCodecContext *avctx, VP56Context *s, ...@@ -687,8 +687,8 @@ av_cold int ff_vp56_init_context(AVCodecContext *avctx, VP56Context *s,
s->avctx = avctx; s->avctx = avctx;
avctx->pix_fmt = has_alpha ? AV_PIX_FMT_YUVA420P : AV_PIX_FMT_YUV420P; avctx->pix_fmt = has_alpha ? AV_PIX_FMT_YUVA420P : AV_PIX_FMT_YUV420P;
ff_dsputil_init(&s->dsp, avctx);
ff_h264chroma_init(&s->h264chroma, 8); ff_h264chroma_init(&s->h264chroma, 8);
ff_hpeldsp_init(&s->hdsp, avctx->flags);
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);
ff_vp56dsp_init(&s->vp56dsp, avctx->codec->id); ff_vp56dsp_init(&s->vp56dsp, avctx->codec->id);
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "vp56data.h" #include "vp56data.h"
#include "dsputil.h" #include "dsputil.h"
#include "get_bits.h" #include "get_bits.h"
#include "hpeldsp.h"
#include "bytestream.h" #include "bytestream.h"
#include "h264chroma.h" #include "h264chroma.h"
#include "videodsp.h" #include "videodsp.h"
...@@ -95,8 +96,8 @@ typedef struct VP56Model { ...@@ -95,8 +96,8 @@ typedef struct VP56Model {
struct vp56_context { struct vp56_context {
AVCodecContext *avctx; AVCodecContext *avctx;
DSPContext dsp;
H264ChromaContext h264chroma; H264ChromaContext h264chroma;
HpelDSPContext hdsp;
VideoDSPContext vdsp; VideoDSPContext vdsp;
VP3DSPContext vp3dsp; VP3DSPContext vp3dsp;
VP56DSPContext vp56dsp; VP56DSPContext vp56dsp;
......
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