diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2013-03-10 14:12:58 -0700 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2013-04-19 23:18:27 +0300 |
commit | 2f6bc5f7c193477c2ebc0acce8f2d5551445e129 (patch) | |
tree | 60de4c24f9e00a9fb9b0f07c03be5c3d2ee8ae4b | |
parent | f4fed5a2f97ec843c04af6b91a86dd237a655361 (diff) | |
download | ffmpeg-2f6bc5f7c193477c2ebc0acce8f2d5551445e129.tar.gz |
svq3: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | libavcodec/svq3.c | 17 |
2 files changed, 11 insertions, 8 deletions
@@ -1642,7 +1642,7 @@ sipr_decoder_select="lsp" sp5x_decoder_select="dsputil" svq1_decoder_select="hpeldsp" svq1_encoder_select="aandcttables dsputil mpegvideoenc" -svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp" +svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel hpeldsp mpegvideo videodsp" svq3_decoder_suggest="error_resilience zlib" tak_decoder_select="dsputil" theora_decoder_select="vp3_decoder" diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index 0c3af86560..1ecc1b29d1 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -48,6 +48,7 @@ #include "h264_mvpred.h" #include "golomb.h" +#include "hpeldsp.h" #include "rectangle.h" #include "vdpau_internal.h" @@ -65,6 +66,7 @@ typedef struct { H264Context h; + HpelDSPContext hdsp; Picture *cur_pic; Picture *next_pic; Picture *last_pic; @@ -312,9 +314,9 @@ static inline void svq3_mc_dir_part(SVQ3Context *s, : h->dsp.put_tpel_pixels_tab)[dxy](dest, src, h->linesize, width, height); else - (avg ? h->dsp.avg_pixels_tab - : h->dsp.put_pixels_tab)[blocksize][dxy](dest, src, h->linesize, - height); + (avg ? s->hdsp.avg_pixels_tab + : s->hdsp.put_pixels_tab)[blocksize][dxy](dest, src, h->linesize, + height); if (!(h->flags & CODEC_FLAG_GRAY)) { mx = mx + (mx < (int) x) >> 1; @@ -340,10 +342,10 @@ static inline void svq3_mc_dir_part(SVQ3Context *s, h->uvlinesize, width, height); else - (avg ? h->dsp.avg_pixels_tab - : h->dsp.put_pixels_tab)[blocksize][dxy](dest, src, - h->uvlinesize, - height); + (avg ? s->hdsp.avg_pixels_tab + : s->hdsp.put_pixels_tab)[blocksize][dxy](dest, src, + h->uvlinesize, + height); } } } @@ -865,6 +867,7 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx) if (ff_h264_decode_init(avctx) < 0) return -1; + ff_hpeldsp_init(&s->hdsp, avctx->flags); h->flags = avctx->flags; h->is_complex = 1; h->picture_structure = PICT_FRAME; |