<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.6000.16587" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>I believe I might 
have ran into a design issue for the TimeStamp creation when 
MPEG1or2VideoStreamFramer is used. Here what I have found.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=849252715-05022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>I have&nbsp;checked 
the RTCP SR packets that&nbsp;are sent when I play a video Mpeg2 ES. I have used 
the sample application testMPEG1or2VideoStreamer. I have followed the RTP/RTCP 
packets that are sent when no client has synchronized through a RTSP session. 
The TimeStamp values computed in the RTCP SR packet have a gap that mismatch the 
Mpeg2 ES RTP timestamp packet. Here are the value computed by the 
library</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=849252715-05022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=849252715-05022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>fTimestampBase: 
0xae0daf0d, tv: 683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 
0xae0daf0d, tv: 683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 
0xae0daf0d, tv: 683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 
0xae0daf0d, tv: 683382.201906, RTP timestamp: 21097<BR>sending 
REPORT<BR>fTimestampBase: 0xae0daf0d, tv: 683383.099932, RTP timestamp: 
101919<BR>Creating RTCP SR packet, SSRC is 0x6da5, NTP is : tv: 683383.099932, 
TimeStamp is: 101919<BR>sending RTCP packet<BR>&nbsp;80c80006 00006da5 83b4ebf7 
199524c0 00018e1f 000000db 0003c76d 81ca0005 00006da5 010a7377 6f70742d 766f6970 
00000000<BR>schedule(1.015347-&gt;683384.121916)<BR>fTimestampBase: 0xae0daf0d, 
tv: 683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.201906, RTP timestamp: 21097<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.235273, RTP timestamp: 24100<BR>fTimestampBase: 0xae0daf0d, tv: 
683382.235273, RTP timestamp: 24100<BR></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>Obviously the 
TimeStamp value of the RTCP SR packet should be between 21097 and 24100. After 
looking in the code I have found that the first TimeStamp is initialized from 
the creation of the <FONT size=2>MPEG1or2VideoStreamFramer object when <FONT 
size=2>MPEGVideoStreamFramer::reset() is called. However there is gap between 
the time the MPEG1or2VideoStreamFramer object is created and the time it take 
from <FONT size=2>videoSink-&gt;startPlaying(...) to initiate the reading of the 
file through the <FONT size=2>ByteStreamFileSource object. This notwithstanding 
the delay that can be induced between the creation of 
MPEG1or2VideoStreamFramer&nbsp;and the calling of 
videoSink-&gt;startPlaying(...) and also the time it take for the operating 
system to open and begin reading the file itself. This will&nbsp;introduce a 
delay that will offset all TimeStamp of the RTP packets to be sent with the RTCP 
SR computed timestamp.</FONT></FONT></FONT></FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=849252715-05022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>I believe the 
timestamp should be created somewhere else. May be when the <FONT 
size=2>MPEG1or2VideoRTPSink send the first RTP packet. I have not checked but 
this problem is likely to occurs&nbsp;in other framer object if they use the 
same timestamp initialization methodology.</FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=849252715-05022008></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>Guy 
Bonneau</SPAN></FONT><FONT face=Arial size=2><SPAN 
class=849252715-05022008></DIV></SPAN></FONT></BODY></HTML>