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

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19. #pragma once
  20. #include "../layer1/Layer1.h"
  21. #include "MediaPinType.h"
  22. class Layer1Pin : protected SampleBuffer
  23. {
  24. public:
  25.     Layer1Pin(NPLayer1::Layer1* pLayer1, bool bAudio);
  26.     ~Layer1Pin(void);
  27.     void    Start();
  28.     P2P_RETURN_TYPE PeerData(
  29. SampleHeader& header, // out, 数据头
  30. PBYTE& pData, // out, 存储数据的缓冲区
  31. const UINT maxSize, // in, 缓冲区的长度
  32. const bool bKeySample // in, 是否寻找关键帧
  33. );
  34.     P2P_RETURN_TYPE GetData(
  35. SampleHeader& header, // out, 数据头
  36. PBYTE& pData, // out, 存储数据的缓冲区
  37. const UINT maxSize, // in, 缓冲区的长度
  38. const bool bKeySample // in, 是否寻找关键帧
  39. );
  40. protected:
  41.     P2P_RETURN_TYPE GetDataEx(SampleHeader &header, PBYTE &pData, const UINT maxSize, const bool bKeySample, 
  42.         const bool bSaveSample //in, 是否缓冲当前的sample到本地
  43.         );
  44. private:
  45.     bool    m_needmediatype;
  46.     bool    m_bAudio;
  47.     UINT    m_maxSize;
  48.     MediaPinType    m_mediatype;
  49.     NPLayer1::Layer1* m_pLayer1;
  50. };