| Index: remoting/client/audio_decode_scheduler.cc
|
| diff --git a/remoting/client/audio_decode_scheduler.cc b/remoting/client/audio_decode_scheduler.cc
|
| deleted file mode 100644
|
| index f73497deca2ab50b090b77937a628ffa1d0bc255..0000000000000000000000000000000000000000
|
| --- a/remoting/client/audio_decode_scheduler.cc
|
| +++ /dev/null
|
| @@ -1,120 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "remoting/client/audio_decode_scheduler.h"
|
| -
|
| -#include <utility>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/location.h"
|
| -#include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "remoting/client/audio_consumer.h"
|
| -#include "remoting/codec/audio_decoder.h"
|
| -#include "remoting/proto/audio.pb.h"
|
| -
|
| -namespace remoting {
|
| -
|
| -class AudioDecodeScheduler::Core : public base::RefCountedThreadSafe<Core> {
|
| - public:
|
| - Core(scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
|
| - base::WeakPtr<AudioConsumer> audio_consumer);
|
| -
|
| - void Initialize(const protocol::SessionConfig& config);
|
| - void ProcessAudioPacket(std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done);
|
| -
|
| - private:
|
| - friend class base::RefCountedThreadSafe<Core>;
|
| -
|
| - virtual ~Core();
|
| -
|
| - // Called on the audio decoder thread.
|
| - void DecodePacket(std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done);
|
| -
|
| - // Called on the main thread.
|
| - void ProcessDecodedPacket(std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done);
|
| -
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
|
| - scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner_;
|
| - std::unique_ptr<AudioDecoder> decoder_;
|
| - base::WeakPtr<AudioConsumer> audio_consumer_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(Core);
|
| -};
|
| -
|
| -AudioDecodeScheduler::Core::Core(
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
|
| - base::WeakPtr<AudioConsumer> audio_consumer)
|
| - : main_task_runner_(main_task_runner),
|
| - audio_decode_task_runner_(audio_decode_task_runner),
|
| - audio_consumer_(audio_consumer) {}
|
| -
|
| -AudioDecodeScheduler::Core::~Core() {}
|
| -
|
| -void AudioDecodeScheduler::Core::Initialize(
|
| - const protocol::SessionConfig& config) {
|
| - DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| - decoder_.reset(AudioDecoder::CreateAudioDecoder(config).release());
|
| -}
|
| -
|
| -void AudioDecodeScheduler::Core::ProcessAudioPacket(
|
| - std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done) {
|
| - DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| - audio_decode_task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &AudioDecodeScheduler::Core::DecodePacket, this,
|
| - base::Passed(&packet), done));
|
| -}
|
| -
|
| -void AudioDecodeScheduler::Core::DecodePacket(
|
| - std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done) {
|
| - DCHECK(audio_decode_task_runner_->BelongsToCurrentThread());
|
| - std::unique_ptr<AudioPacket> decoded_packet =
|
| - decoder_->Decode(std::move(packet));
|
| -
|
| - main_task_runner_->PostTask(FROM_HERE, base::Bind(
|
| - &AudioDecodeScheduler::Core::ProcessDecodedPacket, this,
|
| - base::Passed(&decoded_packet), done));
|
| -}
|
| -
|
| -void AudioDecodeScheduler::Core::ProcessDecodedPacket(
|
| - std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done) {
|
| - DCHECK(main_task_runner_->BelongsToCurrentThread());
|
| - // Only process |packet| if it is non-null.
|
| - if (packet.get() && audio_consumer_) {
|
| - audio_consumer_->AddAudioPacket(std::move(packet));
|
| - }
|
| - done.Run();
|
| -}
|
| -
|
| -AudioDecodeScheduler::AudioDecodeScheduler(
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
|
| - base::WeakPtr<AudioConsumer> audio_consumer)
|
| - : core_(new Core(main_task_runner,
|
| - audio_decode_task_runner,
|
| - audio_consumer)) {}
|
| -
|
| -AudioDecodeScheduler::~AudioDecodeScheduler() {
|
| -}
|
| -
|
| -void AudioDecodeScheduler::Initialize(const protocol::SessionConfig& config) {
|
| - core_->Initialize(config);
|
| -}
|
| -
|
| -void AudioDecodeScheduler::ProcessAudioPacket(
|
| - std::unique_ptr<AudioPacket> packet,
|
| - const base::Closure& done) {
|
| - core_->ProcessAudioPacket(std::move(packet), done);
|
| -}
|
| -
|
| -} // namespace remoting
|
|
|