OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 | 109 |
110 // Decoders for every payload that we can receive. | 110 // Decoders for every payload that we can receive. |
111 std::vector<Decoder> decoders; | 111 std::vector<Decoder> decoders; |
112 | 112 |
113 // Receive-stream specific RTP settings. | 113 // Receive-stream specific RTP settings. |
114 struct Rtp { | 114 struct Rtp { |
115 std::string ToString() const; | 115 std::string ToString() const; |
116 | 116 |
117 // Synchronization source (stream identifier) to be received. | 117 // Synchronization source (stream identifier) to be received. |
118 uint32_t remote_ssrc = 0; | 118 uint32_t remote_ssrc = 0; |
| 119 |
119 // Sender SSRC used for sending RTCP (such as receiver reports). | 120 // Sender SSRC used for sending RTCP (such as receiver reports). |
120 uint32_t local_ssrc = 0; | 121 uint32_t local_ssrc = 0; |
121 | 122 |
122 // See RtcpMode for description. | 123 // See RtcpMode for description. |
123 RtcpMode rtcp_mode = RtcpMode::kCompound; | 124 RtcpMode rtcp_mode = RtcpMode::kCompound; |
124 | 125 |
125 // Extended RTCP settings. | 126 // Extended RTCP settings. |
126 struct RtcpXr { | 127 struct RtcpXr { |
127 // True if RTCP Receiver Reference Time Report Block extension | 128 // True if RTCP Receiver Reference Time Report Block extension |
128 // (RFC 3611) should be enabled. | 129 // (RFC 3611) should be enabled. |
129 bool receiver_reference_time_report = false; | 130 bool receiver_reference_time_report = false; |
130 } rtcp_xr; | 131 } rtcp_xr; |
131 | 132 |
132 // See draft-alvestrand-rmcat-remb for information. | 133 // See draft-alvestrand-rmcat-remb for information. |
133 bool remb = false; | 134 bool remb = false; |
134 | 135 |
135 // See draft-holmer-rmcat-transport-wide-cc-extensions for details. | 136 // See draft-holmer-rmcat-transport-wide-cc-extensions for details. |
136 bool transport_cc = false; | 137 bool transport_cc = false; |
137 | 138 |
138 // See NackConfig for description. | 139 // See NackConfig for description. |
139 NackConfig nack; | 140 NackConfig nack; |
140 | 141 |
141 // See UlpfecConfig for description. | 142 // See UlpfecConfig for description. |
142 UlpfecConfig ulpfec; | 143 UlpfecConfig ulpfec; |
143 | 144 |
144 // RTX settings for incoming video payloads that may be received. RTX is | 145 // SSRC for retransmissions. |
145 // disabled if there's no config present. | 146 uint32_t rtx_ssrc = 0; |
146 struct Rtx { | |
147 // SSRCs to use for the RTX streams. | |
148 uint32_t ssrc = 0; | |
149 | 147 |
150 // Payload type to use for the RTX stream. | 148 // Map from video payload type (apt) -> RTX payload type (pt). |
151 int payload_type = 0; | 149 // RTX is disabled if no mapping is given here. |
152 }; | 150 std::map<int, int> rtx_payload_types; |
153 | |
154 // Map from video RTP payload type -> RTX config. | |
155 typedef std::map<int, Rtx> RtxMap; | |
156 RtxMap rtx; | |
157 | 151 |
158 // RTP header extensions used for the received stream. | 152 // RTP header extensions used for the received stream. |
159 std::vector<RtpExtension> extensions; | 153 std::vector<RtpExtension> extensions; |
160 } rtp; | 154 } rtp; |
161 | 155 |
162 // Transport for outgoing packets (RTCP). | 156 // Transport for outgoing packets (RTCP). |
163 Transport* rtcp_send_transport = nullptr; | 157 Transport* rtcp_send_transport = nullptr; |
164 | 158 |
165 // Must not be 'nullptr' when the stream is started. | 159 // Must not be 'nullptr' when the stream is started. |
166 rtc::VideoSinkInterface<VideoFrame>* renderer = nullptr; | 160 rtc::VideoSinkInterface<VideoFrame>* renderer = nullptr; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 EnableEncodedFrameRecording(rtc::kInvalidPlatformFileValue, 0); | 212 EnableEncodedFrameRecording(rtc::kInvalidPlatformFileValue, 0); |
219 } | 213 } |
220 | 214 |
221 protected: | 215 protected: |
222 virtual ~VideoReceiveStream() {} | 216 virtual ~VideoReceiveStream() {} |
223 }; | 217 }; |
224 | 218 |
225 } // namespace webrtc | 219 } // namespace webrtc |
226 | 220 |
227 #endif // WEBRTC_VIDEO_RECEIVE_STREAM_H_ | 221 #endif // WEBRTC_VIDEO_RECEIVE_STREAM_H_ |
OLD | NEW |