static void simpleCopy(SwsContext *c, uint8_t* srcParam[], int srcStrideParam[], int srcSliceY,

             int srcSliceH, uint8_t* dstParam[], int dstStride[]){



	int srcStride[3];

	uint8_t *src[3];

	uint8_t *dst[3];



	if(c->srcFormat == IMGFMT_I420){

		src[0]= srcParam[0];

		src[1]= srcParam[2];

		src[2]= srcParam[1];

		srcStride[0]= srcStrideParam[0];

		srcStride[1]= srcStrideParam[2];

		srcStride[2]= srcStrideParam[1];

	}

	else if(c->srcFormat==IMGFMT_YV12){

		src[0]= srcParam[0];

		src[1]= srcParam[1];

		src[2]= srcParam[2];

		srcStride[0]= srcStrideParam[0];

		srcStride[1]= srcStrideParam[1];

		srcStride[2]= srcStrideParam[2];

	}

	else if(isPacked(c->srcFormat) || isGray(c->srcFormat)){

		src[0]= srcParam[0];

		src[1]=

		src[2]= NULL;

		srcStride[0]= srcStrideParam[0];

		srcStride[1]=

		srcStride[2]= 0;

	}



	if(c->dstFormat == IMGFMT_I420){

		dst[0]= dstParam[0];

		dst[1]= dstParam[2];

		dst[2]= dstParam[1];

		

	}else{

		dst[0]= dstParam[0];

		dst[1]= dstParam[1];

		dst[2]= dstParam[2];

	}



	if(isPacked(c->srcFormat))

	{

		if(dstStride[0]==srcStride[0])

			memcpy(dst[0] + dstStride[0]*srcSliceY, src[0], srcSliceH*dstStride[0]);

		else

		{

			int i;

			uint8_t *srcPtr= src[0];

			uint8_t *dstPtr= dst[0] + dstStride[0]*srcSliceY;

			int length=0;



			/* universal length finder */

			while(length+c->srcW <= dstStride[0] 

			   && length+c->srcW <= srcStride[0]) length+= c->srcW;

			ASSERT(length!=0);



			for(i=0; i<srcSliceH; i++)

			{

				memcpy(dstPtr, srcPtr, length);

				srcPtr+= srcStride[0];

				dstPtr+= dstStride[0];

			}

		}

	}

	else 

	{ /* Planar YUV */

		int plane;

		for(plane=0; plane<3; plane++)

		{

			int length= plane==0 ? c->srcW  : ((c->srcW+1)>>1);

			int y=      plane==0 ? srcSliceY: ((srcSliceY+1)>>1);

			int height= plane==0 ? srcSliceH: ((srcSliceH+1)>>1);



			if(dstStride[plane]==srcStride[plane])

				memcpy(dst[plane] + dstStride[plane]*y, src[plane], height*dstStride[plane]);

			else

			{

				int i;

				uint8_t *srcPtr= src[plane];

				uint8_t *dstPtr= dst[plane] + dstStride[plane]*y;

				for(i=0; i<height; i++)

				{

					memcpy(dstPtr, srcPtr, length);

					srcPtr+= srcStride[plane];

					dstPtr+= dstStride[plane];

				}

			}

		}

	}

}

static void simpleCopy(SwsContext *c, uint8_t* srcParam[], int srcStrideParam[], int srcSliceY,

             int srcSliceH, uint8_t* dstParam[], int dstStride[]){



	int srcStride[3];

	uint8_t *src[3];

	uint8_t *dst[3];



	if(c->srcFormat == IMGFMT_I420){

		src[0]= srcParam[0];

		src[1]= srcParam[2];

		src[2]= srcParam[1];

		srcStride[0]= srcStrideParam[0];

		srcStride[1]= srcStrideParam[2];

		srcStride[2]= srcStrideParam[1];

	}

	else if(c->srcFormat==IMGFMT_YV12){

		src[0]= srcParam[0];

		src[1]= srcParam[1];

		src[2]= srcParam[2];

		srcStride[0]= srcStrideParam[0];

		srcStride[1]= srcStrideParam[1];

		srcStride[2]= srcStrideParam[2];

	}

	else if(isPacked(c->srcFormat) || isGray(c->srcFormat)){

		src[0]= srcParam[0];

		src[1]=

		src[2]= NULL;

		srcStride[0]= srcStrideParam[0];

		srcStride[1]=

		srcStride[2]= 0;

	}



	if(c->dstFormat == IMGFMT_I420){

		dst[0]= dstParam[0];

		dst[1]= dstParam[2];

		dst[2]= dstParam[1];

		

	}else{

		dst[0]= dstParam[0];

		dst[1]= dstParam[1];

		dst[2]= dstParam[2];

	}



	if(isPacked(c->srcFormat))

	{

		if(dstStride[0]==srcStride[0])

			memcpy(dst[0] + dstStride[0]*srcSliceY, src[0], srcSliceH*dstStride[0]);

		else

		{

			int i;

			uint8_t *srcPtr= src[0];

			uint8_t *dstPtr= dst[0] + dstStride[0]*srcSliceY;

			int length=0;



			

			while(length+c->srcW <= dstStride[0] 

			   && length+c->srcW <= srcStride[0]) length+= c->srcW;

			ASSERT(length!=0);



			for(i=0; i<srcSliceH; i++)

			{

				memcpy(dstPtr, srcPtr, length);

				srcPtr+= srcStride[0];

				dstPtr+= dstStride[0];

			}

		}

	}

	else 

	{ 

		int plane;

		for(plane=0; plane<3; plane++)

		{

			int length= plane==0 ? c->srcW  : ((c->srcW+1)>>1);

			int y=      plane==0 ? srcSliceY: ((srcSliceY+1)>>1);

			int height= plane==0 ? srcSliceH: ((srcSliceH+1)>>1);



			if(dstStride[plane]==srcStride[plane])

				memcpy(dst[plane] + dstStride[plane]*y, src[plane], height*dstStride[plane]);

			else

			{

				int i;

				uint8_t *srcPtr= src[plane];

				uint8_t *dstPtr= dst[plane] + dstStride[plane]*y;

				for(i=0; i<height; i++)

				{

					memcpy(dstPtr, srcPtr, length);

					srcPtr+= srcStride[plane];

					dstPtr+= dstStride[plane];

				}

			}

		}

	}

}

			while(length+c->srcW <= dstStride[0]  			   && length+c->srcW <= srcStride[0]) length+= c->srcW;
static void FUNC_0(SwsContext *VAR_0, uint8_t* VAR_1[], int VAR_2[], int VAR_3,

             int VAR_4, uint8_t* VAR_5[], int VAR_6[]){



	int VAR_7[3];

	uint8_t *src[3];

	uint8_t *dst[3];



	if(VAR_0->srcFormat == IMGFMT_I420){

		src[0]= VAR_1[0];

		src[1]= VAR_1[2];

		src[2]= VAR_1[1];

		VAR_7[0]= VAR_2[0];

		VAR_7[1]= VAR_2[2];

		VAR_7[2]= VAR_2[1];

	}

	else if(VAR_0->srcFormat==IMGFMT_YV12){

		src[0]= VAR_1[0];

		src[1]= VAR_1[1];

		src[2]= VAR_1[2];

		VAR_7[0]= VAR_2[0];

		VAR_7[1]= VAR_2[1];

		VAR_7[2]= VAR_2[2];

	}

	else if(isPacked(VAR_0->srcFormat) || isGray(VAR_0->srcFormat)){

		src[0]= VAR_1[0];

		src[1]=

		src[2]= NULL;

		VAR_7[0]= VAR_2[0];

		VAR_7[1]=

		VAR_7[2]= 0;

	}



	if(VAR_0->dstFormat == IMGFMT_I420){

		dst[0]= VAR_5[0];

		dst[1]= VAR_5[2];

		dst[2]= VAR_5[1];

		

	}else{

		dst[0]= VAR_5[0];

		dst[1]= VAR_5[1];

		dst[2]= VAR_5[2];

	}



	if(isPacked(VAR_0->srcFormat))

	{

		if(VAR_6[0]==VAR_7[0])

			memcpy(dst[0] + VAR_6[0]*VAR_3, src[0], VAR_4*VAR_6[0]);

		else

		{

			int VAR_13;

			uint8_t *srcPtr= src[0];

			uint8_t *dstPtr= dst[0] + VAR_6[0]*VAR_3;

			int VAR_11=0;



			

			while(VAR_11+VAR_0->srcW <= VAR_6[0] 

			   && VAR_11+VAR_0->srcW <= VAR_7[0]) VAR_11+= VAR_0->srcW;

			ASSERT(VAR_11!=0);



			for(VAR_13=0; VAR_13<VAR_4; VAR_13++)

			{

				memcpy(dstPtr, srcPtr, VAR_11);

				srcPtr+= VAR_7[0];

				dstPtr+= VAR_6[0];

			}

		}

	}

	else 

	{ 

		int VAR_10;

		for(VAR_10=0; VAR_10<3; VAR_10++)

		{

			int VAR_11= VAR_10==0 ? VAR_0->srcW  : ((VAR_0->srcW+1)>>1);

			int VAR_11=      VAR_10==0 ? VAR_3: ((VAR_3+1)>>1);

			int VAR_12= VAR_10==0 ? VAR_4: ((VAR_4+1)>>1);



			if(VAR_6[VAR_10]==VAR_7[VAR_10])

				memcpy(dst[VAR_10] + VAR_6[VAR_10]*VAR_11, src[VAR_10], VAR_12*VAR_6[VAR_10]);

			else

			{

				int VAR_13;

				uint8_t *srcPtr= src[VAR_10];

				uint8_t *dstPtr= dst[VAR_10] + VAR_6[VAR_10]*VAR_11;

				for(VAR_13=0; VAR_13<VAR_12; VAR_13++)

				{

					memcpy(dstPtr, srcPtr, VAR_11);

					srcPtr+= VAR_7[VAR_10];

					dstPtr+= VAR_6[VAR_10];

				}

			}

		}

	}

}

static void FUNC_0(SwsContext *VAR_0, uint8_t* VAR_1[], int VAR_2[], int VAR_3,
int VAR_4, uint8_t* VAR_5[], int VAR_6[]){ int VAR_7[3]; uint8_t *src[3]; uint8_t *dst[3]; if(VAR_0->srcFormat == IMGFMT_I420){ src[0]= VAR_1[0]; src[1]= VAR_1[2]; src[2]= VAR_1[1]; VAR_7[0]= VAR_2[0]; VAR_7[1]= VAR_2[2]; VAR_7[2]= VAR_2[1]; } else if(VAR_0->srcFormat==IMGFMT_YV12){ src[0]= VAR_1[0]; src[1]= VAR_1[1]; src[2]= VAR_1[2]; VAR_7[0]= VAR_2[0]; VAR_7[1]= VAR_2[1]; VAR_7[2]= VAR_2[2]; } else if(isPacked(VAR_0->srcFormat) || isGray(VAR_0->srcFormat)){ src[0]= VAR_1[0]; src[1]=
src[2]= NULL; VAR_7[0]= VAR_2[0]; VAR_7[1]=
VAR_7[2]= 0; } if(VAR_0->dstFormat == IMGFMT_I420){ dst[0]= VAR_5[0]; dst[1]= VAR_5[2]; dst[2]= VAR_5[1]; }else{ dst[0]= VAR_5[0]; dst[1]= VAR_5[1]; dst[2]= VAR_5[2]; } if(isPacked(VAR_0->srcFormat))
{ if(VAR_6[0]==VAR_7[0])
memcpy(dst[0] + VAR_6[0]*VAR_3, src[0], VAR_4*VAR_6[0]); else
{ int VAR_13; uint8_t *srcPtr= src[0]; uint8_t *dstPtr= dst[0] + VAR_6[0]*VAR_3; int VAR_11=0; while(VAR_11+VAR_0->srcW <= VAR_6[0]
&& VAR_11+VAR_0->srcW <= VAR_7[0]) VAR_11+= VAR_0->srcW; ASSERT(VAR_11!=0); for(VAR_13=0; VAR_13<VAR_4; VAR_13++) { memcpy(dstPtr, srcPtr, VAR_11); srcPtr+= VAR_7[0]; dstPtr+= VAR_6[0]; } } } else
{ int VAR_10; for(VAR_10=0; VAR_10<3; VAR_10++) { int VAR_11= VAR_10==0 ? VAR_0->srcW  : ((VAR_0->srcW+1)>>1); int VAR_11=      VAR_10==0 ? VAR_3: ((VAR_3+1)>>1); int VAR_12= VAR_10==0 ? VAR_4: ((VAR_4+1)>>1); if(VAR_6[VAR_10]==VAR_7[VAR_10])
memcpy(dst[VAR_10] + VAR_6[VAR_10]*VAR_11, src[VAR_10], VAR_12*VAR_6[VAR_10]); else
{ int VAR_13; uint8_t *srcPtr= src[VAR_10]; uint8_t *dstPtr= dst[VAR_10] + VAR_6[VAR_10]*VAR_11; for(VAR_13=0; VAR_13<VAR_12; VAR_13++) { memcpy(dstPtr, srcPtr, VAR_11); srcPtr+= VAR_7[VAR_10]; dstPtr+= VAR_6[VAR_10]; } } } } }