A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 112 lines 3.6 kB view raw
1/* 2** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding 3** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com 4** 5** This program is free software; you can redistribute it and/or modify 6** it under the terms of the GNU General Public License as published by 7** the Free Software Foundation; either version 2 of the License, or 8** (at your option) any later version. 9** 10** This program is distributed in the hope that it will be useful, 11** but WITHOUT ANY WARRANTY; without even the implied warranty of 12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13** GNU General Public License for more details. 14** 15** You should have received a copy of the GNU General Public License 16** along with this program; if not, write to the Free Software 17** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18** 19** Any non-GPL usage of this software or parts of this software is strictly 20** forbidden. 21** 22** Commercial non-GPL licensing of this software is possible. 23** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 24** 25** $Id$ 26**/ 27 28#ifndef __DECODER_H__ 29#define __DECODER_H__ 30 31#ifdef __cplusplus 32extern "C" { 33#endif 34 35#ifdef _WIN32 36 #pragma pack(push, 8) 37 #ifndef NEAACDECAPI 38 #define NEAACDECAPI __cdecl 39 #endif 40#else 41 #ifndef NEAACDECAPI 42 #define NEAACDECAPI 43 #endif 44#endif 45 46 47/* library output formats */ 48#define FAAD_FMT_16BIT 1 49#define FAAD_FMT_24BIT 2 50#define FAAD_FMT_32BIT 3 51#define FAAD_FMT_FLOAT 4 52#define FAAD_FMT_FIXED FAAD_FMT_FLOAT 53#define FAAD_FMT_DOUBLE 5 54 55#define LC_DEC_CAP (1<<0) 56#define MAIN_DEC_CAP (1<<1) 57#define LTP_DEC_CAP (1<<2) 58#define LD_DEC_CAP (1<<3) 59#define ERROR_RESILIENCE_CAP (1<<4) 60#define FIXED_POINT_CAP (1<<5) 61 62#define FRONT_CHANNEL_CENTER (1) 63#define FRONT_CHANNEL_LEFT (2) 64#define FRONT_CHANNEL_RIGHT (3) 65#define SIDE_CHANNEL_LEFT (4) 66#define SIDE_CHANNEL_RIGHT (5) 67#define BACK_CHANNEL_LEFT (6) 68#define BACK_CHANNEL_RIGHT (7) 69#define BACK_CHANNEL_CENTER (8) 70#define LFE_CHANNEL (9) 71#define UNKNOWN_CHANNEL (0) 72 73char* NEAACDECAPI NeAACDecGetErrorMessage(uint8_t errcode); 74 75NeAACDecHandle NEAACDECAPI NeAACDecOpen(void); 76 77NeAACDecConfigurationPtr NEAACDECAPI NeAACDecGetCurrentConfiguration(NeAACDecHandle hDecoder); 78 79uint8_t NEAACDECAPI NeAACDecSetConfiguration(NeAACDecHandle hDecoder, 80 NeAACDecConfigurationPtr config); 81 82/* Init the library based on info from the AAC file (ADTS/ADIF) */ 83int32_t NEAACDECAPI NeAACDecInit(NeAACDecHandle hDecoder, 84 uint8_t *buffer, 85 uint32_t buffer_size, 86 uint32_t *samplerate, 87 uint8_t *channels); 88 89/* Init the library using a DecoderSpecificInfo */ 90int8_t NEAACDECAPI NeAACDecInit2(NeAACDecHandle hDecoder, uint8_t *pBuffer, 91 uint32_t SizeOfDecoderSpecificInfo, 92 uint32_t *samplerate, uint8_t *channels); 93 94/* Init the library for DRM */ 95int8_t NEAACDECAPI NeAACDecInitDRM(NeAACDecHandle *hDecoder, uint32_t samplerate, 96 uint8_t channels); 97 98void NEAACDECAPI NeAACDecPostSeekReset(NeAACDecHandle hDecoder, int32_t frame); 99 100void* NEAACDECAPI NeAACDecDecode(NeAACDecHandle hDecoder, 101 NeAACDecFrameInfo *hInfo, 102 uint8_t *buffer, 103 uint32_t buffer_size); 104 105#ifdef _WIN32 106 #pragma pack(pop) 107#endif 108 109#ifdef __cplusplus 110} 111#endif 112#endif