Files
BuildTools
Qt
Src
Agave
Components
Elevator
Mastering
Plugins
ReplayGainAnalysis
WAT
Wasabi
Wasabi2
Winamp
aacPlus
aacdec
incs
libs
ADTSAACDecoder.cpp
ADTSAACDecoder.h
ADTSHeader.c
ADTSHeader.h
AVIAACDecoder.cpp
AVIAACDecoder.h
FLVAACDecoder.cpp
FLVAACDecoder.h
MKVAACDecoder.cpp
MKVAACDecoder.h
MP4AACDecoder.cpp
MP4AACDecoder.h
NSVAACDecoder.cpp
NSVAACDecoder.h
aacdec.rc
aacdec.sln
aacdec.vcproj
api.cpp
api.h
main.cpp
resource.h
version.rc2
aacdec-mft
adpcm
alac
albumart
apev2
auth
bmp
burnlib
codesign
config
devices
external_dependencies
f263
filereader
freetypewac
gif
gracenote
h264
h264dec
id3v2
ie_plugin
installer
jpeg
libvp6
libvpShared
mp3-mpg123
mp4v
mpeg4dec
nde
nprt_plugin
ns-eel
ns-eel2
nsavi
nsmkv
nsutil
nsv
nsvdec_vp3
nsvdec_vp5
nsvdec_vp6
nswasabi
nu
omBrowser
pcm
pfc
playlist
plist
png
replicant
resources
tagz
tataki
theora
timer
vlb
vp32
vp6
vp8x
wbm
winampAll
winampa
xml
xspf
vcpkg-ports
.gitignore
LICENSE.md
README.md
automate-git.py
cef_x86.bat
install-packages.cmd
vcpkg_version_finder.py
winampAll_2019.sln
2024-09-24 14:54:57 +02:00

46 lines
1.3 KiB
C++

#pragma once
#include "../in_flv/svc_flvdecoder.h"
#include "../in_flv/FLVAudioHeader.h"
#include "../in_flv/ifc_flvaudiodecoder.h"
#include "incs/mp4AudioDecIfc.h"
// {7FD8F2D0-7490-45fd-B741-BF3F9EEF0BE4}
static const GUID flv_aac_guid =
{ 0x7fd8f2d0, 0x7490, 0x45fd, { 0xb7, 0x41, 0xbf, 0x3f, 0x9e, 0xef, 0xb, 0xe4 } };
class FLVDecoder : public svc_flvdecoder
{
public:
static const char *getServiceName() { return "AAC FLV Decoder"; }
static GUID getServiceGuid() { return flv_aac_guid; }
int CreateAudioDecoder(int stereo, int bits, int sample_rate, int format, ifc_flvaudiodecoder **decoder);
int HandlesAudio(int format_type);
protected:
RECVS_DISPATCH;
};
class FLVAAC : public ifc_flvaudiodecoder
{
public:
FLVAAC(CAccessUnitPtr access_unit);
int GetOutputFormat(unsigned int *sample_rate, unsigned int *channels, unsigned int *bits);
int DecodeSample(const void *input_buffer, size_t input_buffer_bytes, void *samples, size_t *samples_size_bytes, double *bitrate);
void Flush();
void Close();
int Ready();
void SetPreferences(unsigned int max_channels, unsigned int preferred_bits);
private:
/* data */
mp4AudioDecoderHandle decoder;
CCompositionUnitPtr composition_unit; /* output */
CAccessUnitPtr access_unit; /* input */
unsigned int bps;
size_t preDelay;
bool got_decoder_config;
protected:
RECVS_DISPATCH;
};