static void ts_pes_ChainDelete_es( demux_t *p_demux, ts_pes_es_t *p_es ) { while( p_es ) { ts_pes_es_t *p_next = p_es->p_next; ts_pes_ChainDelete_es( p_demux, p_es->p_extraes ); ts_pes_es_Clean( p_demux, p_es ); free( p_es ); p_es = p_next; } }
void ts_pes_Del( demux_t *p_demux, ts_pes_t *pes ) { ts_pes_ChainDelete_es( p_demux, pes->p_es ); if( pes->p_data ) block_ChainRelease( pes->p_data ); if( pes->p_sections_proc ) ts_sections_processor_ChainDelete( pes->p_sections_proc ); if( pes->p_prepcr_outqueue ) block_ChainRelease( pes->p_prepcr_outqueue ); free( pes ); }
void ts_pes_Del( demux_t *p_demux, ts_pes_t *pes ) { ts_pes_ChainDelete_es( p_demux, pes->p_es ); if( pes->gather.p_data ) block_ChainRelease( pes->gather.p_data ); if( pes->p_sections_proc ) ts_sections_processor_ChainDelete( pes->p_sections_proc ); if( pes->prepcr.p_head ) block_ChainRelease( pes->prepcr.p_head ); free( pes ); }
void ts_psip_Del( demux_t *p_demux, ts_psip_t *psip ) { if( psip->p_ctx ) ts_psip_context_Delete( psip->p_ctx ); ts_pes_ChainDelete_es( p_demux, psip->p_eas_es ); if( psip->handle ) { ATSC_Detach_Dvbpsi_Decoders( psip->handle ); dvbpsi_delete( psip->handle ); } for( int i=0; i<psip->eit.i_size; i++ ) PIDRelease( p_demux, psip->eit.p_elems[i] ); ARRAY_RESET( psip->eit ); free( psip ); }