作者:语笑嫣然小公主155 | 来源:互联网 | 2023-06-25 12:01
用户要我实现的函数如下:STDMETHODIMPCComDemo::Play(longhHandle,longhWnd){returnS_OK;}意思是我调用之前创建
用户要我实现的函数如下:
STDMETHODIMP CComDemo::Play( long hHandle, long hWnd )
{
return S_OK;
}
意思是我调用之前创建的解码器句柄hHandle解出yuv图像,再调用他传给我的窗口句柄hWnd显示。请问如何显示?要说的具体一些,我编解码还凑合,windows不懂。
17 个解决方案
yuv图像显示有很多种方法,如果简单的话直接用vc的cImage等函数,或者directX或者SDL都可以,只是显示还是比较容易的
能不能说得清楚点?我现在一头雾水。另外,用户要我实现的是个com控件,好像不能用mfc。
directx显示怎么做呢?最好有个现成的例子。我有5天时间写这个解码器,再来一天做显示,就这么多时间了。
encoded data -> ffmpeg decoding -> raw video data(YUV) --> ffmpeg libswcale --> RGB24
找个时候利用利用directShow或者直接用DrawDibDraw就可以在窗口上画出来了
encoded data -> ffmpeg decoding -> raw video data(YUV) --> ffmpeg libswscale --> RGB24
找个时候利用利用directShow或者直接用DrawDibDraw就可以在窗口上画出来了
利用directShow或者直接用DrawDibDraw就可以在窗口上画出来了
==================================================================
能不能说的再清楚点?最好有例子。
我建议你是把YUV420的改成RGB32,再用BIT画到窗口上实一下。这样会好些。
据说这样速度会慢,应该利用硬件直接显示yuv的能力。我总觉得这么通用的功能应该有例子的。
怎么搞定的啊?有没有思路或者简单的代码?能不能分享一下。。。