[FFmpeg-devel] [PATCH 13/21] mjpeg: use hpeldsp instead of dsputil for half-pel functions.

Ronald S. Bultje rsbultje at gmail.com
Mon Mar 11 00:54:39 CET 2013


From: "Ronald S. Bultje" <rsbultje at gmail.com>

---
 configure             | 1 +
 libavcodec/mjpegdec.c | 3 ++-
 libavcodec/mjpegdec.h | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index d2c0091..96e0378 100755
--- a/configure
+++ b/configure
@@ -1751,6 +1751,7 @@ ljpeg_encoder_select="aandcttables mpegvideoenc"
 loco_decoder_select="golomb"
 mdec_decoder_select="dsputil error_resilience mpegvideo"
 mimic_decoder_select="dsputil hpeldsp"
+mjpeg_decoder_select="dsputil hpeldsp"
 mjpeg_encoder_select="aandcttables dsputil mpegvideoenc"
 mlp_decoder_select="dsputil mlp_parser"
 motionpixels_decoder_select="dsputil"
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index f3080d9..7ddc974 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -89,6 +89,7 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
     avcodec_get_frame_defaults(&s->picture);
 
     s->avctx = avctx;
+    ff_hpeldsp_init(&s->hdsp, avctx->flags);
     ff_dsputil_init(&s->dsp, avctx);
     ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct);
     s->buffer_size   = 0;
@@ -996,7 +997,7 @@ static av_always_inline void mjpeg_copy_block(MJpegDecodeContext *s,
                                               int linesize, int lowres)
 {
     switch (lowres) {
-    case 0: s->dsp.put_pixels_tab[1][0](dst, src, linesize, 8);
+    case 0: s->hdsp.put_pixels_tab[1][0](dst, src, linesize, 8);
         break;
     case 1: copy_block4(dst, src, linesize, linesize, 4);
         break;
diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h
index 01f4323..17665e4 100644
--- a/libavcodec/mjpegdec.h
+++ b/libavcodec/mjpegdec.h
@@ -34,6 +34,7 @@
 #include "avcodec.h"
 #include "get_bits.h"
 #include "dsputil.h"
+#include "hpeldsp.h"
 
 #define MAX_COMPONENTS 4
 
@@ -97,6 +98,7 @@ typedef struct MJpegDecodeContext {
     uint64_t coefs_finished[MAX_COMPONENTS]; ///< bitmask of which coefs have been completely decoded (progressive mode)
     ScanTable scantable;
     DSPContext dsp;
+    HpelDSPContext hdsp;
 
     int restart_interval;
     int restart_count;
-- 
1.7.11.3



More information about the ffmpeg-devel mailing list