Commit 6c51fd3f authored by Michael Niedermayer's avatar Michael Niedermayer

const

Originally committed as revision 11816 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 4d65da42
...@@ -643,8 +643,8 @@ static av_always_inline void do_a_deblock_C(uint8_t *src, int step, int stride, ...@@ -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. // 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, static inline void postProcess(const 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) const QP_STORE_T QPs[], int QPStride, int isColor, pp_mode_t *vm, pp_context_t *vc)
{ {
PPContext *c= (PPContext *)vc; PPContext *c= (PPContext *)vc;
PPMode *ppMode= (PPMode *)vm; PPMode *ppMode= (PPMode *)vm;
...@@ -1021,10 +1021,10 @@ void pp_free_context(void *vc){ ...@@ -1021,10 +1021,10 @@ void pp_free_context(void *vc){
av_free(c); av_free(c);
} }
void pp_postprocess(uint8_t * src[3], int srcStride[3], void pp_postprocess(const uint8_t * src[3], const int srcStride[3],
uint8_t * dst[3], int dstStride[3], uint8_t * dst[3], const int dstStride[3],
int width, int height, 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) pp_mode_t *vm, void *vc, int pict_type)
{ {
int mbWidth = (width+15)>>4; int mbWidth = (width+15)>>4;
...@@ -1046,16 +1046,16 @@ void pp_postprocess(uint8_t * src[3], int srcStride[3], ...@@ -1046,16 +1046,16 @@ void pp_postprocess(uint8_t * src[3], int srcStride[3],
QP_store= c->forcedQPTable; QP_store= c->forcedQPTable;
absQPStride = QPStride = 0; absQPStride = QPStride = 0;
if(mode->lumMode & FORCE_QUANT) 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 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){ if(pict_type & PP_PICT_TYPE_QP2){
int i; int i;
const int count= mbHeight * absQPStride; const int count= mbHeight * absQPStride;
for(i=0; i<(count>>2); i++){ 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++){ for(i<<=2; i<count; i++){
c->stdQPTable[i] = QP_store[i]>>1; c->stdQPTable[i] = QP_store[i]>>1;
...@@ -1081,7 +1081,7 @@ for(y=0; y<mbHeight; y++){ ...@@ -1081,7 +1081,7 @@ for(y=0; y<mbHeight; y++){
int i; int i;
const int count= mbHeight * QPStride; const int count= mbHeight * QPStride;
for(i=0; i<(count>>2); i++){ 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++){ for(i<<=2; i<count; i++){
c->nonBQPTable[i] = QP_store[i] & 0x3F; c->nonBQPTable[i] = QP_store[i] & 0x3F;
......
...@@ -48,10 +48,10 @@ extern const char *const pp_help; ///< a simple help text ...@@ -48,10 +48,10 @@ extern const char *const pp_help; ///< a simple help text
extern const char pp_help[]; ///< a simple help text extern const char pp_help[]; ///< a simple help text
#endif #endif
void pp_postprocess(uint8_t * src[3], int srcStride[3], void pp_postprocess(const uint8_t * src[3], const int srcStride[3],
uint8_t * dst[3], int dstStride[3], uint8_t * dst[3], const int dstStride[3],
int horizontalSize, int verticalSize, 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); pp_mode_t *mode, pp_context_t *ppContext, int pict_type);
......
...@@ -3180,8 +3180,8 @@ asm volatile( ...@@ -3180,8 +3180,8 @@ asm volatile(
} }
#endif //HAVE_MMX #endif //HAVE_MMX
static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c); const QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c);
/** /**
* Copies a block from src to dst and fixes the blacklevel. * 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 ...@@ -3189,7 +3189,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int
*/ */
#undef SCALED_CPY #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) int levelFix, int64_t *packedOffsetAndScale)
{ {
#ifndef HAVE_MMX #ifndef HAVE_MMX
...@@ -3346,8 +3346,8 @@ static inline void RENAME(duplicate)(uint8_t src[], int stride) ...@@ -3346,8 +3346,8 @@ static inline void RENAME(duplicate)(uint8_t src[], int stride)
/** /**
* Filters array of bytes (Y or U or V values) * 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, static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height,
QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c2) const QP_STORE_T QPs[], int QPStride, int isColor, PPContext *c2)
{ {
DECLARE_ALIGNED(8, PPContext, c)= *c2; //copy to stack for faster access DECLARE_ALIGNED(8, PPContext, c)= *c2; //copy to stack for faster access
int x,y; int x,y;
...@@ -3462,7 +3462,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int ...@@ -3462,7 +3462,7 @@ static void RENAME(postProcess)(uint8_t src[], int srcStride, uint8_t dst[], int
/* copy & deinterlace first row of blocks */ /* copy & deinterlace first row of blocks */
y=-BLOCK_SIZE; y=-BLOCK_SIZE;
{ {
uint8_t *srcBlock= &(src[y*srcStride]); const uint8_t *srcBlock= &(src[y*srcStride]);
uint8_t *dstBlock= tempDst + dstStride; uint8_t *dstBlock= tempDst + dstStride;
// From this point on it is guaranteed that we can read and write 16 lines downward // 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 ...@@ -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) for(y=0; y<height; y+=BLOCK_SIZE)
{ {
//1% speedup if these are here instead of the inner loop //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]); uint8_t *dstBlock= &(dst[y*dstStride]);
#ifdef HAVE_MMX #ifdef HAVE_MMX
uint8_t *tempBlock1= c.tempBlocks; uint8_t *tempBlock1= c.tempBlocks;
uint8_t *tempBlock2= c.tempBlocks + 8; uint8_t *tempBlock2= c.tempBlocks + 8;
#endif #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)]; int8_t *nonBQPptr= &c.nonBQPTable[(y>>qpVShift)*FFABS(QPStride)];
int QP=0; int QP=0;
/* can we mess with a 8x16 block from srcBlock/dstBlock downwards and 1 line upwards /* can we mess with a 8x16 block from srcBlock/dstBlock downwards and 1 line upwards
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment