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

Side by Side Diff: webrtc/voice_engine/channel.h

Issue 2709723003: Initial implementation of RtpTransportControllerReceive and related interfaces.
Patch Set: Rebase. 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) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 #ifndef WEBRTC_VOICE_ENGINE_CHANNEL_H_ 11 #ifndef WEBRTC_VOICE_ENGINE_CHANNEL_H_
12 #define WEBRTC_VOICE_ENGINE_CHANNEL_H_ 12 #define WEBRTC_VOICE_ENGINE_CHANNEL_H_
13 13
14 #include <memory> 14 #include <memory>
15 15
16 #include "webrtc/api/audio/audio_mixer.h" 16 #include "webrtc/api/audio/audio_mixer.h"
17 #include "webrtc/api/call/audio_sink.h" 17 #include "webrtc/api/call/audio_sink.h"
18 #include "webrtc/base/criticalsection.h" 18 #include "webrtc/base/criticalsection.h"
19 #include "webrtc/base/event.h" 19 #include "webrtc/base/event.h"
20 #include "webrtc/base/optional.h" 20 #include "webrtc/base/optional.h"
21 #include "webrtc/base/thread_checker.h" 21 #include "webrtc/base/thread_checker.h"
22 #include "webrtc/call/rtp_transport_controller_receive.h"
22 #include "webrtc/common_audio/resampler/include/push_resampler.h" 23 #include "webrtc/common_audio/resampler/include/push_resampler.h"
23 #include "webrtc/common_types.h" 24 #include "webrtc/common_types.h"
24 #include "webrtc/modules/audio_coding/acm2/codec_manager.h" 25 #include "webrtc/modules/audio_coding/acm2/codec_manager.h"
25 #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h" 26 #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
26 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" 27 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h"
27 #include "webrtc/modules/audio_coding/include/audio_coding_module.h" 28 #include "webrtc/modules/audio_coding/include/audio_coding_module.h"
28 #include "webrtc/modules/audio_conference_mixer/include/audio_conference_mixer_d efines.h" 29 #include "webrtc/modules/audio_conference_mixer/include/audio_conference_mixer_d efines.h"
29 #include "webrtc/modules/audio_processing/rms_level.h" 30 #include "webrtc/modules/audio_processing/rms_level.h"
30 #include "webrtc/modules/rtp_rtcp/include/remote_ntp_time_estimator.h" 31 #include "webrtc/modules/rtp_rtcp/include/remote_ntp_time_estimator.h"
31 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" 32 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 } 126 }
126 127
127 private: 128 private:
128 rtc::CriticalSection lock_; 129 rtc::CriticalSection lock_;
129 State state_; 130 State state_;
130 }; 131 };
131 132
132 class Channel 133 class Channel
133 : public RtpData, 134 : public RtpData,
134 public RtpFeedback, 135 public RtpFeedback,
136 public RtpPacketSinkInterface,
135 public FileCallback, // receiving notification from file player & 137 public FileCallback, // receiving notification from file player &
136 // recorder 138 // recorder
137 public Transport, 139 public Transport,
138 public AudioPacketizationCallback, // receive encoded packets from the 140 public AudioPacketizationCallback, // receive encoded packets from the
139 // ACM 141 // ACM
140 public MixerParticipant, // supplies output mixer with audio frames 142 public MixerParticipant, // supplies output mixer with audio frames
141 public OverheadObserver { 143 public OverheadObserver {
142 public: 144 public:
143 friend class VoERtcpObserver; 145 friend class VoERtcpObserver;
144 146
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 int max_frame_length_ms); 208 int max_frame_length_ms);
207 209
208 // VoENetwork 210 // VoENetwork
209 int32_t RegisterExternalTransport(Transport* transport); 211 int32_t RegisterExternalTransport(Transport* transport);
210 int32_t DeRegisterExternalTransport(); 212 int32_t DeRegisterExternalTransport();
211 int32_t ReceivedRTPPacket(const uint8_t* received_packet, 213 int32_t ReceivedRTPPacket(const uint8_t* received_packet,
212 size_t length, 214 size_t length,
213 const PacketTime& packet_time); 215 const PacketTime& packet_time);
214 // TODO(nisse, solenberg): Delete when VoENetwork is deleted. 216 // TODO(nisse, solenberg): Delete when VoENetwork is deleted.
215 int32_t ReceivedRTCPPacket(const uint8_t* data, size_t length); 217 int32_t ReceivedRTCPPacket(const uint8_t* data, size_t length);
216 void OnRtpPacket(const RtpPacketReceived& packet); 218
219 // RtpPacketSinkInterface implementation.
220 void OnRtpPacket(const RtpPacketReceived& packet) override;
217 221
218 // VoEFile 222 // VoEFile
219 int StartPlayingFileLocally(const char* fileName, 223 int StartPlayingFileLocally(const char* fileName,
220 bool loop, 224 bool loop,
221 FileFormats format, 225 FileFormats format,
222 int startPosition, 226 int startPosition,
223 float volumeScaling, 227 float volumeScaling,
224 int stopPosition, 228 int stopPosition,
225 const CodecInst* codecInst); 229 const CodecInst* codecInst);
226 int StartPlayingFileLocally(InStream* stream, 230 int StartPlayingFileLocally(InStream* stream,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 275
272 // DTMF. 276 // DTMF.
273 int SendTelephoneEventOutband(int event, int duration_ms); 277 int SendTelephoneEventOutband(int event, int duration_ms);
274 int SetSendTelephoneEventPayloadType(int payload_type, int payload_frequency); 278 int SetSendTelephoneEventPayloadType(int payload_type, int payload_frequency);
275 279
276 // VoERTP_RTCP 280 // VoERTP_RTCP
277 int SetLocalSSRC(unsigned int ssrc); 281 int SetLocalSSRC(unsigned int ssrc);
278 int GetLocalSSRC(unsigned int& ssrc); 282 int GetLocalSSRC(unsigned int& ssrc);
279 int GetRemoteSSRC(unsigned int& ssrc); 283 int GetRemoteSSRC(unsigned int& ssrc);
280 int SetSendAudioLevelIndicationStatus(bool enable, unsigned char id); 284 int SetSendAudioLevelIndicationStatus(bool enable, unsigned char id);
281 int SetReceiveAudioLevelIndicationStatus(bool enable, unsigned char id);
282 void EnableSendTransportSequenceNumber(int id); 285 void EnableSendTransportSequenceNumber(int id);
283 void EnableReceiveTransportSequenceNumber(int id);
284 286
285 void RegisterSenderCongestionControlObjects( 287 void RegisterSenderCongestionControlObjects(
286 RtpTransportControllerSendInterface* transport, 288 RtpTransportControllerSendInterface* transport,
287 RtcpBandwidthObserver* bandwidth_observer); 289 RtcpBandwidthObserver* bandwidth_observer);
288 void RegisterReceiverCongestionControlObjects(PacketRouter* packet_router); 290 void RegisterReceiverCongestionControlObjects(PacketRouter* packet_router);
289 void ResetSenderCongestionControlObjects(); 291 void ResetSenderCongestionControlObjects();
290 void ResetReceiverCongestionControlObjects(); 292 void ResetReceiverCongestionControlObjects();
291 void SetRTCPStatus(bool enable); 293 void SetRTCPStatus(bool enable);
292 int GetRTCPStatus(bool& enabled); 294 int GetRTCPStatus(bool& enabled);
293 int SetRTCP_CNAME(const char cName[256]); 295 int SetRTCP_CNAME(const char cName[256]);
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 546
545 const bool use_twcc_plr_for_ana_; 547 const bool use_twcc_plr_for_ana_;
546 548
547 rtc::TaskQueue* encoder_queue_ = nullptr; 549 rtc::TaskQueue* encoder_queue_ = nullptr;
548 }; 550 };
549 551
550 } // namespace voe 552 } // namespace voe
551 } // namespace webrtc 553 } // namespace webrtc
552 554
553 #endif // WEBRTC_VOICE_ENGINE_CHANNEL_H_ 555 #endif // WEBRTC_VOICE_ENGINE_CHANNEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698