class IMediaBuffer
{
public:
IMediaBuffer() {};
virtual ~IMediaBuffer() {};
virtual void Release() = 0;
virtual char* GetBuffer() = 0;
virtual int GetBufferLen() = 0;
};
class IMediaPacket
{
public:
IMediaPacket() {};
virtual ~IMediaPacket() {};
virtual bool InputH264Data(char* pData,int nDataLen,int FrameType,long timespec) = 0;//0为I帧,1为p帧,2为B帧,3为sps,4为pps 返回ture代表可以取数据
virtual bool GetPacket(std::shared_ptr<IMediaBuffer>& pPacket) = 0;//循环获取数据包,直到获取失败
virtual void GCBuffer(std::shared_ptr<IMediaBuffer> pBacket) = 0;
};
{
public:
IMediaBuffer() {};
virtual ~IMediaBuffer() {};
virtual void Release() = 0;
virtual char* GetBuffer() = 0;
virtual int GetBufferLen() = 0;
};
class IMediaPacket
{
public:
IMediaPacket() {};
virtual ~IMediaPacket() {};
virtual bool InputH264Data(char* pData,int nDataLen,int FrameType,long timespec) = 0;//0为I帧,1为p帧,2为B帧,3为sps,4为pps 返回ture代表可以取数据
virtual bool GetPacket(std::shared_ptr<IMediaBuffer>& pPacket) = 0;//循环获取数据包,直到获取失败
virtual void GCBuffer(std::shared_ptr<IMediaBuffer> pBacket) = 0;
};