OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // Implementation of Pipeline. | 5 // Implementation of Pipeline. |
6 | 6 |
7 #ifndef MEDIA_BASE_PIPELINE_IMPL_H_ | 7 #ifndef MEDIA_BASE_PIPELINE_IMPL_H_ |
8 #define MEDIA_BASE_PIPELINE_IMPL_H_ | 8 #define MEDIA_BASE_PIPELINE_IMPL_H_ |
9 | 9 |
10 #include <set> | 10 #include <set> |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 virtual void Seek(base::TimeDelta time, PipelineCallback* seek_callback); | 72 virtual void Seek(base::TimeDelta time, PipelineCallback* seek_callback); |
73 virtual bool IsRunning() const; | 73 virtual bool IsRunning() const; |
74 virtual bool IsInitialized() const; | 74 virtual bool IsInitialized() const; |
75 virtual bool IsNetworkActive() const; | 75 virtual bool IsNetworkActive() const; |
76 virtual bool IsRendered(const std::string& major_mime_type) const; | 76 virtual bool IsRendered(const std::string& major_mime_type) const; |
77 virtual float GetPlaybackRate() const; | 77 virtual float GetPlaybackRate() const; |
78 virtual void SetPlaybackRate(float playback_rate); | 78 virtual void SetPlaybackRate(float playback_rate); |
79 virtual float GetVolume() const; | 79 virtual float GetVolume() const; |
80 virtual void SetVolume(float volume); | 80 virtual void SetVolume(float volume); |
81 virtual base::TimeDelta GetCurrentTime() const; | 81 virtual base::TimeDelta GetCurrentTime() const; |
82 virtual base::TimeDelta GetBufferedTime() const; | 82 virtual base::TimeDelta GetBufferedTime(); |
83 virtual base::TimeDelta GetMediaDuration() const; | 83 virtual base::TimeDelta GetMediaDuration() const; |
84 virtual int64 GetBufferedBytes() const; | 84 virtual int64 GetBufferedBytes() const; |
85 virtual int64 GetTotalBytes() const; | 85 virtual int64 GetTotalBytes() const; |
86 virtual void GetVideoSize(size_t* width_out, size_t* height_out) const; | 86 virtual void GetVideoSize(size_t* width_out, size_t* height_out) const; |
87 virtual bool IsStreaming() const; | 87 virtual bool IsStreaming() const; |
88 virtual bool IsLoaded() const; | 88 virtual bool IsLoaded() const; |
89 virtual PipelineError GetError() const; | 89 virtual PipelineError GetError() const; |
90 | 90 |
91 // Sets a permanent callback owned by the pipeline that will be executed when | 91 // Sets a permanent callback owned by the pipeline that will be executed when |
92 // the media reaches the end. | 92 // the media reaches the end. |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 virtual void SetDuration(base::TimeDelta duration); | 146 virtual void SetDuration(base::TimeDelta duration); |
147 virtual void SetBufferedTime(base::TimeDelta buffered_time); | 147 virtual void SetBufferedTime(base::TimeDelta buffered_time); |
148 virtual void SetTotalBytes(int64 total_bytes); | 148 virtual void SetTotalBytes(int64 total_bytes); |
149 virtual void SetBufferedBytes(int64 buffered_bytes); | 149 virtual void SetBufferedBytes(int64 buffered_bytes); |
150 virtual void SetVideoSize(size_t width, size_t height); | 150 virtual void SetVideoSize(size_t width, size_t height); |
151 virtual void SetStreaming(bool streamed); | 151 virtual void SetStreaming(bool streamed); |
152 virtual void SetLoaded(bool loaded); | 152 virtual void SetLoaded(bool loaded); |
153 virtual void SetNetworkActivity(bool network_activity); | 153 virtual void SetNetworkActivity(bool network_activity); |
154 virtual void NotifyEnded(); | 154 virtual void NotifyEnded(); |
155 virtual void DisableAudioRenderer(); | 155 virtual void DisableAudioRenderer(); |
| 156 virtual void SetCurrentReadPosition(int64 offset); |
| 157 virtual int64 GetCurrentReadPosition(); |
156 | 158 |
157 // Method called during initialization to insert a mime type into the | 159 // Method called during initialization to insert a mime type into the |
158 // |rendered_mime_types_| set. | 160 // |rendered_mime_types_| set. |
159 void InsertRenderedMimeType(const std::string& major_mime_type); | 161 void InsertRenderedMimeType(const std::string& major_mime_type); |
160 | 162 |
161 // Method called during initialization to determine if we rendered anything. | 163 // Method called during initialization to determine if we rendered anything. |
162 bool HasRenderedMimeTypes() const; | 164 bool HasRenderedMimeTypes() const; |
163 | 165 |
164 // Callback executed by filters upon completing initialization. | 166 // Callback executed by filters upon completing initialization. |
165 void OnFilterInitialize(); | 167 void OnFilterInitialize(); |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 // For kPausing, kSeeking and kStarting, we need to track how many filters | 352 // For kPausing, kSeeking and kStarting, we need to track how many filters |
351 // have completed transitioning to the destination state. When | 353 // have completed transitioning to the destination state. When |
352 // |remaining_transitions_| reaches 0 the pipeline can transition out | 354 // |remaining_transitions_| reaches 0 the pipeline can transition out |
353 // of the current state. | 355 // of the current state. |
354 size_t remaining_transitions_; | 356 size_t remaining_transitions_; |
355 | 357 |
356 // For kSeeking we need to remember where we're seeking between filter | 358 // For kSeeking we need to remember where we're seeking between filter |
357 // replies. | 359 // replies. |
358 base::TimeDelta seek_timestamp_; | 360 base::TimeDelta seek_timestamp_; |
359 | 361 |
| 362 // For GetCurrentBytes()/SetCurrentBytes() we need to know what byte we are |
| 363 // currently reading. |
| 364 int64 current_bytes_; |
| 365 |
| 366 // Keep track of the maximum buffered position so the buffering appears |
| 367 // smooth. |
| 368 // TODO(vrk): This is a hack. |
| 369 double max_buffered_time_; |
| 370 |
360 // Filter factory as passed in by Start(). | 371 // Filter factory as passed in by Start(). |
361 scoped_refptr<FilterFactory> filter_factory_; | 372 scoped_refptr<FilterFactory> filter_factory_; |
362 | 373 |
363 // URL for the data source as passed in by Start(). | 374 // URL for the data source as passed in by Start(). |
364 std::string url_; | 375 std::string url_; |
365 | 376 |
366 // Callbacks for various pipeline operations. | 377 // Callbacks for various pipeline operations. |
367 scoped_ptr<PipelineCallback> seek_callback_; | 378 scoped_ptr<PipelineCallback> seek_callback_; |
368 scoped_ptr<PipelineCallback> stop_callback_; | 379 scoped_ptr<PipelineCallback> stop_callback_; |
369 scoped_ptr<PipelineCallback> ended_callback_; | 380 scoped_ptr<PipelineCallback> ended_callback_; |
(...skipping 11 matching lines...) Expand all Loading... |
381 // Vector of threads owned by the pipeline and being used by filters. | 392 // Vector of threads owned by the pipeline and being used by filters. |
382 typedef std::vector<base::Thread*> FilterThreadVector; | 393 typedef std::vector<base::Thread*> FilterThreadVector; |
383 FilterThreadVector filter_threads_; | 394 FilterThreadVector filter_threads_; |
384 | 395 |
385 DISALLOW_COPY_AND_ASSIGN(PipelineImpl); | 396 DISALLOW_COPY_AND_ASSIGN(PipelineImpl); |
386 }; | 397 }; |
387 | 398 |
388 } // namespace media | 399 } // namespace media |
389 | 400 |
390 #endif // MEDIA_BASE_PIPELINE_IMPL_H_ | 401 #endif // MEDIA_BASE_PIPELINE_IMPL_H_ |
OLD | NEW |