From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/mp3-mpg123/mp3_in_mp4.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Src/mp3-mpg123/mp3_in_mp4.h (limited to 'Src/mp3-mpg123/mp3_in_mp4.h') diff --git a/Src/mp3-mpg123/mp3_in_mp4.h b/Src/mp3-mpg123/mp3_in_mp4.h new file mode 100644 index 00000000..cdef0e84 --- /dev/null +++ b/Src/mp3-mpg123/mp3_in_mp4.h @@ -0,0 +1,43 @@ +#ifndef NULLSOFT_MP3_MPEG4_H +#define NULLSOFT_MP3_MPEG4_H + +// used to decode an MPEG-1 audio object in an MPEG-4 ISO Media file + +#include "../Plugins/Input/in_mp4/mpeg4audio.h" +#include + +class MPEG4_MP3 : public MP4AudioDecoder +{ +public: + MPEG4_MP3(); + ~MPEG4_MP3(); + int Open(); + int OpenEx(size_t bits, size_t maxChannels, bool useFloat); + //int AudioSpecificConfiguration(void *buffer, size_t buffer_size); // reads ASC block from mp4 file + int GetCurrentBitrate(unsigned int *bitrate); + int OutputFrameSize(size_t *frameSize); + int GetOutputProperties(unsigned int *sampleRate, unsigned int *channels, unsigned int *bitsPerSample); + int GetOutputPropertiesEx(unsigned int *sampleRate, unsigned int *channels, unsigned int *bitsPerSample, bool *isFloat); + int DecodeSample(void *inputBuffer, size_t inputBufferBytes, void *outputBuffer, size_t *outputBufferBytes); + void Flush(); + void Close(); + const char *GetCodecInfoString(); + int CanHandleCodec(const char *codecName); + int CanHandleType(unsigned __int8 type); + int CanHandleMPEG4Type(unsigned __int8 type); + int SetGain(float gain); + +private: + bool _UpdateProperties(); + mpg123_handle *decoder; + + int bits; + int channels; + bool floatingPoint; + int sample_rate; + RECVS_DISPATCH; + float gain; + int pregap; +}; + +#endif -- cgit