Chromium Code Reviews| Index: media/base/pipeline.h |
| diff --git a/media/base/pipeline.h b/media/base/pipeline.h |
| index fed95a3f2743dde7971c3b4711f34978d91cdc2d..4b582f3efce6ffe7577b62b69c73336a493c4d4a 100644 |
| --- a/media/base/pipeline.h |
| +++ b/media/base/pipeline.h |
| @@ -16,6 +16,7 @@ |
| #include "media/base/pipeline_status.h" |
| #include "media/base/ranges.h" |
| #include "media/base/serial_runner.h" |
| +#include "media/base/text_track.h" |
| #include "media/base/video_rotation.h" |
| #include "ui/gfx/size.h" |
| @@ -26,7 +27,6 @@ class TimeDelta; |
| namespace media { |
| -class FilterCollection; |
| class MediaLog; |
| class Renderer; |
| class TextRenderer; |
| @@ -81,12 +81,8 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost { |
| MediaLog* media_log); |
| virtual ~Pipeline(); |
| - // Build a pipeline to using the given filter collection to construct a filter |
| - // chain, executing |seek_cb| when the initial seek has completed. |
| - // |
| - // |filter_collection| must be a complete collection containing a demuxer, |
| - // audio/video decoders, and audio/video renderers. Failing to do so will |
| - // result in a crash. |
| + // Build a pipeline to using the given |demuxer| and |renderer| to construct |
| + // a filter chain, executing |seek_cb| when the initial seek has completed. |
| // |
| // The following permanent callbacks will be executed as follows up until |
| // Stop() has completed: |
| @@ -100,14 +96,17 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost { |
| // overall buffering state of the pipeline. |
| // |duration_change_cb| optional callback that will be executed whenever the |
| // presentation duration changes. |
| + // |add_text_track_cb| will be executed whenever a text track is added. |
| // It is an error to call this method after the pipeline has already started. |
| - void Start(scoped_ptr<FilterCollection> filter_collection, |
| + void Start(Demuxer* demuxer, |
| + scoped_ptr<Renderer> renderer, |
| const base::Closure& ended_cb, |
| const PipelineStatusCB& error_cb, |
| const PipelineStatusCB& seek_cb, |
| const PipelineMetadataCB& metadata_cb, |
| const BufferingStateCB& buffering_state_cb, |
| - const base::Closure& duration_change_cb); |
| + const base::Closure& duration_change_cb, |
| + const AddTextTrackCB& add_text_track_cb); |
| // Asynchronously stops the pipeline, executing |stop_cb| when the pipeline |
| // teardown has completed. |
| @@ -245,6 +244,8 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost { |
| void OnTextRendererEnded(); |
| void RunEndedCallbackIfNeeded(); |
| + scoped_ptr<TextRenderer> CreateTextRenderer(); |
| + |
| // Carries out adding a new text stream to the text renderer. |
| void AddTextStreamTask(DemuxerStream* text_stream, |
| const TextTrackConfig& config); |
| @@ -252,6 +253,10 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost { |
| // Carries out removing a text stream from the text renderer. |
| void RemoveTextStreamTask(DemuxerStream* text_stream); |
| + // Callbacks executed when a text track is added. |
| + void OnAddTextTrack(const TextTrackConfig& config, |
| + const AddTextTrackDoneCB& done_cb); |
| + |
| // Kicks off initialization for each media object, executing |done_cb| with |
| // the result when completed. |
| void InitializeDemuxer(const PipelineStatusCB& done_cb); |
| @@ -269,6 +274,8 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost { |
| void DoStop(const PipelineStatusCB& done_cb); |
| void OnStopCompleted(PipelineStatus status); |
| + void ReportMetaData(); |
|
scherkus (not reviewing)
2014/08/28 18:48:22
nit: Metadata
xhwang
2014/08/28 19:52:05
Done.
|
| + |
| void BufferingStateChanged(BufferingState new_buffering_state); |
| // Task runner used to execute pipeline tasks. |
| @@ -336,9 +343,7 @@ class MEDIA_EXPORT Pipeline : public DemuxerHost { |
| PipelineMetadataCB metadata_cb_; |
| BufferingStateCB buffering_state_cb_; |
| base::Closure duration_change_cb_; |
| - |
| - // Contains the demuxer and renderers to use when initializing. |
| - scoped_ptr<FilterCollection> filter_collection_; |
| + AddTextTrackCB add_text_track_cb_; |
| // Holds the initialized demuxer. Used for seeking. Owned by client. |
| Demuxer* demuxer_; |