ts_psi_t *ts_psi_New( demux_t *p_demux ) { ts_psi_t *psi = malloc( sizeof( ts_psi_t ) ); if( !psi ) return NULL; if( !handle_Init( p_demux, &psi->handle ) ) { free( psi ); return NULL; } psi->i_version = -1; return psi; }
ts_pat_t *ts_pat_New( demux_t *p_demux ) { ts_pat_t *pat = malloc( sizeof( ts_pat_t ) ); if( !pat ) return NULL; if( !handle_Init( p_demux, &pat->handle ) ) { free( pat ); return NULL; } pat->i_version = -1; pat->i_ts_id = -1; ARRAY_INIT( pat->programs ); return pat; }
ts_si_t *ts_si_New( demux_t *p_demux ) { ts_si_t *si = malloc( sizeof( ts_si_t ) ); if( !si ) return NULL; if( !handle_Init( p_demux, &si->handle ) ) { free( si ); return NULL; } si->i_version = -1; si->eitpid = NULL; si->tdtpid = NULL; return si; }
ts_pmt_t *ts_pmt_New( demux_t *p_demux ) { ts_pmt_t *pmt = malloc( sizeof( ts_pmt_t ) ); if( !pmt ) return NULL; if( !handle_Init( p_demux, &pmt->handle ) ) { free( pmt ); return NULL; } ARRAY_INIT( pmt->e_streams ); pmt->i_version = -1; pmt->i_number = -1; pmt->i_pid_pcr = 0x1FFF; pmt->b_selected = false; pmt->iod = NULL; pmt->od.i_version = -1; ARRAY_INIT( pmt->od.objects ); pmt->i_last_dts = -1; pmt->p_atsc_si_basepid = NULL; pmt->p_si_sdt_pid = NULL; pmt->pcr.i_current = -1; pmt->pcr.i_first = -1; pmt->pcr.b_disable = false; pmt->pcr.i_first_dts = VLC_TS_INVALID; pmt->pcr.i_pcroffset = -1; pmt->pcr.b_fix_done = false; pmt->eit.i_event_length = 0; pmt->eit.i_event_start = 0; return pmt; }
ts_psip_t *ts_psip_New( demux_t *p_demux ) { ts_psip_t *psip = malloc( sizeof( ts_psip_t ) ); if( !psip ) return NULL; if( !handle_Init( p_demux, &psip->handle ) ) { free( psip ); return NULL; } ARRAY_INIT( psip->eit ); psip->i_version = -1; psip->p_eas_es = NULL; psip->p_ctx = ts_psip_context_New(); if( !psip->p_ctx ) { ts_psip_Del( p_demux, psip ); psip = NULL; } return psip; }