C:\WINCE600\PUBLIC\DIRECTX\SDK\SAMPLES\DSHOW\PLAYERS下的DDXCLMV.exe谁正常跑起来过?我的没显示

xqhrs232 2010-08-17 10:54:43
C:\WINCE600\PUBLIC\DIRECTX\SDK\SAMPLES\DSHOW\PLAYERS下的DDXCLMV.exe谁正常跑起来过?我的跑起来没显示
...全文
148 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qthsrs232 2010-08-21
  • 打赏
  • 举报
回复
WINCE60下的Overlay Mixer filter 压根就不支持IDDrawExclModeVideo接口,但WINCE60下的这个应用程序怎么还去查询这个接口???并且还不失败!!!诡异的很.


hr = CoCreateInstance(CLSID_OverlayMixer, NULL, CLSCTX_INPROC, IID_IBaseFilter, (LPVOID *)ppOvM) ;

//----------------------------------

IDDrawExclModeVideo *pDDXM ;

hr = pOvM->QueryInterface(IID_IDDrawExclModeVideo, (LPVOID *)&pDDXM) ;
xqhrs232 2010-08-19
  • 打赏
  • 举报
回复
难道DDRAW初始化有问题?初始化参数怎么是下面这样的.

#define SCRN_WIDTH 800
#define SCRN_HEIGHT 600

#define SCRN_BITDEPTH 8
qthsrs232 2010-08-19
  • 打赏
  • 举报
回复
PC下跟WINCE下的例子在逻辑上有一些不一样,不知道为什么?!

我参考PC下的例子对WINCE下的进行对应的修改,还是不行,奇怪了呢(表面FLIP的时候还是失败).觉得没什么特别的地方啊!
怎就这么怪呢?不知道问题在那里.
xqhrs232 2010-08-19
  • 打赏
  • 举报
回复
会不会是创建的表面不对啊!!!
PixelFormat :12
CreateSurface:0



enum EDDGPEPixelFormat
{
ddgpePixelFormat_1bpp = 0,
ddgpePixelFormat_2bpp,
ddgpePixelFormat_4bpp,
ddgpePixelFormat_8bpp,

ddgpePixelFormat_565,
ddgpePixelFormat_5551,
ddgpePixelFormat_4444,
ddgpePixelFormat_5550,
ddgpePixelFormat_8880,
ddgpePixelFormat_8888,

ddgpePixelFormat_YUYV,
ddgpePixelFormat_UYVY,
ddgpePixelFormat_YUY2, //12
ddgpePixelFormat_YV12,

// some generic types
// Use dwPixelFormatData in conjunction with this info
ddgpePixelFormat_15bppGeneric,
ddgpePixelFormat_16bppGeneric,
ddgpePixelFormat_24bppGeneric,
ddgpePixelFormat_32bppGeneric,

ddgpePixelFormat_UnknownFormat,
// you can assign custom formats starting with this value
ddgpePixelFormat_CustomFormat = 0x1000
};



xqhrs232 2010-08-19
  • 打赏
  • 举报
回复


Video Streaming Sample Code
This sample code reads a file and renders it to a primary DirectDraw surface. For brevity, this example performs minimal error checking.

#include <stdio.h>
#include "ddraw.h" // DirectDraw interfaces
#include "mmstream.h" // multimedia stream interfaces
#include "amstream.h" // DirectShow multimedia stream interfaces
#include "ddstream.h" // DirectDraw multimedia stream interfaces

HRESULT RenderStreamToSurface(IDirectDrawSurface *pSurface,
IMultiMediaStream *pMMStream)
{
IMediaStream *pPrimaryVidStream;
IDirectDrawMediaStream *pDDStream;
IDirectDrawStreamSample *pSample;
RECT rect;
DDSURFACEDESC ddsd;

HRESULT hr;
hr = pMMStream->GetMediaStream(MSPID_PrimaryVideo, &pPrimaryVidStream);
if (FAILED(hr))
{
return hr;
}
pPrimaryVidStream->QueryInterface(IID_IDirectDrawMediaStream, (void **)&pDDStream);

ddsd.dwSize = sizeof(ddsd);
hr = pDDStream->GetFormat(&ddsd, NULL, NULL, NULL);
if (SUCCEEDED(hr))
{
rect.top = rect.left = 0;
rect.bottom = ddsd.dwHeight;
rect.right = ddsd.dwWidth;
hr = pDDStream->CreateSample(pSurface, &rect, 0, &pSample);
if (SUCCEEDED(hr))
{
pMMStream->SetState(STREAMSTATE_RUN);
while (pSample->Update(0, NULL, NULL, NULL) == S_OK)
{
// Empty loop.
}
pMMStream->SetState(STREAMSTATE_STOP);
pSample->Release();
}
}
pDDStream->Release();
pPrimaryVidStream->Release();
return hr;
}

HRESULT RenderFileToMMStream(
const char * szFileName,
IMultiMediaStream **ppMMStream,
IDirectDraw *pDD)
{
if (strlen(szFileName) > MAX_PATH)
{
return E_INVALIDARG;
}

IAMMultiMediaStream *pAMStream;
HRESULT hr = CoCreateInstance(CLSID_AMMultiMediaStream, NULL,
CLSCTX_INPROC_SERVER, IID_IAMMultiMediaStream,
(void **)&pAMStream);
if (FAILED(hr)
{
return hr;
}

WCHAR wPath[MAX_PATH + 1];
MultiByteToWideChar(CP_ACP, 0, szFileName, -1, wPath, MAX_PATH + 1);

pAMStream->Initialize(STREAMTYPE_READ, AMMSF_NOGRAPHTHREAD, NULL);
pAMStream->AddMediaStream(pDD, &MSPID_PrimaryVideo, 0, NULL);
pAMStream->AddMediaStream(NULL, &MSPID_PrimaryAudio, AMMSF_ADDDEFAULTRENDERER, NULL);
hr = pAMStream->OpenFile(wPath, 0);
if (SUCCEEDED(hr))
{
hr = pAMStream->QueryInterface(IID_IMultiMediaStream,
(void**)ppMMStream);
}
pAMStream->Release();
return hr;
}

int __cdecl main(int argc, char *argv[])
{
if (argc < 2)
{
printf("Usage : showstrm movie.ext\n");
exit(0);
}

DDSURFACEDESC ddsd;
IDirectDraw *pDD;
IDirectDrawSurface *pPrimarySurface;
IMultiMediaStream *pMMStream;

CoInitialize(NULL);

DirectDrawCreate(NULL, &pDD, NULL);
pDD->SetCooperativeLevel(GetDesktopWindow(), DDSCL_NORMAL);

ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
pDD->CreateSurface(&ddsd, &pPrimarySurface, NULL);

HRESULT hr = RenderFileToMMStream(argv[1], &pMMStream, pDD);
if (SUCCEEDED(hr))
{
RenderStreamToSurface(pPrimarySurface, pMMStream);
pMMStream->Release();
}
pPrimarySurface->Release();
pDD->Release();

CoUninitialize();
return 0;
}



xqhrs232 2010-08-19
  • 打赏
  • 举报
回复
PC上DirectX9.0c帮助文件/DirectShow/Appendixes/Multimedia Streaming/下有一些DirectDraw和DirectShow的高级内容
qthsrs232 2010-08-19
  • 打赏
  • 举报
回复
用DirectDraw显示YV12图像

http://bbs.rosoo.net/viewthread.php?tid=214
qthsrs232 2010-08-19
  • 打赏
  • 举报
回复
在VC中调用DirectShow全屏播放视频
http://dev.yesky.com/117/2581617.shtml
xqhrs232 2010-08-18
  • 打赏
  • 举报
回复
D:\DXSDK\Samples\C++\DirectShow\Players\DDrawXCL为PC下相同的例子,但是可以跑起来!!!

怪!!!
xqhrs232 2010-08-18
  • 打赏
  • 举报
回复
[directshow - directdraw - c++]how to retrieve primary directdraw surface?
http://www.gamedev.net/community/forums/topic.asp?topic_id=459498


xqhrs232 2010-08-18
  • 打赏
  • 举报
回复
Overlay Mixer用不了,难道要去用IDirectDrawVideo接口?

ActiveMovie: setting my DirectDraw?

http://www.experts-exchange.com/Programming/System/Windows__Programming/Q_10019986.html
xqhrs232 2010-08-17
  • 打赏
  • 举报
回复
系统里面用到了Overlay Mixer,系统也应该是支持的.因为创建是成功的.硬件对Overlay也是支持的,显示驱动也支持Overlay功能.
xqhrs232 2010-08-17
  • 打赏
  • 举报
回复
程序可以跑起来,但显示是黑的,啥都看不到.对应的多媒体文件的解码器肯定有是有了,因为我用MEDIAPLAYER是可以成功播放并显示出来的.
xqhrs232 2010-08-17
  • 打赏
  • 举报
回复
初步看了一下老是在CDDrawObject::UpdateAndFlipSurfaces( )函数的 hr = m_pPrimary->Flip(NULL, 0) ; 处执行FLIP失败.错误如下,错误码为6,Flip函数执行结果为0x887600d4.

++++4444::CDDrawObject::UpdateAndFlipSurfaces( )----the dwErr is 6,the hr is 0x887600d4

不知道为什么,不知道怎么去调.过滤器图表建的不对?但我看那些初始化函数执行的都是成功的啊!
chinesedragon2010 2010-08-17
  • 打赏
  • 举报
回复
没有试过,帮忙顶一下!
shenmou 2010-08-17
  • 打赏
  • 举报
回复
帮顶 支持下楼主

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧