Commit 24472ee3 by xiongziliang

修复aac adts头大于7个字节时的兼容性问题

parent 5144b84e
......@@ -161,6 +161,7 @@ int dumpAacConfig(const string &config, size_t length, uint8_t *out, size_t out_
if (ret < 0) {
WarnL << "生成adts头失败:" << ret << ", aac config:" << hexdump(config.data(), config.size());
}
assert((int)out_size >= ret);
return ret;
#endif
}
......@@ -280,6 +281,9 @@ bool AACTrack::inputFrame(const Frame::Ptr &frame) {
if (frame_len < ADTS_HEADER_LEN) {
break;
}
if (frame_len == frame->size()) {
return inputFrame_l(frame);
}
auto sub_frame = std::make_shared<FrameInternal<FrameFromPtr> >(frame, (char *) ptr, frame_len, ADTS_HEADER_LEN);
ptr += frame_len;
if (ptr > end) {
......
......@@ -138,7 +138,7 @@ void AACRtpDecoder::flushData() {
_frame->_prefix_size = ADTS_HEADER_LEN;
} else {
//没有adts头则插入adts头
char adts_header[32] = {0};
char adts_header[128] = {0};
auto size = dumpAacConfig(_aac_cfg, _frame->_buffer.size(), (uint8_t *) adts_header, sizeof(adts_header));
if (size > 0) {
//插入adts头
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论