mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-03 00:47:34 +08:00
完善工程模式对象已经AACTrack
This commit is contained in:
@@ -232,6 +232,12 @@ class AACTrack : public AudioTrack{
|
||||
public:
|
||||
typedef std::shared_ptr<AACTrack> Ptr;
|
||||
|
||||
/**
|
||||
* 延后获取adts头信息
|
||||
* 在随后的inputFrame中获取adts头信息
|
||||
*/
|
||||
AACTrack(){}
|
||||
|
||||
/**
|
||||
* 构造aac类型的媒体
|
||||
* @param aac_cfg aac两个字节的配置信息
|
||||
@@ -285,6 +291,16 @@ public:
|
||||
return CodecAAC;
|
||||
}
|
||||
|
||||
/**
|
||||
* 在获取aac_cfg前是无效的Track
|
||||
* @return
|
||||
*/
|
||||
TrackType getTrackType() const override {
|
||||
if(_cfg.empty()){
|
||||
return TrackInvalid;
|
||||
}
|
||||
return TrackAudio;
|
||||
}
|
||||
/**
|
||||
* 返回音频采样率
|
||||
* @return
|
||||
@@ -307,6 +323,18 @@ public:
|
||||
return _channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* 输入数据帧,并获取aac_cfg
|
||||
* @param frame 数据帧
|
||||
*/
|
||||
void inputFrame(const Frame::Ptr &frame) override{
|
||||
if(_cfg.empty() && frame->prefixSize() == 7){
|
||||
//7个字节的adts头
|
||||
_cfg = makeAdtsConfig(reinterpret_cast<const uint8_t *>(frame->data()));
|
||||
parseAacCfg(_cfg);
|
||||
}
|
||||
AudioTrack::inputFrame(frame);
|
||||
}
|
||||
private:
|
||||
/**
|
||||
* 解析2个字节的aac配置
|
||||
|
||||
Reference in New Issue
Block a user