void theora_encoder_clear (CP_INSTANCE * cpi){ if(cpi){ ClearHuffmanSet(&cpi->pb); ClearFragmentInfo(&cpi->pb); ClearFrameInfo(&cpi->pb); EClearFragmentInfo(cpi); EClearFrameInfo(cpi); ClearTmpBuffers(&cpi->pb); ClearPPInstance(&cpi->pp); oggpackB_writeclear(cpi->oggbuffer); _ogg_free(cpi->oggbuffer); _ogg_free(cpi); } }
static void theora_encode_clear (theora_state *th){ CP_INSTANCE *cpi; cpi=(CP_INSTANCE *)th->internal_encode; if(cpi){ ClearHuffmanSet(&cpi->pb); ClearFragmentInfo(&cpi->pb); ClearFrameInfo(&cpi->pb); EClearFragmentInfo(cpi); EClearFrameInfo(cpi); ClearTmpBuffers(&cpi->pb); ClearPPInstance(&cpi->pp); oggpackB_writeclear(cpi->oggbuffer); _ogg_free(cpi->oggbuffer); _ogg_free(cpi); } memset(th,0,sizeof(*th)); }
void theora_clear(theora_state *t){ if(t){ CP_INSTANCE *cpi=(CP_INSTANCE *)(t->internal_encode); PB_INSTANCE *pbi=(PB_INSTANCE *)(t->internal_decode); if (cpi) theora_encoder_clear (cpi); if(pbi){ theora_info_clear(&pbi->info); ClearHuffmanSet(pbi); ClearFragmentInfo(pbi); ClearFrameInfo(pbi); ClearPBInstance(pbi); _ogg_free(t->internal_decode); } t->internal_encode=NULL; t->internal_decode=NULL; } }