19 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
* |
* |
22 |
* $Id: CXvidDecoder.cpp,v 1.16 2005-10-08 00:58:02 suxen_drol Exp $ |
* $Id: CXvidDecoder.cpp,v 1.17 2009-05-28 15:42:06 Isibaar Exp $ |
23 |
* |
* |
24 |
****************************************************************************/ |
****************************************************************************/ |
25 |
|
|
419 |
return E_FAIL; |
return E_FAIL; |
420 |
if (xvid_decore_func(0, XVID_DEC_CREATE, &m_create, 0) < 0) { |
if (xvid_decore_func(0, XVID_DEC_CREATE, &m_create, 0) < 0) { |
421 |
DPRINTF("*** XVID_DEC_CREATE error"); |
DPRINTF("*** XVID_DEC_CREATE error"); |
422 |
return S_FALSE; |
return E_FAIL; |
423 |
} |
} |
424 |
} |
} |
425 |
|
|
428 |
m_frame.length = mpgvi->cbSequenceHeader; |
m_frame.length = mpgvi->cbSequenceHeader; |
429 |
m_frame.output.csp = XVID_CSP_NULL; |
m_frame.output.csp = XVID_CSP_NULL; |
430 |
|
|
431 |
if (xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats) >= 0) { |
int ret = 0; |
432 |
|
if ((ret=xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats)) >= 0) { |
433 |
/* honour video dimensions reported in VOL header */ |
/* honour video dimensions reported in VOL header */ |
434 |
if (stats.type == XVID_TYPE_VOL) { |
if (stats.type == XVID_TYPE_VOL) { |
435 |
hdr->biWidth = stats.data.vol.width; |
hdr->biWidth = stats.data.vol.width; |
436 |
hdr->biHeight = stats.data.vol.height; |
hdr->biHeight = stats.data.vol.height; |
437 |
} |
} |
438 |
} |
} |
439 |
|
if (ret == XVID_ERR_MEMORY) return E_FAIL; |
440 |
} |
} |
441 |
} |
} |
442 |
else |
else |
796 |
if (xvid_decore_func(0, XVID_DEC_CREATE, &m_create, 0) < 0) |
if (xvid_decore_func(0, XVID_DEC_CREATE, &m_create, 0) < 0) |
797 |
{ |
{ |
798 |
DPRINTF("*** XVID_DEC_CREATE error"); |
DPRINTF("*** XVID_DEC_CREATE error"); |
799 |
return S_FALSE; |
return E_FAIL; |
800 |
} |
} |
801 |
} |
} |
802 |
|
|
864 |
{ |
{ |
865 |
length = xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats); |
length = xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats); |
866 |
|
|
867 |
if (length < 0) |
if (length == XVID_ERR_MEMORY) |
868 |
|
return E_FAIL; |
869 |
|
else if (length < 0) |
870 |
{ |
{ |
871 |
DPRINTF("*** XVID_DEC_DECODE"); |
DPRINTF("*** XVID_DEC_DECODE"); |
872 |
return S_FALSE; |
return S_FALSE; |
910 |
m_frame.general &= ~XVID_FILMEFFECT; |
m_frame.general &= ~XVID_FILMEFFECT; |
911 |
|
|
912 |
length = xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats); |
length = xvid_decore_func(m_create.handle, XVID_DEC_DECODE, &m_frame, &stats); |
913 |
if (length < 0) |
if (length == XVID_ERR_MEMORY) |
914 |
|
return E_FAIL; |
915 |
|
else if (length < 0) |
916 |
{ |
{ |
917 |
DPRINTF("*** XVID_DEC_DECODE"); |
DPRINTF("*** XVID_DEC_DECODE"); |
918 |
return S_FALSE; |
return S_FALSE; |