MHEG5  15.3.0
include/dvb_ics.h
Go to the documentation of this file.
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*/
 All Data Structures Files Functions Variables Typedefs Defines