Hi Ross,<br><br>when I send a seek ( RTSP ) for a TS file ( handled by MPEG2TransportFileServerMediaSubsession ), MPEG2TransportStreamFramer doesn&#39;t estimate TS packet duration correctly ... I have found a workaround ...
<br><br>*** live/liveMedia/include/MPEG2TransportStreamFramer.hh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-01 11:16:05.000000000 +0200<br>--- live_new/liveMedia/include/MPEG2TransportStreamFramer.hh&nbsp;&nbsp;&nbsp; 2007-07-09 11:38:50.000000000 +0200<br>***************
<br>*** 40,45 ****<br>--- 40,47 ----<br>&nbsp; <br>&nbsp;&nbsp;&nbsp; void changeInputSource(FramedSource* newInputSource) { fInputSource = newInputSource; }<br>&nbsp; <br>+&nbsp;&nbsp; void clearPidStatusTable();<br>+ <br>&nbsp; protected:<br>&nbsp;&nbsp;&nbsp; MPEG2TransportStreamFramer(UsageEnvironment&amp; env, FramedSource* inputSource);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // called only by createNew()<br><br><br>*** live/liveMedia/MPEG2TransportStreamFramer.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-01 11:16:05.000000000 +0200<br>--- live_new/liveMedia/MPEG2TransportStreamFramer.cpp&nbsp;&nbsp; 2007-07-09 11:43:
09.000000000 +0200<br>***************<br>*** 70,75 ****<br>--- 70,83 ----<br>&nbsp;&nbsp;&nbsp; delete fPIDStatusTable;<br>&nbsp; }<br>&nbsp; <br>+ void MPEG2TransportStreamFramer::clearPidStatusTable()<br>+ {<br>+&nbsp;&nbsp; PIDStatus* pidStatus;<br>+&nbsp;&nbsp; while ((pidStatus = (PIDStatus*)fPIDStatusTable-&gt;RemoveNext()) != NULL) {
<br>+&nbsp;&nbsp;&nbsp;&nbsp; delete pidStatus;<br>+&nbsp;&nbsp; }<br>+ }<br>+ <br>&nbsp; void MPEG2TransportStreamFramer::doGetNextFrame() {<br>&nbsp;&nbsp;&nbsp; // Read directly from our input source into our client&#39;s buffer:<br>&nbsp;&nbsp;&nbsp; fFrameSize = 0;<br><br>*** live/liveMedia/MPEG2TransportFileServerMediaSubsession.cpp&nbsp; 2007-07-01 11:16:
05.000000000 +0200<br>--- live_new/liveMedia/MPEG2TransportFileServerMediaSubsession.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2007-07-09 11:41:48.000000000 +0200<br>***************<br>*** 275,280 ****<br>--- 275,282 ----<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Note: We assume that we&#39;re asked to seek only in normal
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // (i.e., non trick play) mode, so we don&#39;t seek within the trick<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // play source (if any).<br>+ <br>+&nbsp;&nbsp;&nbsp;&nbsp; fFramer-&gt;clearPidStatusTable();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br><br><br><br>Is this work correct ?<br>
<br>Thank you<br><br>Massimo<br>