⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_57521.htm

📁 vc
💻 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-&gt; SetSubtype(&amp; MEDIASUBTYPE_MPEG2_TRANSPORT)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~<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>&nbsp;&nbsp; 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 &lt;initguid.h&gt;
<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>内容:&nbsp;&nbsp;我在GraphEdit中,采用这样的连接: <BR><BR>&nbsp;&nbsp;Capture filter -&gt; H263 Encode filter -&gt; Minimal Null filter -&gt; H263 Decode filter -&gt; Video Renderer filter .<BR><BR>&nbsp;&nbsp;我想把Minimal Null filter看作接收端的Source filter . <BR>&nbsp;&nbsp;在Minimal Null Properties的Output页中,查到MediaType是这样的:<BR><BR>&nbsp;&nbsp;Major Type : Video<BR>&nbsp;&nbsp;Sub Type :<BR>&nbsp;&nbsp;{33363248-0000-0010-8000-00AA00389B71}<BR>&nbsp;&nbsp;Format: H263 176 x 144, 24 bits<BR>&nbsp;&nbsp;rcSrc=[0,0,0]<BR>&nbsp;&nbsp;rcDst=[0,0,0]<BR><BR>&nbsp;&nbsp;Major Type和Sub Type我能够按其设置, 但如果仅设置这两项是不能够连接到H263 Decode filter上, 我不知道Format该如何设置?<BR><BR>&nbsp;&nbsp;盼大虾解惑 , 谢谢!
<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;&nbsp;int iPosition, OUT CMediaType *pmt)<BR>里面增加了:<BR><BR>VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *) pmt-&gt;Format();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pvi-&gt;bmiHeader.biBitCount= 24;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pvi-&gt;bmiHeader.biWidth=320;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pvi-&gt;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pmt -&gt; SetType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&amp; MEDIATYPE_Video) ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pmt -&gt; SetSubtype&nbsp;&nbsp; (&amp; XVID) ;<BR>////修改format///////<BR>VIDEOINFO *pvi = (VIDEOINFO *) pmt-&gt;AllocFormatBuffer(sizeof(VIDEOINFO));<BR>ZeroMemory(pvi, sizeof(VIDEOINFO));<BR>DWORD fccXvid = 'DIVX';&nbsp;&nbsp;<BR>pvi-&gt;bmiHeader.biCompression = fccXvid;<BR>pvi-&gt;bmiHeader.biBitCount&nbsp;&nbsp;&nbsp;&nbsp;= 24;<BR>pvi-&gt;bmiHeader.biSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = sizeof(BITMAPINFOHEADER);<BR>pvi-&gt;bmiHeader.biWidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 320;<BR>pvi-&gt;bmiHeader.biHeight&nbsp;&nbsp;&nbsp;&nbsp; = 240;<BR>pvi-&gt;bmiHeader.biSizeImage&nbsp;&nbsp;= GetBitmapSize(&amp;pvi-&gt;bmiHeader);<BR>SetRectEmpty(&amp;(pvi-&gt;rcSource));<BR>SetRectEmpty(&amp;(pvi-&gt;rcTarget));<BR>pmt-&gt;SetFormatType(&amp;FORMAT_VideoInfo);<BR>pmt-&gt;SetSampleSize(pvi-&gt;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 + -