[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] avi/fileformat avistrm.cpp, 1.10.2.13.2.26,
From:       zlin () helixcommunity ! org
Date:       2011-10-31 9:22:53
[Download RAW message or body]

Update of /cvsroot/datatype/avi/fileformat
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv10438

Modified Files:
      Tag: hxclient_3_6_1_atlas
	avistrm.cpp 
Log Message:
Modified by:zlin@real.com
Date: 10/30/2011
Project: RealPlayer for Android Smartphones
Synopsis:c110-the avi media file can not be stoped

Overview:When playing specific avi content,the playback can
not be stopped and the status will be buffering forever.After
investigation,I found this issue was caused by the length of
index table was shorter than the real length of the media
playback.In other words,some indexes are missing at the end
of the clip.Then it will cause method FindClosestChunk return
the maximum index.However,it still not what we need.Meanwhile,
the error code HXR_NOT_INDEXABLE will be returned and indicates
we have already reached the end of the index table.In order to
conquer this question,simply update the target chunk number
according to the parameter of FindClosestChunk.It will continue
the playback even the index table end reached.In deed,it is strange
to trust index table more than the real media content.

Files Added:
None

Files Modified:
datatype/avi/fileformat/avistrm.cpp

Image Size and Heap Use impact (Client -Only): None

Platforms and Profiles Affected:
Platform: android-2.3-arm-smdk_c110
Profile: helix-client-android-LePhoneTD-C110

Distribution Libraries Affected:None

Distribution library impact and planned action:None

Platforms and Profiles Build Verified:
Platform: android-2.3-arm-smdk_c110
Profile: helix-client-android-LePhoneTD-C110

Platforms and Profiles Functionality verified:
Platform: android-2.3-arm-smdk_c110
Profile: helix-client-android-LePhoneTD-C110

Branch: 361atlas 


Index: avistrm.cpp
===================================================================
RCS file: /cvsroot/datatype/avi/fileformat/avistrm.cpp,v
retrieving revision 1.10.2.13.2.26
retrieving revision 1.10.2.13.2.27
diff -u -d -r1.10.2.13.2.26 -r1.10.2.13.2.27
--- avistrm.cpp	27 Oct 2011 09:38:02 -0000	1.10.2.13.2.26
+++ avistrm.cpp	31 Oct 2011 09:22:50 -0000	1.10.2.13.2.27
@@ -1728,6 +1728,16 @@
 
     if(indexResult == HXR_OK || indexResult == HXR_NOT_INDEXABLE)
     {
+        //In order to handle the scenario which index table
+        //can not cover the clip completely and the chunk returned
+        //is not exact what we desired,just pretend to perform as
+        //we have found the desired chunk.It makes the playback
+        //continue even index table has reached.
+        if ( HXR_NOT_INDEXABLE == indexResult )
+        {
+            m_ulChunkReadTarget = m_ulMaxReadChunk + m_ulZeroSizeChunkNum;
+        }
+
         // Try to get chunk even if this is not indexed.
         if (ulNextChunkOffset != m_pReader->GetOffset())
         {


_______________________________________________
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