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

◆ AllocateBuffers()

MP3DecInfo * fl::third_party::AllocateBuffers ( void )

Definition at line 99 of file buffers.hpp.

100{
101 MP3DecInfo *mp3DecInfo;
102 FrameHeader *fh;
103 SideInfo *si;
104 ScaleFactorInfo *sfi;
105 HuffmanInfo *hi;
106 DequantInfo *di;
107 IMDCTInfo *mi;
108 SubbandInfo *sbi;
109
110 mp3DecInfo = (MP3DecInfo *)malloc(sizeof(MP3DecInfo));
111 if (!mp3DecInfo)
112 return 0;
113 ClearBuffer(mp3DecInfo, sizeof(MP3DecInfo));
114
115 fh = (FrameHeader *) malloc(sizeof(FrameHeader));
116 si = (SideInfo *) malloc(sizeof(SideInfo));
117 sfi = (ScaleFactorInfo *) malloc(sizeof(ScaleFactorInfo));
118 hi = (HuffmanInfo *) malloc(sizeof(HuffmanInfo));
119 di = (DequantInfo *) malloc(sizeof(DequantInfo));
120 mi = (IMDCTInfo *) malloc(sizeof(IMDCTInfo));
121 sbi = (SubbandInfo *) malloc(sizeof(SubbandInfo));
122
123 mp3DecInfo->FrameHeaderPS = (void *)fh;
124 mp3DecInfo->SideInfoPS = (void *)si;
125 mp3DecInfo->ScaleFactorInfoPS = (void *)sfi;
126 mp3DecInfo->HuffmanInfoPS = (void *)hi;
127 mp3DecInfo->DequantInfoPS = (void *)di;
128 mp3DecInfo->IMDCTInfoPS = (void *)mi;
129 mp3DecInfo->SubbandInfoPS = (void *)sbi;
130
131 if (!fh || !si || !sfi || !hi || !di || !mi || !sbi) {
132 FreeBuffers(mp3DecInfo); /* safe to call - only frees memory that was successfully allocated */
133 return 0;
134 }
135
136 /* important to do this - DSP primitives assume a bunch of state variables are 0 on first use */
137 ClearBuffer(fh, sizeof(FrameHeader));
138 ClearBuffer(si, sizeof(SideInfo));
139 ClearBuffer(sfi, sizeof(ScaleFactorInfo));
140 ClearBuffer(hi, sizeof(HuffmanInfo));
141 ClearBuffer(di, sizeof(DequantInfo));
142 ClearBuffer(mi, sizeof(IMDCTInfo));
143 ClearBuffer(sbi, sizeof(SubbandInfo));
144
145 return mp3DecInfo;
146}
struct _MP3DecInfo MP3DecInfo
void * IMDCTInfoPS
Definition mp3common.h:73
void * FrameHeaderPS
Definition mp3common.h:68
void * DequantInfoPS
Definition mp3common.h:72
void * ScaleFactorInfoPS
Definition mp3common.h:70
void * SideInfoPS
Definition mp3common.h:69
void * HuffmanInfoPS
Definition mp3common.h:71
void * SubbandInfoPS
Definition mp3common.h:74
struct fl::third_party::_IMDCTInfo IMDCTInfo
struct fl::third_party::_DequantInfo DequantInfo
struct fl::third_party::_HuffmanInfo HuffmanInfo
struct fl::third_party::_SubbandInfo SubbandInfo
struct fl::third_party::_FrameHeader FrameHeader
struct fl::third_party::_SideInfo SideInfo
void FreeBuffers(MP3DecInfo *mp3DecInfo) FL_NOEXCEPT
Definition buffers.hpp:163
struct fl::third_party::_ScaleFactorInfo ScaleFactorInfo
static void ClearBuffer(void *buf, int nBytes) FL_NOEXCEPT
Definition buffers.hpp:72
void * malloc(size_t size)
Definition malloc.cpp.hpp:9

References ClearBuffer(), _MP3DecInfo::DequantInfoPS, FL_NOEXCEPT, _MP3DecInfo::FrameHeaderPS, FreeBuffers(), _MP3DecInfo::HuffmanInfoPS, _MP3DecInfo::IMDCTInfoPS, fl::malloc(), _MP3DecInfo::ScaleFactorInfoPS, _MP3DecInfo::SideInfoPS, and _MP3DecInfo::SubbandInfoPS.

Referenced by MP3InitDecoder().

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