OLD | NEW |
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 |
(...skipping 23 matching lines...) Expand all Loading... |
34 virtual size_t SetPayloadData( | 34 virtual size_t SetPayloadData( |
35 const uint8_t* payload_data, | 35 const uint8_t* payload_data, |
36 size_t payload_size, | 36 size_t payload_size, |
37 const RTPFragmentationHeader* fragmentation) = 0; | 37 const RTPFragmentationHeader* fragmentation) = 0; |
38 | 38 |
39 // Get the next payload with payload header. | 39 // Get the next payload with payload header. |
40 // Write payload and set marker bit of the |packet|. | 40 // Write payload and set marker bit of the |packet|. |
41 // Returns true on success, false otherwise. | 41 // Returns true on success, false otherwise. |
42 virtual bool NextPacket(RtpPacketToSend* packet) = 0; | 42 virtual bool NextPacket(RtpPacketToSend* packet) = 0; |
43 | 43 |
44 virtual ProtectionType GetProtectionType() = 0; | |
45 | |
46 virtual StorageType GetStorageType(uint32_t retransmission_settings) = 0; | |
47 | |
48 virtual std::string ToString() = 0; | 44 virtual std::string ToString() = 0; |
49 }; | 45 }; |
50 | 46 |
51 // TODO(sprang): Update the depacketizer to return a std::unqie_ptr with a copy | 47 // TODO(sprang): Update the depacketizer to return a std::unqie_ptr with a copy |
52 // of the parsed payload, rather than just a pointer into the incoming buffer. | 48 // of the parsed payload, rather than just a pointer into the incoming buffer. |
53 // This way we can move some parsing out from the jitter buffer into here, and | 49 // This way we can move some parsing out from the jitter buffer into here, and |
54 // the jitter buffer can just store that pointer rather than doing a copy there. | 50 // the jitter buffer can just store that pointer rather than doing a copy there. |
55 class RtpDepacketizer { | 51 class RtpDepacketizer { |
56 public: | 52 public: |
57 struct ParsedPayload { | 53 struct ParsedPayload { |
58 const uint8_t* payload; | 54 const uint8_t* payload; |
59 size_t payload_length; | 55 size_t payload_length; |
60 FrameType frame_type; | 56 FrameType frame_type; |
61 RTPTypeHeader type; | 57 RTPTypeHeader type; |
62 }; | 58 }; |
63 | 59 |
64 static RtpDepacketizer* Create(RtpVideoCodecTypes type); | 60 static RtpDepacketizer* Create(RtpVideoCodecTypes type); |
65 | 61 |
66 virtual ~RtpDepacketizer() {} | 62 virtual ~RtpDepacketizer() {} |
67 | 63 |
68 // Parses the RTP payload, parsed result will be saved in |parsed_payload|. | 64 // Parses the RTP payload, parsed result will be saved in |parsed_payload|. |
69 virtual bool Parse(ParsedPayload* parsed_payload, | 65 virtual bool Parse(ParsedPayload* parsed_payload, |
70 const uint8_t* payload_data, | 66 const uint8_t* payload_data, |
71 size_t payload_data_length) = 0; | 67 size_t payload_data_length) = 0; |
72 }; | 68 }; |
73 } // namespace webrtc | 69 } // namespace webrtc |
74 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_FORMAT_H_ | 70 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_FORMAT_H_ |
OLD | NEW |