mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-11-15 00:44:55 -05:00
24 lines
No EOL
691 B
C++
24 lines
No EOL
691 B
C++
#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;
|
|
}; |