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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_format.cc

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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/modules/rtp_rtcp/source/rtp_format.h" 11 #include "webrtc/modules/rtp_rtcp/source/rtp_format.h"
12 12
13 #include <utility> 13 #include <utility>
14 14
15 #include "webrtc/modules/rtp_rtcp/source/rtp_format_h264.h" 15 #include "webrtc/modules/rtp_rtcp/source/rtp_format_h264.h"
16 #include "webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h" 16 #include "webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h"
17 #include "webrtc/modules/rtp_rtcp/source/rtp_format_vp8.h" 17 #include "webrtc/modules/rtp_rtcp/source/rtp_format_vp8.h"
18 #include "webrtc/modules/rtp_rtcp/source/rtp_format_vp9.h" 18 #include "webrtc/modules/rtp_rtcp/source/rtp_format_vp9.h"
19 19
20 namespace webrtc { 20 namespace webrtc {
21 RtpPacketizer* RtpPacketizer::Create(RtpVideoCodecTypes type, 21 RtpPacketizer* RtpPacketizer::Create(RtpVideoCodecTypes type,
22 size_t max_payload_len, 22 size_t max_payload_len,
23 size_t last_packet_reduction_len,
23 const RTPVideoTypeHeader* rtp_type_header, 24 const RTPVideoTypeHeader* rtp_type_header,
24 FrameType frame_type) { 25 FrameType frame_type) {
25 switch (type) { 26 switch (type) {
26 case kRtpVideoH264: 27 case kRtpVideoH264:
27 RTC_CHECK(rtp_type_header); 28 RTC_CHECK(rtp_type_header);
28 return new RtpPacketizerH264(max_payload_len, 29 return new RtpPacketizerH264(max_payload_len, last_packet_reduction_len,
29 rtp_type_header->H264.packetization_mode); 30 rtp_type_header->H264.packetization_mode);
30 case kRtpVideoVp8: 31 case kRtpVideoVp8:
31 RTC_CHECK(rtp_type_header); 32 RTC_CHECK(rtp_type_header);
32 return new RtpPacketizerVp8(rtp_type_header->VP8, max_payload_len); 33 return new RtpPacketizerVp8(rtp_type_header->VP8, max_payload_len,
34 last_packet_reduction_len);
33 case kRtpVideoVp9: 35 case kRtpVideoVp9:
34 RTC_CHECK(rtp_type_header); 36 RTC_CHECK(rtp_type_header);
35 return new RtpPacketizerVp9(rtp_type_header->VP9, max_payload_len); 37 return new RtpPacketizerVp9(rtp_type_header->VP9, max_payload_len,
38 last_packet_reduction_len);
36 case kRtpVideoGeneric: 39 case kRtpVideoGeneric:
37 return new RtpPacketizerGeneric(frame_type, max_payload_len); 40 return new RtpPacketizerGeneric(frame_type, max_payload_len,
41 last_packet_reduction_len);
38 case kRtpVideoNone: 42 case kRtpVideoNone:
39 RTC_NOTREACHED(); 43 RTC_NOTREACHED();
40 } 44 }
41 return NULL; 45 return nullptr;
42 } 46 }
43 47
44 RtpDepacketizer* RtpDepacketizer::Create(RtpVideoCodecTypes type) { 48 RtpDepacketizer* RtpDepacketizer::Create(RtpVideoCodecTypes type) {
45 switch (type) { 49 switch (type) {
46 case kRtpVideoH264: 50 case kRtpVideoH264:
47 return new RtpDepacketizerH264(); 51 return new RtpDepacketizerH264();
48 case kRtpVideoVp8: 52 case kRtpVideoVp8:
49 return new RtpDepacketizerVp8(); 53 return new RtpDepacketizerVp8();
50 case kRtpVideoVp9: 54 case kRtpVideoVp9:
51 return new RtpDepacketizerVp9(); 55 return new RtpDepacketizerVp9();
52 case kRtpVideoGeneric: 56 case kRtpVideoGeneric:
53 return new RtpDepacketizerGeneric(); 57 return new RtpDepacketizerGeneric();
54 case kRtpVideoNone: 58 case kRtpVideoNone:
55 assert(false); 59 assert(false);
56 } 60 }
57 return NULL; 61 return nullptr;
58 } 62 }
59 } // namespace webrtc 63 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_format.h ('k') | webrtc/modules/rtp_rtcp/source/rtp_format_h264.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698