<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="country-region"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:321205420;
        mso-list-type:hybrid;
        mso-list-template-ids:-449002074 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hello,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I&#8217;m
currently trying to get MPEG4 ES Streaming from a real-time encoder implemented
on an embedded ARM platform &#8211; did some analysis on the current MPEG4VideoStreamFramer
and its associated parsers &#8211; although it&#8217;s a very well designed
(and robust) implementation, it slightly inefficient for our needs;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>1)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>There are
two levels of memory copying &#8211; one from the ByteStreamFileSource (or
whatever source you have) to the StreamParser&#8217;s double banks, and then
from there to the actual fTo location where MultiFramedSink will pick it up and
pack/send it. This is unacceptable since I&#8217;ll already be doing another
memory copying from the encoder output memory location to a circular buffer
from which LiveMedia picks up its data; this amounts to wasteful memory
bandwidth<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><span
style='mso-list:Ignore'>2)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span></span></font><![endif]><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The output
of our encoder gives us discrete VOP packets (after the initial VOSS, and VOL
headers) that we know the size to &#8211; this allows for efficient DMA and to
a lesser extent, memcopies. The MPEG4VideoStreamParser goes through byte by byte
in its traversal for the start codes, which is not required in our application<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Knowing these two things, what do you suggest as a course of
action? I was thinking of making my own MPEG4VideoStreamFramer class (named
differently) that instantiates perhaps a BufferStreamParser? (The data input is
resident in a FIFO buffer). Ultimately, I would like to copy from the circular
buffer directly to the final fTo location, and to do that without going through
the stream byte by byte (not needed, since VOP packets can be transferred
wholely to the fTo buffer)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Any help will be appreciated,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Thanks<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><strong><b><font size=2 face=Arial><span style='font-size:
10.0pt;font-family:Arial'>Jerry Johns</span></font></b></strong><o:p></o:p></p>

<p class=MsoNormal><em><i><font size=1 face=Arial><span style='font-size:7.5pt;
font-family:Arial'>Design Engineer</span></font></i></em><o:p></o:p></p>

<p class=MsoNormal><em><i><font size=1 color=blue face=Arial><span
style='font-size:7.5pt;font-family:Arial;color:blue'>Nuvation Research Corp - <st1:country-region
w:st="on"><st1:place w:st="on">Canada</st1:place></st1:country-region></span></font></i></em><o:p></o:p></p>

<p class=MsoNormal><em><i><font size=1 color=blue face=Arial><span
style='font-size:7.5pt;font-family:Arial;color:blue'>Tel: (519) 746-2304 ext.
225</span></font></i></em><o:p></o:p></p>

<p class=MsoNormal><em><i><font size=1 color=blue face=Arial><span
style='font-size:7.5pt;font-family:Arial;color:blue'><a
href="http://www.nuvation.com"><font face="Times New Roman"><span
style='font-family:"Times New Roman"'>www.nuvation.com</span></font></a></span></font></i></em><o:p></o:p></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;</span><o:p></o:p></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>