/* * dvb_dr_13818.h -- header for descriptor tag for 0x02~0x12(13818-1) 0x13~0x1a(13818-6) * * Copyright (C) 2006 SunMedia Co, chengdu * Author anlzhao@sunmedia.com.cn * * The source code in this file is written by anlzhao referring to * 13818 and owned by SunMedia Coporation. Application interface * for the MPEG 2 "conditional access" descriptor decoder.This descriptor's * definition can be found in ISO/IEC 13818-1 section 2.6.16. and 13818-6. * * BUGS: * */ #ifndef _DVB_DR_13818_H_ #define _DVB_DR_13818_H_ #include #include "dvb_dr.h" /* * struct dvbpsi_ca_dr_s(0x09) * brief "conditional access" descriptor structure. * This structure is used to store a decoded "conditional access" * descriptor. (ISO/IEC 13818-1 section 2.6.16). * */ typedef struct dvbpsi_ca_dr_s { UINT16 i_ca_system_id; /* CA_system_ID */ UINT16 i_ca_pid; /* CA_PID */ UINT8 i_private_length; /* length of the i_private_data array */ UINT8 i_private_data[256];/* private_data_byte */ } dvbpsi_ca_dr_t; /* * struct dvbpsi_iso639_dr_s(0x0a) * brief "ISO 639 language" descriptor structure * This structure is used to store a decoded "ISO 639 language" * descriptor. (ISO/IEC 13818-1 section 2.6.18). */ typedef struct dvbpsi_iso639_dr_s { UINT8 i_code_count; /* length of the i_iso_639_code array */ UINT8 i_iso_639_code[64][3];/* ISO_639_language_code */ UINT8 i_audio_type[64]; /* audio_type */ } dvbpsi_iso639_dr_t; #ifdef CONFIG_DTMB_SYSTEM /* * struct dvbpsi_DRA_audio_dr_s(0xa0) * brief "DRA audio stream" descriptor structure * This structure is used to store a decoded "DRA audio stream" * descriptor. */ typedef struct dvbpsi_DRA_audio_dr_s { UINT8 text_flag; UINT8 text_length; UINT8 *text; UINT8 language_flag; UINT8 language[4]; } dvbpsi_DRA_audio_dr_t; #endif /* * brief "conditional access(0x09)" descriptor decoder. * @pu8Descriptor: Pointer to the descriptor buffer * @n16Len: The total descriptor length * return a pointer to a new "conditional access" descriptor structure which * contains the decoded data. */ dvbpsi_ca_dr_t *dvbpsi_DecodeCADr(UINT8 *pu8Descriptor, INT16 n16Len); /* * brief "ISO 639 language(0x0a)" descriptor decoder. * @pu8Descriptor: Pointer to the descriptor buffer * @n16Len: The total descriptor length * return a pointer to a new "ISO 639 language" descriptor structure which * contains the decoded data. */ dvbpsi_iso639_dr_t *dvbpsi_DecodeISO639Dr(UINT8 *pu8Descriptor, INT16 n16Len, dvbsi_special_spec eFollowSpecialSpec); #ifdef CONFIG_DTMB_SYSTEM dvbpsi_DRA_audio_dr_t *dvbpsi_DecodeDRAAudioDr(UINT8 * pu8Descriptor, INT16 n16Len); UINT32 dvbpsi_DecodeDRARegistrationDr(UINT8 * pu8Descriptor, INT16 n16Len); #else /* * content protection descriptor decoder for Nordig. * @pu8Descriptor: Pointer to the descriptor buffer * @n16Len: The total descriptor length * Return value of content protection level * which contains the decoded data. */ int dvbpsi_DecodeCPDr(UINT8 * pu8Descriptor, INT16 n16Len); #endif #endif //#ifndef _DVB_DR_13818_H_