修复某些场景下rtmp定位关键帧不准确的bug

This commit is contained in:
xiongziliang
2020-09-06 18:22:04 +08:00
parent 51ae8d4083
commit 0878f776b3
13 changed files with 43 additions and 67 deletions

View File

@@ -29,17 +29,16 @@ static string getAacCfg(const RtmpPacket &thiz) {
return ret;
}
bool AACRtmpDecoder::inputRtmp(const RtmpPacket::Ptr &pkt, bool) {
void AACRtmpDecoder::inputRtmp(const RtmpPacket::Ptr &pkt) {
if (pkt->isCfgFrame()) {
_aac_cfg = getAacCfg(*pkt);
onGetAAC(nullptr, 0, 0);
return false;
return;
}
if (!_aac_cfg.empty()) {
onGetAAC(pkt->buffer.data() + 2, pkt->buffer.size() - 2, pkt->time_stamp);
}
return false;
}
void AACRtmpDecoder::onGetAAC(const char* data, int len, uint32_t stamp) {
@@ -112,7 +111,7 @@ void AACRtmpEncoder::inputFrame(const Frame::Ptr &frame) {
rtmpPkt->stream_index = STREAM_MEDIA;
rtmpPkt->time_stamp = frame->dts();
rtmpPkt->type_id = MSG_AUDIO;
RtmpCodec::inputRtmp(rtmpPkt, false);
RtmpCodec::inputRtmp(rtmpPkt);
}
}
@@ -133,7 +132,7 @@ void AACRtmpEncoder::makeAudioConfigPkt() {
rtmpPkt->stream_index = STREAM_MEDIA;
rtmpPkt->time_stamp = 0;
rtmpPkt->type_id = MSG_AUDIO;
RtmpCodec::inputRtmp(rtmpPkt, false);
RtmpCodec::inputRtmp(rtmpPkt);
}
}//namespace mediakit