void id3tag_init(lame_global_flags * gfp) { lame_internal_flags *gfc = gfp->internal_flags; free_id3tag(gfc); memset(&gfc->tag_spec, 0, sizeof gfc->tag_spec); gfc->tag_spec.genre_id3v1 = GENRE_NUM_UNKNOWN; gfc->tag_spec.padding_size = 128; id3v2AddLameVersion(gfc); }
void freegfc(lame_internal_flags * const gfc) { /* bit stream structure */ int i; for (i = 0; i <= 2 * BPC; i++) if (gfc->blackfilt[i] != NULL) { free(gfc->blackfilt[i]); gfc->blackfilt[i] = NULL; } if (gfc->inbuf_old[0]) { free(gfc->inbuf_old[0]); gfc->inbuf_old[0] = NULL; } if (gfc->inbuf_old[1]) { free(gfc->inbuf_old[1]); gfc->inbuf_old[1] = NULL; } if (gfc->bs.buf != NULL) { free(gfc->bs.buf); gfc->bs.buf = NULL; } if (gfc->VBR_seek_table.bag) { free(gfc->VBR_seek_table.bag); gfc->VBR_seek_table.bag = NULL; gfc->VBR_seek_table.size = 0; } if (gfc->ATH) { free(gfc->ATH); } if (gfc->PSY) { free(gfc->PSY); } if (gfc->rgdata) { free(gfc->rgdata); } if (gfc->s3_ll) { /* XXX allocated in psymodel_init() */ free(gfc->s3_ll); } if (gfc->s3_ss) { /* XXX allocated in psymodel_init() */ free(gfc->s3_ss); } if (gfc->in_buffer_0) { free(gfc->in_buffer_0); } if (gfc->in_buffer_1) { free(gfc->in_buffer_1); } free_id3tag(gfc); #ifdef DECODE_ON_THE_FLY if (gfc->hip) { hip_decode_exit(gfc->hip); gfc->hip = 0; } #endif free(gfc); }