<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Re: [Live-devel] Parsing MPEG TS</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<STYLE type=text/css>BLOCKQUOTE {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
DL {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
UL {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
OL {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
LI {
        PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
</STYLE>

<META content="MSHTML 6.00.6000.16608" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff 
size=2></FONT>&nbsp;</DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> live-devel-bounces@ns.live555.com 
[mailto:live-devel-bounces@ns.live555.com] <B>On Behalf Of </B>Ross 
Finlayson<BR><B>Sent:</B> Saturday, March 22, 2008 12:18 AM<BR><B>To:</B> 
LIVE555 Streaming Media - development &amp; use<BR><B>Subject:</B> Re: 
[Live-devel] Parsing MPEG TS<BR></FONT><BR></DIV>
<DIV></DIV>
<BLOCKQUOTE cite="" type="cite"><FONT face=Arial color=#0000ff size=-1>I'm 
  trying to acquire a MPEG TS over UDP. But I realized that the MPEGDemux uses a 
  MPEGProgramStreamParser that's why it won't work.</FONT></BLOCKQUOTE>
<BLOCKQUOTE cite="" type="cite"><FONT face=Arial color=#0000ff size=-1>To the 
  best of my understanding I don't think&nbsp;there is a MPEG TS parser in 
  livemedia, is that true?</FONT></BLOCKQUOTE>
<DIV><FONT face=Arial color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff 
size=2></FONT><FONT face=Arial color=#0000ff size=2></FONT><BR></DIV>
<DIV>The closest thing that we have to a 'MPEG TS parser' is 
"MPEG2TransportStreamFramer", which is (quoting the header file):</DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff 
size=2></FONT><FONT face=Arial color=#0000ff size=2></FONT><BR></DIV>
<DIV>// A filter that passes through (unchanged) chunks that contain an integral 
number</DIV>
<DIV>// of MPEG-2 Transport Stream packets, but returning (in 
"fDurationInMicroseconds")<BR>// an updated estimate of the time gap between 
chunks.</DIV><X-SIGSEP><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2>Ross,</FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff><FONT size=2>I looked at the &nbsp;<FONT color=#000000><FONT color=#0000ff>MPEG2TransportStreamFramer</FONT> <FONT color=#0000ff>implentation but it doesn't meet my requirements. So probably I can try to write my own </FONT></FONT></FONT></FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008></SPAN><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff><FONT size=2><FONT color=#000000><FONT color=#0000ff>"MPEGTransportStreamParser". I think all you need to do is strip out the TS header and pass the PES packet (and its header) to the MPEGDemux.</FONT></FONT></FONT></FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff><FONT size=2><FONT color=#000000><FONT color=#0000ff>If it works I think the following filter hierarchy should work:</FONT></FONT></FONT></FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2>BasicUDPSource --&gt; MPEGDemux (uses MPEG2TransportStreamParser) --&gt; MPEGDemuxedElementaryStream (2 for A/V) </FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2>--&gt; MPEGVideoStreamFramer (for audio: MPEGAudioStreamFramer) --&gt; ByteStreamSink (2, which expect a complete video/audio frame so that </FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2>I can feed them to a decoder).</FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2>Please let me know if this sounds correct?</FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2>pushkar</FONT></SPAN></PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2></FONT></SPAN>&nbsp;</PRE><PRE><SPAN class=796484519-24032008><FONT face=Arial color=#0000ff size=2></FONT></SPAN>&nbsp;</PRE></BODY></HTML>