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

Unified Diff: media/base/pipeline.h

Issue 379343005: Introduce media::TimeSource. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: media/base/pipeline.h
diff --git a/media/base/pipeline.h b/media/base/pipeline.h
index 6a408da23f0d18abaa66411044e58d37d6e29ecb..40a94978a7ae763ae875012f9703a73c27ff2f7d 100644
--- a/media/base/pipeline.h
+++ b/media/base/pipeline.h
@@ -33,8 +33,9 @@ class FilterCollection;
class MediaLog;
class TextRenderer;
class TextTrackConfig;
-class TimeDeltaInterpolator;
+class TimeSource;
class VideoRenderer;
+class WallClockTimeSource;
// Metadata describing a pipeline once it has been initialized.
struct PipelineMetadata {
@@ -179,7 +180,6 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
void set_underflow_disabled_for_testing(bool disabled) {
underflow_disabled_for_testing_ = disabled;
}
- void SetTimeDeltaInterpolatorForTesting(TimeDeltaInterpolator* interpolator);
void SetErrorForTesting(PipelineStatus status);
private:
@@ -232,12 +232,6 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
// Callback executed by filters to update statistics.
void OnUpdateStatistics(const PipelineStatistics& stats);
- // Callback executed by audio renderer to update clock time.
- void OnAudioTimeUpdate(base::TimeDelta time, base::TimeDelta max_time);
-
- // Callback executed by video renderer to update clock time.
- void OnVideoTimeUpdate(base::TimeDelta max_time);
-
// The following "task" methods correspond to the public methods, but these
// methods are run as the result of posting a task to the Pipeline's
// task runner.
@@ -317,9 +311,6 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
void PausePlayback();
void StartPlayback();
- void PauseClockAndStopRendering_Locked();
- void StartClockIfWaitingForTimeUpdate_Locked();
-
// Task runner used to execute pipeline tasks.
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
@@ -352,26 +343,6 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
// Current duration as reported by |demuxer_|.
base::TimeDelta duration_;
- // base::TickClock used by |interpolator_|.
- base::DefaultTickClock default_tick_clock_;
-
- // Tracks the most recent media time update and provides interpolated values
- // as playback progresses.
- scoped_ptr<TimeDeltaInterpolator> interpolator_;
-
- enum InterpolationState {
- // Audio (if present) is not rendering. Time isn't being interpolated.
- INTERPOLATION_STOPPED,
-
- // Audio (if present) is rendering. Time isn't being interpolated.
- INTERPOLATION_WAITING_FOR_AUDIO_TIME_UPDATE,
-
- // Audio (if present) is rendering. Time is being interpolated.
- INTERPOLATION_STARTED,
- };
-
- InterpolationState interpolation_state_;
-
// Status of the pipeline. Initialized to PIPELINE_OK which indicates that
// the pipeline is operating correctly. Any other value indicates that the
// pipeline is stopped or is stopping. Clients can call the Stop() method to
@@ -420,6 +391,9 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost {
scoped_ptr<VideoRenderer> video_renderer_;
scoped_ptr<TextRenderer> text_renderer_;
+ TimeSource* time_source_;
+ scoped_ptr<WallClockTimeSource> wall_clock_time_source_;
+
PipelineStatistics statistics_;
scoped_ptr<SerialRunner> pending_callbacks_;
« no previous file with comments | « media/base/audio_renderer.h ('k') | media/base/pipeline.cc » ('j') | media/base/pipeline.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698