| Index: media/audio/alsa/alsa_output.cc
|
| diff --git a/media/audio/alsa/alsa_output.cc b/media/audio/alsa/alsa_output.cc
|
| index c127fb4c2e93a9c6bfd000e41b9717bd181681e1..27ab0d1fd2002cd7d38ba86de355a1f8abd6f1f2 100644
|
| --- a/media/audio/alsa/alsa_output.cc
|
| +++ b/media/audio/alsa/alsa_output.cc
|
| @@ -42,6 +42,7 @@
|
| #include "base/logging.h"
|
| #include "base/memory/free_deleter.h"
|
| #include "base/stl_util.h"
|
| +#include "base/threading/thread_task_runner_handle.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "media/audio/alsa/alsa_util.h"
|
| #include "media/audio/alsa/alsa_wrapper.h"
|
| @@ -156,7 +157,7 @@ AlsaPcmOutputStream::AlsaPcmOutputStream(const std::string& device_name,
|
| stop_stream_(false),
|
| wrapper_(wrapper),
|
| manager_(manager),
|
| - message_loop_(base::MessageLoop::current()),
|
| + task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| playback_handle_(NULL),
|
| frames_per_packet_(packet_size_ / bytes_per_frame_),
|
| state_(kCreated),
|
| @@ -188,7 +189,7 @@ AlsaPcmOutputStream::~AlsaPcmOutputStream() {
|
| }
|
|
|
| bool AlsaPcmOutputStream::Open() {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| if (state() == kInError)
|
| return false;
|
| @@ -246,7 +247,7 @@ bool AlsaPcmOutputStream::Open() {
|
| }
|
|
|
| void AlsaPcmOutputStream::Close() {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| if (state() != kIsClosed)
|
| TransitionTo(kIsClosed);
|
| @@ -274,7 +275,7 @@ void AlsaPcmOutputStream::Close() {
|
| }
|
|
|
| void AlsaPcmOutputStream::Start(AudioSourceCallback* callback) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| CHECK(callback);
|
|
|
| @@ -323,7 +324,7 @@ void AlsaPcmOutputStream::Start(AudioSourceCallback* callback) {
|
| }
|
|
|
| void AlsaPcmOutputStream::Stop() {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| // Reset the callback, so that it is not called anymore.
|
| set_source_callback(NULL);
|
| @@ -333,19 +334,19 @@ void AlsaPcmOutputStream::Stop() {
|
| }
|
|
|
| void AlsaPcmOutputStream::SetVolume(double volume) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| volume_ = static_cast<float>(volume);
|
| }
|
|
|
| void AlsaPcmOutputStream::GetVolume(double* volume) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| *volume = volume_;
|
| }
|
|
|
| void AlsaPcmOutputStream::BufferPacket(bool* source_exhausted) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| // If stopped, simulate a 0-length packet.
|
| if (stop_stream_) {
|
| @@ -419,7 +420,7 @@ void AlsaPcmOutputStream::BufferPacket(bool* source_exhausted) {
|
| }
|
|
|
| void AlsaPcmOutputStream::WritePacket() {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| // If the device is in error, just eat the bytes.
|
| if (stop_stream_) {
|
| @@ -478,7 +479,7 @@ void AlsaPcmOutputStream::WritePacket() {
|
| }
|
|
|
| void AlsaPcmOutputStream::WriteTask() {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| if (stop_stream_)
|
| return;
|
| @@ -494,7 +495,7 @@ void AlsaPcmOutputStream::WriteTask() {
|
| }
|
|
|
| void AlsaPcmOutputStream::ScheduleNextWrite(bool source_exhausted) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| if (stop_stream_ || state() != kIsPlaying)
|
| return;
|
| @@ -527,8 +528,9 @@ void AlsaPcmOutputStream::ScheduleNextWrite(bool source_exhausted) {
|
| next_fill_time = base::TimeDelta::FromMilliseconds(10);
|
| }
|
|
|
| - message_loop_->PostDelayedTask(FROM_HERE, base::Bind(
|
| - &AlsaPcmOutputStream::WriteTask, weak_factory_.GetWeakPtr()),
|
| + task_runner_->PostDelayedTask(
|
| + FROM_HERE,
|
| + base::Bind(&AlsaPcmOutputStream::WriteTask, weak_factory_.GetWeakPtr()),
|
| next_fill_time);
|
| }
|
|
|
| @@ -627,7 +629,7 @@ snd_pcm_sframes_t AlsaPcmOutputStream::GetCurrentDelay() {
|
| }
|
|
|
| snd_pcm_sframes_t AlsaPcmOutputStream::GetAvailableFrames() {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| if (stop_stream_)
|
| return 0;
|
| @@ -760,7 +762,7 @@ bool AlsaPcmOutputStream::CanTransitionTo(InternalState to) {
|
|
|
| AlsaPcmOutputStream::InternalState
|
| AlsaPcmOutputStream::TransitionTo(InternalState to) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
|
|
| if (!CanTransitionTo(to)) {
|
| NOTREACHED() << "Cannot transition from: " << state_ << " to: " << to;
|
| @@ -775,10 +777,6 @@ AlsaPcmOutputStream::InternalState AlsaPcmOutputStream::state() {
|
| return state_;
|
| }
|
|
|
| -bool AlsaPcmOutputStream::IsOnAudioThread() const {
|
| - return message_loop_ && message_loop_ == base::MessageLoop::current();
|
| -}
|
| -
|
| int AlsaPcmOutputStream::RunDataCallback(AudioBus* audio_bus,
|
| uint32_t total_bytes_delay) {
|
| TRACE_EVENT0("audio", "AlsaPcmOutputStream::RunDataCallback");
|
| @@ -797,7 +795,7 @@ void AlsaPcmOutputStream::RunErrorCallback(int code) {
|
| // Changes the AudioSourceCallback to proxy calls to. Pass in NULL to
|
| // release ownership of the currently registered callback.
|
| void AlsaPcmOutputStream::set_source_callback(AudioSourceCallback* callback) {
|
| - DCHECK(IsOnAudioThread());
|
| + DCHECK(CalledOnValidThread());
|
| source_callback_ = callback;
|
| }
|
|
|
|
|