社区
多媒体/流媒体开发
帖子详情
初学者问题:如何重写 GetMediaType ,才能使 CBaseOutputPin 派生类的媒体类型为MEDIASUBTYPE_YUYV ?
sungengyu
2005-03-09 05:29:00
如何重写 GetMediaType ,才能使 CBaseOutputPin 派生类的媒体类型为MEDIASUBTYPE_YUYV ?
郁闷。
谢谢了。
...全文
186
5
打赏
收藏
初学者问题:如何重写 GetMediaType ,才能使 CBaseOutputPin 派生类的媒体类型为MEDIASUBTYPE_YUYV ?
如何重写 GetMediaType ,才能使 CBaseOutputPin 派生类的媒体类型为MEDIASUBTYPE_YUYV ? 郁闷。 谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sungengyu
2005-03-24
打赏
举报
回复
HRESULT CBallStream::GetMediaType(int iPosition, CMediaType *pmt)
{
int width = m_ball.GetImageWidth() ;
int height = m_ball.GetImageHeight() ;
CAutoLock lockit(m_pFilter->pStateLock());
if (iPosition != 0)
{
return E_INVALIDARG;
}
pmt->SetType(&MEDIATYPE_Video);
pmt->SetSubtype(&MEDIASUBTYPE_UYVY) ;
pmt->SetFormatType(&FORMAT_VideoInfo);
pmt->SetSampleSize(width*height*2);
pmt->SetTemporalCompression(FALSE);
VIDEOINFOHEADER info;
ZeroMemory(&info, sizeof(VIDEOINFOHEADER));
info.bmiHeader.biPlanes = 1;
info.bmiHeader.biSizeImage = width*height*2 ;
info.bmiHeader.biClrImportant = 0;
info.AvgTimePerFrame = this->m_iDefaultRepeatTime ; //UNITS / SRC_FRAME_RATE;
info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
info.bmiHeader.biHeight = height ;
info.bmiHeader.biWidth = width;
info.bmiHeader.biCompression = mmioFOURCC('U','Y','V','Y');
info.bmiHeader.biBitCount = 16 ; // sungengyu
pmt->SetFormat((BYTE*)&info, sizeof(VIDEOINFOHEADER));
return NOERROR;
}
sungengyu
2005-03-17
打赏
举报
回复
终于能连上了,可是输出数据是错的。 :(
资料太少了,《DirectShow开发指南》也太不详细。
sungengyu
2005-03-11
打赏
举报
回复
还是连不上
调试跟踪到 CBasePin::TryMediaTypes(IPin *pReceivePin, const CMediaType *pmt,IEnumMediaTypes *pEnum) 中,
hr = AttemptConnection(pReceivePin, pMediaType);
hr的返回值是错的。
如果直接连 Video Renderer ,hr 的返回值是 0x8004022a (ReceiveConnection 拒绝传入的媒体类型。)
如果连结 AVI Decompressor,hr的返回值是 0x80040255(无法回放视频流:无法找到合适的解压程序。)
pMediaType 中的值是
majortype {73646976-0000-0010-8000-00AA00389B71} (MEDIATYPE_Video)
subtype {56595559-0000-0010-8000-00AA00389B71} (MEDIASUBTYPE_YUYV)
bFixedSizeSamples 0x00000001
bTemporalCompression 0x00000000
lSampleSize 0x00000001
formattype {05589F80-C356-11CE-BF01-00AA0055595A} (FORMAT_VideoInfo)
pUnk 0x00000000
cbFormat 0x00000058
pbFormat 0x00166cd0
happydeer
2005-03-10
打赏
举报
回复
#define SRC_IMG_WIDTH 352
#define SRC_IMG_HEIGHT 288
#define SRC_FRAME_RATE 25
HRESULT CYourPin::GetMediaType(int iPosition, CMediaType *pmt)
{
CAutoLock lockit(m_pFilter->pStateLock());
if (iPosition != 0)
{
return E_INVALIDARG;
}
pmt->SetType(&MEDIATYPE_Video);
pmt->SetSubtype(&MEDIASUBTYPE_YUYV);
pmt->SetFormatType(&FORMAT_VideoInfo);
pmt->SetSampleSize(1);
pmt->SetTemporalCompression(FALSE);
VIDEOINFOHEADER info;
ZeroMemory(&info, sizeof(VIDEOINFOHEADER));
info.AvgTimePerFrame = UNITS / SRC_FRAME_RATE;
info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
info.bmiHeader.biHeight = SRC_IMG_HEIGHT;
info.bmiHeader.biWidth = SRC_IMG_WIDTH;
info.bmiHeader.biCompression = mmioFOURCC('Y','U','Y','V');
pmt->SetFormat((BYTE*)&info, sizeof(VIDEOINFOHEADER));
return NOERROR;
}
sungengyu
2005-03-10
打赏
举报
回复
我在小球的例子上修改的。我希望输出媒体类型为MEDIASUBTYPE_YUYV,试了好久还是连不上。我不知道怎么重写 HRESULT CBallStream::GetMediaType(int iPosition, CMediaType *pmt) , 这里是不是应该填充 AM_MEDIA_TYPE 结构?
在网上搜索也找不到例子,两天了,郁闷至极,
兄弟们拉我一把吧,可怜可怜我吧,555555555555555
经典的虚拟摄像头程序
这类程序能够将视频源(如本地视频文件、网络流或实时生成的图像)虚拟成一个摄像头设备,使得其他应用程序(如视频会议软件、直播工具等)能够识别并使用这个虚拟摄像头。 描述中提到的“amcap”是一个小型的...
Directshow下
Base
classes的编译库:strmbasd.lib和strm
base
.lib
3. C
Base
Output
Pin
:C
Base
Pin
的
派生类
,专门用于输出数据,处理链接和
媒体
类型
的协商。 4. C
Base
Input
Pin
:同样从C
Base
Pin
派生,处理接收数据和连接请求。 5. CSourceStream:为源滤镜提供数据流的类,实现了...
windows
media
format例子
一旦有了`IWM
Media
Props`,我们就可以调用`Get
Media
Type
`方法获取
媒体
类型
,它通常是一个`WM_
MEDIA
_
TYPE
`结构,包含了编码格式、采样率等详细信息。对于音频,这可能包括声道数、位深度;对于视频,可能包括分辨率、...
最简单的源Filter的编写步骤
本篇文章将详细阐述创建一个最简单的源Filter的基本步骤,帮助
初学者
理解DirectShow Filter的开发过程。 1. **初始化项目结构**: - 首先,我们需要创建一个新的DLL工程。在项目中添加五个文件:`My
Output
Pin
.h`、...
MiniSourceFilter
MiniSourceFilter是一个专门为
初学者
和经验丰富的开发者设计的简单源过滤器。在DirectShow框架中,源过滤器是处理原始数据并将其引入过滤图的核心组件。这个项目为那些想要了解或构建自己的DirectShow源过滤器的...
多媒体/流媒体开发
2,553
社区成员
20,277
社区内容
发帖
与我相关
我的任务
多媒体/流媒体开发
专题开发/技术/项目 多媒体/流媒体开发
复制链接
扫一扫
分享
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章