FastLED 3.9.15
Loading...
Searching...
No Matches

◆ vorbis_deinit()

static void fl::third_party::vorbis::vorbis_deinit ( stb_vorbis * p)
static

Definition at line 3966 of file stb_vorbis.cpp.hpp.

3967{
3968 int32_t i,j;
3969
3970 setup_free(p, p->vendor);
3971 for (i=0; i < p->comment_list_length; ++i) {
3972 setup_free(p, p->comment_list[i]);
3973 }
3974 setup_free(p, p->comment_list);
3975
3976 if (p->residue_config) {
3977 for (i=0; i < p->residue_count; ++i) {
3978 Residue *r = p->residue_config+i;
3979 if (r->classdata) {
3980 for (j=0; j < p->codebooks[r->classbook].entries; ++j)
3981 setup_free(p, r->classdata[j]);
3982 setup_free(p, r->classdata);
3983 }
3984 setup_free(p, r->residue_books);
3985 }
3986 }
3987
3988 if (p->codebooks) {
3989 FL_STBV_CHECK(p);
3990 for (i=0; i < p->codebook_count; ++i) {
3991 Codebook *c = p->codebooks + i;
3992 setup_free(p, c->codeword_lengths);
3993 setup_free(p, c->multiplicands);
3994 setup_free(p, c->codewords);
3995 setup_free(p, c->sorted_codewords);
3996 // c->sorted_values[-1] is the first entry in the array
3997 setup_free(p, c->sorted_values ? c->sorted_values-1 : nullptr);
3998 }
3999 setup_free(p, p->codebooks);
4000 }
4001 setup_free(p, p->floor_config);
4003 if (p->mapping) {
4004 for (i=0; i < p->mapping_count; ++i)
4005 setup_free(p, p->mapping[i].chan);
4006 setup_free(p, p->mapping);
4007 }
4008 FL_STBV_CHECK(p);
4009 for (i=0; i < p->channels && i < FL_STB_VORBIS_MAX_CHANNELS; ++i) {
4010 setup_free(p, p->channel_buffers[i]);
4011 setup_free(p, p->previous_window[i]);
4012 #ifdef FL_STB_VORBIS_NO_DEFER_FLOOR
4013 setup_free(p, p->floor_buffers[i]);
4014 #endif
4015 setup_free(p, p->finalY[i]);
4016 }
4017 for (i=0; i < 2; ++i) {
4018 setup_free(p, p->A[i]);
4019 setup_free(p, p->B[i]);
4020 setup_free(p, p->C[i]);
4021 setup_free(p, p->window[i]);
4022 setup_free(p, p->bit_reverse[i]);
4023 }
4024 #ifndef FL_STB_VORBIS_NO_STDIO
4025 if (p->close_on_free) fl::fclose(p->f);
4026 #endif
4027}
static void setup_free(vorb *f, void *p) FL_NOEXCEPT
float * previous_window[FL_STB_VORBIS_MAX_CHANNELS]
int16 * finalY[FL_STB_VORBIS_MAX_CHANNELS]
float * channel_buffers[FL_STB_VORBIS_MAX_CHANNELS]
fl::i32 int32_t
Definition coder.h:220
int fclose(FILE *file)
Close a file.
Definition file_io.h:250
#define FL_STB_VORBIS_MAX_CHANNELS
#define FL_STBV_CHECK(f)

References fl::third_party::vorbis::Residue::classbook, fl::third_party::vorbis::Residue::classdata, fl::third_party::vorbis::Codebook::codeword_lengths, fl::third_party::vorbis::Codebook::codewords, fl::fclose(), FL_NOEXCEPT, FL_STB_VORBIS_MAX_CHANNELS, FL_STBV_CHECK, fl::third_party::vorbis::Codebook::multiplicands, fl::third_party::vorbis::Residue::residue_books, setup_free(), fl::third_party::vorbis::Codebook::sorted_codewords, and fl::third_party::vorbis::Codebook::sorted_values.

Referenced by stb_vorbis_close(), stb_vorbis_open_file_section(), stb_vorbis_open_memory(), and stb_vorbis_open_pushdata().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: