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

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

Issue 6625059: Implementing preload=metadata for video (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix indent Created 9 years, 8 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 | « no previous file | media/base/mock_filters.h » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Filters are connected in a strongly typed manner, with downstream filters 5 // Filters are connected in a strongly typed manner, with downstream filters
6 // always reading data from upstream filters. Upstream filters have no clue 6 // always reading data from upstream filters. Upstream filters have no clue
7 // who is actually reading from them, and return the results via callbacks. 7 // who is actually reading from them, and return the results via callbacks.
8 // 8 //
9 // DemuxerStream(Video) <- VideoDecoder <- VideoRenderer 9 // DemuxerStream(Video) <- VideoDecoder <- VideoRenderer
10 // DataSource <- Demuxer < 10 // DataSource <- Demuxer <
(...skipping 27 matching lines...) Expand all
38 namespace media { 38 namespace media {
39 39
40 class Buffer; 40 class Buffer;
41 class Decoder; 41 class Decoder;
42 class DemuxerStream; 42 class DemuxerStream;
43 class Filter; 43 class Filter;
44 class FilterHost; 44 class FilterHost;
45 45
46 struct PipelineStatistics; 46 struct PipelineStatistics;
47 47
48 // Used to specify video preload states. They are "hints" to the browser about
49 // how aggressively the browser should load and buffer data.
50 // Please see the HTML5 spec for the descriptions of these values:
51 // http://www.w3.org/TR/html5/video.html#attr-media-preload
52 //
53 // Enum values must match the values in WebCore::MediaPlayer::Preload and
54 // there will be assertions at compile time if they do not match.
55 enum Preload {
56 NONE,
57 METADATA,
58 AUTO,
59 };
60
48 // Used for completing asynchronous methods. 61 // Used for completing asynchronous methods.
49 typedef Callback0::Type FilterCallback; 62 typedef Callback0::Type FilterCallback;
50 63
51 // Used for updating pipeline statistics. 64 // Used for updating pipeline statistics.
52 typedef Callback1<const PipelineStatistics&>::Type StatisticsCallback; 65 typedef Callback1<const PipelineStatistics&>::Type StatisticsCallback;
53 66
54 class Filter : public base::RefCountedThreadSafe<Filter> { 67 class Filter : public base::RefCountedThreadSafe<Filter> {
55 public: 68 public:
56 Filter(); 69 Filter();
57 70
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 virtual void Read(int64 position, size_t size, 135 virtual void Read(int64 position, size_t size,
123 uint8* data, ReadCallback* read_callback) = 0; 136 uint8* data, ReadCallback* read_callback) = 0;
124 137
125 // Returns true and the file size, false if the file size could not be 138 // Returns true and the file size, false if the file size could not be
126 // retrieved. 139 // retrieved.
127 virtual bool GetSize(int64* size_out) = 0; 140 virtual bool GetSize(int64* size_out) = 0;
128 141
129 // Returns true if we are performing streaming. In this case seeking is 142 // Returns true if we are performing streaming. In this case seeking is
130 // not possible. 143 // not possible.
131 virtual bool IsStreaming() = 0; 144 virtual bool IsStreaming() = 0;
145
146 // Alert the DataSource that the video preload value has been changed.
147 virtual void SetPreload(Preload preload) = 0;
132 }; 148 };
133 149
134 class DemuxerStream : public base::RefCountedThreadSafe<DemuxerStream> { 150 class DemuxerStream : public base::RefCountedThreadSafe<DemuxerStream> {
135 public: 151 public:
136 enum Type { 152 enum Type {
137 UNKNOWN, 153 UNKNOWN,
138 AUDIO, 154 AUDIO,
139 VIDEO, 155 VIDEO,
140 NUM_TYPES, // Always keep this entry as the last one! 156 NUM_TYPES, // Always keep this entry as the last one!
141 }; 157 };
(...skipping 17 matching lines...) Expand all
159 175
160 protected: 176 protected:
161 friend class base::RefCountedThreadSafe<DemuxerStream>; 177 friend class base::RefCountedThreadSafe<DemuxerStream>;
162 virtual ~DemuxerStream(); 178 virtual ~DemuxerStream();
163 }; 179 };
164 180
165 class Demuxer : public Filter { 181 class Demuxer : public Filter {
166 public: 182 public:
167 // Returns the given stream type, or NULL if that type is not present. 183 // Returns the given stream type, or NULL if that type is not present.
168 virtual scoped_refptr<DemuxerStream> GetStream(DemuxerStream::Type type) = 0; 184 virtual scoped_refptr<DemuxerStream> GetStream(DemuxerStream::Type type) = 0;
185
186 // Alert the Demuxer that the video preload value has been changed.
187 virtual void SetPreload(Preload preload) = 0;
169 }; 188 };
170 189
171 190
172 class VideoDecoder : public Filter { 191 class VideoDecoder : public Filter {
173 public: 192 public:
174 // Initialize a VideoDecoder with the given DemuxerStream, executing the 193 // Initialize a VideoDecoder with the given DemuxerStream, executing the
175 // callback upon completion. 194 // callback upon completion.
176 // stats_callback is used to update global pipeline statistics. 195 // stats_callback is used to update global pipeline statistics.
177 virtual void Initialize(DemuxerStream* stream, FilterCallback* callback, 196 virtual void Initialize(DemuxerStream* stream, FilterCallback* callback,
178 StatisticsCallback* stats_callback) = 0; 197 StatisticsCallback* stats_callback) = 0;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 // buffer. 290 // buffer.
272 virtual bool HasEnded() = 0; 291 virtual bool HasEnded() = 0;
273 292
274 // Sets the output volume. 293 // Sets the output volume.
275 virtual void SetVolume(float volume) = 0; 294 virtual void SetVolume(float volume) = 0;
276 }; 295 };
277 296
278 } // namespace media 297 } // namespace media
279 298
280 #endif // MEDIA_BASE_FILTERS_H_ 299 #endif // MEDIA_BASE_FILTERS_H_
OLDNEW
« no previous file with comments | « no previous file | media/base/mock_filters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698