yuv422 java_directdraw显示yuv422(yuy2)
#include
void CshowpicDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
height=width=widthBytes=0;
m_screen.SetWindowPos(&CWnd::wndBottom,0,0,720,576, SWP_NOMOVE | SWP_SHOWWINDOW);
UpdateWindow();
main_window_handle = m_screen.GetSafeHwnd();
if(DD_OK!=(DirectDrawCreateEx(NULL, (void **)&lpdd7, IID_IDirectDraw7, NULL)))
{
return ;
}
// set the cooperative level for full-screen mode
if(DD_OK != lpdd7->SetCooperativeLevel(AfxGetMainWnd()->GetSafeHwnd(), DDSCL_NORMAL))
{
return ;
}
/*设置控制级时,如果应用程序请求了 DDSCL_NORMAL 模式(表明应用程序以普通窗口的形式运行),则不需要提供一个指定窗口的句柄.给窗口句柄参数为 NULL, 所有的窗口都可以被设置为普通的控制级. */
// set the display mode to 640x480x256
// clear ddsd and set size
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
// enable valid fields
ddsd.dwFlags=DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
// create the primary surface
if(DD_OK!=(lpdd7->CreateSurface(&ddsd, &lpddsprimary, NULL)))
{
return ;
}
// 创建裁剪器
if (FAILED(lpdd7->CreateClipper(0, &lpDDClipper, NULL)))
return ;
// 与窗口工作区关联
if (FAILED(lpDDClipper->SetHWnd(0, main_window_handle)))
{
lpDDClipper->Release();
return ;
}
if (FAILED(lpddsprimary->SetClipper(lpDDClipper)))
{
lpDDClipper->Release();
return ;
}
//
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
DDPIXELFORMAT camdispPixelFormat = {sizeof(DDPIXELFORMAT), DDPF_FOURCC, mmioFOURCC('Y','U','Y','2'), 0,0,0,0,0};
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
ddsd.dwWidth = 720;
ddsd.dwHeight = 576;
ddsd.dwBackBufferCount = 0;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN| DDSCAPS_VIDEOMEMORY;
ddsd.ddpfPixelFormat = camdispPixelFormat;
//
if(DD_OK!=(lpdd7->CreateSurface(&ddsd, &lpddsmypage[0], NULL)))
{
return ;
}
POINT p;
p.x = 0; p.y = 0;
m_screen.ClientToScreen(&p);//获取屏幕顶点
// m_screen.GetClientRect(&rcRectDest);
rcRectDest.left = 0; rcRectDest.top=0; rcRectDest.right = 720; rcRectDest.bottom = 576;
OffsetRect(&rcRectDest, p.x, p.y);//把窗口区域转化为屏幕区域坐标
SetRect(&rcRectSrc, 0, 0, 720, 576);//初始化窗口区域
/
FILE *fp;
fp = fopen("D:\\6089.DAT","rb+");
buf[0] = new BYTE[720*2*576];
for (int i=0;i<200;i++)
{
if(DD_OK != lpddsmypage[0]->Lock(NULL,&ddsd,DDLOCK_WAIT|DDLOCK_SURFACEMEMORYPTR,NULL))
{
return ;
}
UCHAR *bmp_buffer = (UCHAR *)ddsd.lpSurface;
///提取数据/
fread(buf[0],720*2*576,1,fp);
for (int k=0;k<576;k++)
{
memcpy(bmp_buffer+k*ddsd.lPitch,buf[0]+k*720*2,720*2);
}
Sleep(40);
//
//memcpy(bmp_buffer,buf[0],720*576*2);
if(DD_OK != lpddsmypage[0]->Unlock(NULL))
{
return ;
}
if(DD_OK != lpddsprimary->Blt( &rcRectDest, lpddsmypage[0], &rcRectSrc, DDBLT_WAIT, NULL))
{
return ;
}
}
fclose(fp);
if(lpddsmypage)
{
lpddsmypage[0]->Release();
lpddsmypage[0]=NULL;
}
MessageBox(_T("over"));
}
yuv422 java_directdraw显示yuv422(yuy2)相关推荐
- 完成一个YUV文件播放器
前面匆忙写了很多篇文章,虽然都很简单,但着实花了不少时间去研究的.几年前写了YUV转换RGB的代码,当时只限于转换成BMP来测试正确性.后来一直使用YUV Player Deluxe来看YUV文件,但 ...
- yuv420p 详解_图文详解YUV420数据格式
YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...
- 【ARM-Linux开发】【DSP开发】AM5728介绍
AM5728 Sitara Processors 1. 介绍 1.1 AM572x概述 AM572x是高性能,Sitara器件.以28nm技术集成: 结构设计主要考虑嵌入式应用,包括工业通讯,人 ...
- 文章标题ffmpeg文档37-视频滤镜
ffmpeg文档37-视频滤镜 37 视频滤镜 在配置编译FFmpeg时可以通过--disable-filters来禁止所有滤镜的编译.也可以配置编译脚本来输出所有包含进编译的滤镜信息. 下面是当前可 ...
- ffmpeg-python库的使用翻译(三)
接上篇 ffmpeg-python库的使用翻译(二) 原文地址:https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filte ...
- 海思3559开发常识储备:相关名词全解
前言 接连啃了两个sample,还是觉得笼笼统统模模糊糊,没有达到想要的一目了然的程度,那就再整理整理资料,补些硬货吧 图像和像素格式 颜色: (1)颜色是主观还是客观存在? 颜色的本质是光 ...
- MIPI信号简单介绍
1.MIPI介绍 MIPI是由ARM.Nokia.ST.IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计. MIPI联盟通过不同的工 ...
- 【第二季】图像像素格式RGB和YUV的理解
目录 图像像素格式理解 RGB与YUV 图像像素格式理解 1.颜色的学问 (1)颜色是主观还是客观存在?颜色的本质是光的波长,但是因为有人去看才有了颜色这个概念,所以本质上来说,颜色是主观存在的. ( ...
- RV1126与RV1109 AI系统设计概要(一部分)
RV1109与RV1126参数 主要区别 RV1126处理器(例子) 四核核 Cortex-A7,ARM架构V7-A指令,独立Neon SIMD(一种高级单指令多数据扩展指令集,可执行并行数据处理), ...
最新文章
- Neutron L2Populate
- FPGA/ASIC初学者应该学习Verilog还是VHDL?
- sap IUT255 Integration of SAP CRM and SAP IS-U_EN_Col62.pdf
- 数据库-解决MySQL的一些常见问题
- EJB 3.1全局JNDI访问
- PXE(preboot execute environment)
- .NET Framework 4.5 ZipArchive类压缩解压
- ubuntu下QQ无法登录解决。
- java代码读取txt文件_java读取txt文件代码片段
- oem10g grid control
- [facebook-wda]iOS App元素定位
- 【整合】机器学习基础算法和模型导图
- idea和搜狗输入法快捷键冲突_Win10 输入法简繁体快捷键与 IDEA 冲突
- canvas lineWidth为1时线条粗细和颜色
- 网站性能优化之DNS Prefetch
- DDD—快速理解聚合根、实体、值对象的区别和联系
- [python之数据分析] 基础篇1- Numpy,Scipy,Matplotlib 快速入门攻略
- 基于JAVA出差报销管理系统
- M1 Mac 上安装 python mysqlclient
- php注册 用cdn,国外免费CDN加速及防护:CloudFlare注册使用教程