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

Side by Side Diff: media/audio/linux/audio_manager_linux.cc

Issue 2582703003: Audio output debug recording. (Closed)
Patch Set: Using callbacks instead. Created 3 years, 10 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/command_line.h" 5 #include "base/command_line.h"
6 #include "base/metrics/histogram.h" 6 #include "base/metrics/histogram.h"
7 #include "media/base/media_switches.h" 7 #include "media/base/media_switches.h"
8 8
9 #if defined(USE_ALSA) 9 #if defined(USE_ALSA)
10 #include "media/audio/alsa/audio_manager_alsa.h" 10 #include "media/audio/alsa/audio_manager_alsa.h"
(...skipping 12 matching lines...) Expand all
23 enum LinuxAudioIO { 23 enum LinuxAudioIO {
24 kPulse, 24 kPulse,
25 kAlsa, 25 kAlsa,
26 kCras, 26 kCras,
27 kAudioIOMax = kCras // Must always be equal to largest logged entry. 27 kAudioIOMax = kCras // Must always be equal to largest logged entry.
28 }; 28 };
29 29
30 ScopedAudioManagerPtr CreateAudioManager( 30 ScopedAudioManagerPtr CreateAudioManager(
31 scoped_refptr<base::SingleThreadTaskRunner> task_runner, 31 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
32 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner, 32 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
33 AudioLogFactory* audio_log_factory) { 33 AudioLogFactory* audio_log_factory,
34 CreateAudioFileWriterCallback create_audio_file_writer_callback) {
34 #if defined(USE_CRAS) 35 #if defined(USE_CRAS)
35 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras)) { 36 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras)) {
36 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kCras, kAudioIOMax + 1); 37 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kCras, kAudioIOMax + 1);
37 return ScopedAudioManagerPtr( 38 return ScopedAudioManagerPtr(
38 new AudioManagerCras(std::move(task_runner), 39 new AudioManagerCras(std::move(task_runner),
39 std::move(worker_task_runner), audio_log_factory)); 40 std::move(worker_task_runner), audio_log_factory));
40 } 41 }
41 #endif 42 #endif
42 43
43 #if defined(USE_PULSEAUDIO) 44 #if defined(USE_PULSEAUDIO)
44 // Do not move task runners when creating AudioManagerPulse. 45 // Do not move task runners when creating AudioManagerPulse.
45 // If the creation fails, we need to use the task runners to create other 46 // If the creation fails, we need to use the task runners to create other
46 // AudioManager implementations. 47 // AudioManager implementations.
47 std::unique_ptr<AudioManagerPulse, AudioManagerDeleter> manager( 48 std::unique_ptr<AudioManagerPulse, AudioManagerDeleter> manager(
48 new AudioManagerPulse(task_runner, worker_task_runner, 49 new AudioManagerPulse(task_runner, worker_task_runner, audio_log_factory,
49 audio_log_factory)); 50 create_audio_file_writer_callback));
50 if (manager->Init()) { 51 if (manager->Init()) {
51 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kPulse, kAudioIOMax + 1); 52 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kPulse, kAudioIOMax + 1);
52 return std::move(manager); 53 return std::move(manager);
53 } 54 }
54 DVLOG(1) << "PulseAudio is not available on the OS"; 55 DVLOG(1) << "PulseAudio is not available on the OS";
55 #endif 56 #endif
56 57
57 #if defined(USE_ALSA) 58 #if defined(USE_ALSA)
58 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kAlsa, kAudioIOMax + 1); 59 UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kAlsa, kAudioIOMax + 1);
59 return ScopedAudioManagerPtr( 60 return ScopedAudioManagerPtr(new AudioManagerAlsa(
60 new AudioManagerAlsa(std::move(task_runner), 61 std::move(task_runner), std::move(worker_task_runner), audio_log_factory,
61 std::move(worker_task_runner), audio_log_factory)); 62 std::move(create_audio_file_writer_callback)));
62 #else 63 #else
63 return ScopedAudioManagerPtr( 64 return ScopedAudioManagerPtr(new FakeAudioManager(
64 new FakeAudioManager(std::move(task_runner), 65 std::move(task_runner), std::move(worker_task_runner), audio_log_factory,
65 std::move(worker_task_runner), audio_log_factory)); 66 std::move(create_audio_file_writer_callback)));
66 #endif 67 #endif
67 } 68 }
68 69
69 } // namespace media 70 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698