GraphRebuildHelper.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:1k
源码类别:

P2P编程

开发平台:

Visual C++

  1. #pragma once
  2. ///这是一个为了重建图而写的简单的帮助器
  3. /*
  4.     目前它使用IGraphBuilder来重建一个连接。
  5.     每个对象只能被使用一次,因此,如果要重连接多个pin,请产生多个相应的对象
  6. */
  7. class GraphRebuildHelper
  8. {
  9. public:
  10.     GraphRebuildHelper(void);
  11.     ///控制图的起停
  12.     HRESULT rungraph(IFilterGraph *_igraph);
  13.     HRESULT stopgraph(IFilterGraph *_igraph);
  14.     ///建造函数
  15.     /*
  16.         这个函数将source filter的某个pin和已在图中的对应的render filter (视频或音频)用智能连接方式重新连接起来
  17.     param   _ipin: filter的pin
  18.             _isaudio: 指定音频还是视频,以决定和哪个render filter连接
  19.     */
  20.     HRESULT startbuilding(IFilterGraph *_igraph, CBasePin *_ipin, bool _isaudio);
  21.     ~GraphRebuildHelper(void);
  22. private:
  23.     void reset();
  24.     bool get_render_filters (bool _isaudio, IFilterGraph *p_graph);
  25.     bool get_render_pin();
  26.     bool used;
  27.     IBaseFilter *p_render_filter;
  28.     IPin *p_pin;
  29. };