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