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

Unified Diff: media/renderers/renderer_impl.h

Issue 1955843002: Move Renderer permanent callbacks into RendererClient interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed comments Created 4 years, 7 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 | « media/renderers/audio_renderer_impl_unittest.cc ('k') | media/renderers/renderer_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/renderers/renderer_impl.h
diff --git a/media/renderers/renderer_impl.h b/media/renderers/renderer_impl.h
index ba33103386d9549868b44fb57c3ab0bfd800c859..22417857058a9332af7516eae24aa4b33191c586 100644
--- a/media/renderers/renderer_impl.h
+++ b/media/renderers/renderer_impl.h
@@ -18,6 +18,7 @@
#include "base/time/time.h"
#include "media/base/buffering_state.h"
#include "media/base/decryptor.h"
+#include "media/base/demuxer_stream.h"
#include "media/base/media_export.h"
#include "media/base/pipeline_status.h"
#include "media/base/renderer.h"
@@ -48,12 +49,8 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
// Renderer implementation.
void Initialize(DemuxerStreamProvider* demuxer_stream_provider,
- const PipelineStatusCB& init_cb,
- const StatisticsCB& statistics_cb,
- const BufferingStateCB& buffering_state_cb,
- const base::Closure& ended_cb,
- const PipelineStatusCB& error_cb,
- const base::Closure& waiting_for_decryption_key_cb) final;
+ RendererClient* client,
+ const PipelineStatusCB& init_cb) final;
void SetCdm(CdmContext* cdm_context,
const CdmAttachedCB& cdm_attached_cb) final;
void Flush(const base::Closure& flush_cb) final;
@@ -75,6 +72,8 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
}
private:
+ class RendererClientInternal;
+
enum State {
STATE_UNINITIALIZED,
STATE_INIT_PENDING_CDM, // Initialization is waiting for the CDM to be set.
@@ -104,7 +103,7 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
void OnVideoRendererFlushDone();
// Callback executed by filters to update statistics.
- void OnUpdateStatistics(const PipelineStatistics& stats);
+ void OnStatisticsUpdate(const PipelineStatistics& stats);
// Collection of callback methods and helpers for tracking changes in
// buffering state and transition from paused/underflow states and playing
@@ -115,20 +114,20 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
// and StartPlayback() should be called
// - A non-waiting to waiting transition indicates underflow has occurred
// and PausePlayback() should be called
- void OnBufferingStateChanged(BufferingState* buffering_state,
- BufferingState new_buffering_state);
+ void OnBufferingStateChange(DemuxerStream::Type type,
+ BufferingState new_buffering_state);
bool WaitingForEnoughData() const;
void PausePlayback();
void StartPlayback();
// Callbacks executed when a renderer has ended.
- void OnAudioRendererEnded();
- void OnVideoRendererEnded();
+ void OnRendererEnded(DemuxerStream::Type type);
bool PlaybackHasEnded() const;
void RunEndedCallbackIfNeeded();
// Callback executed when a runtime error happens.
void OnError(PipelineStatus error);
+ void OnWaitingForDecryptionKey();
State state_;
@@ -136,18 +135,14 @@ class MEDIA_EXPORT RendererImpl : public Renderer {
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
DemuxerStreamProvider* demuxer_stream_provider_;
-
- // Permanent callbacks to notify various renderer states/stats.
- StatisticsCB statistics_cb_;
- base::Closure ended_cb_;
- PipelineStatusCB error_cb_;
- BufferingStateCB buffering_state_cb_;
- base::Closure waiting_for_decryption_key_cb_;
+ RendererClient* client_;
// Temporary callback used for Initialize() and Flush().
PipelineStatusCB init_cb_;
base::Closure flush_cb_;
+ std::unique_ptr<RendererClientInternal> audio_renderer_client_;
+ std::unique_ptr<RendererClientInternal> video_renderer_client_;
std::unique_ptr<AudioRenderer> audio_renderer_;
std::unique_ptr<VideoRenderer> video_renderer_;
« no previous file with comments | « media/renderers/audio_renderer_impl_unittest.cc ('k') | media/renderers/renderer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698