[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