horz_size, height, QP_store, QPStride, 1, mode, c);
width, height, QP_store, QPStride, 1, mode, c);
void  pp_postprocess(uint8_t * src[3], int srcStride[3],                 uint8_t * dst[3], int dstStride[3],                 int width, int height,                 QP_STORE_T *QP_store,  int QPStride,		 pp_mode_t *vm,  void *vc, int pict_type){	int mbWidth = (width+15)>>4;	int mbHeight= (height+15)>>4;	int horz_size,vert_size;	PPMode *mode = (PPMode*)vm;	PPContext *c = (PPContext*)vc;        int minStride= MAX(srcStride[0], dstStride[0]);		if(c->stride < minStride)		reallocBuffers(c, width, height, minStride);	if(QP_store==NULL || (mode->lumMode & FORCE_QUANT)) 	{		int i;		QP_store= c->forcedQPTable;		QPStride= 0;		if(mode->lumMode & FORCE_QUANT)			for(i=0; i<mbWidth; i++) QP_store[i]= mode->forcedQuant;		else			for(i=0; i<mbWidth; i++) QP_store[i]= 1;	}if(0){int x,y;for(y=0; y<mbHeight; y++){	for(x=0; x<mbWidth; x++){		printf("%2d ", QP_store[x + y*QPStride]);	}	printf("\n");}	printf("\n");}//printf("pict_type:%d\n", pict_type);	if(pict_type!=3)	{		int x,y;		for(y=0; y<mbHeight; y++){			for(x=0; x<mbWidth; x++){				int qscale= QP_store[x + y*QPStride];				if(qscale&~31)				    qscale=31;				c->nonBQPTable[y*mbWidth + x]= qscale;			}		}	}	if(verbose>2)	{		printf("using npp filters 0x%X/0x%X\n", mode->lumMode, mode->chromMode);	}	/* special case for 405.avi: (width=356)%8 !=0  */	horz_size = (width / BLOCK_SIZE) * BLOCK_SIZE;	postProcess(src[0], srcStride[0], dst[0], dstStride[0],		horz_size, height, QP_store, QPStride, 0, mode, c);	if(horz_size < width)	{		unsigned y,tail;		tail = width-horz_size;		for(y=0; y<height; y++)			memcpy(&(dst[0][y*dstStride[0]+horz_size]), &(src[0][y*srcStride[0]+horz_size]), tail);	}	width  = (width )>>c->hChromaSubSample;	horz_size = (width / BLOCK_SIZE) * BLOCK_SIZE;	height = (height)>>c->vChromaSubSample;	if(mode->chromMode)	{		postProcess(src[1], srcStride[1], dst[1], dstStride[1],			horz_size, height, QP_store, QPStride, 1, mode, c);		postProcess(src[2], srcStride[2], dst[2], dstStride[2],			horz_size, height, QP_store, QPStride, 2, mode, c);		if(horz_size < width)		{			unsigned y,tail;			tail = width-horz_size;			for(y=0; y<height; y++)			{				memcpy(&(dst[1][y*dstStride[1]+horz_size]), &(src[1][y*srcStride[1]+horz_size]), tail);				memcpy(&(dst[2][y*dstStride[2]+horz_size]), &(src[2][y*srcStride[2]+horz_size]), tail);			}		}	}	else if(srcStride[1] == dstStride[1] && srcStride[2] == dstStride[2])	{		memcpy(dst[1], src[1], srcStride[1]*height);		memcpy(dst[2], src[2], srcStride[2]*height);	}	else	{		int y;		for(y=0; y<height; y++)		{			memcpy(&(dst[1][y*dstStride[1]]), &(src[1][y*srcStride[1]]), width);			memcpy(&(dst[2][y*dstStride[2]]), &(src[2][y*srcStride[2]]), width);		}	}}