netwerk/protocol/rtsp/controller/RtspMetaData.cpp

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:437eef958899
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 ts=8 et tw=80 : */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7 #include "RtspMetaData.h"
8 #include "prlog.h"
9
10 using namespace mozilla;
11
12 namespace mozilla {
13 namespace net {
14
15 NS_IMPL_ISUPPORTS(RtspMetaData, nsIStreamingProtocolMetaData)
16
17 RtspMetaData::RtspMetaData()
18 : mIndex(0)
19 , mWidth(0)
20 , mHeight(0)
21 , mDuration(0)
22 , mSampleRate(0)
23 , mCurrentTimeStamp(0)
24 , mChannelCount(0)
25 {
26 mMimeType.AssignLiteral("NONE");
27 }
28
29 RtspMetaData::~RtspMetaData()
30 {
31
32 }
33
34 nsresult
35 RtspMetaData::DeserializeRtspMetaData(const InfallibleTArray<RtspMetadataParam>& metaArray)
36 {
37 nsresult rv;
38
39 // Deserialize meta data.
40 for (uint32_t i = 0; i < metaArray.Length(); i++) {
41 const RtspMetaValue& value = metaArray[i].value();
42 const nsCString& name = metaArray[i].name();
43
44 if (name.EqualsLiteral("FRAMETYPE")) {
45 rv = SetFrameType(value);
46 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
47 } else if (name.EqualsLiteral("TIMESTAMP")) {
48 rv = SetTimeStamp(value);
49 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
50 } else if (name.EqualsLiteral("TRACKS")) {
51 rv = SetTotalTracks(value);
52 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
53 } else if(name.EqualsLiteral("MIMETYPE")) {
54 rv = SetMimeType(value);
55 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
56 } else if (name.EqualsLiteral("WIDTH")) {
57 rv = SetWidth(value);
58 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
59 } else if (name.EqualsLiteral("HEIGHT")) {
60 rv = SetHeight(value);
61 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
62 } else if (name.EqualsLiteral("SAMPLERATE")) {
63 rv = SetSampleRate(value);
64 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
65 } else if(name.EqualsLiteral("DURATION")) {
66 rv = SetDuration(value);
67 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
68 } else if (name.EqualsLiteral("CHANNELCOUNT")) {
69 rv = SetChannelCount(value);
70 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
71 } else if (name.EqualsLiteral("ESDS")) {
72 rv = SetEsdsData(value);
73 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
74 } else if (name.EqualsLiteral("AVCC")) {
75 rv = SetAvccData(value);
76 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
77 }
78 }
79
80 return NS_OK;
81 }
82
83 NS_IMETHODIMP
84 RtspMetaData::GetFrameType(uint32_t *aFrameType)
85 {
86 NS_ENSURE_ARG_POINTER(aFrameType);
87 *aFrameType = mFrameType;
88 return NS_OK;
89 }
90
91 NS_IMETHODIMP
92 RtspMetaData::SetFrameType(uint32_t aFrameType)
93 {
94 mFrameType = aFrameType;
95 return NS_OK;
96 }
97
98 NS_IMETHODIMP
99 RtspMetaData::GetTotalTracks(uint32_t *aTracks)
100 {
101 NS_ENSURE_ARG_POINTER(aTracks);
102 *aTracks = mTotalTracks;
103 return NS_OK;
104 }
105
106 NS_IMETHODIMP
107 RtspMetaData::SetTotalTracks(uint32_t aTracks)
108 {
109 mTotalTracks = aTracks;
110 return NS_OK;
111 }
112
113 NS_IMETHODIMP
114 RtspMetaData::GetMimeType(nsACString & aMimeType)
115 {
116 aMimeType.Assign(mMimeType);
117 return NS_OK;
118 }
119
120 NS_IMETHODIMP
121 RtspMetaData::SetMimeType(const nsACString & aMimeType)
122 {
123 mMimeType.Assign(aMimeType);
124 return NS_OK;
125 }
126
127 NS_IMETHODIMP
128 RtspMetaData::GetWidth(uint32_t *aWidth)
129 {
130 NS_ENSURE_ARG_POINTER(aWidth);
131 *aWidth = mWidth;
132 return NS_OK;
133 }
134
135 NS_IMETHODIMP
136 RtspMetaData::SetWidth(uint32_t aWidth)
137 {
138 mWidth = aWidth;
139 return NS_OK;
140 }
141
142 /* attribute unsigned long height; */
143 NS_IMETHODIMP
144 RtspMetaData::GetHeight(uint32_t *aHeight)
145 {
146 NS_ENSURE_ARG_POINTER(aHeight);
147 *aHeight = mHeight;
148 return NS_OK;
149 }
150
151 NS_IMETHODIMP
152 RtspMetaData::SetHeight(uint32_t aHeight)
153 {
154 mHeight = aHeight;
155 return NS_OK;
156 }
157
158 /* attribute unsigned long long duration; */
159 NS_IMETHODIMP
160 RtspMetaData::GetDuration(uint64_t *aDuration)
161 {
162 NS_ENSURE_ARG_POINTER(aDuration);
163 *aDuration = mDuration;
164 return NS_OK;
165 }
166
167 NS_IMETHODIMP
168 RtspMetaData::SetDuration(uint64_t aDuration)
169 {
170 mDuration = aDuration;
171 return NS_OK;
172 }
173
174 /* attribute unsigned long sampleRate; */
175 NS_IMETHODIMP
176 RtspMetaData::GetSampleRate(uint32_t *aSampleRate)
177 {
178 NS_ENSURE_ARG_POINTER(aSampleRate);
179 *aSampleRate = mSampleRate;
180 return NS_OK;
181 }
182
183 NS_IMETHODIMP
184 RtspMetaData::SetSampleRate(uint32_t aSampleRate)
185 {
186 mSampleRate = aSampleRate;
187 return NS_OK;
188 }
189
190 NS_IMETHODIMP
191 RtspMetaData::GetTimeStamp(uint64_t *aTimeStamp)
192 {
193 NS_ENSURE_ARG_POINTER(aTimeStamp);
194 *aTimeStamp = mCurrentTimeStamp;
195 return NS_OK;
196 }
197
198 NS_IMETHODIMP
199 RtspMetaData::SetTimeStamp(uint64_t aTimeStamp)
200 {
201 mCurrentTimeStamp = aTimeStamp;
202 return NS_OK;
203 }
204
205 NS_IMETHODIMP
206 RtspMetaData::GetChannelCount(uint32_t *aChannelCount)
207 {
208 NS_ENSURE_ARG_POINTER(aChannelCount);
209 *aChannelCount = mChannelCount;
210 return NS_OK;
211 }
212
213 NS_IMETHODIMP
214 RtspMetaData::SetChannelCount(uint32_t aChannelCount)
215 {
216 mChannelCount = aChannelCount;
217 return NS_OK;
218 }
219
220 NS_IMETHODIMP
221 RtspMetaData::GetEsdsData(nsACString & aESDS)
222 {
223 aESDS.Assign(mESDS);
224 return NS_OK;
225 }
226
227 NS_IMETHODIMP
228 RtspMetaData::SetEsdsData(const nsACString & aESDS)
229 {
230 mESDS.Assign(aESDS);
231 return NS_OK;
232 }
233
234 NS_IMETHODIMP
235 RtspMetaData::GetAvccData(nsACString & aAVCC)
236 {
237 aAVCC.Assign(mAVCC);
238 return NS_OK;
239 }
240
241 NS_IMETHODIMP
242 RtspMetaData::SetAvccData(const nsACString & aAVCC)
243 {
244 mAVCC.Assign(aAVCC);
245 return NS_OK;
246 }
247
248 } // namespace mozilla::net
249 } // namespace mozilla

mercurial