diff options
Diffstat (limited to 'media/base/pipeline_impl.h')
-rw-r--r-- | media/base/pipeline_impl.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/media/base/pipeline_impl.h b/media/base/pipeline_impl.h index fbc2b3d..aa99f73 100644 --- a/media/base/pipeline_impl.h +++ b/media/base/pipeline_impl.h @@ -18,7 +18,6 @@ #include "base/thread.h" #include "base/time.h" #include "media/base/clock.h" -#include "media/base/composite_filter.h" #include "media/base/filter_host.h" #include "media/base/pipeline.h" @@ -120,9 +119,6 @@ class PipelineImpl : public Pipeline, public FilterHost { // is used by the constructor, and the Stop() method. void ResetState(); - // Updates |state_|. All state transitions should use this call. - void set_state(State next_state); - // Simple method used to make sure the pipeline is running normally. bool IsPipelineOk(); @@ -357,6 +353,12 @@ class PipelineImpl : public Pipeline, public FilterHost { // Member that tracks the current state. State state_; + // For kPausing, kSeeking and kStarting, we need to track how many filters + // have completed transitioning to the destination state. When + // |remaining_transitions_| reaches 0 the pipeline can transition out + // of the current state. + size_t remaining_transitions_; + // For kSeeking we need to remember where we're seeking between filter // replies. base::TimeDelta seek_timestamp_; @@ -386,14 +388,20 @@ class PipelineImpl : public Pipeline, public FilterHost { scoped_ptr<PipelineCallback> error_callback_; scoped_ptr<PipelineCallback> network_callback_; - // Reference to the filter(s) that constitute the pipeline. - scoped_refptr<Filter> pipeline_filter_; + // Vector of our filters and map maintaining the relationship between the + // FilterType and the filter itself. + typedef std::vector<scoped_refptr<Filter> > FilterVector; + FilterVector filters_; // Renderer references used for setting the volume and determining // when playback has finished. scoped_refptr<AudioRenderer> audio_renderer_; scoped_refptr<VideoRenderer> video_renderer_; + // Vector of threads owned by the pipeline and being used by filters. + typedef std::vector<base::Thread*> FilterThreadVector; + FilterThreadVector filter_threads_; + // Helper class that stores filter references during pipeline // initialization. class PipelineInitState; |