const
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 2 Feb 2008 21:24:54 +0000 (21:24 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 2 Feb 2008 21:24:54 +0000 (21:24 +0000)
Originally committed as revision 11816 to svn://svn.ffmpeg.org/ffmpeg/trunk

libpostproc/postprocess.c
libpostproc/postprocess.h
libpostproc/postprocess_template.c

index dae27a2..b274bb4 100644 (file)
@@ -643,8 +643,8 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, int stride,
 
 // minor note: the HAVE_xyz is messed up after that line so do not use it.
 
-static inline void postProcess(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
-        QP_STORE_T QPs[], int QPStride, int isColor, pp_mode_t *vm, pp_context_t *vc)
+static inline void postProcess(const uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
+        const QP_STORE_T QPs[], int QPStride, int isColor, pp_mode_t *vm, pp_context_t *vc)
 {
         PPContext *c= (PPContext *)vc;
         PPMode *ppMode= (PPMode *)vm;
@@ -1021,10 +1021,10 @@ void pp_free_context(void *vc){
         av_free(c);
 }
 
-void  pp_postprocess(uint8_t * src[3], int srcStride[3],
-                 uint8_t * dst[3], int dstStride[3],
+void  pp_postprocess(const uint8_t * src[3], const int srcStride[3],
+                 uint8_t * dst[3], const int dstStride[3],
                  int width, int height,
-                 QP_STORE_T *QP_store,  int QPStride,
+                 const QP_STORE_T *QP_store,  int QPStride,
                  pp_mode_t *vm,  void *vc, int pict_type)
 {
         int mbWidth = (width+15)>>4;
@@ -1046,16 +1046,16 @@ void  pp_postprocess(uint8_t * src[3], int srcStride[3],
                 QP_store= c->forcedQPTable;
                 absQPStride = QPStride = 0;
                 if(mode->lumMode & FORCE_QUANT)
-                        for(i=0; i<mbWidth; i++) QP_store[i]= mode->forcedQuant;
+                        for(i=0; i<mbWidth; i++) c->forcedQPTable[i]= mode->forcedQuant;
                 else
-                        for(i=0; i<mbWidth; i++) QP_store[i]= 1;
+                        for(i=0; i<mbWidth; i++) c->forcedQPTable[i]= 1;
         }
 
         if(pict_type & PP_PICT_TYPE_QP2){
                 int i;
                 const int count= mbHeight * absQPStride;
                 for(i=0; i<(count>>2); i++){
-                        ((uint32_t*)c->stdQPTable)[i] = (((uint32_t*)QP_store)[i]>>1) & 0x7F7F7F7F;
+                        ((uint32_t*)c->stdQPTable)[i] = (((const uint32_t*)QP_store)[i]>>1) & 0x7F7F7F7F;
                 }
                 for(i<<=2; i<count; i++){
                         c->stdQPTable[i] = QP_store[i]>>1;
@@ -1081,7 +1081,7 @@ for(y=0; y<mbHeight; y++){
                         int i;
                         const int count= mbHeight * QPStride;
                         for(i=0; i<(count>>2); i++){
-                                ((uint32_t*)c->nonBQPTable)[i] = ((uint32_t*)QP_store)[i] & 0x3F3F3F3F;
+                                ((uint32_t*)c->nonBQPTable)[i] = ((const uint32_t*)QP_store)[i] & 0x3F3F3F3F;
                         }
                         for(i<<=2; i<count; i++){
                                 c->nonBQPTable[i] = QP_store[i] & 0x3F;
index cd0bc89..4782bac 100644 (file)
@@ -48,10 +48,10 @@ extern const char *const pp_help; ///< a simple help text
 extern const char pp_help[]; ///< a simple help text
 #endif
 
-void  pp_postprocess(uint8_t * src[3], int srcStride[3],
-                 uint8_t * dst[3], int dstStride[3],
+void  pp_postprocess(const uint8_t * src[3], const int srcStride[3],
+                 uint8_t * dst[3], const int dstStride[3],
                  int horizontalSize, int verticalSize,
-                 QP_STORE_T *QP_store,  int QP_stride,
+                 const QP_STORE_T *QP_store,  int QP_stride,
                  pp_mode_t *mode, pp_context_t *ppContext, int pict_type);
 
 
index ae16ab2..bdc2325 100644 (file)
@@ -3180,8 +3180,8 @@ asm volatile(
 }
 #endif //HAVE_MMX
 
-static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
-        QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c);
+static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
+        const QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c);
 
 /**
  * Copies a block from src to dst and fixes the blacklevel.
@@ -3189,7 +3189,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int
  */
 #undef SCALED_CPY
 
-static inline void RENAME(blockCopy)(uint8_t dst[], int dstStride, uint8_t src[], int srcStride,
+static inline void RENAME(blockCopy)(uint8_t dst[], int dstStride, const uint8_t src[], int srcStride,
         int levelFix, int64_t *packedOffsetAndScale)
 {
 #ifndef HAVE_MMX
@@ -3346,8 +3346,8 @@ static inline void RENAME(duplicate)(uint8_t src[], int stride)
 /**
  * Filters array of bytes (Y or U or V values)
  */
-static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
-        QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c2)
+static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
+        const QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c2)
 {
         DECLARE_ALIGNED(8, PPContext, c)= *c2; //copy to stack for faster access
         int x,y;
@@ -3462,7 +3462,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int
         /* copy & deinterlace first row of blocks */
         y=-BLOCK_SIZE;
         {
-                uint8_t *srcBlock= &(src[y*srcStride]);
+                const uint8_t *srcBlock= &(src[y*srcStride]);
                 uint8_t *dstBlock= tempDst + dstStride;
 
                 // From this point on it is guaranteed that we can read and write 16 lines downward
@@ -3545,13 +3545,13 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int
         for(y=0; y<height; y+=BLOCK_SIZE)
         {
                 //1% speedup if these are here instead of the inner loop
-                uint8_t *srcBlock= &(src[y*srcStride]);
+                const uint8_t *srcBlock= &(src[y*srcStride]);
                 uint8_t *dstBlock= &(dst[y*dstStride]);
 #ifdef HAVE_MMX
                 uint8_t *tempBlock1= c.tempBlocks;
                 uint8_t *tempBlock2= c.tempBlocks + 8;
 #endif
-                int8_t *QPptr= &QPs[(y>>qpVShift)*QPStride];
+                const int8_t *QPptr= &QPs[(y>>qpVShift)*QPStride];
                 int8_t *nonBQPptr= &c.nonBQPTable[(y>>qpVShift)*FFABS(QPStride)];
                 int QP=0;
                 /* can we mess with a 8x16 block from srcBlock/dstBlock downwards and 1 line upwards