Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: media/base/pipeline.h

Issue 294133003: Extract media::Clock::IsPlaying() into media::Pipeline::ClockState enum. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes + rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/base/clock.cc ('k') | media/base/pipeline.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 // - A waiting to non-waiting transition indicates preroll has completed 319 // - A waiting to non-waiting transition indicates preroll has completed
320 // and StartPlayback() should be called 320 // and StartPlayback() should be called
321 // - A non-waiting to waiting transition indicates underflow has occurred 321 // - A non-waiting to waiting transition indicates underflow has occurred
322 // and StartWaitingForEnoughData() should be called 322 // and StartWaitingForEnoughData() should be called
323 void BufferingStateChanged(BufferingState* buffering_state, 323 void BufferingStateChanged(BufferingState* buffering_state,
324 BufferingState new_buffering_state); 324 BufferingState new_buffering_state);
325 bool WaitingForEnoughData() const; 325 bool WaitingForEnoughData() const;
326 void StartWaitingForEnoughData(); 326 void StartWaitingForEnoughData();
327 void StartPlayback(); 327 void StartPlayback();
328 328
329 void PauseClockAndStopRendering_Locked();
329 void StartClockIfWaitingForTimeUpdate_Locked(); 330 void StartClockIfWaitingForTimeUpdate_Locked();
330 331
331 // Task runner used to execute pipeline tasks. 332 // Task runner used to execute pipeline tasks.
332 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 333 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
333 334
334 // MediaLog to which to log events. 335 // MediaLog to which to log events.
335 scoped_refptr<MediaLog> media_log_; 336 scoped_refptr<MediaLog> media_log_;
336 337
337 // Lock used to serialize access for the following data members. 338 // Lock used to serialize access for the following data members.
338 mutable base::Lock lock_; 339 mutable base::Lock lock_;
(...skipping 19 matching lines...) Expand all
358 float playback_rate_; 359 float playback_rate_;
359 360
360 // base::TickClock used by |clock_|. 361 // base::TickClock used by |clock_|.
361 base::DefaultTickClock default_tick_clock_; 362 base::DefaultTickClock default_tick_clock_;
362 363
363 // Reference clock. Keeps track of current playback time. Uses system 364 // Reference clock. Keeps track of current playback time. Uses system
364 // clock and linear interpolation, but can have its time manually set 365 // clock and linear interpolation, but can have its time manually set
365 // by filters. 366 // by filters.
366 scoped_ptr<Clock> clock_; 367 scoped_ptr<Clock> clock_;
367 368
368 // If this value is set to true, then |clock_| is paused and we are waiting 369 enum ClockState {
369 // for an update of the clock greater than or equal to the elapsed time to 370 // Audio (if present) is not rendering. Clock isn't playing.
370 // start the clock. 371 CLOCK_PAUSED,
371 bool waiting_for_clock_update_; 372
373 // Audio (if present) is rendering. Clock isn't playing.
374 CLOCK_WAITING_FOR_AUDIO_TIME_UPDATE,
375
376 // Audio (if present) is rendering. Clock is playing.
377 CLOCK_PLAYING,
378 };
379
380 ClockState clock_state_;
372 381
373 // Status of the pipeline. Initialized to PIPELINE_OK which indicates that 382 // Status of the pipeline. Initialized to PIPELINE_OK which indicates that
374 // the pipeline is operating correctly. Any other value indicates that the 383 // the pipeline is operating correctly. Any other value indicates that the
375 // pipeline is stopped or is stopping. Clients can call the Stop() method to 384 // pipeline is stopped or is stopping. Clients can call the Stop() method to
376 // reset the pipeline state, and restore this to PIPELINE_OK. 385 // reset the pipeline state, and restore this to PIPELINE_OK.
377 PipelineStatus status_; 386 PipelineStatus status_;
378 387
379 // The following data members are only accessed by tasks posted to 388 // The following data members are only accessed by tasks posted to
380 // |task_runner_|. 389 // |task_runner_|.
381 390
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 scoped_ptr<SerialRunner> pending_callbacks_; 433 scoped_ptr<SerialRunner> pending_callbacks_;
425 434
426 base::ThreadChecker thread_checker_; 435 base::ThreadChecker thread_checker_;
427 436
428 DISALLOW_COPY_AND_ASSIGN(Pipeline); 437 DISALLOW_COPY_AND_ASSIGN(Pipeline);
429 }; 438 };
430 439
431 } // namespace media 440 } // namespace media
432 441
433 #endif // MEDIA_BASE_PIPELINE_H_ 442 #endif // MEDIA_BASE_PIPELINE_H_
OLDNEW
« no previous file with comments | « media/base/clock.cc ('k') | media/base/pipeline.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698