<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Re: [Live-devel] How to extract the VOP Coding (I, P, B)</TITLE>

<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.16544" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=640223109-22102007>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007>We tried to parse the data received in 
</SPAN></FONT></FONT></FONT></P>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007></SPAN>Boolean 
MPEG4ESVideoRTPSource::processSpecialHeader<SPAN class=640223109-22102007>() in 
</SPAN></FONT></FONT></FONT><FONT face=Arial><FONT color=#0000ff><FONT 
size=2><SPAN class=640223109-22102007>MPEG4ESVideoRTPSource.cpp 
f</SPAN></FONT></FONT></FONT><FONT face=Arial><FONT color=#0000ff><FONT 
size=2><SPAN class=640223109-22102007>ile </SPAN></FONT></FONT></FONT></P>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007>to find the vop coding type as 
below:-</SPAN></FONT></FONT></FONT></P>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007></SPAN></FONT></FONT></FONT><FONT face=Arial><FONT 
color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007>*************************************************************************************************************************************************</SPAN></FONT></FONT></FONT></P>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007></SPAN></FONT></FONT></FONT><FONT face=Arial><FONT 
color=#0000ff><FONT size=2><SPAN class=640223109-22102007><FONT color=#008000>// 
The packet begins a frame iff its data begins with a system code </FONT><FONT 
color=#008000>// (i.e., 0x000001??)</FONT></SPAN></FONT></FONT></FONT></P>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007>fCurrentPacketBeginsFrame = packet-&gt;dataSize() &gt;= 
4 &amp;&amp; (packet-&gt;data())[0] == 0 &amp;&amp; (packet-&gt;data())[1] == 0 
&amp;&amp; (packet-&gt;data())[2] == 1;</SPAN></FONT></FONT></FONT></P>
<P><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=640223109-22102007></SPAN></FONT></FONT></FONT><FONT><FONT 
color=#0000ff><SPAN class=640223109-22102007><FONT color=#0000ff><FONT 
face=Arial><FONT size=2><FONT 
color=#0000ff>if</FONT>(fCurrentPacketBeginsFrame){</FONT></FONT></P>
<P><FONT color=#008000><FONT face=Arial size=2>/*check for VOP start 
Code*/</FONT></FONT></P>
<P><FONT face=Arial size=2>if((packet-&gt;data())[3] == 0xB6){</FONT></P>
<P><FONT face=Arial size=2>unsigned char vop_coding_type = 
(packet-&gt;data())[4];</FONT></P>
<P><FONT face=Arial size=2>vop_coding_type = 
vop_coding_type&gt;&gt;6;</FONT></P>
<P><FONT face=Arial size=2>}</FONT></P>
<P><FONT face=Arial size=2>}</FONT></P>
<P><SPAN class=640223109-22102007><FONT face=Arial 
size=2>***************************************************************************************************************************************************</FONT></SPAN></P>
<P><SPAN class=640223109-22102007><FONT face=Arial size=2>However this always 
results in the vop_coding_type of 1 which is&nbsp; <FONT face=Arial 
size=2>predictive-coded (P) type.Also outermost &nbsp;loop executes no of frames 
times but innermost loop does not execute that many no of 
times.</FONT></FONT></SPAN></P>
<P><SPAN class=640223109-22102007></SPAN><SPAN class=640223109-22102007><FONT 
face=Arial size=2><FONT face=Arial size=2>Please give your 
suggestions.</FONT></FONT></SPAN></P>
<P><SPAN class=640223109-22102007><FONT face=Arial size=2><FONT face=Arial 
size=2>Regards</FONT></FONT></SPAN></P>
<P><SPAN class=640223109-22102007><FONT face=Arial size=2><FONT face=Arial 
size=2>Nitin</P></FONT></FONT></SPAN>
<P><SPAN class=640223109-22102007><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</P>
<P><SPAN class=640223109-22102007><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</P></FONT></SPAN></FONT></FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><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> Thursday, October 18, 2007 8:46 PM<BR><B>To:</B> 
  LIVE555 Streaming Media - development &amp; use<BR><B>Subject:</B> Re: 
  [Live-devel] How to extract the VOP Coding (I, P,B) type from the MPEG4 RTP 
  Packet at client side ?<BR><BR></FONT></DIV>
  <BLOCKQUOTE cite="" type="cite"><FONT face="Times New Roman">We have RTP 
    packet with MPEG4 payload in it, then how to extract the Frame type 
    information from it&nbsp; at the client side?</FONT><BR></BLOCKQUOTE>
  <BLOCKQUOTE cite="" type="cite"><FONT face="Times New Roman">Do we need to 
    look for VOP_START_CODE(</FONT><FONT face="Courier New"> 
    0x000001B6</FONT><FONT face="Times New Roman">)&nbsp; in each RTP Packet 
    after RTP Header and if present then next two bits will determine the VOP 
    Coding type.</FONT></BLOCKQUOTE>
  <DIV><BR></DIV>
  <DIV>This has nothing to do with "RTP"; the information that you're looking 
  for will be in the data that's received by your client's "RTPSource" 
  subclass.&nbsp; If you just inspect the data that you receive from your 
  "RTPSource" subclass, you will find this.</DIV><X-SIGSEP><PRE>-- 
</PRE></X-SIGSEP>
  <DIV><BR>Ross Finlayson<BR>Live Networks, 
Inc.<BR>http://www.live555.com/</DIV></BLOCKQUOTE></BODY></HTML>