void program_map_section_free(program_map_section_t *pms) { if (pms == NULL) return; if (pms->descriptors != NULL) { vqarray_foreach(pms->descriptors, descriptor_free); vqarray_free(pms->descriptors); } if (pms->es_info) { vqarray_foreach(pms->es_info, (vqarray_functor_t) es_info_free); vqarray_free(pms->es_info); } free(pms); }
void es_info_free(elementary_stream_info_t *es) { if (es == NULL) return; if (es->descriptors != NULL) { vqarray_foreach(es->descriptors, descriptor_free); vqarray_free(es->descriptors); } free(es); }
void conditional_access_section_free(conditional_access_section_t *cas) { if (cas == NULL) return; if (cas->descriptors != NULL) { vqarray_foreach(cas->descriptors, (vqarray_functor_t)descriptor_free); vqarray_free(cas->descriptors); } free(cas); }
void mpeg2ts_stream_free(mpeg2ts_stream_t *m2s) { if (m2s == NULL) return; if (m2s->programs != NULL) { vqarray_foreach(m2s->programs, mpeg2ts_program_free); vqarray_free(m2s->programs); } if (m2s->pat != NULL) { program_association_section_free(m2s->pat); } free(m2s); }
void mpeg2ts_program_free(mpeg2ts_program_t *m2p) { if (m2p == NULL) return; if (m2p->pids != NULL) { vqarray_foreach(m2p->pids, pid_info_free); vqarray_free(m2p->pids); } if (m2p->pmt != NULL) { program_map_section_free(m2p->pmt); } free(m2p); }