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

Unified Diff: remoting/client/audio_decode_scheduler.cc

Issue 2384063004: Move audio decoding to protocol layer (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698