<html>
<head>
<style>
P
{
margin:0px;
padding:0px
}
body
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body>that is correct<BR>
to have an idea, go have a look here: <A href="http://xa.bi/files/amrconvert">http://xa.bi/files/amrconvert</A><BR>
<BR><BR><BR><BR>&nbsp;<BR>

<HR id=stopSpelling>
<BR>
&gt; Date: Mon, 30 Jul 2007 15:37:46 +0200<BR>&gt; From: klaus.mailinglists@pernau.at<BR>&gt; To: asterisk-video@lists.digium.com<BR>&gt; Subject: Re: [Asterisk-video] if2 bit stuffing in app_h324m<BR>&gt; <BR>&gt; Hi Francesco!<BR>&gt; <BR>&gt; Francesco Emmi wrote:<BR>&gt; &gt; Klaus Darilion wrote:<BR>&gt; &gt;&gt; Thanks - got it.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; But I'm still not sure about the Bitreverse during if2 stuffing.<BR>&gt; &gt;&gt;<BR>&gt; &gt;&gt; There is Bitreverse() libh324m during H324MSessionRead and <BR>&gt; &gt;&gt; H324MSessionWrite. Thus, those should be transparent to h324m_gw.<BR>&gt; &gt;&gt;<BR>&gt; &gt; <BR>&gt; &gt; Yes, you are right. But consider that ReverseBit here has not a "octet <BR>&gt; &gt; sex" meaning. It is used just because simplifies code for transcoding <BR>&gt; &gt; from MIME to IF2 (Better you look ETSI TS 126 101...it's very clear and <BR>&gt; &gt; you'll understand soon why the use of reverseBit).<BR>&gt; <BR>&gt; Ok. Can you please help me to understand the bit encodings?<BR>&gt; <BR>&gt; I think I understand the RFC 4867 format - e.g: mode 7 uses 244 bits. <BR>&gt; Network order with most significant byte/bit first. Thus<BR>&gt; <BR>&gt; AMR bit 0 -&gt; buf[0] | (1 &lt;&lt; 7)<BR>&gt; AMR bit 1 -&gt; buf[0] | (1 &lt;&lt; 6)<BR>&gt; AMR bit 2 -&gt; buf[0] | (1 &lt;&lt; 5)<BR>&gt; AMR bit 3 -&gt; buf[0] | (1 &lt;&lt; 4)<BR>&gt; AMR bit 4 -&gt; buf[0] | (1 &lt;&lt; 3)<BR>&gt; AMR bit 5 -&gt; buf[0] | (1 &lt;&lt; 2)<BR>&gt; AMR bit 6 -&gt; buf[0] | (1 &lt;&lt; 1)<BR>&gt; AMR bit 7 -&gt; buf[0] | (1 &lt;&lt; 0)<BR>&gt; AMR bit 8 -&gt; buf[1] | (1 &lt;&lt; 7)<BR>&gt; AMR bit 9 -&gt; buf[1] | (1 &lt;&lt; 6)<BR>&gt; ...<BR>&gt; <BR>&gt; AMR bit 242 -&gt; buf[30] | (1 &lt;&lt; 5)<BR>&gt; AMR bit 243 -&gt; buf[30] | (1 &lt;&lt; 4)<BR>&gt; <BR>&gt; Is this correct?<BR>&gt; <BR>&gt; Then, if this is transformed to if2 - I would think it should be following:<BR>&gt; <BR>&gt; AMR mode bit 0 -&gt; buf[0] | (1 &lt;&lt; 7)<BR>&gt; AMR mode bit 1 -&gt; buf[0] | (1 &lt;&lt; 6)<BR>&gt; AMR mode bit 2 -&gt; buf[0] | (1 &lt;&lt; 5)<BR>&gt; AMR mode bit 3 -&gt; buf[0] | (1 &lt;&lt; 4)<BR>&gt; <BR>&gt; AMR bit 0 -&gt; buf[0] | (1 &lt;&lt; 3)<BR>&gt; AMR bit 1 -&gt; buf[0] | (1 &lt;&lt; 2)<BR>&gt; AMR bit 2 -&gt; buf[0] | (1 &lt;&lt; 1)<BR>&gt; AMR bit 3 -&gt; buf[0] | (1 &lt;&lt; 0)<BR>&gt; AMR bit 4 -&gt; buf[1] | (1 &lt;&lt; 7)<BR>&gt; AMR bit 5 -&gt; buf[1] | (1 &lt;&lt; 6)<BR>&gt; AMR bit 6 -&gt; buf[1] | (1 &lt;&lt; 5)<BR>&gt; AMR bit 7 -&gt; buf[1] | (1 &lt;&lt; 4)<BR>&gt; AMR bit 8 -&gt; buf[1] | (1 &lt;&lt; 3)<BR>&gt; AMR bit 9 -&gt; buf[1] | (1 &lt;&lt; 2)<BR>&gt; ...<BR>&gt; <BR>&gt; AMR bit 242 -&gt; buf[30] | (1 &lt;&lt; 1)<BR>&gt; AMR bit 243 -&gt; buf[30] | (1 &lt;&lt; 0)<BR>&gt; <BR>&gt; <BR>&gt; Is this correct?<BR>&gt; <BR>&gt; <BR>&gt; &gt;&gt; But: There is Bitreverse() when creating the h324 frames - but there is <BR>&gt; &gt;&gt; no Bitreverse() when creating the ast_frame. Further, when creating the <BR>&gt; &gt;&gt; ast_frame, the mode is derived from the first byte, but then the AMR <BR>&gt; &gt;&gt; frame is just copied without if2 decoding (shifting everything for 4 bits).<BR>&gt; &gt;&gt;<BR>&gt; &gt; <BR>&gt; &gt; Ok. According to me you are right. Code in my machine has been patched <BR>&gt; &gt; also to convert from IF2 to MIME in ast_create_frame (so a Bitreverse <BR>&gt; &gt; also here). I had no time to discuss this feature with Sergio, and then <BR>&gt; &gt; to commit patch. But I think this is the correct way.<BR>&gt; <BR>&gt; Can you please post your version of app_h324m.c (or the corresponding <BR>&gt; patch) at the mailing list.<BR>&gt; <BR>&gt; &gt; Anyway, without this, mp4save will save an mp4 with amr in IF2 format, <BR>&gt; &gt; and AFAIK this is not correct...<BR>&gt; <BR>&gt; Yes. I've managed to save AMR in IF2 format to an mp4 file, and playing <BR>&gt; it back - but now I know that I'm wrong and I have to transform to <BR>&gt; RFC4867 format.<BR>&gt; <BR>&gt; regards<BR>&gt; klaus<BR>&gt; <BR>&gt; _______________________________________________<BR>&gt; --Bandwidth and Colocation Provided by http://www.api-digital.com--<BR>&gt; <BR>&gt; asterisk-video mailing list<BR>&gt; To UNSUBSCRIBE or update options visit:<BR>&gt; http://lists.digium.com/mailman/listinfo/asterisk-video<BR><BR><br /><hr />Besoin d'un e-mail ? Créez gratuitement un compte Windows Live Hotmail et bénéficiez d'un filtre antivirus gratuit ! <a href='http://www.windowslive.fr/hotmail/default.asp' target='_new'>Windows Live Hotmail</a></body>
</html>