📄 subject_57521.htm
字号:
<p>
序号:57521 发表者:zhengyong 发表日期:2003-10-26 13:41:21
<br>主题:如何设置Subtype??大虾救命!
<br>内容:<BR>我想将Directshow sdk9.0中的DSnetwork部分<BR>把MPEG2压缩 修改成 Xvid压缩传输,或者其他MPEG-4压缩方式<BR><BR>修改receiver部分时,想将CNetOutputPin::GetMediaType中的<BR>pmt-> SetSubtype(& MEDIASUBTYPE_MPEG2_TRANSPORT)<BR> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~<BR>改成用Xvid压缩得到的相应的Subtype<BR>应该怎么改呢?<BR>我看Xvid压缩filter的outputpin的subtype是{44495658-0000-0010-8000-00AA00389B71}<BR>可是没法直接用这一串数字。。<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:gzast163 回复日期:2003-10-27 09:03:43
<br>内容:这样定义一下拉:<BR>// {44495658-0000-0010-8000-00AA00389B71}<BR>DEFINE_GUID(MEDIASUBTYPE_XVID, <BR>0x44495658, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhengyong 回复日期:2003-10-27 09:33:49
<br>内容:按楼上的大虾修改后,编译的时候为什么还会发生如下错误呢?<BR><BR>Linking...<BR> Creating library Debug_Unicode/dsnet.lib and object Debug_Unicode/dsnet.exp<BR>dsrecv.lib(dsrecv.obj) : error LNK2001: unresolved external symbol _MEDIASUBTYPE_XVID<BR>Debug_Unicode\dsnet.ax : fatal error LNK1120: 1 unresolved externals<BR>Error executing link.exe.<BR><BR>dsnet.ax - 2 error(s), 0 warning(s)<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:gzast163 回复日期:2003-10-27 09:42:23
<br>内容:加上#include <initguid.h>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:沈静 回复日期:2003-10-27 09:44:01
<br>内容: 我在GraphEdit中,采用这样的连接: <BR><BR> Capture filter -> H263 Encode filter -> Minimal Null filter -> H263 Decode filter -> Video Renderer filter .<BR><BR> 我想把Minimal Null filter看作接收端的Source filter . <BR> 在Minimal Null Properties的Output页中,查到MediaType是这样的:<BR><BR> Major Type : Video<BR> Sub Type :<BR> {33363248-0000-0010-8000-00AA00389B71}<BR> Format: H263 176 x 144, 24 bits<BR> rcSrc=[0,0,0]<BR> rcDst=[0,0,0]<BR><BR> Major Type和Sub Type我能够按其设置, 但如果仅设置这两项是不能够连接到H263 Decode filter上, 我不知道Format该如何设置?<BR><BR> 盼大虾解惑 , 谢谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:沈静 回复日期:2003-10-27 09:54:08
<br>内容:zhengyong918: gzast163说的方法没有问题, 你可以将其定义到<BR> dsrecv.h头文件中
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:gzast163 回复日期:2003-10-27 10:05:04
<br>内容:不能偷懒的,要把AM_MEDIA_TYPE的各个域配置好,还要根据Format Type把pbFormat配置好,有些还要有Extra Data,不是象你们这样简单配置一两参数就OK的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhengyong 回复日期:2003-10-27 10:15:30
<br>内容:gzast163同志真乃高人也。。<BR>仰慕ing!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhengyong 回复日期:2003-10-27 11:43:55
<br>内容:为了配置receiver filter的outputpin Format<BR>我在CNetOutputPin::GetMediaType (IN int iPosition, OUT CMediaType *pmt)<BR>里面增加了:<BR><BR>VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *) pmt->Format();<BR> pvi->bmiHeader.biBitCount= 24;<BR> pvi->bmiHeader.biWidth=320;<BR> pvi->bmiHeader.biHeight=240;<BR><BR>虽然编译通过了,可是运行的时候,一查看receiver filter的outputpin属性就会出现内存读写错误。。不知是何原因?<BR>请问设置outputpin 的 format是在getmediatype方法里面设置嘛?不是的话该在哪里设置呢<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhengyong 回复日期:2003-10-27 13:57:51
<br>内容:沈兄,我刚刚解决了format设置的问题,我的receiver可以连上Xvid的解码器了<BR>代码如下,希望对你有帮助:<BR><BR>(是在CNetOutputPin::GetMediaType里面改的)<BR> pmt -> SetType (& MEDIATYPE_Video) ;<BR> pmt -> SetSubtype (& XVID) ;<BR>////修改format///////<BR>VIDEOINFO *pvi = (VIDEOINFO *) pmt->AllocFormatBuffer(sizeof(VIDEOINFO));<BR>ZeroMemory(pvi, sizeof(VIDEOINFO));<BR>DWORD fccXvid = 'DIVX'; <BR>pvi->bmiHeader.biCompression = fccXvid;<BR>pvi->bmiHeader.biBitCount = 24;<BR>pvi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);<BR>pvi->bmiHeader.biWidth = 320;<BR>pvi->bmiHeader.biHeight = 240;<BR>pvi->bmiHeader.biSizeImage = GetBitmapSize(&pvi->bmiHeader);<BR>SetRectEmpty(&(pvi->rcSource));<BR>SetRectEmpty(&(pvi->rcTarget));<BR>pmt->SetFormatType(&FORMAT_VideoInfo);<BR>pmt->SetSampleSize(pvi->bmiHeader.biSizeImage);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -