aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2013-03-10 14:12:58 -0700
committerMartin Storsjö <martin@martin.st>2013-04-19 23:18:27 +0300
commit2f6bc5f7c193477c2ebc0acce8f2d5551445e129 (patch)
tree60de4c24f9e00a9fb9b0f07c03be5c3d2ee8ae4b
parentf4fed5a2f97ec843c04af6b91a86dd237a655361 (diff)
downloadffmpeg-2f6bc5f7c193477c2ebc0acce8f2d5551445e129.tar.gz
svq3: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
-rwxr-xr-xconfigure2
-rw-r--r--libavcodec/svq3.c17
2 files changed, 11 insertions, 8 deletions
diff --git a/configure b/configure
index 429bf1f99b..50d2cc8fa3 100755
--- a/configure
+++ b/configure
@@ -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;