mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-11-27 22:05:35 -05:00
24 lines
691 B
C
24 lines
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;
|
||
|
};
|