[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-cvs
Subject: [Datatype-cvs] mpg/fileformat rmpgff.cpp,1.8.10.2,1.8.10.2.58.1
From: zlin () helixcommunity ! org
Date: 2011-03-30 9:31:18
Message-ID: 201103300931.p2U9VDMA017635 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/datatype/mpg/fileformat
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv26713
Modified Files:
Tag: hxclient_3_6_5_atlas
rmpgff.cpp
Log Message:
Project: RealPlayer for Android Smartphones
Bug Number: 12184
Bug URL: https://bugs.helixcommunity.org/show_bug.cgi?id=12184
Synopsis: This clips can not resume play while previous playing stop at some place \
after 50% of whole duration.
Overview: This is because the defend condition do not work in \
CRnMpgFmt::CheckDuration --- It want to update duration only after processed 50% of \
the file, that is m_ulBytesUsed 50% of whole file size AND m_ulPacketDuration 50% of \
m_ulStreamDuration. However, while previous playing stop at latter 50% of whole \
clips, the first condition (m_ulBytesUsed 50% of whole file) is true, while the \
latter one not. So it continue to update to some invalid duration, which has cause UI \
to stop playing automatically. Fix is to change defend condition from AND to OR.
Index: rmpgff.cpp
===================================================================
RCS file: /cvsroot/datatype/mpg/fileformat/rmpgff.cpp,v
retrieving revision 1.8.10.2
retrieving revision 1.8.10.2.58.1
diff -u -d -r1.8.10.2 -r1.8.10.2.58.1
--- rmpgff.cpp 28 Mar 2008 02:13:58 -0000 1.8.10.2
+++ rmpgff.cpp 30 Mar 2011 09:31:15 -0000 1.8.10.2.58.1
@@ -496,6 +496,21 @@
{
UINT32 ulBytesLeft = 0;
INT16 wStreams = InitStream_n(pHeader, m_aInfo, ulBytesLeft);
+#ifdef HELIX_PRODUCT_LENOVO_LEPHONE_TD
+ if (eHXMPEG2 == m_aInfo[VIDEO_STREAM].eVideo)
+ {
+ IHXErrorMessages* pErrorMessages = NULL;
+ HX_RESULT ret = m_pContext->QueryInterface(IID_IHXErrorMessages, (void \
**) &pErrorMessages); + if (SUCCEEDED(ret))
+ {
+ pErrorMessages->Report(HXLOG_ERR, HXR_UNSUPPORTED_VIDEO, \
HXR_FMT_MPEG2, NULL, NULL); + }
+ HX_RELEASE(pErrorMessages);
+ pHeaderObj->Release();
+ m_pStatus->FileHeaderReady(HXR_UNSUPPORTED_VIDEO, NULL);
+ return HXR_UNSUPPORTED_VIDEO;
+ }
+#endif
// Keep reading data to complete init
if (!wStreams)
@@ -528,9 +543,9 @@
RedirectStream();
}
- m_pStatus->FileHeaderReady(HXR_REQUEST_UPGRADE, NULL);
+ m_pStatus->FileHeaderReady(HXR_UNSUPPORTED_VIDEO, NULL);
- return HXR_REQUEST_UPGRADE;
+ return HXR_UNSUPPORTED_VIDEO;
}
pHeaderObj->SetPropertyULONG32("StreamCount", wStreams);
@@ -2748,7 +2763,7 @@
return;
// Wait until we processed 50% of the file
- if ((m_ulBytesUsed*100/m_ulFileSize < 50) &
+ if ((m_ulBytesUsed*100/m_ulFileSize < 50) ||
(m_ulPacketDuration < m_ulStreamDuration>>1))
return;
_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic