Move AssembleFrame from PacketBuffer to RtpVideoStreamReceiver
this is a step towards resolving own todo: making AssembleFrame part of
the VideoRtpDepacketizer interface and replacing codec check with a
call to a virtual function.
RtpVideoStreamReceiver has access to the VideoRtpDepacketizers,
PacketBuffer - hasn't.
Bug: None
Change-Id: I83df09975c092bdb71bab270ced356d79a50683d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168056
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30833}
diff --git a/modules/video_coding/packet_buffer.h b/modules/video_coding/packet_buffer.h
index 5ce67ba..1877cce 100644
--- a/modules/video_coding/packet_buffer.h
+++ b/modules/video_coding/packet_buffer.h
@@ -21,7 +21,6 @@
#include "api/video/encoded_image.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "modules/rtp_rtcp/source/rtp_video_header.h"
-#include "modules/video_coding/frame_object.h"
#include "rtc_base/copy_on_write_buffer.h"
#include "rtc_base/critical_section.h"
#include "rtc_base/numerics/sequence_number_util.h"
@@ -70,7 +69,7 @@
RtpPacketInfo packet_info;
};
struct InsertResult {
- std::vector<std::unique_ptr<RtpFrameObject>> frames;
+ std::vector<std::unique_ptr<Packet>> packets;
// Indicates if the packet buffer was cleared, which means that a key
// frame request should be sent.
bool buffer_cleared = false;
@@ -118,22 +117,9 @@
bool PotentialNewFrame(uint16_t seq_num) const
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
- // Test if all packets of a frame has arrived, and if so, creates a frame.
- // Returns a vector of received frames.
- std::vector<std::unique_ptr<RtpFrameObject>> FindFrames(uint16_t seq_num)
- RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
-
- std::unique_ptr<RtpFrameObject> AssembleFrame(uint16_t first_seq_num,
- uint16_t last_seq_num)
- RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
-
- // Get the packet with sequence number |seq_num|.
- const Packet& GetPacket(uint16_t seq_num) const
- RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
-
- // Clears the packet buffer from |start_seq_num| to |stop_seq_num| where the
- // endpoints are inclusive.
- void ClearInterval(uint16_t start_seq_num, uint16_t stop_seq_num)
+ // Test if all packets of a frame has arrived, and if so, returns packets to
+ // create frames.
+ std::vector<std::unique_ptr<Packet>> FindFrames(uint16_t seq_num)
RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_);
void UpdateMissingPackets(uint16_t seq_num)