change PacketBuffer to return it's result rather that use callback
Bug: None Change-Id: I8cc05dd46e811d6db37af520d2106af21c671def Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157893 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29589}
This commit is contained in:
committed by
Commit Bot
parent
2522b25f19
commit
ce1ffcdc06
@ -212,10 +212,7 @@ RtpVideoStreamReceiver::RtpVideoStreamReceiver(
|
||||
// TODO(bugs.webrtc.org/10336): Let |rtcp_feedback_buffer_| communicate
|
||||
// directly with |rtp_rtcp_|.
|
||||
rtcp_feedback_buffer_(this, nack_sender, this),
|
||||
packet_buffer_(clock_,
|
||||
kPacketBufferStartSize,
|
||||
PacketBufferMaxSize(),
|
||||
this),
|
||||
packet_buffer_(clock_, kPacketBufferStartSize, PacketBufferMaxSize()),
|
||||
has_received_frame_(false),
|
||||
frames_decryptable_(false) {
|
||||
constexpr bool remb_candidate = true;
|
||||
@ -464,9 +461,7 @@ void RtpVideoStreamReceiver::OnReceivedPayloadData(
|
||||
}
|
||||
|
||||
rtcp_feedback_buffer_.SendBufferedRtcpFeedback();
|
||||
if (!packet_buffer_.InsertPacket(&packet)) {
|
||||
RequestKeyFrame();
|
||||
}
|
||||
OnInsertedPacket(packet_buffer_.InsertPacket(&packet));
|
||||
}
|
||||
|
||||
void RtpVideoStreamReceiver::OnRecoveredPacket(const uint8_t* rtp_packet,
|
||||
@ -580,6 +575,16 @@ bool RtpVideoStreamReceiver::IsDecryptable() const {
|
||||
return frames_decryptable_.load();
|
||||
}
|
||||
|
||||
void RtpVideoStreamReceiver::OnInsertedPacket(
|
||||
video_coding::PacketBuffer::InsertResult result) {
|
||||
for (std::unique_ptr<video_coding::RtpFrameObject>& frame : result.frames) {
|
||||
OnAssembledFrame(std::move(frame));
|
||||
}
|
||||
if (result.buffer_cleared) {
|
||||
RequestKeyFrame();
|
||||
}
|
||||
}
|
||||
|
||||
void RtpVideoStreamReceiver::OnAssembledFrame(
|
||||
std::unique_ptr<video_coding::RtpFrameObject> frame) {
|
||||
RTC_DCHECK_RUN_ON(&network_tc_);
|
||||
@ -780,7 +785,7 @@ void RtpVideoStreamReceiver::NotifyReceiverOfEmptyPacket(uint16_t seq_num) {
|
||||
rtc::CritScope lock(&reference_finder_lock_);
|
||||
reference_finder_->PaddingReceived(seq_num);
|
||||
}
|
||||
packet_buffer_.PaddingReceived(seq_num);
|
||||
OnInsertedPacket(packet_buffer_.InsertPadding(seq_num));
|
||||
if (nack_module_) {
|
||||
nack_module_->OnReceivedPacket(seq_num, /* is_keyframe = */ false,
|
||||
/* is _recovered = */ false);
|
||||
|
||||
Reference in New Issue
Block a user