• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ------------------------------------------------------------------
2  * Copyright (C) 1998-2009 PacketVideo
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13  * express or implied.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  * -------------------------------------------------------------------
17  */
18 
19 /**
20  *  @file pv_return_codes.h
21  *  @brief This file defines the general return and event codes to be used by PVMF elements.
22  *         Theses base-level codes are unique. Error codes are negative values and informational
23  *         codes are positive values.
24  *  NOTE: If you add any new event, update the PVMFStatusToString method as well.
25  */
26 
27 #ifndef PVMF_RETURN_CODES_H_INCLUDED
28 #define PVMF_RETURN_CODES_H_INCLUDED
29 
30 #ifndef OSCL_BASE_H_INCLUDED
31 #include "oscl_base.h"
32 #endif
33 
34 
35 typedef int32 PVMFStatus;
36 
37 // Return codes
38 /*
39  Return code for general success
40  */
41 const PVMFStatus PVMFSuccess = 1;
42 /*
43  Return code for pending completion
44  */
45 const PVMFStatus PVMFPending = 0;
46 /*
47  Return code for never set
48  */
49 const PVMFStatus PVMFNotSet = 2;
50 
51 
52 // Error codes (negative values)
53 
54 /*
55  Definition of first error event in range (not an actual error code).
56  */
57 const PVMFStatus PVMFErrFirst = (-1);
58 /*
59  Return code for general failure
60  */
61 const PVMFStatus PVMFFailure = (-1);
62 /*
63  Error due to cancellation
64  */
65 const PVMFStatus PVMFErrCancelled = (-2);
66 /*
67  Error due to no memory being available
68  */
69 const PVMFStatus PVMFErrNoMemory = (-3);
70 /*
71  Error due to request not being supported
72  */
73 const PVMFStatus PVMFErrNotSupported = (-4);
74 /*
75  Error due to invalid argument
76  */
77 const PVMFStatus PVMFErrArgument = (-5);
78 /*
79  Error due to invalid resource handle being specified
80  */
81 const PVMFStatus PVMFErrBadHandle = (-6);
82 /*
83  Error due to resource already exists and another one cannot be created
84  */
85 const PVMFStatus PVMFErrAlreadyExists = (-7);
86 /*
87  Error due to resource being busy and request cannot be handled
88  */
89 const PVMFStatus PVMFErrBusy = (-8);
90 /*
91  Error due to resource not ready to accept request
92  */
93 const PVMFStatus PVMFErrNotReady = (-9);
94 /*
95  Error due to data corruption being detected
96  */
97 const PVMFStatus PVMFErrCorrupt = (-10);
98 /*
99  Error due to request timing out
100  */
101 const PVMFStatus PVMFErrTimeout = (-11);
102 /*
103  Error due to general overflow
104  */
105 const PVMFStatus PVMFErrOverflow = (-12);
106 /*
107  Error due to general underflow
108  */
109 const PVMFStatus PVMFErrUnderflow = (-13);
110 /*
111  Error due to resource being in wrong state to handle request
112  */
113 const PVMFStatus PVMFErrInvalidState = (-14);
114 /*
115  Error due to resource not being available
116  */
117 const PVMFStatus PVMFErrNoResources = (-15);
118 /*
119  Error due to invalid configuration of resource
120  */
121 const PVMFStatus PVMFErrResourceConfiguration = (-16);
122 /*
123  Error due to general error in underlying resource
124  */
125 const PVMFStatus PVMFErrResource = (-17);
126 /*
127  Error due to general data processing
128  */
129 const PVMFStatus PVMFErrProcessing = (-18);
130 /*
131  Error due to general port processing
132  */
133 const PVMFStatus PVMFErrPortProcessing = (-19);
134 /*
135  Error due to lack of authorization to access a resource.
136  */
137 const PVMFStatus PVMFErrAccessDenied = (-20);
138 /*
139  Error due to the lack of a valid license for the content
140  */
141 const PVMFStatus PVMFErrLicenseRequired = (-21);
142 /*
143  Error due to the lack of a valid license for the content.  However
144  a preview is available.
145  */
146 const PVMFStatus PVMFErrLicenseRequiredPreviewAvailable = (-22);
147 /*
148  Error due to the download content length larger than the maximum request size
149  */
150 const PVMFStatus PVMFErrContentTooLarge = (-23);
151 /*
152  Error due to a maximum number of objects in use
153  */
154 const PVMFStatus PVMFErrMaxReached = (-24);
155 /*
156  Return code for low disk space
157  */
158 const PVMFStatus PVMFLowDiskSpace = (-25);
159 /*
160  Error due to the requirement of user-id and password input from app for HTTP basic/digest authentication
161  */
162 const PVMFStatus PVMFErrHTTPAuthenticationRequired = (-26);
163 /*
164  PVMFMediaClock specific error. Callback has become invalid due to change in direction of NPT clock.
165 */
166 const PVMFStatus PVMFErrCallbackHasBecomeInvalid = (-27);
167 /*
168  PVMFMediaClock specific error. Callback is called as clock has stopped.
169 */
170 const PVMFStatus PVMFErrCallbackClockStopped = (-28);
171 /*
172  Error due to missing call for ReleaseMatadataValue() API
173  */
174 const PVMFStatus PVMFErrReleaseMetadataValueNotDone = (-29);
175 /*
176  Error due to the redirect error
177 */
178 const PVMFStatus PVMFErrRedirect = (-30);
179 /*
180  Error if a given method or API is not implemented. This is NOT the same as PVMFErrNotSupported.
181 */
182 const PVMFStatus PVMFErrNotImplemented = (-31);
183 /*
184  Error: the video container is not valid for progressive playback.
185  */
186 const PVMFStatus PVMFErrContentInvalidForProgressivePlayback = (-32);
187 /*
188  Placeholder for last event in range.
189  */
190 const PVMFStatus PVMFErrLast = (-100);
191 /*
192  Macro to tell if a value is in PVMFErr range
193  */
194 #define IsPVMFErrCode(s) ((PVMFErrLast<=s)&&(s<=PVMFErrFirst))
195 
196 // Informational codes (positive values)
197 
198 const PVMFStatus PVMFInfoFirst = 10;
199 
200 /*
201  Notification that a port was created
202  */
203 const PVMFStatus PVMFInfoPortCreated = 10;
204 /*
205  Notification that a port was deleted
206  */
207 const PVMFStatus PVMFInfoPortDeleted = 11;
208 /*
209  Notification that a port was connected
210  */
211 const PVMFStatus PVMFInfoPortConnected = 12;
212 /*
213  Notification that a port was disconnected
214  */
215 const PVMFStatus PVMFInfoPortDisconnected = 13;
216 /*
217  Notification that an overflow occurred (not fatal error)
218  */
219 const PVMFStatus PVMFInfoOverflow = 14;
220 /*
221  Notification that an underflow occurred (not fatal error)
222  */
223 const PVMFStatus PVMFInfoUnderflow = 15;
224 /*
225  Notification that a processing failure occurred (not fatal error)
226  */
227 const PVMFStatus PVMFInfoProcessingFailure = 16;
228 /*
229  Notification that end of data stream has been reached
230  */
231 const PVMFStatus PVMFInfoEndOfData = 17;
232 /*
233  Notification that a data buffer has been created
234  */
235 const PVMFStatus PVMFInfoBufferCreated = 18;
236 /*
237  Notification that buffering of data has started
238  */
239 const PVMFStatus PVMFInfoBufferingStart = 19;
240 /*
241  Notification for data buffering level status
242  */
243 const PVMFStatus PVMFInfoBufferingStatus = 20;
244 /*
245  Notification that data buffering has completed
246  */
247 const PVMFStatus PVMFInfoBufferingComplete = 21;
248 /*
249  Notification that data is ready for use
250  */
251 const PVMFStatus PVMFInfoDataReady = 22;
252 /*
253  Notification for position status
254  */
255 const PVMFStatus PVMFInfoPositionStatus = 23;
256 /*
257  Notification for node state change
258  */
259 const PVMFStatus PVMFInfoStateChanged = 24;
260 /*
261  Notification that data was discarded during synchronization.
262  */
263 const PVMFStatus PVMFInfoDataDiscarded = 25;
264 /*
265  Notification that error handling has started
266  */
267 const PVMFStatus PVMFInfoErrorHandlingStart = 26;
268 /*
269  Notification that error handling has completed
270  */
271 const PVMFStatus PVMFInfoErrorHandlingComplete = 27;
272 /*
273  Notification from a remote source
274  */
275 const PVMFStatus PVMFInfoRemoteSourceNotification = 28;
276 /*
277  Notification that license acquisition has started.
278  */
279 const PVMFStatus PVMFInfoLicenseAcquisitionStarted = 29;
280 /*
281  Notification that download content length is available
282  */
283 const PVMFStatus PVMFInfoContentLength = 30;
284 /*
285  Notification that downloaded content reaches the maximum request size, and will
286  be truncated, especially for the case of unavailable content length
287  */
288 const PVMFStatus PVMFInfoContentTruncated = 31;
289 /*
290  Notification that source format is not supported, typically sent
291  during protocol rollover
292  */
293 const PVMFStatus PVMFInfoSourceFormatNotSupported = 32;
294 /*
295  Notification that a clip transition has occurred while playing a playlist
296  */
297 const PVMFStatus PVMFInfoPlayListClipTransition = 33;
298 /*
299  Notification that content type for download or HTTP streaming is available
300  */
301 const PVMFStatus PVMFInfoContentType = 34;
302 /*
303  Notification that paticular track is disable. This one is on a per track basis.
304  */
305 const PVMFStatus PVMFInfoTrackDisable = 35;
306 /*
307  Notification that unexpected data has been obtained, especially for download,
308  when client receives from server more data than requested in content-length header
309  */
310 const PVMFStatus PVMFInfoUnexpectedData = 36;
311 /*
312  Notification that server discnnect happens after download is complete
313  */
314 const PVMFStatus PVMFInfoSessionDisconnect = 37;
315 /*
316  Notification that new meadi stream has been started
317  */
318 const PVMFStatus PVMFInfoStartOfData = 38;
319 /*
320  Notification that node has processed a command with ReportObserver marker info
321  */
322 const PVMFStatus PVMFInfoReportObserverRecieved = 39;
323 /*
324  Notification that meta data is available with source node
325  */
326 const PVMFStatus PVMFInfoMetadataAvailable = 40;
327 /*
328  Notification that duration is available with source node
329  */
330 const PVMFStatus PVMFInfoDurationAvailable = 41;
331 /*
332  Notification that Change Position request not supported
333  */
334 const PVMFStatus PVMFInfoChangePlaybackPositionNotSupported = 42;
335 /*
336  Notification that the content is poorly inter-leaved
337  */
338 const PVMFStatus PVMFInfoPoorlyInterleavedContent = 43;
339 /*
340  Notification for actual playback position after repositioning
341  */
342 const PVMFStatus PVMFInfoActualPlaybackPosition = 44;
343 /*
344  Notification that the live buffer is empty
345  */
346 const PVMFStatus PVMFInfoLiveBufferEmpty = 45;
347 /*
348  Notification that a server has responded with 200 OK to a Playlist play request
349  */
350 const PVMFStatus PVMFInfoPlayListSwitch = 46;
351 /*
352  Notification of configuration complete
353  */
354 const PVMFStatus PVMFMIOConfigurationComplete = 47;
355 /*
356  Notification that the video track is falling behind
357  */
358 const PVMFStatus PVMFInfoVideoTrackFallingBehind = 48;
359 /*
360  Notification that memory is not available for new RTP packets
361  */
362 const PVMFStatus PVMFInfoSourceOverflow = 49;
363 /*
364  Notification for Media data length in shoutcast session
365  */
366 const PVMFStatus PVMFInfoShoutcastMediaDataLength = 50;
367 /*
368  Notification for clip bitrate in shoutcast session
369  */
370 const PVMFStatus PVMFInfoShoutcastClipBitrate = 51;
371 /*
372  Notification for shoutcast session
373  */
374 const PVMFStatus PVMFInfoIsShoutcastSesssion = 52;
375 /*
376  Placeholder for end of range
377  */
378 const PVMFStatus PVMFInfoLast = 100;
379 /*
380  Macro to tell if a code is in PVMFInfo range
381  */
382 #define IsPVMFInfoCode(s) ((PVMFInfoFirst<=s)&&(s<=PVMFInfoLast))
383 
384 // Convert a PVMFStatus code to a string that can be used in logs.
385 // @param status code.
386 // @return a human readable string representing the status.
387 OSCL_IMPORT_REF const char *PVMFStatusToString(const PVMFStatus status);
388 
389 #endif
390