当前位置:首页 » 软件行业

《DirectShow开发指南》里面的MFC Filter的问题

八月 3, 2007

 发表在: java



我想在《directshow开发指南提供的例子:appiptransform添加修改sample的功能,  
  但是首先要获得sample图象的一些信息:宽       高       象素等等,我修改了transform如下  
   
  hresult   capptransform::transform(imediasample   *psample)  
  {  
  //   override   to   do   something   inside   the   application  
  //   such   as   grabbing   a   poster   frame...  
  //   ...  
  if   (m_pinput   &&   m_pinput->isconnected())  
  {  
  pbyte   pdata=null;  
  psample->getpointer(&pdata);  
  cmediatype   mt   =   m_pinput->currentmediatype();  
  videoinfoheader   *   pheader   =   (videoinfoheader   *)mt.pbformat;  
   
  int   mimagewidth         =   pheader->bmiheader.biwidth;  
  dword   mimageheight       =   (dword)(abs(pheader->bmiheader.biheight));  
  int   mimagebitcount   =   pheader->bmiheader.bibitcount;  
  }  
   
          return   s_ok;  
  }  
   
  但是对于一些可以正常播放的影片里面获得的信息总是为0  
  比如:pheader->bmiheader.bibitcount为0。  
  这让我无法继续后面的操作。  
  是不是videoinfoheader里面的信息不可信,我应该如何得到正确的sample数据?  
  谢谢!

电脑软件技术推荐:

  • 电子商务与应用服务器[详细内容]
  • 亚马逊的八条出路(中)[详细内容]
  • 网络读者的眼球跟踪研究[详细内容]
  • 可伸缩的电子商务解决方案2[详细内容]
  • 文件扩展名及简要说明(S)[详细内容]
  • 文件扩展名及简要说明(P)[详细内容]
  • 愚人节整蛊秘笈大放送(五)[详细内容]
  • 文件扩展名及简要说明XYZ[详细内容]
  • Windows操作系统网络管理技巧[详细内容]
  • StickyNote电脑桌面小贴士[详细内容]
  • 相关提议:
    发表者:happydeer

    1.   你将capptransform   filter连接在什么filter后面?  
      2.   注意在capptransform::checkinputtype中,确认只接受你想接受的media   type。  
      3.   你也可以通过media   type的subtype去获得更多信息,比如rgb24,那bitcount肯定就是24了,如yuy2,那bitcount就是16。

    .

    No comments in this entry


    Post a Comment »

    Logged in

    Advertising

    Categories

    相关文章