Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(957)

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h

Issue 2871173008: Fix packetization logic to leave space for extensions in the last packet (Closed)
Patch Set: Impelement Danilchap@ comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h b/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h
index 118166fbf3089bd9b507f0145e20ab49034373a0..25e72809f9db18b2b2d178268b9790dfc3a6aef1 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h
@@ -27,20 +27,21 @@ class RtpPacketizerGeneric : public RtpPacketizer {
public:
// Initialize with payload from encoder.
// The payload_data must be exactly one encoded generic frame.
- RtpPacketizerGeneric(FrameType frametype, size_t max_payload_len);
+ RtpPacketizerGeneric(FrameType frametype,
+ size_t max_payload_len,
+ size_t last_packet_reduction_len);
virtual ~RtpPacketizerGeneric();
- void SetPayloadData(const uint8_t* payload_data,
- size_t payload_size,
- const RTPFragmentationHeader* fragmentation) override;
+ // Returns total number of packets to be generated.
+ size_t SetPayloadData(const uint8_t* payload_data,
+ size_t payload_size,
+ const RTPFragmentationHeader* fragmentation) override;
// Get the next payload with generic payload header.
// Write payload and set marker bit of the |packet|.
- // The parameter |last_packet| is true for the last packet of the frame, false
- // otherwise (i.e., call the function again to get the next packet).
// Returns true on success, false otherwise.
- bool NextPacket(RtpPacketToSend* packet, bool* last_packet) override;
+ bool NextPacket(RtpPacketToSend* packet) override;
ProtectionType GetProtectionType() override;
@@ -52,9 +53,14 @@ class RtpPacketizerGeneric : public RtpPacketizer {
const uint8_t* payload_data_;
size_t payload_size_;
const size_t max_payload_len_;
+ const size_t last_packet_reduction_len_;
FrameType frame_type_;
- size_t payload_length_;
+ size_t payload_len_per_packet_;
uint8_t generic_header_;
+ // Number of packets yet to be retrieved by NextPacket() call.
+ size_t num_packets_left_;
+ // Number of packets, which will be 1 byte more than the rest.
+ size_t num_larger_packets_;
RTC_DISALLOW_COPY_AND_ASSIGN(RtpPacketizerGeneric);
};
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_format_h264_unittest.cc ('k') | webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698