]> git.sesse.net Git - ffmpeg/commitdiff
dsputil: Move ff_block_permute to mpegvideo_enc
authorDiego Biurrun <diego@biurrun.de>
Thu, 7 Feb 2013 20:04:32 +0000 (21:04 +0100)
committerDiego Biurrun <diego@biurrun.de>
Thu, 7 Feb 2013 21:05:25 +0000 (22:05 +0100)
libavcodec/dsputil.c
libavcodec/dsputil.h
libavcodec/mpegvideo.c
libavcodec/mpegvideo.h

index 1c8aae78bf569822ba543247f924e44cb10d1906..fac51bcbae32ebd2ac5f725abf4ce7dd7ba8d9f6 100644 (file)
@@ -1704,35 +1704,6 @@ static void add_8x8basis_c(int16_t rem[64], int16_t basis[64], int scale){
     }
 }
 
-/**
- * Permute an 8x8 block.
- * @param block the block which will be permuted according to the given permutation vector
- * @param permutation the permutation vector
- * @param last the last non zero coefficient in scantable order, used to speed the permutation up
- * @param scantable the used scantable, this is only used to speed the permutation up, the block is not
- *                  (inverse) permutated to scantable order!
- */
-void ff_block_permute(int16_t *block, uint8_t *permutation, const uint8_t *scantable, int last)
-{
-    int i;
-    int16_t temp[64];
-
-    if(last<=0) return;
-    //if(permutation[1]==1) return; //FIXME it is ok but not clean and might fail for some permutations
-
-    for(i=0; i<=last; i++){
-        const int j= scantable[i];
-        temp[j]= block[j];
-        block[j]=0;
-    }
-
-    for(i=0; i<=last; i++){
-        const int j= scantable[i];
-        const int perm_j= permutation[j];
-        block[perm_j]= temp[j];
-    }
-}
-
 static int zero_cmp(void *s, uint8_t *a, uint8_t *b, int stride, int h){
     return 0;
 }
index ef3b39b8fb736071bfcac1466ab6b19f64ead946..8898ece3059d750ca266a7354a8b3f3b9a51d1ba 100644 (file)
@@ -435,12 +435,6 @@ void ff_dsputil_init(DSPContext* p, AVCodecContext *avctx);
 
 int ff_check_alignment(void);
 
-/**
- * permute block according to permuatation.
- * @param last last non zero element in scantable order
- */
-void ff_block_permute(int16_t *block, uint8_t *permutation, const uint8_t *scantable, int last);
-
 void ff_set_cmp(DSPContext* c, me_cmp_func *cmp, int type);
 
 #define         BYTE_VEC32(c)   ((c)*0x01010101UL)
index a64906fd0c1a46a0dbd29fde3e857dcbf62b60ff..4b68fd56a0515031445ab7b9a8e368897f76ea09 100644 (file)
@@ -2499,6 +2499,35 @@ void ff_init_block_index(MpegEncContext *s){ //FIXME maybe rename
     }
 }
 
+/**
+ * Permute an 8x8 block.
+ * @param block the block which will be permuted according to the given permutation vector
+ * @param permutation the permutation vector
+ * @param last the last non zero coefficient in scantable order, used to speed the permutation up
+ * @param scantable the used scantable, this is only used to speed the permutation up, the block is not
+ *                  (inverse) permutated to scantable order!
+ */
+void ff_block_permute(int16_t *block, uint8_t *permutation, const uint8_t *scantable, int last)
+{
+    int i;
+    int16_t temp[64];
+
+    if(last<=0) return;
+    //if(permutation[1]==1) return; //FIXME it is ok but not clean and might fail for some permutations
+
+    for(i=0; i<=last; i++){
+        const int j= scantable[i];
+        temp[j]= block[j];
+        block[j]=0;
+    }
+
+    for(i=0; i<=last; i++){
+        const int j= scantable[i];
+        const int perm_j= permutation[j];
+        block[perm_j]= temp[j];
+    }
+}
+
 void ff_mpeg_flush(AVCodecContext *avctx){
     int i;
     MpegEncContext *s = avctx->priv_data;
index 1294d0c924fe030913ffab2df37224d781a76dac..f3f982742b354094bf316170976a21b4175106be 100644 (file)
@@ -815,6 +815,12 @@ int ff_alloc_picture(MpegEncContext *s, Picture *pic, int shared);
 extern const enum AVPixelFormat ff_pixfmt_list_420[];
 extern const enum AVPixelFormat ff_hwaccel_pixfmt_list_420[];
 
+/**
+ * permute block according to permuatation.
+ * @param last last non zero element in scantable order
+ */
+void ff_block_permute(int16_t *block, uint8_t *permutation, const uint8_t *scantable, int last);
+
 static inline void ff_update_block_index(MpegEncContext *s){
     const int block_size = 8;