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);
}
Ejemplo n.º 3
0
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);
}