summaryrefslogtreecommitdiffstats
path: root/loader/dshow/DS_AudioDecoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'loader/dshow/DS_AudioDecoder.h')
-rw-r--r--loader/dshow/DS_AudioDecoder.h39
1 files changed, 27 insertions, 12 deletions
diff --git a/loader/dshow/DS_AudioDecoder.h b/loader/dshow/DS_AudioDecoder.h
index e527156e4e..b0d01c4c83 100644
--- a/loader/dshow/DS_AudioDecoder.h
+++ b/loader/dshow/DS_AudioDecoder.h
@@ -1,21 +1,36 @@
-#ifndef AVIFILE_DSHOW_H
-#define AVIFILE_DSHOW_H
+#ifndef AVIFILE_DS_AUDIODECODER_H
+#define AVIFILE_DS_AUDIODECODER_H
-#include "libwin32.h"
+#ifndef NOAVIFILE_HEADERS
+#include "audiodecoder.h"
+#include "except.h"
+#else
+#include "../libwin32.h"
+#endif
#include "DS_Filter.h"
-class DS_AudioDecoder : public IAudioDecoder
-{
-public:
- DS_AudioDecoder(const CodecInfo& info, const WAVEFORMATEX*);
- virtual ~DS_AudioDecoder();
- virtual int Convert(const void*, size_t, void*, size_t, size_t*, size_t*);
- virtual int GetSrcSize(int);
-protected:
+typedef struct _DS_AudioDecoder
+{
+ WAVEFORMATEX in_fmt;
AM_MEDIA_TYPE m_sOurType, m_sDestType;
DS_Filter* m_pDS_Filter;
char* m_sVhdr;
char* m_sVhdr2;
-};
+}DS_AudioDecoder;
+#ifndef uint_t
+#define uint_t int
#endif
+
+DS_AudioDecoder * DS_AudioDecoder_Create(const CodecInfo * info, const WAVEFORMATEX* wf);
+
+void DS_AudioDecoder_Destroy(DS_AudioDecoder *this);
+
+int DS_AudioDecoder_Convert(DS_AudioDecoder *this, const void* in_data, uint_t in_size,
+ void* out_data, uint_t out_size,
+ uint_t* size_read, uint_t* size_written);
+
+int DS_AudioDecoder_GetSrcSize(DS_AudioDecoder *this, int dest_size);
+
+
+#endif // AVIFILE_DS_AUDIODECODER_H