DirectShow怎么设置全屏时的分辨率和颜色质量

DirectShow怎么设置全屏时的分辨率和颜色质量,第1张

1、设置成显示器最佳分辨率时显示不满屏,是因为刷新率设置有误造成的。

2、液晶显示器一般刷新率为60,纯平一般为85。大于或者小于这个数据偶尔会造成不满屏显示。

3、在桌面空白处右击,选择屏幕分辨率,如图

4、选择高级设置。如图

5、在监视器中设置刷新率即可。

6、如果显卡驱动安装有误也会造成此类情况。请检查显卡驱动是否正确。

7、考虑显示器没有调节好,用显示器上的调节按钮调节显示区域即可。

你可以采用复制Transfrm的Filter的格式来定义各个分支出口的媒体格式,注意要修改其中的宽和高(否则显示不完全)。也可采用以下方式手动设置

CMediaType *pmt = new CMediaType

pmt->InitMediaType()

VIDEOINFOHEADER vih

memset( &vih, 0, sizeof( vih ) )

vih.bmiHeader.biCompression = BI_RGB// 制定位图是否压缩,BI_RGB, BI_RLE8, BI_RLE4, BI_BITFIELDS后几种不常用

vih.bmiHeader.biBitCount = 24// 表示位图颜色要用的位数,1(黑白),4(16色),8(256色),24(真色彩)

vih.bmiHeader.biSize = sizeof(BITMAPINFOHEADER)// 这个结构的长度,固定数值40

vih.bmiHeader.biWidth = 320// 你输出的宽和高

vih.bmiHeader.biHeight = 240// 你输出的宽和高

vih.bmiHeader.biPlanes = 1// 必须是 1

vih.bmiHeader.biSizeImage = GetBitmapSize(&vih.bmiHeader)// 位图数据占的字节数,宽度必须是4的整数倍

vih.bmiHeader.biClrImportant = 0 // 位图中的重要颜色数,为0表示所有颜色都重要

pmt->SetType(&MEDIATYPE_Video)

pmt->SetFormatType(&FORMAT_VideoInfo)

pmt->SetTemporalCompression(FALSE)

pmt->SetFormat( (BYTE*) &vih, sizeof( vih ) )

pmt->SetSubtype(&MEDIASUBTYPE_RGB24)

pmt->SetSampleSize(vih.bmiHeader.biSizeImage)

MyOutputPint1->SetupMediaType(pmt,

pmt->Format(),

pmt->FormatLength() )

delete pmt

既然DivX解码器都在工作了,那说明输入都OK了,如果真的做了版权保护的话,那其它播放器岂不一样也用不了这个插件么~~~建议你检查一下输出pin,最好DEBUG进去看看连接是不是返回正确

==========================

= =!

那还真是悲剧……不过啊,有问题自己动手多点研究一下其实还是不错的……只是太费时间了……唉,我就花了一天时间才想过某个问题的解决方案……汗

============================

不知是不是要传入什么工作参数……或者是你指定的图像格式不正确,于是停在第一帧那里了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7867664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存