| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROMECAST_RENDERER_MEDIA_CMA_RENDERER_H_ | 5 #ifndef CHROMECAST_RENDERER_MEDIA_CMA_RENDERER_H_ |
| 6 #define CHROMECAST_RENDERER_MEDIA_CMA_RENDERER_H_ | 6 #define CHROMECAST_RENDERER_MEDIA_CMA_RENDERER_H_ |
| 7 | 7 |
| 8 #include <memory> |
| 9 |
| 8 #include "base/macros.h" | 10 #include "base/macros.h" |
| 9 #include "base/memory/scoped_ptr.h" | |
| 10 #include "base/memory/weak_ptr.h" | 11 #include "base/memory/weak_ptr.h" |
| 11 #include "base/synchronization/lock.h" | 12 #include "base/synchronization/lock.h" |
| 12 #include "base/threading/thread_checker.h" | 13 #include "base/threading/thread_checker.h" |
| 13 #include "base/time/default_tick_clock.h" | 14 #include "base/time/default_tick_clock.h" |
| 14 #include "media/base/buffering_state.h" | 15 #include "media/base/buffering_state.h" |
| 15 #include "media/base/renderer.h" | 16 #include "media/base/renderer.h" |
| 16 #include "ui/gfx/geometry/size.h" | 17 #include "ui/gfx/geometry/size.h" |
| 17 | 18 |
| 18 namespace base { | 19 namespace base { |
| 19 class SingleThreadTaskRunner; | 20 class SingleThreadTaskRunner; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 30 namespace chromecast { | 31 namespace chromecast { |
| 31 namespace media { | 32 namespace media { |
| 32 class AudioPipelineProxy; | 33 class AudioPipelineProxy; |
| 33 class BalancedMediaTaskRunnerFactory; | 34 class BalancedMediaTaskRunnerFactory; |
| 34 class HoleFrameFactory; | 35 class HoleFrameFactory; |
| 35 class MediaPipelineProxy; | 36 class MediaPipelineProxy; |
| 36 class VideoPipelineProxy; | 37 class VideoPipelineProxy; |
| 37 | 38 |
| 38 class CmaRenderer : public ::media::Renderer { | 39 class CmaRenderer : public ::media::Renderer { |
| 39 public: | 40 public: |
| 40 CmaRenderer(scoped_ptr<MediaPipelineProxy> media_pipeline, | 41 CmaRenderer(std::unique_ptr<MediaPipelineProxy> media_pipeline, |
| 41 ::media::VideoRendererSink* video_renderer_sink, | 42 ::media::VideoRendererSink* video_renderer_sink, |
| 42 ::media::GpuVideoAcceleratorFactories* gpu_factories); | 43 ::media::GpuVideoAcceleratorFactories* gpu_factories); |
| 43 ~CmaRenderer() override; | 44 ~CmaRenderer() override; |
| 44 | 45 |
| 45 // ::media::Renderer implementation: | 46 // ::media::Renderer implementation: |
| 46 void Initialize(::media::DemuxerStreamProvider* demuxer_stream_provider, | 47 void Initialize(::media::DemuxerStreamProvider* demuxer_stream_provider, |
| 47 const ::media::PipelineStatusCB& init_cb, | 48 const ::media::PipelineStatusCB& init_cb, |
| 48 const ::media::StatisticsCB& statistics_cb, | 49 const ::media::StatisticsCB& statistics_cb, |
| 49 const ::media::BufferingStateCB& buffering_state_cb, | 50 const ::media::BufferingStateCB& buffering_state_cb, |
| 50 const base::Closure& ended_cb, | 51 const base::Closure& ended_cb, |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 void OnError(::media::PipelineStatus status); | 95 void OnError(::media::PipelineStatus status); |
| 95 | 96 |
| 96 // Begin a state transition. | 97 // Begin a state transition. |
| 97 // Return true if delayed because of a pending state transition. | 98 // Return true if delayed because of a pending state transition. |
| 98 void BeginStateTransition(); | 99 void BeginStateTransition(); |
| 99 void CompleteStateTransition(State new_state); | 100 void CompleteStateTransition(State new_state); |
| 100 | 101 |
| 101 base::ThreadChecker thread_checker_; | 102 base::ThreadChecker thread_checker_; |
| 102 | 103 |
| 103 scoped_refptr<BalancedMediaTaskRunnerFactory> media_task_runner_factory_; | 104 scoped_refptr<BalancedMediaTaskRunnerFactory> media_task_runner_factory_; |
| 104 scoped_ptr<MediaPipelineProxy> media_pipeline_; | 105 std::unique_ptr<MediaPipelineProxy> media_pipeline_; |
| 105 AudioPipelineProxy* audio_pipeline_; | 106 AudioPipelineProxy* audio_pipeline_; |
| 106 VideoPipelineProxy* video_pipeline_; | 107 VideoPipelineProxy* video_pipeline_; |
| 107 ::media::VideoRendererSink* video_renderer_sink_; | 108 ::media::VideoRendererSink* video_renderer_sink_; |
| 108 | 109 |
| 109 ::media::DemuxerStreamProvider* demuxer_stream_provider_; | 110 ::media::DemuxerStreamProvider* demuxer_stream_provider_; |
| 110 | 111 |
| 111 // Set of callbacks. | 112 // Set of callbacks. |
| 112 ::media::PipelineStatusCB init_cb_; | 113 ::media::PipelineStatusCB init_cb_; |
| 113 ::media::StatisticsCB statistics_cb_; | 114 ::media::StatisticsCB statistics_cb_; |
| 114 base::Closure ended_cb_; | 115 base::Closure ended_cb_; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 125 bool has_audio_; | 126 bool has_audio_; |
| 126 bool has_video_; | 127 bool has_video_; |
| 127 | 128 |
| 128 bool received_audio_eos_; | 129 bool received_audio_eos_; |
| 129 bool received_video_eos_; | 130 bool received_video_eos_; |
| 130 | 131 |
| 131 // Data members for helping the creation of the video hole frame. | 132 // Data members for helping the creation of the video hole frame. |
| 132 gfx::Size initial_natural_size_; | 133 gfx::Size initial_natural_size_; |
| 133 bool initial_video_hole_created_; | 134 bool initial_video_hole_created_; |
| 134 ::media::GpuVideoAcceleratorFactories* gpu_factories_; | 135 ::media::GpuVideoAcceleratorFactories* gpu_factories_; |
| 135 scoped_ptr<HoleFrameFactory> hole_frame_factory_; | 136 std::unique_ptr<HoleFrameFactory> hole_frame_factory_; |
| 136 | 137 |
| 137 // Lock protecting access to |time_interpolator_|. | 138 // Lock protecting access to |time_interpolator_|. |
| 138 base::Lock time_interpolator_lock_; | 139 base::Lock time_interpolator_lock_; |
| 139 | 140 |
| 140 // base::TickClock used by |time_interpolator_|. | 141 // base::TickClock used by |time_interpolator_|. |
| 141 base::DefaultTickClock default_tick_clock_; | 142 base::DefaultTickClock default_tick_clock_; |
| 142 | 143 |
| 143 // Tracks the most recent media time update and provides interpolated values | 144 // Tracks the most recent media time update and provides interpolated values |
| 144 // as playback progresses. | 145 // as playback progresses. |
| 145 scoped_ptr<::media::TimeDeltaInterpolator> time_interpolator_; | 146 std::unique_ptr<::media::TimeDeltaInterpolator> time_interpolator_; |
| 146 | 147 |
| 147 double playback_rate_; | 148 double playback_rate_; |
| 148 | 149 |
| 149 base::WeakPtr<CmaRenderer> weak_this_; | 150 base::WeakPtr<CmaRenderer> weak_this_; |
| 150 base::WeakPtrFactory<CmaRenderer> weak_factory_; | 151 base::WeakPtrFactory<CmaRenderer> weak_factory_; |
| 151 | 152 |
| 152 DISALLOW_COPY_AND_ASSIGN(CmaRenderer); | 153 DISALLOW_COPY_AND_ASSIGN(CmaRenderer); |
| 153 }; | 154 }; |
| 154 | 155 |
| 155 } // namespace media | 156 } // namespace media |
| 156 } // namespace chromecast | 157 } // namespace chromecast |
| 157 | 158 |
| 158 #endif // CHROMECAST_RENDERER_MEDIA_CMA_RENDERER_H_ | 159 #endif // CHROMECAST_RENDERER_MEDIA_CMA_RENDERER_H_ |
| OLD | NEW |