Re: [libav-devel] [PATCH 3/4] mpegvideo: Move block permutation function where is used

2015-06-08 Thread Luca Barbato
On 08/06/15 14:00, Vittorio Giovara wrote:
 ---
  libavcodec/mpegvideo.c | 29 -
  libavcodec/mpegvideo.h |  6 --
  libavcodec/mpegvideo_enc.c | 40 ++--
  3 files changed, 38 insertions(+), 37 deletions(-)
 

Sure.

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel


[libav-devel] [PATCH 3/4] mpegvideo: Move block permutation function where is used

2015-06-08 Thread Vittorio Giovara
---
 libavcodec/mpegvideo.c | 29 -
 libavcodec/mpegvideo.h |  6 --
 libavcodec/mpegvideo_enc.c | 40 ++--
 3 files changed, 38 insertions(+), 37 deletions(-)

diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 1ea2b65..68f9568 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -1840,35 +1840,6 @@ 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;
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index b2b2f6d..1a6857d 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -638,12 +638,6 @@ void ff_mpv_motion(MpegEncContext *s,
op_pixels_func (*pix_op)[4],
qpel_mc_func (*qpix_op)[16]);
 
-/**
- * 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;
 
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index a206153..6fe34b5 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -4196,6 +4196,42 @@ STOP_TIMER(iterative search)
 return last_non_zero;
 }
 
+/**
+ * Permute an 8x8 block according to permuatation.
+ * @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!
+ */
+static void block_permute(int16_t *block, uint8_t *permutation,
+  const uint8_t *scantable, int last)
+{
+int i;
+int16_t temp[64];
+
+if (last = 0)
+return;
+//FIXME it is ok but not clean and might fail for some permutations
+// if (permutation[1] == 1)
+// return;
+
+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];
+}
+}
+
 int ff_dct_quantize_c(MpegEncContext *s,
 int16_t *block, int n,
 int qscale, int *overflow)
@@ -4271,8 +4307,8 @@ int ff_dct_quantize_c(MpegEncContext *s,
 
 /* we need this permutation so that we correct the IDCT, we only permute 
the !=0 elements */
 if (s-idsp.perm_type != FF_IDCT_PERM_NONE)
-ff_block_permute(block, s-idsp.idct_permutation,
- scantable, last_non_zero);
+block_permute(block, s-idsp.idct_permutation,
+  scantable, last_non_zero);
 
 return last_non_zero;
 }
-- 
1.9.5 (Apple Git-50.3)

___
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel