如何用DIRECT DRAW实现:显示一帧YUV420的图像? 不太清楚用DirectDraw是否可以显示YUV的图像。420或者422的都可以接受,当然最好是420的了(项目需要)。还有,如果有播出一段视频,按我的理解,就是播出几幅连续的图像而已,好像DirectDraw提供了一些这样子的东东,可以解释一下吗?可否给出一个小例子来,或者写出一个小的流程说明。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 另外,还有几个相近的问题,下面是帖子的地址。如果高手们看到了,一并帮助我一下,每个帖子都是100分的哟!我以前常在WEB版出入,近段时间开始搞VC这个东东。如果大家有什么数据库啦、WEB啦什么方面的问题,欢迎交流,我的QQ=2073111。http://expert.csdn.net/Expert/topic/2015/2015387.xml?temp=.7940027http://expert.csdn.net/Expert/topic/2015/2015376.xml?temp=.4364435http://expert.csdn.net/Expert/topic/2015/2015343.xml?temp=.6192285 DirectDraw的SDK开发文档里有个FullDialog例子 提供了 CSurface等类 算是视频封装的很好的了 YUV图像不大清楚 如果不行可以转为bmp在显示 如何建立一个YUV的离屏表面? --------------------------------------------------------------- DDPIXELFORMAT ddPixelFormat; ddPixelFormat.dwSize = sizeof(DDPIXELFORMAT); g_lpDDSPrimary->GetPixelFormat(&ddPixelFormat); ddPixelFormat.dwFlags = DDPF_FOURCC; ddPixelFormat.dwFourCC = mmioFOURCC('Y','U','Y','2'); ZeroMemory(&g_ddsd, sizeof(DDSURFACEDESC2)); g_ddsd.dwSize = sizeof(DDSURFACEDESC2); g_ddsd.dwFlags = DDSD_CAPS ¦ DDSD_WIDTH ¦ DDSD_HEIGHT ¦ DSD_PIXELFORMAT; g_ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY ¦ DDSCAPS_VIDEOMEMORY; g_ddsd.dwWidth = g_iWidth; g_ddsd.dwHeight = g_iHeight; g_ddsd.ddpfPixelFormat = ddPixelFormat; g_lpDD7->CreateSurface(&g_ddsd, &g_lpDDSBack, NULL); 从我的程序中拷出来的变量没有定义,不过应该看得懂。建的是YUY2的Overlay YUY2是YUV422格式的,还是YUV420格式的呢? YUV2是422的格式,但是它是packed formats,YUV分量是按以下格式存的Y0 U0 Y1 V0 Y2 U2 Y3 V2 Y4 U4 Y5 V4即YUV是交叉人大存储的而YUV420是planar formats,YUV分量是按以下格式存的Y0.....YnU0.....UnV0.....Vn即YUV是单独一块存储的 YUV420就是用mmioFOURCC('I','4','2','0')表示的但是DIRECTDRAW好像会把数据搞乱,具体的我也不知道为什么。 Help me! Thanks YOURS Help!! 关于vc操控网页的问题, 基于对话框的程序,给对话框添加OnMouseMove消息? MFC CString赋值给string问题 [急]文本框显示问题 VC,ADO,Access: 问一个可能简单不常见的问题 一个COM类的接口是通过调用一个类的成员函数实现,但是为什么每次调用接口就重新构造了被调用类? 怎么实现这样的功能? CRichEditView 问题,大家帮忙看看,谢谢! 呵呵,问大家几个基础的问题,纯粹送分! 如何判断一个CString对象里的字符全是数字和小数点? 请问如何看最新300贴以外的问题?? 如何用DIRECT DRAW实现:overlay以及OSD的功能?
http://expert.csdn.net/Expert/topic/2015/2015376.xml?temp=.4364435
http://expert.csdn.net/Expert/topic/2015/2015343.xml?temp=.6192285
YUV图像不大清楚 如果不行可以转为bmp在显示
---------------------------------------------------------------
DDPIXELFORMAT ddPixelFormat;
ddPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
g_lpDDSPrimary->GetPixelFormat(&ddPixelFormat);
ddPixelFormat.dwFlags = DDPF_FOURCC;
ddPixelFormat.dwFourCC = mmioFOURCC('Y','U','Y','2');
ZeroMemory(&g_ddsd, sizeof(DDSURFACEDESC2));
g_ddsd.dwSize = sizeof(DDSURFACEDESC2);
g_ddsd.dwFlags = DDSD_CAPS ¦ DDSD_WIDTH ¦ DDSD_HEIGHT ¦ DSD_PIXELFORMAT;
g_ddsd.ddsCaps.dwCaps = DDSCAPS_OVERLAY ¦ DDSCAPS_VIDEOMEMORY;
g_ddsd.dwWidth = g_iWidth;
g_ddsd.dwHeight = g_iHeight;
g_ddsd.ddpfPixelFormat = ddPixelFormat;
g_lpDD7->CreateSurface(&g_ddsd, &g_lpDDSBack, NULL);
从我的程序中拷出来的变量没有定义,不过应该看得懂。建的是YUY2的Overlay
Y0 U0 Y1 V0 Y2 U2 Y3 V2 Y4 U4 Y5 V4
即YUV是交叉人大存储的
而YUV420是planar formats,YUV分量是按以下格式存的
Y0.....Yn
U0.....Un
V0.....Vn
即YUV是单独一块存储的
但是DIRECTDRAW好像会把数据搞乱,具体的我也不知道为什么。