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

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

Issue 10383262: RefCounted types should not have public destructors, delegate cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make win bot happy Created 8 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 | Annotate | Revision Log
« no previous file with comments | « media/base/demuxer.h ('k') | media/video/capture/video_capture.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) 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 // FFmpegGlue is an adapter for FFmpeg's URLProtocol interface that allows us to 5 // FFmpegGlue is an adapter for FFmpeg's URLProtocol interface that allows us to
6 // use a DataSource implementation with FFmpeg. For convenience we use FFmpeg's 6 // use a DataSource implementation with FFmpeg. For convenience we use FFmpeg's
7 // avformat_open_input() function, which analyzes the filename given to it and 7 // avformat_open_input() function, which analyzes the filename given to it and
8 // automatically initializes the appropriate URLProtocol. 8 // automatically initializes the appropriate URLProtocol.
9 // 9 //
10 // Since the DataSource is already open by time we call avformat_open_input(), 10 // Since the DataSource is already open by time we call avformat_open_input(),
(...skipping 23 matching lines...) Expand all
34 #include "media/base/media_export.h" 34 #include "media/base/media_export.h"
35 35
36 struct URLProtocol; 36 struct URLProtocol;
37 37
38 namespace media { 38 namespace media {
39 39
40 class MEDIA_EXPORT FFmpegURLProtocol { 40 class MEDIA_EXPORT FFmpegURLProtocol {
41 public: 41 public:
42 FFmpegURLProtocol() {} 42 FFmpegURLProtocol() {}
43 43
44 virtual ~FFmpegURLProtocol() {}
45
46 // Read the given amount of bytes into data, returns the number of bytes read 44 // Read the given amount of bytes into data, returns the number of bytes read
47 // if successful, kReadError otherwise. 45 // if successful, kReadError otherwise.
48 virtual size_t Read(size_t size, uint8* data) = 0; 46 virtual size_t Read(size_t size, uint8* data) = 0;
49 47
50 // Returns true and the current file position for this file, false if the 48 // Returns true and the current file position for this file, false if the
51 // file position could not be retrieved. 49 // file position could not be retrieved.
52 virtual bool GetPosition(int64* position_out) = 0; 50 virtual bool GetPosition(int64* position_out) = 0;
53 51
54 // Returns true if the file position could be set, false otherwise. 52 // Returns true if the file position could be set, false otherwise.
55 virtual bool SetPosition(int64 position) = 0; 53 virtual bool SetPosition(int64 position) = 0;
56 54
57 // Returns true and the file size, false if the file size could not be 55 // Returns true and the file size, false if the file size could not be
58 // retrieved. 56 // retrieved.
59 virtual bool GetSize(int64* size_out) = 0; 57 virtual bool GetSize(int64* size_out) = 0;
60 58
61 // Returns false if this protocol supports random seeking. 59 // Returns false if this protocol supports random seeking.
62 virtual bool IsStreaming() = 0; 60 virtual bool IsStreaming() = 0;
63 61
62 protected:
63 virtual ~FFmpegURLProtocol() {}
64
64 private: 65 private:
65 DISALLOW_COPY_AND_ASSIGN(FFmpegURLProtocol); 66 DISALLOW_COPY_AND_ASSIGN(FFmpegURLProtocol);
66 }; 67 };
67 68
68 class MEDIA_EXPORT FFmpegGlue { 69 class MEDIA_EXPORT FFmpegGlue {
69 public: 70 public:
70 // Returns the singleton instance. 71 // Returns the singleton instance.
71 static FFmpegGlue* GetInstance(); 72 static FFmpegGlue* GetInstance();
72 73
73 // Adds a FFmpegProtocol to the FFmpeg glue layer and returns a unique string 74 // Adds a FFmpegProtocol to the FFmpeg glue layer and returns a unique string
(...skipping 28 matching lines...) Expand all
102 103
103 friend class FFmpegGlueTest; 104 friend class FFmpegGlueTest;
104 static URLProtocol* url_protocol(); 105 static URLProtocol* url_protocol();
105 106
106 DISALLOW_COPY_AND_ASSIGN(FFmpegGlue); 107 DISALLOW_COPY_AND_ASSIGN(FFmpegGlue);
107 }; 108 };
108 109
109 } // namespace media 110 } // namespace media
110 111
111 #endif // MEDIA_FILTERS_FFMPEG_GLUE_H_ 112 #endif // MEDIA_FILTERS_FFMPEG_GLUE_H_
OLDNEW
« no previous file with comments | « media/base/demuxer.h ('k') | media/video/capture/video_capture.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698