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

Side by Side Diff: media/base/fake_audio_renderer_sink.cc

Issue 2752323002: Support Opus Ambisonics playback (Closed)
Patch Set: another fix for unreliable ffmpeg channels vs layout 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
« no previous file with comments | « media/base/fake_audio_renderer_sink.h ('k') | media/ffmpeg/ffmpeg_common.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/base/fake_audio_renderer_sink.h" 5 #include "media/base/fake_audio_renderer_sink.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
11 namespace media { 11 namespace media {
12 12
13 FakeAudioRendererSink::FakeAudioRendererSink() 13 FakeAudioRendererSink::FakeAudioRendererSink()
14 : FakeAudioRendererSink( 14 : FakeAudioRendererSink(
15 AudioParameters(AudioParameters::AUDIO_FAKE, 15 AudioParameters(AudioParameters::AUDIO_FAKE,
16 CHANNEL_LAYOUT_STEREO, 16 CHANNEL_LAYOUT_STEREO,
17 AudioParameters::kTelephoneSampleRate, 17 AudioParameters::kTelephoneSampleRate,
18 16, 18 16,
19 1)) {} 19 1)) {}
20 20
21 FakeAudioRendererSink::FakeAudioRendererSink( 21 FakeAudioRendererSink::FakeAudioRendererSink(
22 const AudioParameters& hardware_params) 22 const AudioParameters& hardware_params)
23 : state_(kUninitialized), 23 : state_(kUninitialized),
24 callback_(nullptr), 24 callback_(nullptr),
25 output_device_info_(std::string(), 25 output_device_info_(std::string(),
26 OUTPUT_DEVICE_STATUS_OK, 26 OUTPUT_DEVICE_STATUS_OK,
27 hardware_params) {} 27 hardware_params),
28 is_optimized_for_hw_params_(true) {}
28 29
29 FakeAudioRendererSink::~FakeAudioRendererSink() { 30 FakeAudioRendererSink::~FakeAudioRendererSink() {
30 DCHECK(!callback_); 31 DCHECK(!callback_);
31 } 32 }
32 33
33 void FakeAudioRendererSink::Initialize(const AudioParameters& params, 34 void FakeAudioRendererSink::Initialize(const AudioParameters& params,
34 RenderCallback* callback) { 35 RenderCallback* callback) {
35 DCHECK(state_ == kUninitialized || state_ == kStopped); 36 DCHECK(state_ == kUninitialized || state_ == kStopped);
36 DCHECK(!callback_); 37 DCHECK(!callback_);
37 DCHECK(callback); 38 DCHECK(callback);
(...skipping 25 matching lines...) Expand all
63 64
64 bool FakeAudioRendererSink::SetVolume(double volume) { 65 bool FakeAudioRendererSink::SetVolume(double volume) {
65 return true; 66 return true;
66 } 67 }
67 68
68 OutputDeviceInfo FakeAudioRendererSink::GetOutputDeviceInfo() { 69 OutputDeviceInfo FakeAudioRendererSink::GetOutputDeviceInfo() {
69 return output_device_info_; 70 return output_device_info_;
70 } 71 }
71 72
72 bool FakeAudioRendererSink::IsOptimizedForHardwareParameters() { 73 bool FakeAudioRendererSink::IsOptimizedForHardwareParameters() {
73 return true; 74 return is_optimized_for_hw_params_;
74 } 75 }
75 76
76 bool FakeAudioRendererSink::CurrentThreadIsRenderingThread() { 77 bool FakeAudioRendererSink::CurrentThreadIsRenderingThread() {
77 NOTIMPLEMENTED(); 78 NOTIMPLEMENTED();
78 return false; 79 return false;
79 } 80 }
80 81
81 bool FakeAudioRendererSink::Render(AudioBus* dest, 82 bool FakeAudioRendererSink::Render(AudioBus* dest,
82 base::TimeDelta delay, 83 base::TimeDelta delay,
83 int* frames_written) { 84 int* frames_written) {
84 if (state_ != kPlaying) 85 if (state_ != kPlaying)
85 return false; 86 return false;
86 87
87 *frames_written = callback_->Render(delay, base::TimeTicks::Now(), 0, dest); 88 *frames_written = callback_->Render(delay, base::TimeTicks::Now(), 0, dest);
88 return true; 89 return true;
89 } 90 }
90 91
91 void FakeAudioRendererSink::OnRenderError() { 92 void FakeAudioRendererSink::OnRenderError() {
92 DCHECK_NE(state_, kUninitialized); 93 DCHECK_NE(state_, kUninitialized);
93 DCHECK_NE(state_, kStopped); 94 DCHECK_NE(state_, kStopped);
94 95
95 callback_->OnRenderError(); 96 callback_->OnRenderError();
96 } 97 }
97 98
99 void FakeAudioRendererSink::SetIsOptimizedForHardwareParameters(bool value) {
100 is_optimized_for_hw_params_ = value;
101 }
102
98 void FakeAudioRendererSink::ChangeState(State new_state) { 103 void FakeAudioRendererSink::ChangeState(State new_state) {
99 static const char* kStateNames[] = { 104 static const char* kStateNames[] = {
100 "kUninitialized", 105 "kUninitialized",
101 "kInitialized", 106 "kInitialized",
102 "kStarted", 107 "kStarted",
103 "kPaused", 108 "kPaused",
104 "kPlaying", 109 "kPlaying",
105 "kStopped" 110 "kStopped"
106 }; 111 };
107 112
108 DVLOG(1) << __func__ << " : " << kStateNames[state_] << " -> " 113 DVLOG(1) << __func__ << " : " << kStateNames[state_] << " -> "
109 << kStateNames[new_state]; 114 << kStateNames[new_state];
110 state_ = new_state; 115 state_ = new_state;
111 } 116 }
112 117
113 } // namespace media 118 } // namespace media
OLDNEW
« no previous file with comments | « media/base/fake_audio_renderer_sink.h ('k') | media/ffmpeg/ffmpeg_common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698