| Index: chromecast/media/cma/pipeline/media_pipeline_impl.h
|
| diff --git a/chromecast/media/cma/pipeline/media_pipeline_impl.h b/chromecast/media/cma/pipeline/media_pipeline_impl.h
|
| index e2dba4fa3dc6634538d46d5e928c819bd97ef99d..92453cd2539d75e4f8db29c8079bcb9ffc2856eb 100644
|
| --- a/chromecast/media/cma/pipeline/media_pipeline_impl.h
|
| +++ b/chromecast/media/cma/pipeline/media_pipeline_impl.h
|
| @@ -12,20 +12,26 @@
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/threading/thread_checker.h"
|
| #include "chromecast/media/cma/pipeline/load_type.h"
|
| -#include "chromecast/media/cma/pipeline/media_pipeline.h"
|
| #include "chromecast/media/cma/pipeline/media_pipeline_client.h"
|
| +#include "chromecast/public/media/media_pipeline_backend.h"
|
| #include "media/base/serial_runner.h"
|
|
|
| +namespace media {
|
| +class AudioDecoderConfig;
|
| +class VideoDecoderConfig;
|
| +} // namespace media
|
| +
|
| namespace chromecast {
|
| namespace media {
|
| class AudioPipelineImpl;
|
| +struct AvPipelineClient;
|
| +struct VideoPipelineClient;
|
| class BrowserCdmCast;
|
| class BufferingController;
|
| -class MediaClockDevice;
|
| -class MediaPipelineBackend;
|
| +class CodedFrameProvider;
|
| class VideoPipelineImpl;
|
|
|
| -class MediaPipelineImpl : public MediaPipeline {
|
| +class MediaPipelineImpl : public MediaPipelineBackend::Delegate {
|
| public:
|
| MediaPipelineImpl();
|
| ~MediaPipelineImpl() override;
|
| @@ -35,26 +41,30 @@ class MediaPipelineImpl : public MediaPipeline {
|
| void Initialize(LoadType load_type,
|
| scoped_ptr<MediaPipelineBackend> media_pipeline_backend);
|
|
|
| - // MediaPipeline implementation.
|
| - void SetClient(const MediaPipelineClient& client) override;
|
| - void SetCdm(int cdm_id) override;
|
| - AudioPipeline* GetAudioPipeline() const override;
|
| - VideoPipeline* GetVideoPipeline() const override;
|
| - void InitializeAudio(
|
| - const ::media::AudioDecoderConfig& config,
|
| - scoped_ptr<CodedFrameProvider> frame_provider,
|
| - const ::media::PipelineStatusCB& status_cb) override;
|
| - void InitializeVideo(
|
| - const std::vector<::media::VideoDecoderConfig>& configs,
|
| - scoped_ptr<CodedFrameProvider> frame_provider,
|
| - const ::media::PipelineStatusCB& status_cb) override;
|
| - void StartPlayingFrom(base::TimeDelta time) override;
|
| - void Flush(const ::media::PipelineStatusCB& status_cb) override;
|
| - void Stop() override;
|
| - void SetPlaybackRate(double playback_rate) override;
|
| -
|
| - AudioPipelineImpl* GetAudioPipelineImpl() const;
|
| - VideoPipelineImpl* GetVideoPipelineImpl() const;
|
| + void SetClient(const MediaPipelineClient& client);
|
| + void SetCdm(int cdm_id);
|
| +
|
| + // MediaPipelineBackendDelegate implementation:
|
| + void OnVideoResolutionChanged(MediaPipelineBackend::VideoDecoder* decoder,
|
| + const Size& size) override;
|
| + void OnPushBufferComplete(MediaPipelineBackend::Decoder* decoder,
|
| + MediaPipelineBackend::BufferStatus status) override;
|
| + void OnEndOfStream(MediaPipelineBackend::Decoder* decoder) override;
|
| + void OnDecoderError(MediaPipelineBackend::Decoder* decoder) override;
|
| +
|
| + void InitializeAudio(const ::media::AudioDecoderConfig& config,
|
| + const AvPipelineClient& client,
|
| + scoped_ptr<CodedFrameProvider> frame_provider,
|
| + const ::media::PipelineStatusCB& status_cb);
|
| + void InitializeVideo(const std::vector< ::media::VideoDecoderConfig>& configs,
|
| + const VideoPipelineClient& client,
|
| + scoped_ptr<CodedFrameProvider> frame_provider,
|
| + const ::media::PipelineStatusCB& status_cb);
|
| + void StartPlayingFrom(base::TimeDelta time);
|
| + void Flush(const ::media::PipelineStatusCB& status_cb);
|
| + void Stop();
|
| + void SetPlaybackRate(double playback_rate);
|
| + void SetVolume(float volume);
|
|
|
| void SetCdm(BrowserCdmCast* cdm);
|
|
|
| @@ -77,20 +87,21 @@ class MediaPipelineImpl : public MediaPipeline {
|
|
|
| // Interface with the underlying hardware media pipeline.
|
| scoped_ptr<MediaPipelineBackend> media_pipeline_backend_;
|
| - MediaClockDevice* clock_device_;
|
| + MediaPipelineBackend::AudioDecoder* audio_decoder_;
|
| + MediaPipelineBackend::VideoDecoder* video_decoder_;
|
|
|
| + bool backend_initialized_;
|
| bool has_audio_;
|
| bool has_video_;
|
| scoped_ptr<AudioPipelineImpl> audio_pipeline_;
|
| scoped_ptr<VideoPipelineImpl> video_pipeline_;
|
| scoped_ptr< ::media::SerialRunner> pending_flush_callbacks_;
|
|
|
| + // Whether or not the backend is currently paused.
|
| + bool paused_;
|
| // Playback rate set by the upper layer.
|
| float target_playback_rate_;
|
|
|
| - // Indicate a possible re-buffering phase.
|
| - bool is_buffering_;
|
| -
|
| // The media time is retrieved at regular intervals.
|
| // Indicate whether time update is enabled.
|
| bool enable_time_update_;
|
|
|