[SCM] libav/experimental: dsputil_template: Move bits that are used templatized into separate file

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Aug 10 16:02:24 UTC 2014


The following commit has been merged in the experimental branch:
commit e7373585f827d4ec05d952daa3877e8decfe3c08
Author: Diego Biurrun <diego at biurrun.de>
Date:   Thu Jan 9 00:56:33 2014 +0100

    dsputil_template: Move bits that are used templatized into separate file
    
    This allows detemplatizing the bits that are not instantiated twice.

diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index e41ea86..5bb9441 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -44,13 +44,14 @@
 uint32_t ff_square_tab[512] = { 0, };
 
 #define BIT_DEPTH 16
-#include "dsputil_template.c"
+#include "dsputilenc_template.c"
 #undef BIT_DEPTH
 
 #define BIT_DEPTH 8
 #include "hpel_template.c"
 #include "tpel_template.c"
 #include "dsputil_template.c"
+#include "dsputilenc_template.c"
 
 // 0x7f7f7f7f or 0x7f7f7f7f7f7f7f7f or whatever, depending on the cpu's native arithmetic size
 #define pb_7f (~0UL / 255 * 0x7f)
diff --git a/libavcodec/dsputil_template.c b/libavcodec/dsputil_template.c
index c2b30d2..f9bf5f1 100644
--- a/libavcodec/dsputil_template.c
+++ b/libavcodec/dsputil_template.c
@@ -31,7 +31,6 @@
 
 #include "bit_depth_template.c"
 
-#if BIT_DEPTH == 8
 /* draw the edges of width 'w' of an image of size width, height */
 // FIXME: Check that this is OK for MPEG-4 interlaced.
 static void FUNCC(draw_edges)(uint8_t *_buf, int _wrap, int width, int height,
@@ -62,30 +61,7 @@ static void FUNCC(draw_edges)(uint8_t *_buf, int _wrap, int width, int height,
             memcpy(last_line + (i + 1) * wrap, last_line,
                    (width + w + w) * sizeof(pixel));
 }
-#endif
 
-static void FUNCC(get_pixels)(int16_t *restrict block, const uint8_t *_pixels,
-                              int line_size)
-{
-    const pixel *pixels = (const pixel *) _pixels;
-    int i;
-
-    /* read the pixels */
-    for (i = 0; i < 8; i++) {
-        block[0] = pixels[0];
-        block[1] = pixels[1];
-        block[2] = pixels[2];
-        block[3] = pixels[3];
-        block[4] = pixels[4];
-        block[5] = pixels[5];
-        block[6] = pixels[6];
-        block[7] = pixels[7];
-        pixels  += line_size / sizeof(pixel);
-        block   += 8;
-    }
-}
-
-#if BIT_DEPTH == 8
 static void FUNCC(clear_block)(int16_t *block)
 {
     memset(block, 0, sizeof(int16_t) * 64);
@@ -95,7 +71,6 @@ static void FUNCC(clear_blocks)(int16_t *blocks)
 {
     memset(blocks, 0, sizeof(int16_t) * 6 * 64);
 }
-#endif
 
 #define PIXOP2(OPNAME, OP)                                              \
 static inline void FUNC(OPNAME ## _no_rnd_pixels8_l2)(uint8_t *dst,     \
@@ -338,10 +313,8 @@ CALL_2X_PIXELS(FUNCC(OPNAME ## _pixels16_xy2),                          \
 
 #define op_avg(a, b) a = rnd_avg_pixel4(a, b)
 #define op_put(a, b) a = b
-#if BIT_DEPTH == 8
 #define put_no_rnd_pixels8_8_c put_pixels8_8_c
 PIXOP2(avg, op_avg)
 PIXOP2(put, op_put)
-#endif
 #undef op_avg
 #undef op_put
diff --git a/libavcodec/h263_parser.h b/libavcodec/dsputilenc_template.c
similarity index 52%
copy from libavcodec/h263_parser.h
copy to libavcodec/dsputilenc_template.c
index 5bd715f..94e0d7c 100644
--- a/libavcodec/h263_parser.h
+++ b/libavcodec/dsputilenc_template.c
@@ -1,7 +1,10 @@
 /*
- * H.263 parser
+ * DSP utils
+ * Copyright (c) 2000, 2001 Fabrice Bellard
  * Copyright (c) 2002-2004 Michael Niedermayer <michaelni at gmx.at>
  *
+ * gmc & q-pel & 32/64 bit based MC by Michael Niedermayer <michaelni at gmx.at>
+ *
  * This file is part of Libav.
  *
  * Libav is free software; you can redistribute it and/or
@@ -19,11 +22,30 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#ifndef AVCODEC_H263_PARSER_H
-#define AVCODEC_H263_PARSER_H
+/**
+ * @file
+ * DSP utils
+ */
 
-#include "parser.h"
+#include "bit_depth_template.c"
 
-int ff_h263_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);
+static void FUNCC(get_pixels)(int16_t *restrict block, const uint8_t *_pixels,
+                              int line_size)
+{
+    const pixel *pixels = (const pixel *) _pixels;
+    int i;
 
-#endif /* AVCODEC_H263_PARSER_H */
+    /* read the pixels */
+    for (i = 0; i < 8; i++) {
+        block[0] = pixels[0];
+        block[1] = pixels[1];
+        block[2] = pixels[2];
+        block[3] = pixels[3];
+        block[4] = pixels[4];
+        block[5] = pixels[5];
+        block[6] = pixels[6];
+        block[7] = pixels[7];
+        pixels  += line_size / sizeof(pixel);
+        block   += 8;
+    }
+}

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list