Index: chromecast/media/audio/cast_audio_output_stream.cc |
diff --git a/chromecast/media/audio/cast_audio_output_stream.cc b/chromecast/media/audio/cast_audio_output_stream.cc |
index bb7a54efce7dcd5d35c9ba0bbe09f6d09fe7c3dc..a6cba305a91df5d2a21c3f5fb0d165f3e3b30c50 100644 |
--- a/chromecast/media/audio/cast_audio_output_stream.cc |
+++ b/chromecast/media/audio/cast_audio_output_stream.cc |
@@ -8,6 +8,7 @@ |
#include "base/synchronization/waitable_event.h" |
#include "base/threading/thread_checker.h" |
#include "chromecast/base/metrics/cast_metrics_helper.h" |
+#include "chromecast/base/task_runner_impl.h" |
#include "chromecast/media/audio/cast_audio_manager.h" |
#include "chromecast/media/base/media_message_loop.h" |
#include "chromecast/media/cma/base/cast_decoder_buffer_impl.h" |
@@ -18,6 +19,7 @@ |
#include "chromecast/public/media/decrypt_context.h" |
#include "chromecast/public/media/media_clock_device.h" |
#include "chromecast/public/media/media_pipeline_backend.h" |
+#include "chromecast/public/media/media_pipeline_device_params.h" |
#include "media/base/bind_to_current_loop.h" |
#include "media/base/decoder_buffer.h" |
@@ -85,8 +87,12 @@ class CastAudioOutputStream::Backend { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(backend_ == nullptr); |
+ backend_task_runner_.reset(new TaskRunnerImpl()); |
+ MediaPipelineDeviceParams device_params( |
+ MediaPipelineDeviceParams::kModeIgnorePts, backend_task_runner_.get()); |
+ |
scoped_ptr<MediaPipelineBackend> pipeline_backend = |
- audio_manager->CreateMediaPipelineBackend(); |
+ audio_manager->CreateMediaPipelineBackend(device_params); |
if (pipeline_backend && InitClockDevice(pipeline_backend->GetClock()) && |
InitAudioDevice(audio_params_, pipeline_backend->GetAudio())) { |
backend_ = pipeline_backend.Pass(); |
@@ -103,6 +109,7 @@ class CastAudioOutputStream::Backend { |
backend_->GetAudio()->SetState(AudioPipelineDevice::kStateIdle); |
} |
backend_.reset(); |
+ backend_task_runner_.reset(); |
} |
void Start() { |
@@ -157,6 +164,7 @@ class CastAudioOutputStream::Backend { |
const ::media::AudioParameters audio_params_; |
scoped_ptr<MediaPipelineBackend> backend_; |
+ scoped_ptr<TaskRunnerImpl> backend_task_runner_; |
base::ThreadChecker thread_checker_; |
DISALLOW_COPY_AND_ASSIGN(Backend); |
}; |