[SCM] libav/experimental: added ff_idct_put/add

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:32:23 UTC 2013


The following commit has been merged in the experimental branch:
commit 8ee14970d61d19a971050268384911b49a436c2d
Author: Fabrice Bellard <fabrice at bellard.org>
Date:   Wed Jun 5 18:48:07 2002 +0000

    added ff_idct_put/add
    
    Originally committed as revision 672 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index 8e91ab3..d76cc8d 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -23,6 +23,8 @@
 #include "simple_idct.h"
 
 void (*ff_idct)(DCTELEM *block);
+void (*ff_idct_put)(UINT8 *dest, int line_size, DCTELEM *block);
+void (*ff_idct_add)(UINT8 *dest, int line_size, DCTELEM *block);
 void (*av_fdct)(DCTELEM *block);
 void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size);
 void (*diff_pixels)(DCTELEM *block, const UINT8 *s1, const UINT8 *s2, int stride);
@@ -1244,6 +1246,20 @@ void clear_blocks_c(DCTELEM *blocks)
     memset(blocks, 0, sizeof(DCTELEM)*6*64);
 }
 
+/* XXX: those functions should be suppressed ASAP when all IDCTs are
+   converted */
+void gen_idct_put(UINT8 *dest, int line_size, DCTELEM *block)
+{
+    ff_idct (block);
+    put_pixels_clamped(block, dest, line_size);
+}
+
+void gen_idct_add(UINT8 *dest, int line_size, DCTELEM *block)
+{
+    ff_idct (block);
+    add_pixels_clamped(block, dest, line_size);
+}
+
 void dsputil_init(void)
 {
     int i, j;
@@ -1260,7 +1276,7 @@ void dsputil_init(void)
     }
 
 #ifdef SIMPLE_IDCT
-    ff_idct = simple_idct;
+    ff_idct = NULL;
 #else
     ff_idct = j_rev_dct;
 #endif
@@ -1299,7 +1315,14 @@ void dsputil_init(void)
 #endif
 
 #ifdef SIMPLE_IDCT
-    if(ff_idct == simple_idct) use_permuted_idct=0;
+    if (ff_idct == NULL) {
+        ff_idct_put = simple_idct_put;
+        ff_idct_add = simple_idct_add;
+        use_permuted_idct=0;
+    } else {
+        ff_idct_put = gen_idct_put;
+        ff_idct_add = gen_idct_add;
+    }
 #endif
 
     if(use_permuted_idct)
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h
index 062b510..8537333 100644
--- a/libavcodec/dsputil.h
+++ b/libavcodec/dsputil.h
@@ -54,6 +54,8 @@ void dsputil_init(void);
 /* pixel ops : interface with DCT */
 
 extern void (*ff_idct)(DCTELEM *block);
+extern void (*ff_idct_put)(UINT8 *dest, int line_size, DCTELEM *block);
+extern void (*ff_idct_add)(UINT8 *dest, int line_size, DCTELEM *block);
 extern void (*get_pixels)(DCTELEM *block, const UINT8 *pixels, int line_size);
 extern void (*diff_pixels)(DCTELEM *block, const UINT8 *s1, const UINT8 *s2, int stride);
 extern void (*put_pixels_clamped)(const DCTELEM *block, UINT8 *pixels, int line_size);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list