<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Re: [Live-devel] MPEG-4 Visual configuration bits in SDP</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<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.17092" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello Ross,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I would disagree that decoding SDP config bits is
not needed for streaming at all.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>For example, Axis 240S and 240Q video servers *do
not* provide "x-dimensions" parameter in their SDP (or other similar
parameters like "cliprect" or "framesize"). Thus, LIVE555 is not aware
about video resolution when recording RTSP from these video servers. The width
and height values must be supplied manually, which is not feasible in some
cases. E.g. when recording MPEG-4 stream to AVI file, the wrong width and
height values in AVI header might result in unplayable file.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>From another hand, Axis 240S and 240Q video
servers provide the required video resolution info in bits
"</FONT><FONT face=Arial size=2>video_object_layer_width" and
"video_object_layer_height" from config parameter. Thus, config
bits parsing/decoding would be a useful feature in LIVE555. The
decoding algorythm is pretty simple and can be found in ISO/IEC 14496 Part 2
documentation in "Visual bitstream syntax" chapter.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>After all, LIVE555 currently has a static function
samplingFrequencyFromAudioSpecificConfig() implemented in
MPEG4GenericRTPSource.cpp. That's exactly what it is doing - parsing (i.e.
decoding, in other words) SDP config bits to extract frequency. This
value is being used in SubsessionIOState class when recording QT
movies.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Kind regards,</FONT></DIV>
<DIV><FONT face=Arial size=2>Dmitriy Petrenko</FONT></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=finlayson@live555.com href="mailto:finlayson@live555.com">Ross
Finlayson</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=live-devel@ns.live555.com
href="mailto:live-devel@ns.live555.com">LIVE555 Streaming Media - development
& use</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, December 10, 2010 10:07
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Live-devel] MPEG-4 Visual
configuration bits in SDP</DIV>
<DIV><BR></DIV>
<BLOCKQUOTE cite="" type="cite"><FONT face=Arial size=-1>Just came across
that it would be useful to have an easy-to-use decoder for MPEG-4 Visual
configuration bits that are encoded in "config" parameter of SDP.
Something like mpeg4vol command-line tool from mpeg4ip does. Are there any
plans to implement this in the future?</FONT></BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>The 'config' parameter string is simply a string of bytes, encoded as
hexadecimal digits (therefore, two hexadecimal digits per byte). We do
have a function:</DIV>
<DIV><X-TAB>
</X-TAB>parseGeneralConfigStr()</DIV>
<DIV>(defined in "liveMedia/include/MPEG4LATMAudioRTPSource.hh) that will
convert a 'config' string to binary. E.g., the 'config' string</DIV>
<DIV><X-TAB> </X-TAB>deadbeef</DIV>
<DIV>would be converted to the following sequence of 4 bytes</DIV>
<DIV><X-TAB> </X-TAB>0xDE 0xAD 0xBE
0xEF</DIV>
<DIV><BR></DIV>
<DIV>However, we don't implement any additional 'decoding' of this data (or
any other MPEG-4 data), because it's not needed at all for streaming.
(We don't include any audio/video decoding or encoding
software.)</DIV><X-SIGSEP><PRE>--
</PRE></X-SIGSEP>
<DIV><BR>Ross Finlayson<BR>Live Networks,
Inc.<BR>http://www.live555.com/</DIV>
<P>
<HR>
<P></P>_______________________________________________<BR>live-devel mailing
list<BR>live-devel@lists.live555.com<BR>http://lists.live555.com/mailman/listinfo/live-devel<BR></BLOCKQUOTE></BODY></HTML>