diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-06 21:43:45 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-05-06 21:43:45 +0000 |
commit | c8b40d3bd00cab519ea4e55116332efd12f9b381 (patch) | |
tree | 51c56b549f24c395c830c196fc099e0240c4fc21 /loader/dshow/DS_VideoDec.c | |
parent | 0742d52b569e69d3df278afb388abd76e384b7c8 (diff) | |
download | mpv-c8b40d3bd00cab519ea4e55116332efd12f9b381.tar.bz2 mpv-c8b40d3bd00cab519ea4e55116332efd12f9b381.tar.xz |
avifile-0.6-CVS merge
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@714 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader/dshow/DS_VideoDec.c')
-rw-r--r-- | loader/dshow/DS_VideoDec.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/loader/dshow/DS_VideoDec.c b/loader/dshow/DS_VideoDec.c index de2cc7673e..2d4e8e11f8 100644 --- a/loader/dshow/DS_VideoDec.c +++ b/loader/dshow/DS_VideoDec.c @@ -79,7 +79,7 @@ extern "C" int DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER* memset(&m_obh, 0, sizeof(m_obh)); m_obh.biSize=sizeof(m_obh); - memset(&m_sVhdr, 0, sizeof m_sVhdr); + memset(&m_sVhdr, 0, sizeof(m_sVhdr)); m_sVhdr.bmiHeader=m_bh; m_sVhdr.rcSource.left=m_sVhdr.rcSource.top=0; m_sVhdr.rcSource.right=m_sVhdr.bmiHeader.biWidth; @@ -93,7 +93,7 @@ extern "C" int DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER* m_sOurType.bFixedSizeSamples=false; m_sOurType.bTemporalCompression=true; m_sOurType.pUnk=0; - m_sOurType.cbFormat=sizeof m_sVhdr; + m_sOurType.cbFormat=sizeof(m_sVhdr); m_sOurType.pbFormat=(char*)&m_sVhdr; m_sVhdr2=(VIDEOINFOHEADER*)(new char[sizeof(VIDEOINFOHEADER)+12]); @@ -101,7 +101,7 @@ extern "C" int DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER* m_sVhdr2->bmiHeader.biCompression=0; m_sVhdr2->bmiHeader.biBitCount=24; - memset(&m_sDestType, 0, sizeof m_sDestType); + memset(&m_sDestType, 0, sizeof(m_sDestType)); m_sDestType.majortype=MEDIATYPE_Video; m_sDestType.subtype=MEDIASUBTYPE_RGB24; m_sDestType.formattype=FORMAT_VideoInfo; @@ -119,19 +119,20 @@ extern "C" int DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER* HRESULT result; + dsf=new DS_Filter(); + dsf->Create(dllname, guid, &m_sOurType, &m_sDestType); + if(!flip) { m_sVhdr2->bmiHeader.biHeight*=-1; m_obh.biHeight*=-1; -// result=m_pOutputPin->vt->QueryAccept(m_pOutputPin, &m_sDestType); -// if(result) -// throw FATAL("Decoder does not support upside-down frames"); + result=dsf->m_pOutputPin->vt->QueryAccept(dsf->m_pOutputPin, &m_sDestType); + if(result){ + printf("DShow: Decoder does not support upside-down frames"); + m_obh.biHeight*=-1; + } } - dsf=new DS_Filter(); - - dsf->Create(dllname, guid, &m_sOurType, &m_sDestType); - #if 0 m_sVhdr2->bmiHeader.biBitCount=16; m_sVhdr2->bmiHeader.biCompression=fccYUY2; @@ -182,7 +183,7 @@ extern "C" void DS_VideoDecoder_Start(){ extern "C" void DS_VideoDecoder_Stop(){ if(dsf->m_iState!=2) return; dsf->Stop(); - dsf->m_pOurOutput->SetFramePointer(0); +// dsf->m_pOurOutput->SetFramePointer(0); // free(m_outFrame->data()); //m_outFrame->release();//just in case //m_outFrame=0; |