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 <memory> |
| 9 |
8 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
9 #include "base/time/time.h" | 11 #include "base/time/time.h" |
10 #include "media/base/buffering_state.h" | 12 #include "media/base/buffering_state.h" |
11 #include "media/base/cdm_context.h" | 13 #include "media/base/cdm_context.h" |
12 #include "media/base/media_export.h" | 14 #include "media/base/media_export.h" |
13 #include "media/base/pipeline_status.h" | 15 #include "media/base/pipeline_status.h" |
14 #include "media/base/ranges.h" | 16 #include "media/base/ranges.h" |
15 #include "media/base/text_track.h" | 17 #include "media/base/text_track.h" |
16 #include "media/base/video_rotation.h" | 18 #include "media/base/video_rotation.h" |
17 #include "ui/gfx/geometry/size.h" | 19 #include "ui/gfx/geometry/size.h" |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 // video in supported formats are known. | 56 // video in supported formats are known. |
55 // |buffering_state_cb| will be executed whenever there are changes in the | 57 // |buffering_state_cb| will be executed whenever there are changes in the |
56 // overall buffering state of the pipeline. | 58 // overall buffering state of the pipeline. |
57 // |duration_change_cb| optional callback that will be executed whenever the | 59 // |duration_change_cb| optional callback that will be executed whenever the |
58 // presentation duration changes. | 60 // presentation duration changes. |
59 // |add_text_track_cb| will be executed whenever a text track is added. | 61 // |add_text_track_cb| will be executed whenever a text track is added. |
60 // |waiting_for_decryption_key_cb| will be executed whenever the key needed | 62 // |waiting_for_decryption_key_cb| will be executed whenever the key needed |
61 // to decrypt the stream is not available. | 63 // to decrypt the stream is not available. |
62 // It is an error to call this method after the pipeline has already started. | 64 // It is an error to call this method after the pipeline has already started. |
63 virtual void Start(Demuxer* demuxer, | 65 virtual void Start(Demuxer* demuxer, |
64 scoped_ptr<Renderer> renderer, | 66 std::unique_ptr<Renderer> renderer, |
65 const base::Closure& ended_cb, | 67 const base::Closure& ended_cb, |
66 const PipelineStatusCB& error_cb, | 68 const PipelineStatusCB& error_cb, |
67 const PipelineStatusCB& seek_cb, | 69 const PipelineStatusCB& seek_cb, |
68 const PipelineMetadataCB& metadata_cb, | 70 const PipelineMetadataCB& metadata_cb, |
69 const BufferingStateCB& buffering_state_cb, | 71 const BufferingStateCB& buffering_state_cb, |
70 const base::Closure& duration_change_cb, | 72 const base::Closure& duration_change_cb, |
71 const AddTextTrackCB& add_text_track_cb, | 73 const AddTextTrackCB& add_text_track_cb, |
72 const base::Closure& waiting_for_decryption_key_cb) = 0; | 74 const base::Closure& waiting_for_decryption_key_cb) = 0; |
73 | 75 |
74 // Asynchronously stops the pipeline, executing |stop_cb| when the pipeline | 76 // Asynchronously stops the pipeline, executing |stop_cb| when the pipeline |
(...skipping 21 matching lines...) Expand all Loading... |
96 // last rendered frame. | 98 // last rendered frame. |
97 // | 99 // |
98 // It is an error to call this method if the pipeline has not started or is | 100 // It is an error to call this method if the pipeline has not started or is |
99 // seeking. | 101 // seeking. |
100 virtual void Suspend(const PipelineStatusCB& suspend_cb) = 0; | 102 virtual void Suspend(const PipelineStatusCB& suspend_cb) = 0; |
101 | 103 |
102 // Resume the pipeline with a new renderer, and initialize it with a seek. | 104 // Resume the pipeline with a new renderer, and initialize it with a seek. |
103 // | 105 // |
104 // It is an error to call this method if the pipeline has not finished | 106 // It is an error to call this method if the pipeline has not finished |
105 // suspending. | 107 // suspending. |
106 virtual void Resume(scoped_ptr<Renderer> renderer, | 108 virtual void Resume(std::unique_ptr<Renderer> renderer, |
107 base::TimeDelta timestamp, | 109 base::TimeDelta timestamp, |
108 const PipelineStatusCB& seek_cb) = 0; | 110 const PipelineStatusCB& seek_cb) = 0; |
109 | 111 |
110 // Returns true if the pipeline has been started via Start(). If IsRunning() | 112 // Returns true if the pipeline has been started via Start(). If IsRunning() |
111 // returns true, it is expected that Stop() will be called before destroying | 113 // returns true, it is expected that Stop() will be called before destroying |
112 // the pipeline. | 114 // the pipeline. |
113 virtual bool IsRunning() const = 0; | 115 virtual bool IsRunning() const = 0; |
114 | 116 |
115 // Gets the current playback rate of the pipeline. When the pipeline is | 117 // Gets the current playback rate of the pipeline. When the pipeline is |
116 // started, the playback rate will be 0.0. A rate of 1.0 indicates | 118 // started, the playback rate will be 0.0. A rate of 1.0 indicates |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 // Gets the current pipeline statistics. | 155 // Gets the current pipeline statistics. |
154 virtual PipelineStatistics GetStatistics() const = 0; | 156 virtual PipelineStatistics GetStatistics() const = 0; |
155 | 157 |
156 virtual void SetCdm(CdmContext* cdm_context, | 158 virtual void SetCdm(CdmContext* cdm_context, |
157 const CdmAttachedCB& cdm_attached_cb) = 0; | 159 const CdmAttachedCB& cdm_attached_cb) = 0; |
158 }; | 160 }; |
159 | 161 |
160 } // namespace media | 162 } // namespace media |
161 | 163 |
162 #endif // MEDIA_BASE_PIPELINE_H_ | 164 #endif // MEDIA_BASE_PIPELINE_H_ |
OLD | NEW |