Index: media/base/pipeline_impl.h |
=================================================================== |
--- media/base/pipeline_impl.h (revision 70274) |
+++ media/base/pipeline_impl.h (working copy) |
@@ -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 @@ |
// 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 @@ |
// 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 @@ |
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; |