<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" 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)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* 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:blue;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

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

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>You should really do a check to make sure </span></font><span
class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <o:p></o:p></span></p>

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

<p class=MsoNormal><span class=q><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>nbBytes isn&#8217;t larger than 200, otherwise you&#8217;re
going to read past the end of your char array.<o:p></o:p></span></font></span></p>

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

<p class=MsoNormal><span class=q><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>fread (&amp;nbBytes, sizeof(int), 1, fo);</span><o:p></o:p></span></font></span></p>

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

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
speex-dev-bounces@xiph.org [mailto:speex-dev-bounces@xiph.org] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Mo Win<br>
<b><span style='font-weight:bold'>Sent:</span></b> Monday, October 17, 2005
7:31 PM<br>
<b><span style='font-weight:bold'>To:</span></b> speex-dev@xiph.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Speex-dev] Error
Executing sampledec in VC++</span></font><o:p></o:p></p>

</div>

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

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>Hi Steve, thanks for the
advice. I placed the appropriate functions outside the while statement but I
still get this error at the while loop:<br>
<br>
First-chance exception at 0x004010fa in SPXDEC.exe: 0xC0000005: Access
violation reading location 0x0000000c.<br>
Unhandled exception at 0x004010fa in SPXDEC.exe: 0xC0000005: Access violation
reading location 0x0000000c.<br>
<br>
It looks like the same error. I've attached the code below<br>
<br>
Thanks,<br>
Mon<br>
<br>
Portion of the revised code:<br>
<br>
<br>
&nbsp;&nbsp;&nbsp; decstate = speex_decoder_init (&amp;speex_nb_mode);<br>
&nbsp;&nbsp;&nbsp; // Set default options for decoding:<br>
&nbsp;&nbsp;&nbsp; temp = 1;<br>
&nbsp;&nbsp;&nbsp; speex_decoder_ctl(decstate, SPEEX_SET_ENH, &amp;temp);<br>
<br>
&nbsp;&nbsp;&nbsp; // Initialize spxbits (structure SpeexBits)<br>
&nbsp;&nbsp;&nbsp; speex_bits_init (&amp;spxbits);<br>
<br>
&nbsp;&nbsp;&nbsp; while (!(feof(fo)))&nbsp;&nbsp;&nbsp;&nbsp; // this is where
the problem starts<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fread (&amp;nbBytes, sizeof(int), 1,
fo);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fread (cbits, 1, nbBytes, fo);<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;1&quot;; // just
to see whether the loop iterates<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; speex_bits_read_from (&amp;spxbits,
cbits, nbBytes);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; speex_decode (decstate,
&amp;spxbits, pcm);<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Copy 1 frame from float pcm to
short spx<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (n=0; n&lt;FRAME_SIZE; n++)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spx [n] =
pcm [n];<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fwrite (spx, sizeof(short),
FRAME_SIZE, fs);<br>
<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp; // end of&nbsp; loop<br>
&nbsp;&nbsp;&nbsp; // Entire file has been read, decoded and saved<br>
<br>
&nbsp;&nbsp;&nbsp; speex_decoder_destroy (decstate);<br>
&nbsp;&nbsp;&nbsp; speex_bits_destroy (&amp;spxbits);<br>
&nbsp;&nbsp;&nbsp; fclose (fo);<br>
&nbsp;&nbsp;&nbsp; fclose (fs);<br>
&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Finished processing!\n&quot;;<br>
}<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><span class=gmailquote><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>On 10/18/05, <b><span style='font-weight:bold'>Steve
Russell</span></b> &lt;<a href="mailto:srussell@innernet.net">srussell@innernet.net</a>&gt;
wrote:</span></font></span><o:p></o:p></p>

<div>

<p class=MsoNormal><font size=4 face=Arial><span style='font-size:13.5pt;
font-family:Arial'>Mon,</span></font><o:p></o:p></p>

</div>

<div>

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

</div>

<div>

<p class=MsoNormal><font size=4 face=Arial><span style='font-size:13.5pt;
font-family:Arial'>Here is&nbsp;feedback that I got concerning the access
violation, i.e. the failure of the while loop below.&nbsp; Does this solve the
problem?</span></font><o:p></o:p></p>

</div>

<div>

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

</div>

<div>

<p class=MsoNormal><font size=4 face=Arial><span style='font-size:13.5pt;
font-family:Arial'>Steve</span></font><o:p></o:p></p>

</div>

<div>

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

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>My guess is that speex_decoder_init() should be outside the while()..
loop<br>
as speex_decoder_destroy() is also outside.<o:p></o:p></span></font></p>

</div>

<blockquote style='border:none;border-left:solid black 1.5pt;padding:0in 0in 0in 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<div style='font-size-adjust: none;font-stretch: normal'>

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

</div>

<div style='-moz-background-clip: initial;-moz-background-origin: initial;
-moz-background-inline-policy: initial;font-size-adjust: none;font-stretch: normal;
background-attachment:scroll;background-position-x:0%;background-position-y:
50%'>

<p class=MsoNormal style='background:#E4E4E4'><b><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial;font-weight:bold'>From:</span></font></b><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> <a
href="mailto:mowin.dev@gmail.com" target="_blank" title="mowin.dev@gmail.com">Mo
Win</a> <o:p></o:p></span></font></p>

</div>

<div style='font-size-adjust: none;font-stretch: normal'>

<p class=MsoNormal><b><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'>To:</span></font></b><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'> <a
href="mailto:speex-dev@xiph.org" target="_blank" title="speex-dev@xiph.org">speex-dev@xiph.org</a>
<o:p></o:p></span></font></p>

</div>

<div style='font-size-adjust: none;font-stretch: normal'>

<p class=MsoNormal><b><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'>Sent:</span></font></b><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'> Monday, October
17, 2005 8:05 AM<o:p></o:p></span></font></p>

</div>

<div style='font-size-adjust: none;font-stretch: normal'>

<p class=MsoNormal><b><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial;font-weight:bold'>Subject:</span></font></b><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'> [Speex-dev] Error
Executing sampledec in VC++<o:p></o:p></span></font></p>

</div>

<div>

<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>

<div><span id="q_10700a0bc525377c_2">

<p class=MsoNormal><span class=q><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>hey guys, I just compiled an application similar to
sampledec.c (for speex 1.1.10) and it was fine but when I executed it, the app
exited without doing anything. I'm using MS VC 6.0 and this was all I got -<b><span
style='font-weight:bold'> First-chance exception in sampledec.exe : 0xC0000005:
Access Violation. </span></b>Has anyone encountered this / does anyone know how
to deal with it? by the way, sampleenc executed perfectly... </span></font></span><br>
<br>
<span class=q>When I removed the &quot;while&quot; loop in sampledec, the
program executed fine (I placed printf's to check which lines were executed). I
also tried running the loop only once (erasing only the while statement and
retaining the code within it) and it worked fine again. Something seems to be
happening during loop iteration that causes the program to terminate
abnormally.. any clues? thanks very much for any tip..</span><br>
<br>
<span class=q>In gratitude,</span><br>
<span class=q>Mon</span><br>
<br>
<span class=q>(Below is my code. it's almost exactly like sampleenc except I
read a file stream instead of stdin)</span><br>
<br>
<span class=q>#include &quot;speex/speex.h&quot;</span><br>
<br>
<span class=q>#include &lt;stdio.h&gt;</span><br>
<span class=q>#include &lt;iostream.h&gt;</span><br>
<br>
<span class=q>void main ()</span><br>
<span class=q>{</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; <font color="#99ff99"><span style='color:#99FF99'>//
Definitions</span></font></span><br>
<span class=q>&nbsp;&nbsp;&nbsp; #define FRAME_SIZE 160</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; #define FIXED_POINT</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp;<font color="#99ff99"><span style='color:#99FF99'>
// Variable Declarations</span></font></span><br>
<span class=q>&nbsp;&nbsp;&nbsp; FILE *fo, *fs;</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; short spx [FRAME_SIZE];</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; float pcm [FRAME_SIZE];</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; char cbits [200];</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; int nbBytes, n, temp;</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; void *decstate;</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; SpeexBits spxbits;</span><br>
<br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; <font color="#99ff99"><span style='color:#99FF99'>//
Program starts here:</span></font></span><br>
<span class=q>&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Starting
spxdec...\n&quot;;</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; fo = fopen(&quot;samp.spx&quot;,&quot;rb&quot;);</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; if (fo == NULL)</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt;
&quot;Error!\n&quot;;</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; else</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt;
&quot;Okay!\n&quot;;</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; fs = fopen (&quot;pcmfile&quot;,
&quot;wb&quot;);</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; if (fs == NULL)</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Error
creating file!\n&quot;;</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; else</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;File
created!\n&quot;;</span><br>
<br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; while (!(feof(fo)))</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; {</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; decstate = speex_decoder_init
(&amp;speex_nb_mode);</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; // Set default options for decoding:</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; temp = 1;</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; speex_decoder_ctl(decstate, SPEEX_SET_ENH,
&amp;temp);</span><br>
<br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; // Initialize spxbits (structure SpeexBits)</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; speex_bits_init (&amp;spxbits);</span><br>
<br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fread (&amp;nbBytes,
sizeof(int), 1, fo);</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fread (cbits, 1, nbBytes,
fo);</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt;
&quot;1&quot;; // just to see whether the loop iterates</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; speex_bits_read_from
(&amp;spxbits, cbits, nbBytes);</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; speex_decode (decstate, &amp;spxbits,
pcm);</span><br>
<br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Copy 1 frame from float
pcm to short spx</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (n=0; n&lt;FRAME_SIZE;
n++)</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; spx [n]
= pcm [n];</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fwrite (spx, sizeof(short),
FRAME_SIZE, fs);</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; }</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; &nbsp;// end of&nbsp; loop</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; // Entire file has been read, decoded and
saved</span><br>
<br>
<span class=q>&nbsp;&nbsp;&nbsp; speex_decoder_destroy (decstate);</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; speex_bits_destroy (&amp;spxbits);</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; fclose (fo);</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; fclose (fs);</span><br>
<span class=q>&nbsp;&nbsp;&nbsp; </span><br>
<span class=q>&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Finished
processing!\n&quot;;</span><br>
<span class=q>}</span><br>
<br>
<br>
<o:p></o:p></p>

</div>

</span>

<div class=MsoNormal align=center style='text-align:center'><span class=q><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center>

</span></font></span></div>

<p class=MsoNormal><span class=q><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>_______________________________________________</span></font></span><br>
<span class=q>Speex-dev mailing list</span><br>
<span class=q><a href="mailto:Speex-dev@xiph.org" target="_blank">Speex-dev@xiph.org</a></span><br>
<span class=q><a href="http://lists.xiph.org/mailman/listinfo/speex-dev"
target="_blank">http://lists.xiph.org/mailman/listinfo/speex-dev</a><o:p></o:p></span></p>

</blockquote>

</div>

<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>