Commit 4ab270ca by xiongziliang

精简代码

parent 6356ffcb
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
namespace mediakit{ namespace mediakit{
class AACFrame;
string makeAacConfig(const uint8_t *hex); string makeAacConfig(const uint8_t *hex);
void dumpAacConfig(const string &config, int length, uint8_t *out); void dumpAacConfig(const string &config, int length, uint8_t *out);
void parseAacConfig(const string &config, int &samplerate, int &channels); void parseAacConfig(const string &config, int &samplerate, int &channels);
...@@ -38,11 +36,11 @@ class AACFrameNoCacheAble : public FrameFromPtr { ...@@ -38,11 +36,11 @@ class AACFrameNoCacheAble : public FrameFromPtr {
public: public:
typedef std::shared_ptr<AACFrameNoCacheAble> Ptr; typedef std::shared_ptr<AACFrameNoCacheAble> Ptr;
AACFrameNoCacheAble(char *ptr,uint32_t size,uint32_t dts,uint32_t pts = 0,int prefixeSize = 7){ AACFrameNoCacheAble(char *ptr,uint32_t size,uint32_t dts,uint32_t pts = 0,int prefix_size = ADTS_HEADER_LEN){
_ptr = ptr; _ptr = ptr;
_size = size; _size = size;
_dts = dts; _dts = dts;
_prefix_size = prefixeSize; _prefix_size = prefix_size;
} }
CodecId getCodecId() const override{ CodecId getCodecId() const override{
...@@ -84,31 +82,6 @@ public: ...@@ -84,31 +82,6 @@ public:
} }
/** /**
* 构造aac类型的媒体
* @param adts_header adts头,7个字节
* @param adts_header_len adts头长度,不少于7个字节
*/
AACTrack(const char *adts_header,int adts_header_len = 7){
if(adts_header_len < 7){
throw std::invalid_argument("adts头必须不少于7个字节");
}
_cfg = makeAacConfig((uint8_t *) adts_header);
onReady();
}
/**
* 构造aac类型的媒体
* @param aac_frame_with_adts 带adts头的aac帧
*/
AACTrack(const Frame::Ptr &aac_frame_with_adts){
if(aac_frame_with_adts->getCodecId() != CodecAAC || aac_frame_with_adts->prefixSize() < 7){
throw std::invalid_argument("必须输入带adts头的aac帧");
}
_cfg = makeAacConfig((uint8_t *) aac_frame_with_adts->data());
onReady();
}
/**
* 获取aac两个字节的配置 * 获取aac两个字节的配置
*/ */
const string &getAacCfg() const{ const string &getAacCfg() const{
...@@ -157,7 +130,7 @@ public: ...@@ -157,7 +130,7 @@ public:
void inputFrame(const Frame::Ptr &frame) override{ void inputFrame(const Frame::Ptr &frame) override{
if (_cfg.empty()) { if (_cfg.empty()) {
//未获取到aac_cfg信息 //未获取到aac_cfg信息
if (frame->prefixSize() >= 7) { if (frame->prefixSize() >= ADTS_HEADER_LEN) {
//7个字节的adts头 //7个字节的adts头
_cfg = makeAacConfig((uint8_t *) (frame->data())); _cfg = makeAacConfig((uint8_t *) (frame->data()));
onReady(); onReady();
...@@ -215,8 +188,7 @@ public: ...@@ -215,8 +188,7 @@ public:
char configStr[32] = {0}; char configStr[32] = {0};
snprintf(configStr, sizeof(configStr), "%02X%02X", (uint8_t)aac_cfg[0], (uint8_t)aac_cfg[1]); snprintf(configStr, sizeof(configStr), "%02X%02X", (uint8_t)aac_cfg[0], (uint8_t)aac_cfg[1]);
_printer << "a=fmtp:" << playload_type << " streamtype=5;profile-level-id=1;mode=AAC-hbr;" _printer << "a=fmtp:" << playload_type << " streamtype=5;profile-level-id=1;mode=AAC-hbr;"
<< "sizelength=13;indexlength=3;indexdeltalength=3;config=" << "sizelength=13;indexlength=3;indexdeltalength=3;config=" << configStr << "\r\n";
<< configStr << "\r\n";
_printer << "a=control:trackID=" << (int)TrackAudio << "\r\n"; _printer << "a=control:trackID=" << (int)TrackAudio << "\r\n";
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论