diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2013-03-10 13:38:45 -0700 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-03-13 03:57:45 +0100 |
commit | 46523897774cc0a748dab3be66df9b4cacc7233f (patch) | |
tree | 02fd73ec108c412cb18ae7ff4cab5fb05083deeb | |
parent | cc5d17e0264027ebcd831b88247d4224e7b0d0e3 (diff) | |
download | ffmpeg-46523897774cc0a748dab3be66df9b4cacc7233f.tar.gz |
svq1: use hpeldsp instead of dsputil for half-pel functions.
This makes svq1 independent of dsputil.
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | libavcodec/svq1dec.c | 22 |
2 files changed, 12 insertions, 12 deletions
@@ -1804,7 +1804,7 @@ snow_encoder_select="aandcttables dsputil dwt h264qpel error_resilience mpegvide sonic_decoder_select="golomb" sonic_encoder_select="golomb" sonic_ls_encoder_select="golomb" -svq1_decoder_select="dsputil mpegvideo" +svq1_decoder_select="hpeldsp" svq1_encoder_select="aandcttables dsputil mpegvideoenc" svq3_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp" svq3_decoder_suggest="zlib" diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c index f571075b1b..c71b361c0c 100644 --- a/libavcodec/svq1dec.c +++ b/libavcodec/svq1dec.c @@ -33,8 +33,8 @@ */ #include "avcodec.h" -#include "dsputil.h" #include "get_bits.h" +#include "hpeldsp.h" #include "internal.h" #include "mathops.h" #include "svq1.h" @@ -58,7 +58,7 @@ typedef struct svq1_pmv_s { } svq1_pmv; typedef struct SVQ1Context { - DSPContext dsp; + HpelDSPContext hdsp; GetBitContext gb; AVFrame *prev; int width; @@ -319,7 +319,7 @@ static void svq1_skip_block(uint8_t *current, uint8_t *previous, } } -static int svq1_motion_inter_block(DSPContext *dsp, GetBitContext *bitbuf, +static int svq1_motion_inter_block(HpelDSPContext *hdsp, GetBitContext *bitbuf, uint8_t *current, uint8_t *previous, int pitch, svq1_pmv *motion, int x, int y) { @@ -358,12 +358,12 @@ static int svq1_motion_inter_block(DSPContext *dsp, GetBitContext *bitbuf, src = &previous[(x + (mv.x >> 1)) + (y + (mv.y >> 1)) * pitch]; dst = current; - dsp->put_pixels_tab[0][(mv.y & 1) << 1 | (mv.x & 1)](dst, src, pitch, 16); + hdsp->put_pixels_tab[0][(mv.y & 1) << 1 | (mv.x & 1)](dst, src, pitch, 16); return 0; } -static int svq1_motion_inter_4v_block(DSPContext *dsp, GetBitContext *bitbuf, +static int svq1_motion_inter_4v_block(HpelDSPContext *hdsp, GetBitContext *bitbuf, uint8_t *current, uint8_t *previous, int pitch, svq1_pmv *motion, int x, int y) { @@ -429,7 +429,7 @@ static int svq1_motion_inter_4v_block(DSPContext *dsp, GetBitContext *bitbuf, src = &previous[(x + (mvx >> 1)) + (y + (mvy >> 1)) * pitch]; dst = current; - dsp->put_pixels_tab[1][((mvy & 1) << 1) | (mvx & 1)](dst, src, pitch, 8); + hdsp->put_pixels_tab[1][((mvy & 1) << 1) | (mvx & 1)](dst, src, pitch, 8); /* select next block */ if (i & 1) @@ -441,7 +441,7 @@ static int svq1_motion_inter_4v_block(DSPContext *dsp, GetBitContext *bitbuf, return 0; } -static int svq1_decode_delta_block(AVCodecContext *avctx, DSPContext *dsp, +static int svq1_decode_delta_block(AVCodecContext *avctx, HpelDSPContext *hdsp, GetBitContext *bitbuf, uint8_t *current, uint8_t *previous, int pitch, svq1_pmv *motion, int x, int y) @@ -468,7 +468,7 @@ static int svq1_decode_delta_block(AVCodecContext *avctx, DSPContext *dsp, break; case SVQ1_BLOCK_INTER: - result = svq1_motion_inter_block(dsp, bitbuf, current, previous, + result = svq1_motion_inter_block(hdsp, bitbuf, current, previous, pitch, motion, x, y); if (result != 0) { @@ -479,7 +479,7 @@ static int svq1_decode_delta_block(AVCodecContext *avctx, DSPContext *dsp, break; case SVQ1_BLOCK_INTER_4V: - result = svq1_motion_inter_4v_block(dsp, bitbuf, current, previous, + result = svq1_motion_inter_4v_block(hdsp, bitbuf, current, previous, pitch, motion, x, y); if (result != 0) { @@ -699,7 +699,7 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data, for (y = 0; y < height; y += 16) { for (x = 0; x < width; x += 16) { - result = svq1_decode_delta_block(avctx, &s->dsp, + result = svq1_decode_delta_block(avctx, &s->hdsp, &s->gb, ¤t[x], previous, linesize, pmv, x, y); @@ -748,7 +748,7 @@ static av_cold int svq1_decode_init(AVCodecContext *avctx) s->height = avctx->height + 3 & ~3; avctx->pix_fmt = AV_PIX_FMT_YUV410P; - ff_dsputil_init(&s->dsp, avctx); + ff_hpeldsp_init(&s->hdsp, avctx->flags); INIT_VLC_STATIC(&svq1_block_type, 2, 4, &ff_svq1_block_type_vlc[0][1], 2, 1, |