/*************************************************************************** * Copyright (c) 2008, Broadcom Corporation * All Rights Reserved * Confidential Property of Broadcom Corporation * * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. * * $brcm_Workfile: $ * $brcm_Revision: $ * $brcm_Date: $ * * Module Description: * * Revision History: * * $brcm_Log: $ * ***************************************************************************/ #ifndef SCTE_18H__ #define SCTE_18_H__ #include "bdispatch.h" #include "ts_scte_18.h" #define SCTE_18_ALERT_PRIORITY 0 /* will use this for the priority level checking, 12 and up */ #define SCTE_18_ALERT_NEED_AUDIO 15 /* only maximum level alert required audio, per SCTE 18 spec. */ #define SCTE_18_ACQ_AUDIO 0x01 #define SCTE_18_ACQ_TEXT 0x02 typedef struct { b_mutex_t mutex; /* mutex for list handling */ TS_SCTE_18_header header; /* header structure */ TS_SCTE_18_exception exception; /* keep one execption header */ uint8_t *pMsg; /* message buffer */ /* cache some important information for later use since we will reuse packet buffer */ int enable; /* enable scte 18 process */ int alert_in_progress; /* alert in progress */ uint16_t original_source_ID; /* original source to switch back after alert timeout */ uint16_t orignal_audio_source_ID;/* original audio source ID to switch back after alert timeout */ uint16_t sequence_number; /* sequence number (% 32) */ uint16_t EAS_event_ID; /* event ID */ uint16_t alert_message_time_remaining; /* for remaining, 0 - 120 in seconds, 0 for indefinite duration */ int event_start_time; uint16_t event_duration; /* 15 - 6000 in minutes */ uint16_t alert_priority; /* 0 - 15, we will process only 12 and up */ uint16_t details_OOB_source_ID; /* source ID to switch to */ uint16_t audio_OOB_source_ID; /* audio source ID to switch to, only required for priority 15 */ } scte_18_handle, *pscte_18_handle; pscte_18_handle scte_18_init(void); void scte_18_deinit(pscte_18_handle pscte_18); /* process scte 18 data */ int scte_18_process(pscte_18_handle pscte_18, unsigned char *pkt, int size); #endif /* SCTE_18_H__ */