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

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: Fixes based on code review 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/pipeline.h » ('j') | webkit/glue/webmediaplayer_impl.cc » ('J')
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 25 matching lines...) Expand all
36 namespace media { 36 namespace media {
37 37
38 class Buffer; 38 class Buffer;
39 class Decoder; 39 class Decoder;
40 class DemuxerStream; 40 class DemuxerStream;
41 class Filter; 41 class Filter;
42 class FilterHost; 42 class FilterHost;
43 43
44 struct PipelineStatistics; 44 struct PipelineStatistics;
45 45
46 // Used to specify video preload states. They are "hints" to the browser about
47 // how aggressively the browser should load and buffer data.
48 // Please see the HTML5 spec for the descriptions of these values:
49 // http://www.w3.org/TR/html5/video.html#attr-media-preload
50 //
51 // Enum values must match the values in WebCore::MediaPlayer::Preload.
52 enum Preload {
53 PRELOAD_NONE,
acolwell GONE FROM CHROMIUM 2011/03/29 05:52:03 nit: How about dropping the PRELOAD_ prefix now th
vrk (LEFT CHROMIUM) 2011/03/30 17:41:44 Done.
54 PRELOAD_METADATA,
55 PRELOAD_AUTO,
56 };
57
46 // Used for completing asynchronous methods. 58 // Used for completing asynchronous methods.
47 typedef Callback0::Type FilterCallback; 59 typedef Callback0::Type FilterCallback;
48 60
49 // Used for updating pipeline statistics. 61 // Used for updating pipeline statistics.
50 typedef Callback1<const PipelineStatistics&>::Type StatisticsCallback; 62 typedef Callback1<const PipelineStatistics&>::Type StatisticsCallback;
51 63
52 class Filter : public base::RefCountedThreadSafe<Filter> { 64 class Filter : public base::RefCountedThreadSafe<Filter> {
53 public: 65 public:
54 Filter(); 66 Filter();
55 67
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 virtual void Read(int64 position, size_t size, 132 virtual void Read(int64 position, size_t size,
121 uint8* data, ReadCallback* read_callback) = 0; 133 uint8* data, ReadCallback* read_callback) = 0;
122 134
123 // Returns true and the file size, false if the file size could not be 135 // Returns true and the file size, false if the file size could not be
124 // retrieved. 136 // retrieved.
125 virtual bool GetSize(int64* size_out) = 0; 137 virtual bool GetSize(int64* size_out) = 0;
126 138
127 // Returns true if we are performing streaming. In this case seeking is 139 // Returns true if we are performing streaming. In this case seeking is
128 // not possible. 140 // not possible.
129 virtual bool IsStreaming() = 0; 141 virtual bool IsStreaming() = 0;
142
143 // Alert the DataSource that the video preload value has been changed.
144 virtual void SetPreload(Preload preload) = 0;
130 }; 145 };
131 146
132 class DemuxerStream : public base::RefCountedThreadSafe<DemuxerStream> { 147 class DemuxerStream : public base::RefCountedThreadSafe<DemuxerStream> {
133 public: 148 public:
134 enum Type { 149 enum Type {
135 UNKNOWN, 150 UNKNOWN,
136 AUDIO, 151 AUDIO,
137 VIDEO, 152 VIDEO,
138 NUM_TYPES, // Always keep this entry as the last one! 153 NUM_TYPES, // Always keep this entry as the last one!
139 }; 154 };
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 virtual void* QueryInterface(const char* interface_id); 188 virtual void* QueryInterface(const char* interface_id);
174 189
175 friend class base::RefCountedThreadSafe<DemuxerStream>; 190 friend class base::RefCountedThreadSafe<DemuxerStream>;
176 virtual ~DemuxerStream(); 191 virtual ~DemuxerStream();
177 }; 192 };
178 193
179 class Demuxer : public Filter { 194 class Demuxer : public Filter {
180 public: 195 public:
181 // Returns the given stream type, or NULL if that type is not present. 196 // Returns the given stream type, or NULL if that type is not present.
182 virtual scoped_refptr<DemuxerStream> GetStream(DemuxerStream::Type type) = 0; 197 virtual scoped_refptr<DemuxerStream> GetStream(DemuxerStream::Type type) = 0;
198
199 // Alert the Demuxer that the video preload value has been changed.
200 virtual void SetPreload(Preload preload) = 0;
183 }; 201 };
184 202
185 203
186 class VideoDecoder : public Filter { 204 class VideoDecoder : public Filter {
187 public: 205 public:
188 // Initialize a VideoDecoder with the given DemuxerStream, executing the 206 // Initialize a VideoDecoder with the given DemuxerStream, executing the
189 // callback upon completion. 207 // callback upon completion.
190 // stats_callback is used to update global pipeline statistics. 208 // stats_callback is used to update global pipeline statistics.
191 virtual void Initialize(DemuxerStream* stream, FilterCallback* callback, 209 virtual void Initialize(DemuxerStream* stream, FilterCallback* callback,
192 StatisticsCallback* stats_callback) = 0; 210 StatisticsCallback* stats_callback) = 0;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 // buffer. 303 // buffer.
286 virtual bool HasEnded() = 0; 304 virtual bool HasEnded() = 0;
287 305
288 // Sets the output volume. 306 // Sets the output volume.
289 virtual void SetVolume(float volume) = 0; 307 virtual void SetVolume(float volume) = 0;
290 }; 308 };
291 309
292 } // namespace media 310 } // namespace media
293 311
294 #endif // MEDIA_BASE_FILTERS_H_ 312 #endif // MEDIA_BASE_FILTERS_H_
OLDNEW
« no previous file with comments | « no previous file | media/base/pipeline.h » ('j') | webkit/glue/webmediaplayer_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698