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

Side by Side Diff: webkit/media/simple_data_source.h

Issue 8936014: Removing DataSource from Filter hierarchy (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved preload into a separate file. Created 9 years 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
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 // An extremely simple implementation of DataSource that downloads the entire 5 // An extremely simple implementation of DataSource that downloads the entire
6 // media resource into memory before signaling that initialization has finished. 6 // media resource into memory before signaling that initialization has finished.
7 // Primarily used to test <audio> and <video> with buffering/caching removed 7 // Primarily used to test <audio> and <video> with buffering/caching removed
8 // from the equation. 8 // from the equation.
9 9
10 #ifndef WEBKIT_MEDIA_SIMPLE_DATA_SOURCE_H_ 10 #ifndef WEBKIT_MEDIA_SIMPLE_DATA_SOURCE_H_
11 #define WEBKIT_MEDIA_SIMPLE_DATA_SOURCE_H_ 11 #define WEBKIT_MEDIA_SIMPLE_DATA_SOURCE_H_
12 12
13 #include <algorithm> 13 #include <algorithm>
14 #include <string> 14 #include <string>
15 15
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/message_loop.h" 17 #include "base/message_loop.h"
18 #include "media/base/filter_factories.h" 18 #include "media/base/filter_factories.h"
19 #include "media/base/filters.h" 19 #include "media/base/data_source.h"
20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
21 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLLoader .h" 21 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLLoader .h"
22 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLLoader Client.h" 22 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLLoader Client.h"
23 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLReques t.h" 23 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLReques t.h"
24 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRespon se.h" 24 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRespon se.h"
25 #include "webkit/media/web_data_source.h" 25 #include "webkit/media/web_data_source.h"
26 26
27 class MessageLoop; 27 class MessageLoop;
28 28
29 namespace media { 29 namespace media {
30 class MediaLog; 30 class MediaLog;
31 } 31 }
32 32
33 namespace webkit_media { 33 namespace webkit_media {
34 34
35 class SimpleDataSource 35 class SimpleDataSource
36 : public WebDataSource, 36 : public WebDataSource,
37 public WebKit::WebURLLoaderClient { 37 public WebKit::WebURLLoaderClient {
38 public: 38 public:
39 // Creates a DataSourceFactory for building SimpleDataSource objects. 39 // Creates a DataSourceFactory for building SimpleDataSource objects.
40 static media::DataSourceFactory* CreateFactory( 40 static media::DataSourceFactory* CreateFactory(
41 MessageLoop* render_loop, 41 MessageLoop* render_loop,
42 WebKit::WebFrame* frame, 42 WebKit::WebFrame* frame,
43 media::MediaLog* media_log, 43 media::MediaLog* media_log,
44 const WebDataSourceBuildObserverHack& build_observer); 44 const WebDataSourceBuildObserverHack& build_observer);
45 45
46 SimpleDataSource(MessageLoop* render_loop, WebKit::WebFrame* frame); 46 SimpleDataSource(MessageLoop* render_loop, WebKit::WebFrame* frame);
47 virtual ~SimpleDataSource(); 47 virtual ~SimpleDataSource();
48 48
49 // media::Filter implementation. 49 // media::DataSource implementation.
50 virtual void set_host(media::FilterHost* host) OVERRIDE; 50 virtual void set_host(media::DataSourceHost* host) OVERRIDE;
51 virtual void Stop(const base::Closure& callback) OVERRIDE; 51 virtual void Stop(const base::Closure& callback) OVERRIDE;
52
53 // media::DataSource implementation.
54 virtual void Read(int64 position, 52 virtual void Read(int64 position,
55 size_t size, 53 size_t size,
56 uint8* data, 54 uint8* data,
57 const DataSource::ReadCallback& read_callback) OVERRIDE; 55 const DataSource::ReadCallback& read_callback) OVERRIDE;
58 virtual bool GetSize(int64* size_out) OVERRIDE; 56 virtual bool GetSize(int64* size_out) OVERRIDE;
59 virtual bool IsStreaming() OVERRIDE; 57 virtual bool IsStreaming() OVERRIDE;
60 virtual void SetPreload(media::Preload preload) OVERRIDE; 58 virtual void SetPreload(media::Preload preload) OVERRIDE;
61 virtual void SetBitrate(int bitrate) OVERRIDE; 59 virtual void SetBitrate(int bitrate) OVERRIDE;
62 60
63 // Used to inject a mock used for unittests. 61 // Used to inject a mock used for unittests.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 142
145 // Used to ensure mocks for unittests are used instead of reset in Start(). 143 // Used to ensure mocks for unittests are used instead of reset in Start().
146 bool keep_test_loader_; 144 bool keep_test_loader_;
147 145
148 DISALLOW_COPY_AND_ASSIGN(SimpleDataSource); 146 DISALLOW_COPY_AND_ASSIGN(SimpleDataSource);
149 }; 147 };
150 148
151 } // namespace webkit_media 149 } // namespace webkit_media
152 150
153 #endif // WEBKIT_MEDIA_SIMPLE_DATA_SOURCE_H_ 151 #endif // WEBKIT_MEDIA_SIMPLE_DATA_SOURCE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698