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

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

Issue 3064007: GTTF: more FRIEND_TEST_ALL_PREFIXES (Closed)
Patch Set: Created 10 years, 5 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
« no previous file with comments | « media/filters/ffmpeg_video_decoder.h ('k') | no next file » | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_FILTERS_FILE_DATA_SOURCE_H_ 5 #ifndef MEDIA_FILTERS_FILE_DATA_SOURCE_H_
6 #define MEDIA_FILTERS_FILE_DATA_SOURCE_H_ 6 #define MEDIA_FILTERS_FILE_DATA_SOURCE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/gtest_prod_util.h"
10 #include "base/lock.h" 11 #include "base/lock.h"
11 #include "media/base/filters.h" 12 #include "media/base/filters.h"
12 #include "testing/gtest/include/gtest/gtest_prod.h"
13 13
14 namespace media { 14 namespace media {
15 15
16 // Basic data source that treats the URL as a file path, and uses the file 16 // Basic data source that treats the URL as a file path, and uses the file
17 // system to read data for a media pipeline. 17 // system to read data for a media pipeline.
18 class FileDataSource : public DataSource { 18 class FileDataSource : public DataSource {
19 public: 19 public:
20 // Public method to get a filter factory for the FileDataSource. 20 // Public method to get a filter factory for the FileDataSource.
21 static FilterFactory* CreateFactory() { 21 static FilterFactory* CreateFactory() {
22 return new FilterFactoryImpl0<FileDataSource>(); 22 return new FilterFactoryImpl0<FileDataSource>();
23 } 23 }
24 24
25 // Implementation of MediaFilter. 25 // Implementation of MediaFilter.
26 virtual void Stop(FilterCallback* callback); 26 virtual void Stop(FilterCallback* callback);
27 27
28 // Implementation of DataSource. 28 // Implementation of DataSource.
29 virtual void Initialize(const std::string& url, FilterCallback* callback); 29 virtual void Initialize(const std::string& url, FilterCallback* callback);
30 virtual const MediaFormat& media_format(); 30 virtual const MediaFormat& media_format();
31 virtual void Read(int64 position, size_t size, uint8* data, 31 virtual void Read(int64 position, size_t size, uint8* data,
32 ReadCallback* read_callback); 32 ReadCallback* read_callback);
33 virtual bool GetSize(int64* size_out); 33 virtual bool GetSize(int64* size_out);
34 virtual bool IsStreaming(); 34 virtual bool IsStreaming();
35 35
36 private: 36 private:
37 // Only allow factories and tests to create this object. 37 // Only allow factories and tests to create this object.
38 // 38 //
39 // TODO(scherkus): I'm getting tired of these factories getting in the way 39 // TODO(scherkus): I'm getting tired of these factories getting in the way
40 // of my tests!!! 40 // of my tests!!!
41 FRIEND_TEST(FileDataSourceTest, OpenFile); 41 FRIEND_TEST_ALL_PREFIXES(FileDataSourceTest, OpenFile);
42 FRIEND_TEST(FileDataSourceTest, ReadData); 42 FRIEND_TEST_ALL_PREFIXES(FileDataSourceTest, ReadData);
43 FRIEND_TEST(FileDataSourceTest, Seek); 43 FRIEND_TEST_ALL_PREFIXES(FileDataSourceTest, Seek);
44 friend class FilterFactoryImpl0<FileDataSource>; 44 friend class FilterFactoryImpl0<FileDataSource>;
45 FileDataSource(); 45 FileDataSource();
46 virtual ~FileDataSource(); 46 virtual ~FileDataSource();
47 47
48 // File handle. NULL if not initialized or an error occurs. 48 // File handle. NULL if not initialized or an error occurs.
49 FILE* file_; 49 FILE* file_;
50 50
51 // Size of the file in bytes. 51 // Size of the file in bytes.
52 int64 file_size_; 52 int64 file_size_;
53 53
54 // Media format handed out by the DataSource::GetMediaFormat method. 54 // Media format handed out by the DataSource::GetMediaFormat method.
55 MediaFormat media_format_; 55 MediaFormat media_format_;
56 56
57 // Critical section that protects all of the DataSource methods to prevent 57 // Critical section that protects all of the DataSource methods to prevent
58 // a Stop from happening while in the middle of a file I/O operation. 58 // a Stop from happening while in the middle of a file I/O operation.
59 // TODO(ralphl): Ideally this would use asynchronous I/O or we will know 59 // TODO(ralphl): Ideally this would use asynchronous I/O or we will know
60 // that we will block for a short period of time in reads. Otherwise, we can 60 // that we will block for a short period of time in reads. Otherwise, we can
61 // hang the pipeline Stop. 61 // hang the pipeline Stop.
62 Lock lock_; 62 Lock lock_;
63 63
64 DISALLOW_COPY_AND_ASSIGN(FileDataSource); 64 DISALLOW_COPY_AND_ASSIGN(FileDataSource);
65 }; 65 };
66 66
67 } // namespace media 67 } // namespace media
68 68
69 #endif // MEDIA_FILTERS_FILE_DATA_SOURCE_H_ 69 #endif // MEDIA_FILTERS_FILE_DATA_SOURCE_H_
OLDNEW
« no previous file with comments | « media/filters/ffmpeg_video_decoder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698