[10/27] svq1: Use hpeldsp instead of dsputil for half-pel functions

Message ID 1365583975-73297-10-git-send-email-martin@martin.st
State Committed
Headers show

Commit Message

Martin Storsjö April 10, 2013, 8:52 a.m.
From: "Ronald S. Bultje" <rsbultje@gmail.com>

This makes svq1 independent of dsputil.
---
 configure            |    2 +-
 libavcodec/svq1dec.c |   22 +++++++++++-----------
 2 files changed, 12 insertions(+), 12 deletions(-)

Comments

Kostya Shishkov April 10, 2013, 9:10 a.m. | #1
On Wed, Apr 10, 2013 at 11:52:38AM +0300, Martin Storsjö wrote:
> From: "Ronald S. Bultje" <rsbultje@gmail.com>
> 
> This makes svq1 independent of dsputil.
> ---
>  configure            |    2 +-
>  libavcodec/svq1dec.c |   22 +++++++++++-----------
>  2 files changed, 12 insertions(+), 12 deletions(-)

LGTM

Patch

diff --git a/configure b/configure
index a9b0d92..17548bb 100755
--- a/configure
+++ b/configure
@@ -1640,7 +1640,7 @@  rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvi
 shorten_decoder_select="golomb"
 sipr_decoder_select="lsp"
 sp5x_decoder_select="dsputil"
-svq1_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_suggest="error_resilience zlib"
diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c
index d9e6f7e..96602cb 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;
@@ -320,7 +320,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)
 {
@@ -360,12 +360,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)
 {
@@ -435,7 +435,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)
@@ -447,7 +447,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)
@@ -474,7 +474,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) {
@@ -485,7 +485,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, &current[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,