summaryrefslogtreecommitdiffstats
path: root/loader/dshow/DS_AudioDecoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'loader/dshow/DS_AudioDecoder.c')
-rw-r--r--loader/dshow/DS_AudioDecoder.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/loader/dshow/DS_AudioDecoder.c b/loader/dshow/DS_AudioDecoder.c
index db971806a1..77519f7e89 100644
--- a/loader/dshow/DS_AudioDecoder.c
+++ b/loader/dshow/DS_AudioDecoder.c
@@ -26,11 +26,15 @@ const GUID MEDIASUBTYPE_PCM = {
typedef long STDCALL (*GETCLASS) (GUID*, GUID*, void**);
-DS_AudioDecoder * DS_AudioDecoder_Create(const CodecInfo * info, const WAVEFORMATEX* wf)
+DS_AudioDecoder * DS_AudioDecoder_Open(char* dllname, GUID* guid, WAVEFORMATEX* wf)
+//DS_AudioDecoder * DS_AudioDecoder_Create(const CodecInfo * info, const WAVEFORMATEX* wf)
{
DS_AudioDecoder *this;
int sz;
WAVEFORMATEX* pWF;
+
+ Setup_LDT_Keeper();
+ Setup_FS_Segment();
this = malloc(sizeof(DS_AudioDecoder));
@@ -75,7 +79,7 @@ DS_AudioDecoder * DS_AudioDecoder_Create(const CodecInfo * info, const WAVEFORMA
/*try*/
{
ALLOCATOR_PROPERTIES props, props1;
- this->m_pDS_Filter = DS_FilterCreate((const char*)info->dll, info->guid, &this->m_sOurType, &this->m_sDestType);
+ this->m_pDS_Filter = DS_FilterCreate(dllname, guid, &this->m_sOurType, &this->m_sDestType);
if( !this->m_pDS_Filter ) {
free(this);
return NULL;
@@ -120,6 +124,8 @@ int DS_AudioDecoder_Convert(DS_AudioDecoder *this, const void* in_data, uint_t i
if (!in_data || !out_data)
return -1;
+ Setup_FS_Segment();
+
in_size -= in_size%this->in_fmt.nBlockAlign;
while (in_size>0)
{