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

Unified Diff: remoting/client/audio_decode_scheduler.cc

Issue 2052723002: Adding an interface to allow extention of the audio player for CRD and iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding missing dep on proto for test. Created 4 years, 6 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
index 3f0e46660024c9af504985d7a42d82663a361c35..2358521bc28b547f943545edfebd4083da00a2e7 100644
--- a/remoting/client/audio_decode_scheduler.cc
+++ b/remoting/client/audio_decode_scheduler.cc
@@ -9,8 +9,9 @@
#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_player.h"
+#include "remoting/client/audio_consumer.h"
#include "remoting/codec/audio_decoder.h"
#include "remoting/proto/audio.pb.h"
@@ -20,7 +21,7 @@ class AudioDecodeScheduler::Core : public base::RefCountedThreadSafe<Core> {
public:
Core(scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
- std::unique_ptr<AudioPlayer> audio_player);
+ base::WeakPtr<AudioConsumer> audio_consumer);
void Initialize(const protocol::SessionConfig& config);
void ProcessAudioPacket(std::unique_ptr<AudioPacket> packet,
@@ -45,7 +46,7 @@ class AudioDecodeScheduler::Core : public base::RefCountedThreadSafe<Core> {
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner_;
std::unique_ptr<AudioDecoder> decoder_;
- std::unique_ptr<AudioPlayer> audio_player_;
+ base::WeakPtr<AudioConsumer> audio_consumer_;
DISALLOW_COPY_AND_ASSIGN(Core);
};
@@ -53,10 +54,10 @@ class AudioDecodeScheduler::Core : public base::RefCountedThreadSafe<Core> {
AudioDecodeScheduler::Core::Core(
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
- std::unique_ptr<AudioPlayer> audio_player)
+ base::WeakPtr<AudioConsumer> audio_consumer)
: main_task_runner_(main_task_runner),
audio_decode_task_runner_(audio_decode_task_runner),
- audio_player_(std::move(audio_player)) {}
+ audio_consumer_(audio_consumer) {}
AudioDecodeScheduler::Core::~Core() {}
@@ -77,7 +78,7 @@ void AudioDecodeScheduler::Core::ProcessAudioPacket(
void AudioDecodeScheduler::Core::Detach() {
DCHECK(main_task_runner_->BelongsToCurrentThread());
- audio_player_.reset();
+ // TODO(nicholss) No work to do anymore. Remove this?
Sergey Ulanov 2016/06/18 00:43:38 Yes please.
nicholss 2016/06/20 17:47:52 Done.
}
void AudioDecodeScheduler::Core::DecodePacket(
@@ -97,18 +98,19 @@ void AudioDecodeScheduler::Core::ProcessDecodedPacket(
const base::Closure& done) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
// Only process |packet| if it is non-null.
- if (packet.get() && audio_player_.get())
- audio_player_->ProcessAudioPacket(std::move(packet));
+ 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,
- std::unique_ptr<AudioPlayer> audio_player)
+ base::WeakPtr<AudioConsumer> audio_consumer)
: core_(new Core(main_task_runner,
audio_decode_task_runner,
- std::move(audio_player))) {}
+ audio_consumer)) {}
AudioDecodeScheduler::~AudioDecodeScheduler() {
core_->Detach();

Powered by Google App Engine
This is Rietveld 408576698