winamp/Src/aacdec-mft/MFTDecoder.h

24 lines
691 B
C
Raw Normal View History

2024-09-24 08:54:57 -04:00
#pragma once
#include <mftransform.h>
#include <bfc/platform/types.h>
// generic API for use by all decoder flavors (MP4, MKV, etc)
class MFTDecoder
{
public:
MFTDecoder();
~MFTDecoder();
HRESULT Open(const void *asc, size_t asc_bytes);
HRESULT Open();
void Flush();
HRESULT GetOutputProperties(uint32_t *sampleRate, uint32_t *channels);
HRESULT Feed(const void *buffer, size_t bufferBytes);
HRESULT Decode(void *outputBuffer, size_t *outputBufferBytes, unsigned int bitsPerSample, bool useFloat, double gain);
HRESULT OutputBlockSizeSamples(size_t *frameSize);
bool AcceptingInput();
private:
IMFTransform *decoder;
IMFMediaBuffer *output_buffer;
IMFSample *output_sample;
};