<!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->dataSize() >=
4 && (packet->data())[0] == 0 && (packet->data())[1] == 0
&& (packet->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->data())[3] == 0xB6){</FONT></P>
<P><FONT face=Arial size=2>unsigned char vop_coding_type =
(packet->data())[4];</FONT></P>
<P><FONT face=Arial size=2>vop_coding_type =
vop_coding_type>>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 <FONT face=Arial
size=2>predictive-coded (P) type.Also outermost 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> </P>
<P><SPAN class=640223109-22102007><FONT face=Arial
size=2></FONT></SPAN> </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 & 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 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">) 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. 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>