ConvertRGBToNV12 问题记录
2016-04-25 14:43
1506 查看
记录一下在转换过程中出现问题,由于宽和高设置设置不正确,造成转换的数据变成全零,全绿。
NVENCSTATUS CNvEncoder::ConvertRGBToNV12(IDirect3DSurface9 *pSrcRGB, IDirect3DSurface9 *pNV12Dst, uint32_t uWidth, uint32_t uHeight) { DXVA2_VideoProcessBltParams vpblt; DXVA2_VideoSample vs; D3DSURFACE_DESC desc; pSrcRGB->GetDesc(&desc); //此处将数据进行进行拉伸,如果数据不正确,数据会变成0 RECT srcRect = { 0, 0, desc.Width, desc.Height }; RECT dstRect = { 0, 0, uWidth, uHeight }; // Input memset(&vs, 0, sizeof(vs)); vs.PlanarAlpha.ll = 0x10000; vs.SrcSurface = pSrcRGB; vs.SrcRect = srcRect; vs.DstRect = dstRect; vs.SampleFormat.SampleFormat = DXVA2_SampleProgressiveFrame; vs.SampleFormat.VideoChromaSubsampling = DXVA2_VideoChromaSubsampling_MPEG2; vs.SampleFormat.NominalRange = DXVA2_NominalRange_0_255; vs.SampleFormat.VideoTransferMatrix = DXVA2_VideoTransferMatrix_BT601; // Output memset(&vpblt, 0, sizeof(vpblt)); vpblt.TargetRect = dstRect; vpblt.DestFormat = vs.SampleFormat; vpblt.DestFormat.SampleFormat = DXVA2_SampleProgressiveFrame; vpblt.Alpha.ll = 0x10000; vpblt.TargetFrame = vs.Start; vpblt.ProcAmpValues.Brightness = m_Brightness.DefaultValue; vpblt.ProcAmpValues.Contrast = m_Contrast.DefaultValue; vpblt.ProcAmpValues.Hue = m_Hue.DefaultValue; vpblt.ProcAmpValues.Saturation = m_Saturation.DefaultValue; vpblt.BackgroundColor.Y = 0x1000; vpblt.BackgroundColor.Cb = 0x8000; vpblt.BackgroundColor.Cr = 0x8000; vpblt.BackgroundColor.Alpha = 0xffff; HRESULT hr = m_pDXVA2VideoProcessor->VideoProcessBlt(pNV12Dst, &vpblt, &vs, 1, NULL); return NV_ENC_SUCCESS; }
相关文章推荐
- Android-Charts,Android图形图表控件
- 安卓-监听home键
- 寻找最小的k个数
- 加密算法使用(二):使用MD5加密字符串(另:byte数组转16进制自动补零方法写法)
- 图解oracle jdeveloper+BPM入门 最简单流程
- CentOS6.7安装gcc-前需要安装其它包
- 点云三维重建--基于两视图的射影重构,仿射重构以及度量重构
- ORA-01704: 文字字符串过长
- Java并发编程 ExecutorService Future FutureTask Callbale的使用
- 尝试一下sql server2016里面的json功能
- windows 删除文件时,提示文件找不到
- MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8
- Keepalived问题
- 联合主键用Hibernate注解映射的三种方式
- 【一天一道LeetCode】#26. Remove Duplicates from Sorted Array
- 【一天一道LeetCode】#27. Remove Element
- 10032---HttpClient访问,需要用户名密码时
- 【一天一道LeetCode】#27. Remove Element
- 【一天一道LeetCode】#26. Remove Duplicates from Sorted Array
- <OJ_Sicily>Huffman coding哈夫曼编码