OLD | NEW |
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 |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "webrtc/typedefs.h" | 21 #include "webrtc/typedefs.h" |
22 | 22 |
23 namespace webrtc { | 23 namespace webrtc { |
24 | 24 |
25 class CriticalSectionWrapper; | 25 class CriticalSectionWrapper; |
26 | 26 |
27 // Handles audio RTP packets. This class is thread-safe. | 27 // Handles audio RTP packets. This class is thread-safe. |
28 class RTPReceiverAudio : public RTPReceiverStrategy, | 28 class RTPReceiverAudio : public RTPReceiverStrategy, |
29 public TelephoneEventHandler { | 29 public TelephoneEventHandler { |
30 public: | 30 public: |
31 RTPReceiverAudio(const int32_t id, | 31 RTPReceiverAudio(RtpData* data_callback, |
32 RtpData* data_callback, | |
33 RtpAudioFeedback* incoming_messages_callback); | 32 RtpAudioFeedback* incoming_messages_callback); |
34 virtual ~RTPReceiverAudio() {} | 33 virtual ~RTPReceiverAudio() {} |
35 | 34 |
36 // The following three methods implement the TelephoneEventHandler interface. | 35 // The following three methods implement the TelephoneEventHandler interface. |
37 // Forward DTMFs to decoder for playout. | 36 // Forward DTMFs to decoder for playout. |
38 void SetTelephoneEventForwardToDecoder(bool forward_to_decoder); | 37 void SetTelephoneEventForwardToDecoder(bool forward_to_decoder); |
39 | 38 |
40 // Is forwarding of outband telephone events turned on/off? | 39 // Is forwarding of outband telephone events turned on/off? |
41 bool TelephoneEventForwardToDecoder() const; | 40 bool TelephoneEventForwardToDecoder() const; |
42 | 41 |
(...skipping 24 matching lines...) Expand all Loading... |
67 | 66 |
68 bool ShouldReportCsrcChanges(uint8_t payload_type) const override; | 67 bool ShouldReportCsrcChanges(uint8_t payload_type) const override; |
69 | 68 |
70 int32_t OnNewPayloadTypeCreated( | 69 int32_t OnNewPayloadTypeCreated( |
71 const char payload_name[RTP_PAYLOAD_NAME_SIZE], | 70 const char payload_name[RTP_PAYLOAD_NAME_SIZE], |
72 int8_t payload_type, | 71 int8_t payload_type, |
73 uint32_t frequency) override; | 72 uint32_t frequency) override; |
74 | 73 |
75 int32_t InvokeOnInitializeDecoder( | 74 int32_t InvokeOnInitializeDecoder( |
76 RtpFeedback* callback, | 75 RtpFeedback* callback, |
77 int32_t id, | |
78 int8_t payload_type, | 76 int8_t payload_type, |
79 const char payload_name[RTP_PAYLOAD_NAME_SIZE], | 77 const char payload_name[RTP_PAYLOAD_NAME_SIZE], |
80 const PayloadUnion& specific_payload) const override; | 78 const PayloadUnion& specific_payload) const override; |
81 | 79 |
82 // We do not allow codecs to have multiple payload types for audio, so we | 80 // We do not allow codecs to have multiple payload types for audio, so we |
83 // need to override the default behavior (which is to do nothing). | 81 // need to override the default behavior (which is to do nothing). |
84 void PossiblyRemoveExistingPayloadType( | 82 void PossiblyRemoveExistingPayloadType( |
85 RtpUtility::PayloadTypeMap* payload_type_map, | 83 RtpUtility::PayloadTypeMap* payload_type_map, |
86 const char payload_name[RTP_PAYLOAD_NAME_SIZE], | 84 const char payload_name[RTP_PAYLOAD_NAME_SIZE], |
87 size_t payload_name_length, | 85 size_t payload_name_length, |
(...skipping 11 matching lines...) Expand all Loading... |
99 | 97 |
100 private: | 98 private: |
101 | 99 |
102 int32_t ParseAudioCodecSpecific( | 100 int32_t ParseAudioCodecSpecific( |
103 WebRtcRTPHeader* rtp_header, | 101 WebRtcRTPHeader* rtp_header, |
104 const uint8_t* payload_data, | 102 const uint8_t* payload_data, |
105 size_t payload_length, | 103 size_t payload_length, |
106 const AudioPayload& audio_specific, | 104 const AudioPayload& audio_specific, |
107 bool is_red); | 105 bool is_red); |
108 | 106 |
109 int32_t id_; | |
110 | |
111 uint32_t last_received_frequency_; | 107 uint32_t last_received_frequency_; |
112 | 108 |
113 bool telephone_event_forward_to_decoder_; | 109 bool telephone_event_forward_to_decoder_; |
114 int8_t telephone_event_payload_type_; | 110 int8_t telephone_event_payload_type_; |
115 std::set<uint8_t> telephone_event_reported_; | 111 std::set<uint8_t> telephone_event_reported_; |
116 | 112 |
117 int8_t cng_nb_payload_type_; | 113 int8_t cng_nb_payload_type_; |
118 int8_t cng_wb_payload_type_; | 114 int8_t cng_wb_payload_type_; |
119 int8_t cng_swb_payload_type_; | 115 int8_t cng_swb_payload_type_; |
120 int8_t cng_fb_payload_type_; | 116 int8_t cng_fb_payload_type_; |
121 int8_t cng_payload_type_; | 117 int8_t cng_payload_type_; |
122 | 118 |
123 // G722 is special since it use the wrong number of RTP samples in timestamp | 119 // G722 is special since it use the wrong number of RTP samples in timestamp |
124 // VS. number of samples in the frame | 120 // VS. number of samples in the frame |
125 int8_t g722_payload_type_; | 121 int8_t g722_payload_type_; |
126 bool last_received_g722_; | 122 bool last_received_g722_; |
127 | 123 |
128 uint8_t num_energy_; | 124 uint8_t num_energy_; |
129 uint8_t current_remote_energy_[kRtpCsrcSize]; | 125 uint8_t current_remote_energy_[kRtpCsrcSize]; |
130 | 126 |
131 RtpAudioFeedback* cb_audio_feedback_; | 127 RtpAudioFeedback* cb_audio_feedback_; |
132 }; | 128 }; |
133 } // namespace webrtc | 129 } // namespace webrtc |
134 | 130 |
135 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_AUDIO_H_ | 131 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_AUDIO_H_ |
OLD | NEW |