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

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: Addressing comments in CL. 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
« no previous file with comments | « remoting/client/audio_decode_scheduler.h ('k') | remoting/client/audio_decode_scheduler_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..f73497deca2ab50b090b77937a628ffa1d0bc255 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,15 +21,12 @@ 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,
const base::Closure& done);
- // Called by AudioDecodeScheduler when it is destroyed.
- void Detach();
-
private:
friend class base::RefCountedThreadSafe<Core>;
@@ -45,7 +43,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 +51,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() {}
@@ -75,11 +73,6 @@ void AudioDecodeScheduler::Core::ProcessAudioPacket(
base::Passed(&packet), done));
}
-void AudioDecodeScheduler::Core::Detach() {
- DCHECK(main_task_runner_->BelongsToCurrentThread());
- audio_player_.reset();
-}
-
void AudioDecodeScheduler::Core::DecodePacket(
std::unique_ptr<AudioPacket> packet,
const base::Closure& done) {
@@ -97,21 +90,21 @@ 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();
}
void AudioDecodeScheduler::Initialize(const protocol::SessionConfig& config) {
« no previous file with comments | « remoting/client/audio_decode_scheduler.h ('k') | remoting/client/audio_decode_scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698