| Index: media/base/pipeline.h
|
| diff --git a/media/base/pipeline.h b/media/base/pipeline.h
|
| index fed95a3f2743dde7971c3b4711f34978d91cdc2d..37d668470b9cd5772a74f839875b80e2a952f621 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();
|
| +
|
| 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_;
|
|
|