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

Side by Side Diff: media/cast/audio_receiver/audio_decoder.cc

Issue 126843003: Revert of Cast:Adding cast_transport_config and cleaning up (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/logging.h" 5 #include "base/logging.h"
6 #include "media/cast/audio_receiver/audio_decoder.h" 6 #include "media/cast/audio_receiver/audio_decoder.h"
7 7
8 #include "third_party/webrtc/modules/audio_coding/main/interface/audio_coding_mo dule.h" 8 #include "third_party/webrtc/modules/audio_coding/main/interface/audio_coding_mo dule.h"
9 #include "third_party/webrtc/modules/interface/module_common_types.h" 9 #include "third_party/webrtc/modules/interface/module_common_types.h"
10 10
11 namespace media { 11 namespace media {
12 namespace cast { 12 namespace cast {
13 13
14 AudioDecoder::AudioDecoder(scoped_refptr<CastEnvironment> cast_environment, 14 AudioDecoder::AudioDecoder(scoped_refptr<CastEnvironment> cast_environment,
15 const AudioReceiverConfig& audio_config, 15 const AudioReceiverConfig& audio_config,
16 RtpPayloadFeedback* incoming_payload_feedback) 16 RtpPayloadFeedback* incoming_payload_feedback)
17 : cast_environment_(cast_environment), 17 : cast_environment_(cast_environment),
18 audio_decoder_(webrtc::AudioCodingModule::Create(0)), 18 audio_decoder_(webrtc::AudioCodingModule::Create(0)),
19 cast_message_builder_(cast_environment->Clock(), 19 cast_message_builder_(cast_environment->Clock(),
20 incoming_payload_feedback, &frame_id_map_, audio_config.incoming_ssrc, 20 incoming_payload_feedback, &frame_id_map_, audio_config.incoming_ssrc,
21 true, 0), 21 true, 0),
22 have_received_packets_(false), 22 have_received_packets_(false),
23 last_played_out_timestamp_(0) { 23 last_played_out_timestamp_(0) {
24 audio_decoder_->InitializeReceiver(); 24 audio_decoder_->InitializeReceiver();
25 25
26 webrtc::CodecInst receive_codec; 26 webrtc::CodecInst receive_codec;
27 switch (audio_config.codec) { 27 switch (audio_config.codec) {
28 case transport::kPcm16: 28 case kPcm16:
29 receive_codec.pltype = audio_config.rtp_payload_type; 29 receive_codec.pltype = audio_config.rtp_payload_type;
30 strncpy(receive_codec.plname, "L16", 4); 30 strncpy(receive_codec.plname, "L16", 4);
31 receive_codec.plfreq = audio_config.frequency; 31 receive_codec.plfreq = audio_config.frequency;
32 receive_codec.pacsize = -1; 32 receive_codec.pacsize = -1;
33 receive_codec.channels = audio_config.channels; 33 receive_codec.channels = audio_config.channels;
34 receive_codec.rate = -1; 34 receive_codec.rate = -1;
35 break; 35 break;
36 case transport::kOpus: 36 case kOpus:
37 receive_codec.pltype = audio_config.rtp_payload_type; 37 receive_codec.pltype = audio_config.rtp_payload_type;
38 strncpy(receive_codec.plname, "opus", 5); 38 strncpy(receive_codec.plname, "opus", 5);
39 receive_codec.plfreq = audio_config.frequency; 39 receive_codec.plfreq = audio_config.frequency;
40 receive_codec.pacsize = -1; 40 receive_codec.pacsize = -1;
41 receive_codec.channels = audio_config.channels; 41 receive_codec.channels = audio_config.channels;
42 receive_codec.rate = -1; 42 receive_codec.rate = -1;
43 break; 43 break;
44 case transport::kExternalAudio: 44 case kExternalAudio:
45 NOTREACHED() << "Codec must be specified for audio decoder"; 45 NOTREACHED() << "Codec must be specified for audio decoder";
46 break; 46 break;
47 } 47 }
48 if (audio_decoder_->RegisterReceiveCodec(receive_codec) != 0) { 48 if (audio_decoder_->RegisterReceiveCodec(receive_codec) != 0) {
49 NOTREACHED() << "Failed to register receive codec"; 49 NOTREACHED() << "Failed to register receive codec";
50 } 50 }
51 51
52 audio_decoder_->SetMaximumPlayoutDelay(audio_config.rtp_max_delay_ms); 52 audio_decoder_->SetMaximumPlayoutDelay(audio_config.rtp_max_delay_ms);
53 audio_decoder_->SetPlayoutMode(webrtc::streaming); 53 audio_decoder_->SetPlayoutMode(webrtc::streaming);
54 } 54 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 &webrtc_audio_frame.data_[0], 102 &webrtc_audio_frame.data_[0],
103 &webrtc_audio_frame.data_[samples_per_10ms * audio_frame->channels]); 103 &webrtc_audio_frame.data_[samples_per_10ms * audio_frame->channels]);
104 } 104 }
105 return true; 105 return true;
106 } 106 }
107 107
108 void AudioDecoder::IncomingParsedRtpPacket(const uint8* payload_data, 108 void AudioDecoder::IncomingParsedRtpPacket(const uint8* payload_data,
109 size_t payload_size, 109 size_t payload_size,
110 const RtpCastHeader& rtp_header) { 110 const RtpCastHeader& rtp_header) {
111 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 111 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
112 DCHECK_LE(payload_size, kMaxIpPacketSize); 112 DCHECK_LE(payload_size, kIpPacketSize);
113 audio_decoder_->IncomingPacket(payload_data, static_cast<int32>(payload_size), 113 audio_decoder_->IncomingPacket(payload_data, static_cast<int32>(payload_size),
114 rtp_header.webrtc); 114 rtp_header.webrtc);
115 lock_.Acquire(); 115 lock_.Acquire();
116 have_received_packets_ = true; 116 have_received_packets_ = true;
117 uint32 last_played_out_timestamp = last_played_out_timestamp_; 117 uint32 last_played_out_timestamp = last_played_out_timestamp_;
118 lock_.Release(); 118 lock_.Release();
119 119
120 PacketType packet_type = frame_id_map_.InsertPacket(rtp_header); 120 PacketType packet_type = frame_id_map_.InsertPacket(rtp_header);
121 if (packet_type != kNewPacketCompletingFrame) return; 121 if (packet_type != kNewPacketCompletingFrame) return;
122 122
(...skipping 28 matching lines...) Expand all
151 return cast_message_builder_.TimeToSendNextCastMessage(time_to_send); 151 return cast_message_builder_.TimeToSendNextCastMessage(time_to_send);
152 } 152 }
153 153
154 void AudioDecoder::SendCastMessage() { 154 void AudioDecoder::SendCastMessage() {
155 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); 155 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
156 cast_message_builder_.UpdateCastMessage(); 156 cast_message_builder_.UpdateCastMessage();
157 } 157 }
158 158
159 } // namespace cast 159 } // namespace cast
160 } // namespace media 160 } // namespace media
OLDNEW
« no previous file with comments | « chrome/renderer/media/cast_session_delegate.cc ('k') | media/cast/audio_receiver/audio_decoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698