Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:43fc447561f2, committed 2018-02-09
- Comitter:
- vidigi
- Date:
- Fri Feb 09 13:45:29 2018 +0000
- Commit message:
- commit
Changed in this revision
| lib_mp3decoder_cortex_m4_v2.ar | Show annotated file Show diff for this revision Revisions of this file |
| spiritMP3Dec.h | Show annotated file Show diff for this revision Revisions of this file |
Binary file lib_mp3decoder_cortex_m4_v2.ar has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/spiritMP3Dec.h Fri Feb 09 13:45:29 2018 +0000
@@ -0,0 +1,136 @@
+/*
+ ******************************************************************************
+ * @file spiritMP3Dec.h
+ * @author MCD Application Team
+ * @brief This file is header for spiritMP3Dec MP3 decoder library.
+ ******************************************************************************
+ * Portions COPYRIGHT 2017 STMicroelectronics
+ * Portions SPIRIT Audio Engine Copyright (c) 1995-2009, SPIRIT
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted, provided that the following conditions are met:
+ *
+ * 1. Redistribution of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of other
+ * contributors to this software may be used to endorse or promote products
+ * derived from this software without specific written permission.
+ * 4. This software, including modifications and/or derivative works of this
+ * software, must execute solely and exclusively on microcontroller based on
+ * ARM Cortex®-M3 and/or ARM Cortex®-M4 cores or microprocessor devices
+ * manufactured by or for STMicroelectronics.
+ * 5. Redistribution and use of this software other than as permitted under
+ * this license is void and will automatically terminate your rights under
+ * this license.
+ *
+ * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+ * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
+ * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
+ * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+#ifndef __SPIRITMP3DEC_H__
+#define __SPIRITMP3DEC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ Informational structure to provide information about MP3 stream.
+*/
+typedef struct
+{
+ unsigned int nLayer; /* MPEG Audio Layer (1-3). Zero indicates that structure is not valid */
+ unsigned int nSampleRateHz; /* Sample rate, Hz */
+ unsigned int nBitrateKbps; /* Current bit rate, kilobit per seconds (0 for free-format stream) */
+ unsigned int nChannels; /* Number of channels (1 or 2) */
+ unsigned int IsGoodStream; /* Zero indicates that audio stream is not consistent */
+ unsigned int anCutOffFrq576[2]; /* Cut-off frequencies for both channels (range 0-576), where 576 = Nyquist frequency */
+ unsigned int nBitsReadAfterFrameHeader; /* Number of bits, read after last frame header (for AV sync) */
+ unsigned int nSamplesPerFrame; /* Number of samples per audio frame (for AV sync) */
+ unsigned int nSamplesLeftInFrame; /* Number of samples, remaining in the internal buffer (for AV sync) */
+} TSpiritMP3Info;
+
+
+/**
+ MP3 decoder object (persistent RAM).
+*/
+typedef struct
+{
+ int hidden[3086]; /* Structure contents is hidden for demo version */
+} TSpiritMP3Decoder;
+
+
+/**
+ Callback function type to supply decoder with input data.
+ return number of MAU's read into buffer.
+*/
+typedef unsigned int (fnSpiritMP3ReadCallback)(
+ void * pMP3CompressedData, /* [OUT] Pointer to buffer to fill with coded MP3 data */
+ unsigned int nMP3DataSizeInChars, /* Buffer size in MAU's */
+ void * token /* Application-supplied token */
+ );
+
+
+/**
+* Application-supplied MDCT-domain processing function type.
+* MDCT coefficients represented as float or int32 type, depending
+* on build options.
+* This function can be used for equalizer or pitch-shifter
+*/
+typedef void (fnSpiritMP3ProcessCallback)(
+ void * mdct_samples, /* [IN/OUT] MDCT coefficients */
+ int isShort, /* Flag: 1 if short frame */
+ int ch, /* Channel number (0 or 1). */
+ void * token /* Application-supplied token */
+ );
+
+/**
+* Decoder initialization function
+*/
+void SpiritMP3DecoderInit(
+ TSpiritMP3Decoder *pDecoder, /* Decoder structure */
+ fnSpiritMP3ReadCallback* pCallbackFn, /* Data reading callback function */
+ fnSpiritMP3ProcessCallback *pProcessFn, /* Data processing callback function */
+ void * token /* Optional parameter for callback function */
+ );
+
+
+/**
+ Decoding function
+ return number of audio samples decoded.
+ NOTE: function always produce stereo data (1 sample = 32 bit = 2ch*16 bit).
+*/
+unsigned int SpiritMP3Decode (
+ TSpiritMP3Decoder *pDecoder, /* Decoder structure */
+ short *pPCMSamples, /* [OUT] Output PCM buffer */
+ unsigned int nSamplesRequired, /* Number of samples to decode (1 sample = 32 bit = 2ch*16 bit) */
+ TSpiritMP3Info * pMP3Info /* [OUT, opt] Optional informational structure */
+ );
+
+
+/**
+* Return sizeof(TSpiritMP3Decoder)
+*/
+int SpiritMP3DecoderGetPersistentSize(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif