MHEG5
15.3.0
|
00001 /******************************************************************************* 00002 * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org) 00003 * Copyright © 2012 Ocean Blue Software Ltd 00004 * 00005 * This file is part of a DTVKit Software Component 00006 * You are permitted to copy, modify or distribute this file subject to the terms 00007 * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org 00008 * 00009 * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, 00010 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES 00011 * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. 00012 * 00013 * If you or your organisation is not a member of DTVKit then you have access 00014 * to this source code outside of the terms of the licence agreement 00015 * and you are expected to delete this and any associated files immediately. 00016 * Further information on DTVKit, membership and terms can be found at www.dtvkit.org 00017 *******************************************************************************/ 00028 #ifndef _DVB_ICS_H 00029 #define _DVB_ICS_H 00030 00031 #include "techtype.h" 00032 #include "mherrors.h" 00033 00034 /*---Constant and macro definitions for public use-----------------------------*/ 00035 00036 /*---Enumerations for public use-----------------------------------------------*/ 00037 00038 /* Video termination attribute */ 00039 typedef enum 00040 { 00041 MHEG5_VIDEO_TERMINATION_FREEZE, 00042 MHEG5_VIDEO_TERMINATION_DISAPPEAR 00043 } E_VideoTermination; 00044 00045 typedef enum 00046 { 00047 MHEG5_ICS_PIN_SUPPORT_NONE, 00048 MHEG5_ICS_PIN_SUPPORT_DISABLED, 00049 MHEG5_ICS_PIN_SUPPORT_ENABLED 00050 } E_ICSPinSupport; 00051 00052 typedef enum 00053 { 00054 MHEG5_ICS_PIN_REQ_NEVER, 00055 MHEG5_ICS_PIN_REQ_GUIDANCE_ONLY, 00056 MHEG5_ICS_PIN_REQ_ALWAYS 00057 } E_ICSPinReq; 00058 00059 typedef enum 00060 { 00061 MHEG5_ICS_PIN_STATUS_NOT_REQUIRED, 00062 MHEG5_ICS_PIN_STATUS_OK, 00063 MHEG5_ICS_PIN_STATUS_INVALID 00064 } E_ICSPinStatus; 00065 00066 /*Reference: ETSI ES 202 184 section 11.5.4.2 */ 00067 typedef enum 00068 { 00069 ICS_AC_NONE, 00070 ICS_AC_AAC_ADTS, /* ISO/IEC 13818-7 */ 00071 ICS_AC_HE_AAC_LATM, /* ISO/IEC 14496-3 */ 00072 ICS_AC_EAC3, /* TS 102 366 */ 00073 } E_ICSAudioCodec; 00074 00075 /*Reference: ETSI ES 202 184 section 11.5.4.1 */ 00076 typedef enum 00077 { 00078 ICS_VC_NONE, 00079 ICS_VC_H264, 00080 } E_ICSVideoCodec; 00081 00082 /*---Global type defs for public use-------------------------------------------*/ 00083 00084 /* Encryption keys for IP streams */ 00085 typedef struct 00086 { 00087 U8BIT odd[32]; 00088 U8BIT even[32]; 00089 } S_ICSPidKeys; 00090 00091 typedef struct s_StreamPids 00092 { 00093 U16BIT pcr_pid; 00094 U16BIT audio_pid; 00095 U16BIT video_pid; 00096 U16BIT subtitle_pid; 00097 } S_StreamPids; 00098 00099 /*---Global Function prototypes for public use---------------------------------*/ 00100 00122 E_MhegErr DVB_MhegICStreamSetup(S_StreamPids pids, S_ICSPidKeys *audio_keys, 00123 S_ICSPidKeys *video_keys, E_VideoTermination video_termination, 00124 E_ICSAudioCodec audio_codec, E_ICSVideoCodec video_codec ); 00125 00143 U32BIT DVB_MhegICStreamHandleData(U8BIT *data, U32BIT len, BOOLEAN last); 00144 00156 E_MhegErr DVB_MhegICStreamRelease(void); 00157 00169 E_MhegErr DVB_MhegICStreamPause(void); 00170 00181 E_MhegErr DVB_MhegICStreamResume(void); 00182 00192 E_MhegErr DVB_MhegICStreamAudioSetVolume(S32BIT volumeAdjust); 00193 00208 E_MhegErr DVB_MhegPromptForGuidance(U8BIT *restriction, BOOLEAN show); 00209 00221 E_MhegErr DVB_MhegGetPINSupport(E_ICSPinSupport *support); 00222 00223 #ifdef INCLUDE_FREESAT 00224 00239 E_MhegErr DVB_MhegIsConnectionAllowed(S32BIT service_index, BOOLEAN *pAllowed); 00240 00252 E_MhegErr DVB_MhegGetPINRequirement(E_ICSPinReq *status); 00253 00266 E_MhegErr DVB_MhegValidatePIN(U8BIT *pin, E_ICSPinStatus *status); 00267 00279 E_MhegErr DVB_MhegGetMACAddress(U8BIT address[6]); 00280 00299 E_MhegErr DVB_MhegGetPrivateKey(U8BIT *buffer, U16BIT bufsize, 00300 U16BIT *keylen, U32BIT *version); 00301 00302 #endif /* INCLUDE_FREESAT */ 00303 00304 #endif /*_DVB_ICS_H*/