OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 MEDIA_BASE_PIPELINE_H_ | 5 #ifndef MEDIA_BASE_PIPELINE_H_ |
6 #define MEDIA_BASE_PIPELINE_H_ | 6 #define MEDIA_BASE_PIPELINE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
11 #include "base/synchronization/condition_variable.h" | 11 #include "base/synchronization/condition_variable.h" |
12 #include "base/synchronization/lock.h" | 12 #include "base/synchronization/lock.h" |
13 #include "base/threading/thread_checker.h" | 13 #include "base/threading/thread_checker.h" |
14 #include "base/time/default_clock.h" | 14 #include "base/time/default_tick_clock.h" |
15 #include "media/base/audio_renderer.h" | 15 #include "media/base/audio_renderer.h" |
16 #include "media/base/demuxer.h" | 16 #include "media/base/demuxer.h" |
17 #include "media/base/media_export.h" | 17 #include "media/base/media_export.h" |
18 #include "media/base/pipeline_status.h" | 18 #include "media/base/pipeline_status.h" |
19 #include "media/base/ranges.h" | 19 #include "media/base/ranges.h" |
20 #include "media/base/serial_runner.h" | 20 #include "media/base/serial_runner.h" |
21 #include "ui/gfx/size.h" | 21 #include "ui/gfx/size.h" |
22 | 22 |
23 namespace base { | 23 namespace base { |
24 class MessageLoopProxy; | 24 class MessageLoopProxy; |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 // Current volume level (from 0.0f to 1.0f). This value is set immediately | 366 // Current volume level (from 0.0f to 1.0f). This value is set immediately |
367 // via SetVolume() and a task is dispatched on the message loop to notify the | 367 // via SetVolume() and a task is dispatched on the message loop to notify the |
368 // filters. | 368 // filters. |
369 float volume_; | 369 float volume_; |
370 | 370 |
371 // Current playback rate (>= 0.0f). This value is set immediately via | 371 // Current playback rate (>= 0.0f). This value is set immediately via |
372 // SetPlaybackRate() and a task is dispatched on the message loop to notify | 372 // SetPlaybackRate() and a task is dispatched on the message loop to notify |
373 // the filters. | 373 // the filters. |
374 float playback_rate_; | 374 float playback_rate_; |
375 | 375 |
376 // base::Clock used by |clock_|. | 376 // base::TickClock used by |clock_|. |
377 base::DefaultClock default_clock_; | 377 base::DefaultTickClock default_tick_clock_; |
378 | 378 |
379 // Reference clock. Keeps track of current playback time. Uses system | 379 // Reference clock. Keeps track of current playback time. Uses system |
380 // clock and linear interpolation, but can have its time manually set | 380 // clock and linear interpolation, but can have its time manually set |
381 // by filters. | 381 // by filters. |
382 scoped_ptr<Clock> clock_; | 382 scoped_ptr<Clock> clock_; |
383 | 383 |
384 // If this value is set to true, then |clock_| is paused and we are waiting | 384 // If this value is set to true, then |clock_| is paused and we are waiting |
385 // for an update of the clock greater than or equal to the elapsed time to | 385 // for an update of the clock greater than or equal to the elapsed time to |
386 // start the clock. | 386 // start the clock. |
387 bool waiting_for_clock_update_; | 387 bool waiting_for_clock_update_; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 | 432 |
433 // Holds the initialized renderers. Used for setting the volume, | 433 // Holds the initialized renderers. Used for setting the volume, |
434 // playback rate, and determining when playback has finished. | 434 // playback rate, and determining when playback has finished. |
435 scoped_ptr<AudioRenderer> audio_renderer_; | 435 scoped_ptr<AudioRenderer> audio_renderer_; |
436 scoped_ptr<VideoRenderer> video_renderer_; | 436 scoped_ptr<VideoRenderer> video_renderer_; |
437 | 437 |
438 PipelineStatistics statistics_; | 438 PipelineStatistics statistics_; |
439 | 439 |
440 // Time of pipeline creation; is non-zero only until the pipeline first | 440 // Time of pipeline creation; is non-zero only until the pipeline first |
441 // reaches "kStarted", at which point it is used & zeroed out. | 441 // reaches "kStarted", at which point it is used & zeroed out. |
442 base::Time creation_time_; | 442 base::TimeTicks creation_time_; |
443 | 443 |
444 scoped_ptr<SerialRunner> pending_callbacks_; | 444 scoped_ptr<SerialRunner> pending_callbacks_; |
445 | 445 |
446 base::ThreadChecker thread_checker_; | 446 base::ThreadChecker thread_checker_; |
447 | 447 |
448 DISALLOW_COPY_AND_ASSIGN(Pipeline); | 448 DISALLOW_COPY_AND_ASSIGN(Pipeline); |
449 }; | 449 }; |
450 | 450 |
451 } // namespace media | 451 } // namespace media |
452 | 452 |
453 #endif // MEDIA_BASE_PIPELINE_H_ | 453 #endif // MEDIA_BASE_PIPELINE_H_ |
OLD | NEW |