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

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

Issue 5581008: Add a new GetInstance() method for singleton classes, take 2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 10 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 // av_open_input_file function, which analyzes the filename given to it and 7 // av_open_input_file 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 av_open_input_file, we 10 // Since the DataSource is already open by time we call av_open_input_file, we
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 // retrieved. 57 // retrieved.
58 virtual bool GetSize(int64* size_out) = 0; 58 virtual bool GetSize(int64* size_out) = 0;
59 59
60 // Returns false if this protocol supports random seeking. 60 // Returns false if this protocol supports random seeking.
61 virtual bool IsStreaming() = 0; 61 virtual bool IsStreaming() = 0;
62 62
63 private: 63 private:
64 DISALLOW_COPY_AND_ASSIGN(FFmpegURLProtocol); 64 DISALLOW_COPY_AND_ASSIGN(FFmpegURLProtocol);
65 }; 65 };
66 66
67 class FFmpegGlue : public Singleton<FFmpegGlue> { 67 class FFmpegGlue {
68 public: 68 public:
69 // Returns the singleton instance.
70 static FFmpegGlue* GetInstance();
71
69 // Adds a FFmpegProtocol to the FFmpeg glue layer and returns a unique string 72 // Adds a FFmpegProtocol to the FFmpeg glue layer and returns a unique string
70 // that can be passed to FFmpeg to identify the data source. 73 // that can be passed to FFmpeg to identify the data source.
71 std::string AddProtocol(FFmpegURLProtocol* protocol); 74 std::string AddProtocol(FFmpegURLProtocol* protocol);
72 75
73 // Removes a FFmpegProtocol from the FFmpeg glue layer. Using strings from 76 // Removes a FFmpegProtocol from the FFmpeg glue layer. Using strings from
74 // previously added FFmpegProtocols will no longer work. 77 // previously added FFmpegProtocols will no longer work.
75 void RemoveProtocol(FFmpegURLProtocol* protocol); 78 void RemoveProtocol(FFmpegURLProtocol* protocol);
76 79
77 // Assigns the FFmpegProtocol identified with by the given key to 80 // Assigns the FFmpegProtocol identified with by the given key to
78 // |protocol|, or assigns NULL if no such FFmpegProtocol could be found. 81 // |protocol|, or assigns NULL if no such FFmpegProtocol could be found.
(...skipping 16 matching lines...) Expand all
95 // Map between keys and FFmpegProtocol references. 98 // Map between keys and FFmpegProtocol references.
96 typedef std::map<std::string, FFmpegURLProtocol*> ProtocolMap; 99 typedef std::map<std::string, FFmpegURLProtocol*> ProtocolMap;
97 ProtocolMap protocols_; 100 ProtocolMap protocols_;
98 101
99 DISALLOW_COPY_AND_ASSIGN(FFmpegGlue); 102 DISALLOW_COPY_AND_ASSIGN(FFmpegGlue);
100 }; 103 };
101 104
102 } // namespace media 105 } // namespace media
103 106
104 #endif // MEDIA_FILTERS_FFMPEG_GLUE_H_ 107 #endif // MEDIA_FILTERS_FFMPEG_GLUE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698