blob: 5c8ece48b7ab02f4c723603b903420aa962f51b0 [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
/**
* @file pv_return_codes.h
* @brief This file defines the general return and event codes to be used by PVMF elements.
* Theses base-level codes are unique. Error codes are negative values and informational
* codes are positive values.
* NOTE: If you add any new event, update the PVMFStatusToString method as well.
*/
#ifndef PVMF_RETURN_CODES_H_INCLUDED
#define PVMF_RETURN_CODES_H_INCLUDED
#ifndef OSCL_BASE_H_INCLUDED
#include "oscl_base.h"
#endif
typedef int32 PVMFStatus;
// Return codes
/*
Return code for general success
*/
const PVMFStatus PVMFSuccess = 1;
/*
Return code for pending completion
*/
const PVMFStatus PVMFPending = 0;
/*
Return code for never set
*/
const PVMFStatus PVMFNotSet = 2;
// Error codes (negative values)
/*
Definition of first error event in range (not an actual error code).
*/
const PVMFStatus PVMFErrFirst = (-1);
/*
Return code for general failure
*/
const PVMFStatus PVMFFailure = (-1);
/*
Error due to cancellation
*/
const PVMFStatus PVMFErrCancelled = (-2);
/*
Error due to no memory being available
*/
const PVMFStatus PVMFErrNoMemory = (-3);
/*
Error due to request not being supported
*/
const PVMFStatus PVMFErrNotSupported = (-4);
/*
Error due to invalid argument
*/
const PVMFStatus PVMFErrArgument = (-5);
/*
Error due to invalid resource handle being specified
*/
const PVMFStatus PVMFErrBadHandle = (-6);
/*
Error due to resource already exists and another one cannot be created
*/
const PVMFStatus PVMFErrAlreadyExists = (-7);
/*
Error due to resource being busy and request cannot be handled
*/
const PVMFStatus PVMFErrBusy = (-8);
/*
Error due to resource not ready to accept request
*/
const PVMFStatus PVMFErrNotReady = (-9);
/*
Error due to data corruption being detected
*/
const PVMFStatus PVMFErrCorrupt = (-10);
/*
Error due to request timing out
*/
const PVMFStatus PVMFErrTimeout = (-11);
/*
Error due to general overflow
*/
const PVMFStatus PVMFErrOverflow = (-12);
/*
Error due to general underflow
*/
const PVMFStatus PVMFErrUnderflow = (-13);
/*
Error due to resource being in wrong state to handle request
*/
const PVMFStatus PVMFErrInvalidState = (-14);
/*
Error due to resource not being available
*/
const PVMFStatus PVMFErrNoResources = (-15);
/*
Error due to invalid configuration of resource
*/
const PVMFStatus PVMFErrResourceConfiguration = (-16);
/*
Error due to general error in underlying resource
*/
const PVMFStatus PVMFErrResource = (-17);
/*
Error due to general data processing
*/
const PVMFStatus PVMFErrProcessing = (-18);
/*
Error due to general port processing
*/
const PVMFStatus PVMFErrPortProcessing = (-19);
/*
Error due to lack of authorization to access a resource.
*/
const PVMFStatus PVMFErrAccessDenied = (-20);
/*
Error due to the lack of a valid license for the content
*/
const PVMFStatus PVMFErrLicenseRequired = (-21);
/*
Error due to the lack of a valid license for the content. However
a preview is available.
*/
const PVMFStatus PVMFErrLicenseRequiredPreviewAvailable = (-22);
/*
Error due to the download content length larger than the maximum request size
*/
const PVMFStatus PVMFErrContentTooLarge = (-23);
/*
Error due to a maximum number of objects in use
*/
const PVMFStatus PVMFErrMaxReached = (-24);
/*
Return code for low disk space
*/
const PVMFStatus PVMFLowDiskSpace = (-25);
/*
Error due to the requirement of user-id and password input from app for HTTP basic/digest authentication
*/
const PVMFStatus PVMFErrHTTPAuthenticationRequired = (-26);
/*
PVMFMediaClock specific error. Callback has become invalid due to change in direction of NPT clock.
*/
const PVMFStatus PVMFErrCallbackHasBecomeInvalid = (-27);
/*
PVMFMediaClock specific error. Callback is called as clock has stopped.
*/
const PVMFStatus PVMFErrCallbackClockStopped = (-28);
/*
Error due to missing call for ReleaseMatadataValue() API
*/
const PVMFStatus PVMFErrReleaseMetadataValueNotDone = (-29);
/*
Error due to the redirect error
*/
const PVMFStatus PVMFErrRedirect = (-30);
/*
Error if a given method or API is not implemented. This is NOT the same as PVMFErrNotSupported.
*/
const PVMFStatus PVMFErrNotImplemented = (-31);
/*
Error: the video container is not valid for progressive playback.
*/
const PVMFStatus PVMFErrContentInvalidForProgressivePlayback = (-32);
/*
Placeholder for last event in range.
*/
const PVMFStatus PVMFErrLast = (-100);
/*
Macro to tell if a value is in PVMFErr range
*/
#define IsPVMFErrCode(s) ((PVMFErrLast<=s)&&(s<=PVMFErrFirst))
// Informational codes (positive values)
const PVMFStatus PVMFInfoFirst = 10;
/*
Notification that a port was created
*/
const PVMFStatus PVMFInfoPortCreated = 10;
/*
Notification that a port was deleted
*/
const PVMFStatus PVMFInfoPortDeleted = 11;
/*
Notification that a port was connected
*/
const PVMFStatus PVMFInfoPortConnected = 12;
/*
Notification that a port was disconnected
*/
const PVMFStatus PVMFInfoPortDisconnected = 13;
/*
Notification that an overflow occurred (not fatal error)
*/
const PVMFStatus PVMFInfoOverflow = 14;
/*
Notification that an underflow occurred (not fatal error)
*/
const PVMFStatus PVMFInfoUnderflow = 15;
/*
Notification that a processing failure occurred (not fatal error)
*/
const PVMFStatus PVMFInfoProcessingFailure = 16;
/*
Notification that end of data stream has been reached
*/
const PVMFStatus PVMFInfoEndOfData = 17;
/*
Notification that a data buffer has been created
*/
const PVMFStatus PVMFInfoBufferCreated = 18;
/*
Notification that buffering of data has started
*/
const PVMFStatus PVMFInfoBufferingStart = 19;
/*
Notification for data buffering level status
*/
const PVMFStatus PVMFInfoBufferingStatus = 20;
/*
Notification that data buffering has completed
*/
const PVMFStatus PVMFInfoBufferingComplete = 21;
/*
Notification that data is ready for use
*/
const PVMFStatus PVMFInfoDataReady = 22;
/*
Notification for position status
*/
const PVMFStatus PVMFInfoPositionStatus = 23;
/*
Notification for node state change
*/
const PVMFStatus PVMFInfoStateChanged = 24;
/*
Notification that data was discarded during synchronization.
*/
const PVMFStatus PVMFInfoDataDiscarded = 25;
/*
Notification that error handling has started
*/
const PVMFStatus PVMFInfoErrorHandlingStart = 26;
/*
Notification that error handling has completed
*/
const PVMFStatus PVMFInfoErrorHandlingComplete = 27;
/*
Notification from a remote source
*/
const PVMFStatus PVMFInfoRemoteSourceNotification = 28;
/*
Notification that license acquisition has started.
*/
const PVMFStatus PVMFInfoLicenseAcquisitionStarted = 29;
/*
Notification that download content length is available
*/
const PVMFStatus PVMFInfoContentLength = 30;
/*
Notification that downloaded content reaches the maximum request size, and will
be truncated, especially for the case of unavailable content length
*/
const PVMFStatus PVMFInfoContentTruncated = 31;
/*
Notification that source format is not supported, typically sent
during protocol rollover
*/
const PVMFStatus PVMFInfoSourceFormatNotSupported = 32;
/*
Notification that a clip transition has occurred while playing a playlist
*/
const PVMFStatus PVMFInfoPlayListClipTransition = 33;
/*
Notification that content type for download or HTTP streaming is available
*/
const PVMFStatus PVMFInfoContentType = 34;
/*
Notification that paticular track is disable. This one is on a per track basis.
*/
const PVMFStatus PVMFInfoTrackDisable = 35;
/*
Notification that unexpected data has been obtained, especially for download,
when client receives from server more data than requested in content-length header
*/
const PVMFStatus PVMFInfoUnexpectedData = 36;
/*
Notification that server discnnect happens after download is complete
*/
const PVMFStatus PVMFInfoSessionDisconnect = 37;
/*
Notification that new meadi stream has been started
*/
const PVMFStatus PVMFInfoStartOfData = 38;
/*
Notification that node has processed a command with ReportObserver marker info
*/
const PVMFStatus PVMFInfoReportObserverRecieved = 39;
/*
Notification that meta data is available with source node
*/
const PVMFStatus PVMFInfoMetadataAvailable = 40;
/*
Notification that duration is available with source node
*/
const PVMFStatus PVMFInfoDurationAvailable = 41;
/*
Notification that Change Position request not supported
*/
const PVMFStatus PVMFInfoChangePlaybackPositionNotSupported = 42;
/*
Notification that the content is poorly inter-leaved
*/
const PVMFStatus PVMFInfoPoorlyInterleavedContent = 43;
/*
Notification for actual playback position after repositioning
*/
const PVMFStatus PVMFInfoActualPlaybackPosition = 44;
/*
Notification that the live buffer is empty
*/
const PVMFStatus PVMFInfoLiveBufferEmpty = 45;
/*
Notification that a server has responded with 200 OK to a Playlist play request
*/
const PVMFStatus PVMFInfoPlayListSwitch = 46;
/*
Notification of configuration complete
*/
const PVMFStatus PVMFMIOConfigurationComplete = 47;
/*
Notification that the video track is falling behind
*/
const PVMFStatus PVMFInfoVideoTrackFallingBehind = 48;
/*
Notification that memory is not available for new RTP packets
*/
const PVMFStatus PVMFInfoSourceOverflow = 49;
/*
Notification for Media data length in shoutcast session
*/
const PVMFStatus PVMFInfoShoutcastMediaDataLength = 50;
/*
Notification for clip bitrate in shoutcast session
*/
const PVMFStatus PVMFInfoShoutcastClipBitrate = 51;
/*
Notification for shoutcast session
*/
const PVMFStatus PVMFInfoIsShoutcastSesssion = 52;
/*
Placeholder for end of range
*/
const PVMFStatus PVMFInfoLast = 100;
/*
Macro to tell if a code is in PVMFInfo range
*/
#define IsPVMFInfoCode(s) ((PVMFInfoFirst<=s)&&(s<=PVMFInfoLast))
// Convert a PVMFStatus code to a string that can be used in logs.
// @param status code.
// @return a human readable string representing the status.
OSCL_IMPORT_REF const char *PVMFStatusToString(const PVMFStatus status);
#endif