[FFmpeg-devel] [PATCH 16/33] svq1: use hpeldsp.
Ronald S. Bultje
rsbultje at gmail.com
Wed Feb 6 04:27:29 CET 2013
From: "Ronald S. Bultje" <rsbultje at gmail.com>
---
configure | 2 +-
libavcodec/svq1dec.c | 22 +++++++++++-----------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/configure b/configure
index 17f7fe6..8cd310b 100755
--- a/configure
+++ b/configure
@@ -1746,7 +1746,7 @@ snow_encoder_select="aandcttables dwt error_resilience mpegvideoenc rangecoder"
sonic_decoder_select="golomb"
sonic_encoder_select="golomb"
sonic_ls_encoder_select="golomb"
-svq1_decoder_select="error_resilience mpegvideo"
+svq1_decoder_select="error_resilience hpeldsp mpegvideo"
svq1_encoder_select="aandcttables error_resilience mpegvideoenc"
svq3_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo"
svq3_decoder_suggest="zlib"
diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c
index 5735683..8a7748d 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 *cur, *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) {
@@ -702,7 +702,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);
@@ -753,7 +753,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,
--
1.7.11.3
More information about the ffmpeg-devel
mailing list