uyvy->uv12 added
Originally committed as revision 2802 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
This commit is contained in:
		
							parent
							
								
									cff6ecd7e0
								
							
						
					
					
						commit
						81c0590e6c
					
				@ -813,3 +813,41 @@ asm(    EMMS" \n\t"
 | 
			
		||||
        :::"memory");
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
 | 
			
		||||
 * problem for anyone then tell me, and ill fix it)
 | 
			
		||||
 */
 | 
			
		||||
void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
 | 
			
		||||
	unsigned int width, unsigned int height,
 | 
			
		||||
	unsigned int lumStride, unsigned int chromStride, unsigned int srcStride)
 | 
			
		||||
{
 | 
			
		||||
	int y;
 | 
			
		||||
	const int chromWidth= width>>1;
 | 
			
		||||
	for(y=0; y<height; y+=2)
 | 
			
		||||
	{
 | 
			
		||||
		int i;
 | 
			
		||||
		for(i=0; i<chromWidth; i++)
 | 
			
		||||
		{
 | 
			
		||||
			udst[i] 	= src[4*i+0];
 | 
			
		||||
			ydst[2*i+0] 	= src[4*i+1];
 | 
			
		||||
			vdst[i] 	= src[4*i+2];
 | 
			
		||||
			ydst[2*i+1] 	= src[4*i+3];
 | 
			
		||||
		}
 | 
			
		||||
		ydst += lumStride;
 | 
			
		||||
		src  += srcStride;
 | 
			
		||||
 | 
			
		||||
		for(i=0; i<chromWidth; i++)
 | 
			
		||||
		{
 | 
			
		||||
			ydst[2*i+0] 	= src[4*i+1];
 | 
			
		||||
			ydst[2*i+1] 	= src[4*i+3];
 | 
			
		||||
		}
 | 
			
		||||
		udst += chromStride;
 | 
			
		||||
		vdst += chromStride;
 | 
			
		||||
		ydst += lumStride;
 | 
			
		||||
		src  += srcStride;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -813,3 +813,41 @@ asm(    EMMS" \n\t"
 | 
			
		||||
        :::"memory");
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * height should be a multiple of 2 and width should be a multiple of 16 (if this is a
 | 
			
		||||
 * problem for anyone then tell me, and ill fix it)
 | 
			
		||||
 */
 | 
			
		||||
void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
 | 
			
		||||
	unsigned int width, unsigned int height,
 | 
			
		||||
	unsigned int lumStride, unsigned int chromStride, unsigned int srcStride)
 | 
			
		||||
{
 | 
			
		||||
	int y;
 | 
			
		||||
	const int chromWidth= width>>1;
 | 
			
		||||
	for(y=0; y<height; y+=2)
 | 
			
		||||
	{
 | 
			
		||||
		int i;
 | 
			
		||||
		for(i=0; i<chromWidth; i++)
 | 
			
		||||
		{
 | 
			
		||||
			udst[i] 	= src[4*i+0];
 | 
			
		||||
			ydst[2*i+0] 	= src[4*i+1];
 | 
			
		||||
			vdst[i] 	= src[4*i+2];
 | 
			
		||||
			ydst[2*i+1] 	= src[4*i+3];
 | 
			
		||||
		}
 | 
			
		||||
		ydst += lumStride;
 | 
			
		||||
		src  += srcStride;
 | 
			
		||||
 | 
			
		||||
		for(i=0; i<chromWidth; i++)
 | 
			
		||||
		{
 | 
			
		||||
			ydst[2*i+0] 	= src[4*i+1];
 | 
			
		||||
			ydst[2*i+1] 	= src[4*i+3];
 | 
			
		||||
		}
 | 
			
		||||
		udst += chromStride;
 | 
			
		||||
		vdst += chromStride;
 | 
			
		||||
		ydst += lumStride;
 | 
			
		||||
		src  += srcStride;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user