# HG changeset patch # User arpi # Date 1003786302 0 # Node ID e13c63bc4151f3f4a57682cd7b52c157f8f1055f # Parent c17b7c2f747b8fe6af5f51ac2f865c6196452663 hmm. 3ivx works diff -r c17b7c2f747b -r e13c63bc4151 xacodec.c --- a/xacodec.c Mon Oct 22 21:03:25 2001 +0000 +++ b/xacodec.c Mon Oct 22 21:31:42 2001 +0000 @@ -270,8 +270,10 @@ case IMGFMT_BGR32: codec_hdr.depth = 32; break; + case IMGFMT_IYUV: case IMGFMT_I420: - codec_hdr.depth = 32; + case IMGFMT_YV12: + codec_hdr.depth = 12; break; default: mp_msg(MSGT_DECVIDEO, MSGL_FATAL, "xacodec: not supported image format (%s)\n", @@ -705,11 +707,39 @@ return((void *)color_func); } +void XA_YUV221111_To_CLR8(image,imagex,imagey,i_x,i_y,yuv,yuv_tabs,map_flag,map,chdr) +xaUBYTE *image; xaULONG imagex,imagey,i_x,i_y; +YUVBufs *yuv; YUVTabs *yuv_tabs; +xaULONG map_flag,*map; XA_CHDR *chdr; +{ + printf("XA_YUV221111_To_CLR8(%p %dx%d %d;%d %p %p %d %p %p)\n", + image,imagex,imagey,i_x,i_y,yuv,yuv_tabs,map_flag,map,chdr); + + printf("YUV: %p %p %p %X (%X) %Xx%X %Xx%X\n", + yuv->Ybuf,yuv->Ubuf,yuv->Vbuf,yuv->the_buf,yuv->the_buf_size, + yuv->y_w,yuv->y_h,yuv->uv_w,yuv->uv_h); + + memcpy(image,yuv->Ybuf,imagex*imagey); + memcpy(image+imagex*imagey,yuv->Vbuf,imagex*imagey/4); + memcpy(image+imagex*imagey*5/4,yuv->Ubuf,imagex*imagey/4); + +/* + unsigned char *Ybuf; + unsigned char *Ubuf; + unsigned char *Vbuf; + unsigned char *the_buf; + unsigned int the_buf_size; + unsigned short y_w, y_h; + unsigned short uv_w, uv_h; +*/ + +} + /* YUV 22 11 11 routines */ void *XA_YUV221111_Func(unsigned int image_type) { XA_Print("XA_YUV221111_Func('image_type: %d')", image_type); - return((void *)XA_dummy); + return((void *)XA_YUV221111_To_CLR8); } YUVBufs jpg_YUVBufs;