45 lines
1.9 KiB
Diff
45 lines
1.9 KiB
Diff
diff -Nur xine-lib-1.1.15-old/src/libw32dll/dmo/DMO_VideoDecoder.c xine-lib-1.1.15/src/libw32dll/dmo/DMO_VideoDecoder.c
|
|
--- xine-lib-1.1.15-old/src/libw32dll/dmo/DMO_VideoDecoder.c 2008-09-27 20:55:34.000000000 +0300
|
|
+++ xine-lib-1.1.15/src/libw32dll/dmo/DMO_VideoDecoder.c 2008-09-27 21:33:01.000000000 +0300
|
|
@@ -87,7 +87,7 @@
|
|
{ 24, 24, &MEDIASUBTYPE_RGB24, CAP_NONE },
|
|
{ 32, 32, &MEDIASUBTYPE_RGB32, CAP_NONE },
|
|
|
|
- {0},
|
|
+ {0,0,NULL,0},
|
|
};
|
|
|
|
DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER * format, int flip, int maxauto)
|
|
@@ -288,8 +288,8 @@
|
|
props.cBuffers = 1;
|
|
props.cbBuffer = this->m_sDestType.lSampleSize;
|
|
|
|
- //don't know how to do this correctly
|
|
- props.cbAlign = props.cbPrefix = 0;
|
|
+ props.cbAlign = 1;
|
|
+ props.cbPrefix = 0;
|
|
this->m_pDMO_Filter->m_pAll->vt->SetProperties(this->m_pDMO_Filter->m_pAll, &props, &props1);
|
|
this->m_pDMO_Filter->m_pAll->vt->Commit(this->m_pDMO_Filter->m_pAll);
|
|
#endif
|
|
@@ -327,7 +327,7 @@
|
|
bufferin = CMediaBufferCreate(size, (void*)src, size, 0);
|
|
result = this->m_pDMO_Filter->m_pMedia->vt->ProcessInput(this->m_pDMO_Filter->m_pMedia, 0,
|
|
(IMediaBuffer*)bufferin,
|
|
- (is_keyframe) ? DMO_INPUT_DATA_BUFFERF_SYNCPOINT : 0,
|
|
+ DMO_INPUT_DATA_BUFFERF_SYNCPOINT,
|
|
0, 0);
|
|
((IMediaBuffer*)bufferin)->vt->Release((IUnknown*)bufferin);
|
|
|
|
@@ -463,8 +463,9 @@
|
|
this->iv.m_obh.biSize = sizeof(BITMAPINFOHEADER);
|
|
this->iv.m_obh.biCompression=csp;
|
|
this->iv.m_obh.biBitCount=bits;
|
|
- this->iv.m_obh.biSizeImage=labs(this->iv.m_obh.biBitCount*
|
|
- this->iv.m_obh.biWidth*this->iv.m_obh.biHeight)>>3;
|
|
+
|
|
+ this->iv.m_obh.biSizeImage = labs(this->iv.m_obh.biWidth * this->iv.m_obh.biHeight)
|
|
+ * ((this->iv.m_obh.biBitCount + 7) / 8);
|
|
}
|
|
}
|
|
this->m_sDestType.lSampleSize = this->iv.m_obh.biSizeImage;
|