sbTranscodeProfile.h
Go to the documentation of this file.
1 /* vim: set sw=2 :miv */
2 /*
3 //
4 // BEGIN SONGBIRD GPL
5 //
6 // This file is part of the Songbird web player.
7 //
8 // Copyright(c) 2005-2009 POTI, Inc.
9 // http://songbirdnest.com
10 //
11 // This file may be licensed under the terms of of the
12 // GNU General Public License Version 2 (the "GPL").
13 //
14 // Software distributed under the License is distributed
15 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
16 // express or implied. See the GPL for the specific language
17 // governing rights and limitations.
18 //
19 // You should have received a copy of the GPL along with this
20 // program. If not, go to http://www.gnu.org/licenses/gpl.html
21 // or write to the Free Software Foundation, Inc.,
22 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23 //
24 // END SONGBIRD GPL
25 //
26 */
27 
28 #ifndef SBTRANSCODEPROFILE_H_
29 #define SBTRANSCODEPROFILE_H_
30 
31 #include <nsIArray.h>
32 #include <sbITranscodeProfile.h>
33 
34 #include <nsCOMPtr.h>
35 #include <nsStringAPI.h>
36 
37 #include <map>
38 
44 {
45 public:
47  NS_DECL_SBITRANSCODEPROFILE
48  NS_DECL_SBITRANSCODEENCODERPROFILE
49 
51 
52 private:
53  ~sbTranscodeProfile();
54 
55 public:
59  nsresult AddPriority(double aQuality, PRUint32 aPriority);
63  nsresult AddAudioBitrate(double aQuality, double aBitrate);
67  nsresult AddVideoBPP(double aQuality, double aBPP);
68 
69 private:
70  nsString mId;
71  PRUint32 mPriority;
72  nsString mDescription;
73  PRUint32 mType;
74  nsString mContainerFormat;
75  nsCString mFileExtension;
76  nsString mAudioCodec;
77  nsString mVideoCodec;
78  nsCOMPtr<nsIArray> mContainerProperties;
79  nsCOMPtr<nsIArray> mAudioProperties;
80  nsCOMPtr<nsIArray> mVideoProperties;
81  nsCOMPtr<nsIArray> mContainerAttributes;
82  nsCOMPtr<nsIArray> mAudioAttributes;
83  nsCOMPtr<nsIArray> mVideoAttributes;
84 
85  /* map for the priority */
86  std::map<double, PRUint32> mPriorityMap;
87  /* map for audio bitrates */
88  std::map<double, double> mAudioBitrateMap;
89  /* map for the video bpps */
90  std::map<double, double> mVideoBPPMap;
91 };
92 
93 #endif /* SBTRANSCODEPROFILE_H_ */
NS_DECL_ISUPPORTS NS_DECL_SBITRANSCODEPROFILE NS_DECL_SBITRANSCODEENCODERPROFILE sbTranscodeProfile()
nsresult AddVideoBPP(double aQuality, double aBPP)
nsresult AddAudioBitrate(double aQuality, double aBitrate)
nsresult AddPriority(double aQuality, PRUint32 aPriority)