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

Side by Side Diff: extensions/renderer/api/display_source/wifi_display/wifi_display_audio_encoder_lpcm.cc

Issue 2004283002: AudioConverter: Express delay in frames rather than msec. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Missed files & removed rounding Created 4 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "extensions/renderer/api/display_source/wifi_display/wifi_display_audio _encoder.h" 5 #include "extensions/renderer/api/display_source/wifi_display/wifi_display_audio _encoder.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 // WiFiDisplayMediaEncoder 44 // WiFiDisplayMediaEncoder
45 WiFiDisplayElementaryStreamInfo CreateElementaryStreamInfo() const override; 45 WiFiDisplayElementaryStreamInfo CreateElementaryStreamInfo() const override;
46 46
47 // content::MediaStreamAudioSink 47 // content::MediaStreamAudioSink
48 void OnData(const media::AudioBus& input_bus, 48 void OnData(const media::AudioBus& input_bus,
49 base::TimeTicks estimated_capture_time) override; 49 base::TimeTicks estimated_capture_time) override;
50 void OnSetFormat(const media::AudioParameters& params) override; 50 void OnSetFormat(const media::AudioParameters& params) override;
51 51
52 // media::AudioConverter::InputCallback 52 // media::AudioConverter::InputCallback
53 double ProvideInput(media::AudioBus* audio_bus, 53 double ProvideInput(media::AudioBus* audio_bus,
54 base::TimeDelta buffer_delay) override; 54 uint32_t frames_delayed) override;
55 55
56 LPCMAudioStreamDescriptor::SamplingFrequency GetOutputSamplingFrequency() 56 LPCMAudioStreamDescriptor::SamplingFrequency GetOutputSamplingFrequency()
57 const; 57 const;
58 58
59 private: 59 private:
60 const int output_sample_rate_; 60 const int output_sample_rate_;
61 61
62 // These members are accessed on the real-time audio time only. 62 // These members are accessed on the real-time audio time only.
63 std::unique_ptr<media::AudioConverter> converter_; 63 std::unique_ptr<media::AudioConverter> converter_;
64 const media::AudioBus* current_input_bus_; 64 const media::AudioBus* current_input_bus_;
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 fifo_bus_ = media::AudioBus::Create( 198 fifo_bus_ = media::AudioBus::Create(
199 kOutputChannels, 199 kOutputChannels,
200 WiFiDisplayMediaPacketizer::LPCM::kChannelSamplesPerUnit); 200 WiFiDisplayMediaPacketizer::LPCM::kChannelSamplesPerUnit);
201 fifo_end_frame_ = 0; 201 fifo_end_frame_ = 0;
202 fifo_frames_out_ = 0; 202 fifo_frames_out_ = 0;
203 input_frames_in_ = 0; 203 input_frames_in_ = 0;
204 } 204 }
205 205
206 // Called on real-time audio thread by |converter_| invoked by |OnData|. 206 // Called on real-time audio thread by |converter_| invoked by |OnData|.
207 double WiFiDisplayAudioEncoderLPCM::ProvideInput(media::AudioBus* audio_bus, 207 double WiFiDisplayAudioEncoderLPCM::ProvideInput(media::AudioBus* audio_bus,
208 base::TimeDelta buffer_delay) { 208 uint32_t frames_delayed) {
209 DCHECK(current_input_bus_); 209 DCHECK(current_input_bus_);
210 current_input_bus_->CopyTo(audio_bus); 210 current_input_bus_->CopyTo(audio_bus);
211 current_input_bus_ = nullptr; 211 current_input_bus_ = nullptr;
212 return 1.0; 212 return 1.0;
213 } 213 }
214 214
215 LPCMAudioStreamDescriptor::SamplingFrequency 215 LPCMAudioStreamDescriptor::SamplingFrequency
216 WiFiDisplayAudioEncoderLPCM::GetOutputSamplingFrequency() const { 216 WiFiDisplayAudioEncoderLPCM::GetOutputSamplingFrequency() const {
217 switch (GetAudioCodecMode()) { 217 switch (GetAudioCodecMode()) {
218 case wds::LPCM_44_1K_16B_2CH: 218 case wds::LPCM_44_1K_16B_2CH:
219 return LPCMAudioStreamDescriptor::SAMPLING_FREQUENCY_44_1K; 219 return LPCMAudioStreamDescriptor::SAMPLING_FREQUENCY_44_1K;
220 case wds::LPCM_48K_16B_2CH: 220 case wds::LPCM_48K_16B_2CH:
221 return LPCMAudioStreamDescriptor::SAMPLING_FREQUENCY_48K; 221 return LPCMAudioStreamDescriptor::SAMPLING_FREQUENCY_48K;
222 default: 222 default:
223 NOTREACHED(); 223 NOTREACHED();
224 return LPCMAudioStreamDescriptor::SAMPLING_FREQUENCY_44_1K; 224 return LPCMAudioStreamDescriptor::SAMPLING_FREQUENCY_44_1K;
225 } 225 }
226 } 226 }
227 227
228 } // namespace 228 } // namespace
229 229
230 void WiFiDisplayAudioEncoder::CreateLPCM( 230 void WiFiDisplayAudioEncoder::CreateLPCM(
231 const wds::AudioCodec& audio_codec, 231 const wds::AudioCodec& audio_codec,
232 const AudioEncoderCallback& encoder_callback) { 232 const AudioEncoderCallback& encoder_callback) {
233 encoder_callback.Run( 233 encoder_callback.Run(
234 make_scoped_refptr(new WiFiDisplayAudioEncoderLPCM(audio_codec))); 234 make_scoped_refptr(new WiFiDisplayAudioEncoderLPCM(audio_codec)));
235 } 235 }
236 236
237 } // namespace extensions 237 } // namespace extensions
OLDNEW
« no previous file with comments | « content/renderer/media/webrtc_local_audio_source_provider.cc ('k') | media/audio/audio_output_resampler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698