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); } }
void InitHuffmanSet( PB_INSTANCE *pbi ){ int i; ClearHuffmanSet(pbi); pbi->ExtraBitLengths_VP3x = ExtraBitLengths_VP31; for ( i = 0; i < NUM_HUFF_TABLES; i++ ){ pbi->HuffCodeArray_VP3x[i] = _ogg_calloc(MAX_ENTROPY_TOKENS, sizeof(*pbi->HuffCodeArray_VP3x[i])); pbi->HuffCodeLengthArray_VP3x[i] = _ogg_calloc(MAX_ENTROPY_TOKENS, sizeof(*pbi->HuffCodeLengthArray_VP3x[i])); BuildHuffmanTree( pbi->HuffRoot_VP3x, pbi->HuffCodeArray_VP3x[i], pbi->HuffCodeLengthArray_VP3x[i], i, FrequencyCounts_VP3[i]); } }
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; } }