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

List:       helix-datatype-cvs
Subject:    [Datatype-cvs]
From:       xiaochengli () helixcommunity ! org
Date:       2011-12-23 11:45:22
[Download RAW message or body]

Update of /cvsroot/datatype/mp4/payload/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv16585/pub

Modified Files:
      Tag: SERVER_14_3
	mp4apyld.h mp4gpyld.h 
Log Message:

Synopsis:
=========
This fix is for PR269464: iphone segments stop streaming after 24hrs or more uptime \
on Solaris

Branch: HEAD, SERVER_14_3_RN
Suggested Reviewers: Chytanya, Anyone
Reviewed by: Chytanya

Description:
=========
This description reports that rtp live feed can't work for HLS client after 24hr, \
actually if we add RTP time from RTPBCStreamsObject::PacketReady to make it repro \
easier, on both windows and solaris we can't see correct picture/audio on iPad.  \
There're another PR262104, which has a similar roll-over for h264. The original \
check-in description is: 

" In the h264 depacketizer, we use rtp2hxa to calculate the media time.  This assumes \
that the packets starting from (rtp = 0, media time = 0), and is okay for on-demand \
content.  But for live packets, the rtp time rolls over in a few hours and everything \
falls apart. The bug shows up in the flash live playback where the delta between \
composition(presentation, media, whatever:-) time and decode(delivery) time is huge \
because the incorrect rtp time conversion. Since live packets are only from the \
server, the fix is to query the IHXServerPacketExt and get the media time, instead of \
doing the conversion. "


This fix includes: 
Porting the same code from h264pyld to mp4apyld and mp4gpyld as PR262104, to use \
milliseconds from packet directly if available. 

Files affected:
=========
datatype/mp4/payload/mp4apyld.cpp
datatype/mp4/payload/pub/mp4apyld.h
datatype/mp4/payload/mp4gpyld.cpp
datatype/mp4/payload/pub/mp4gpyld.h
datatype_rn/mpeg2/ts/muxer/tsmux.cpp

Testing Performed:
=========
Unit Tests: N/A
Integration Tests: 
Test on windows/solaris, after changing RTPTime in RTPBCStreamsObject::PacketReady, \
it can work well for packets/feeds with big RTP time.  I'm running a long time \
testing and check if it can insist more than 24 hrs. 

Leak Tests: None
Performance Tests: N/A

Platforms Tested: win-x86_64-vc10, Solaris 64 Builds Verified: win-x86_64-vc10, \
Solaris 64

QA Hints
========
Need to test live feeds from RBS/rtpencoder/rtmp to HLS for a long time(e.p, 13hr, \
24hr, 27hr). 



Index: mp4gpyld.h
===================================================================
RCS file: /cvsroot/datatype/mp4/payload/pub/mp4gpyld.h,v
retrieving revision 1.6
retrieving revision 1.6.4.1
diff -u -d -r1.6 -r1.6.4.1
--- mp4gpyld.h	29 Jan 2011 01:30:52 -0000	1.6
+++ mp4gpyld.h	23 Dec 2011 11:45:19 -0000	1.6.4.1
@@ -257,6 +257,7 @@
     HXBOOL			m_bFlushed;
     HXBOOL			m_bUsesRTPPackets;
     HXBOOL			m_bRTPPacketTested;
+    HXBOOL			m_bUsesServerPacketExt;
     HXBOOL			m_bPacketize;
     HXBOOL			m_bPriorLoss;
 

Index: mp4apyld.h
===================================================================
RCS file: /cvsroot/datatype/mp4/payload/pub/mp4apyld.h,v
retrieving revision 1.17
retrieving revision 1.17.4.1
diff -u -d -r1.17 -r1.17.4.1
--- mp4apyld.h	29 Sep 2011 01:24:25 -0000	1.17
+++ mp4apyld.h	23 Dec 2011 11:45:19 -0000	1.17.4.1
@@ -165,6 +165,7 @@
     HXBOOL                      m_bFlushed;
     HXBOOL                      m_bUsesRTPPackets;
     HXBOOL                      m_bRTPPacketTested;
+    HXBOOL                      m_bUsesServerPacketExt;
     HXBOOL                      m_bPacketize;
     HXBOOL                      m_bPriorLoss;
 


_______________________________________________
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