<!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> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=849252715-05022008>I have checked
the RTCP SR packets that 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> </DIV>
<DIV><FONT face=Arial size=2><SPAN
class=849252715-05022008></SPAN></FONT> </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> 80c80006 00006da5 83b4ebf7
199524c0 00018e1f 000000db 0003c76d 81ca0005 00006da5 010a7377 6f70742d 766f6970
00000000<BR>schedule(1.015347->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->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 and the calling of
videoSink->startPlaying(...) and also the time it take for the operating
system to open and begin reading the file itself. This will 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> </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 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> </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>