VTrain_BothSides/tools/rtsp_server/xop/AACSource.h

47 lines
941 B
C++

// PHZ
// 2018-5-16
#ifndef XOP_AAC_SOURCE_H
#define XOP_AAC_SOURCE_H
#include "MediaSource.h"
#include "rtp.h"
namespace xop
{
class AACSource : public MediaSource
{
public:
static AACSource* CreateNew(uint32_t samplerate=44100, uint32_t channels=2, bool has_adts=true);
virtual ~AACSource();
uint32_t GetSamplerate() const
{ return samplerate_; }
uint32_t GetChannels() const
{ return channels_; }
virtual std::string GetMediaDescription(uint16_t port=0);
virtual std::string GetAttribute();
virtual bool HandleFrame(MediaChannelId channel_id, AVFrame frame);
static uint32_t GetTimestamp(uint32_t samplerate =44100);
private:
AACSource(uint32_t samplerate, uint32_t channels, bool has_adts);
uint32_t samplerate_ = 44100;
uint32_t channels_ = 2;
bool has_adts_ = true;
static const int ADTS_SIZE = 7;
static const int AU_SIZE = 4;
};
}
#endif