| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 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_API_CALL_AUDIO_SEND_STREAM_H_ | 11 #ifndef WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_ |
| 12 #define WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_ | 12 #define WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_ |
| 13 | 13 |
| 14 #include <memory> | 14 #include <memory> |
| 15 #include <string> | 15 #include <string> |
| 16 #include <vector> | 16 #include <vector> |
| 17 | 17 |
| 18 #include "webrtc/config.h" | 18 #include "webrtc/config.h" |
| 19 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" | 19 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" |
| 20 #include "webrtc/transport.h" | 20 #include "webrtc/transport.h" |
| 21 #include "webrtc/typedefs.h" | 21 #include "webrtc/typedefs.h" |
| 22 | 22 |
| 23 namespace webrtc { | 23 namespace webrtc { |
| 24 | 24 |
| 25 // TODO(minyue): This is copied from cricket::SendCodecSpec. Find better place |
| 26 // for it. |
| 27 struct SendCodecSpec { |
| 28 SendCodecSpec() { |
| 29 webrtc::CodecInst empty_inst = {0}; |
| 30 codec_inst = empty_inst; |
| 31 codec_inst.pltype = -1; |
| 32 } |
| 33 bool operator==(const SendCodecSpec& rhs) const; |
| 34 bool operator!=(const SendCodecSpec& rhs) const; |
| 35 |
| 36 bool nack_enabled = false; |
| 37 bool transport_cc_enabled = false; |
| 38 bool enable_codec_fec = false; |
| 39 bool enable_opus_dtx = false; |
| 40 int opus_max_playback_rate = 0; |
| 41 int red_payload_type = -1; |
| 42 int cng_payload_type = -1; |
| 43 int cng_plfreq = -1; |
| 44 webrtc::CodecInst codec_inst; |
| 45 }; |
| 46 |
| 25 // WORK IN PROGRESS | 47 // WORK IN PROGRESS |
| 26 // This class is under development and is not yet intended for for use outside | 48 // This class is under development and is not yet intended for for use outside |
| 27 // of WebRtc/Libjingle. Please use the VoiceEngine API instead. | 49 // of WebRtc/Libjingle. Please use the VoiceEngine API instead. |
| 28 // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=4690 | 50 // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=4690 |
| 29 | 51 |
| 30 class AudioSendStream { | 52 class AudioSendStream { |
| 31 public: | 53 public: |
| 32 struct Stats { | 54 struct Stats { |
| 33 // TODO(solenberg): Harmonize naming and defaults with receive stream stats. | 55 // TODO(solenberg): Harmonize naming and defaults with receive stream stats. |
| 34 uint32_t local_ssrc = 0; | 56 uint32_t local_ssrc = 0; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 // passed to Call::CreateAudioSendStream(). | 109 // passed to Call::CreateAudioSendStream(). |
| 88 // TODO(solenberg): Implement, once we configure codecs through the new API. | 110 // TODO(solenberg): Implement, once we configure codecs through the new API. |
| 89 // std::unique_ptr<AudioEncoder> encoder; | 111 // std::unique_ptr<AudioEncoder> encoder; |
| 90 int cng_payload_type = -1; // pt, or -1 to disable Comfort Noise Generator. | 112 int cng_payload_type = -1; // pt, or -1 to disable Comfort Noise Generator. |
| 91 | 113 |
| 92 // Bitrate limits used for variable audio bitrate streams. Set both to -1 to | 114 // Bitrate limits used for variable audio bitrate streams. Set both to -1 to |
| 93 // disable audio bitrate adaptation. | 115 // disable audio bitrate adaptation. |
| 94 // Note: This is still an experimental feature and not ready for real usage. | 116 // Note: This is still an experimental feature and not ready for real usage. |
| 95 int min_bitrate_kbps = -1; | 117 int min_bitrate_kbps = -1; |
| 96 int max_bitrate_kbps = -1; | 118 int max_bitrate_kbps = -1; |
| 119 |
| 120 int max_send_bitrate_bps = 0; |
| 121 SendCodecSpec send_codec_spec; |
| 97 }; | 122 }; |
| 98 | 123 |
| 99 // Starts stream activity. | 124 // Starts stream activity. |
| 100 // When a stream is active, it can receive, process and deliver packets. | 125 // When a stream is active, it can receive, process and deliver packets. |
| 101 virtual void Start() = 0; | 126 virtual void Start() = 0; |
| 102 // Stops stream activity. | 127 // Stops stream activity. |
| 103 // When a stream is stopped, it can't receive, process or deliver packets. | 128 // When a stream is stopped, it can't receive, process or deliver packets. |
| 104 virtual void Stop() = 0; | 129 virtual void Stop() = 0; |
| 105 | 130 |
| 106 // TODO(solenberg): Make payload_type a config property instead. | 131 // TODO(solenberg): Make payload_type a config property instead. |
| 107 virtual bool SendTelephoneEvent(int payload_type, int event, | 132 virtual bool SendTelephoneEvent(int payload_type, int event, |
| 108 int duration_ms) = 0; | 133 int duration_ms) = 0; |
| 109 | 134 |
| 110 virtual void SetMuted(bool muted) = 0; | 135 virtual void SetMuted(bool muted) = 0; |
| 111 | 136 |
| 112 virtual Stats GetStats() const = 0; | 137 virtual Stats GetStats() const = 0; |
| 113 | 138 |
| 114 protected: | 139 protected: |
| 115 virtual ~AudioSendStream() {} | 140 virtual ~AudioSendStream() {} |
| 116 }; | 141 }; |
| 117 } // namespace webrtc | 142 } // namespace webrtc |
| 118 | 143 |
| 119 #endif // WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_ | 144 #endif // WEBRTC_API_CALL_AUDIO_SEND_STREAM_H_ |
| OLD | NEW |