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>

}<br><br><div><span class="gmail_quote">On 10/18/05, <b class="gmail_sendername">Steve Russell</b> &lt;<a href="mailto:srussell@innernet.net">srussell@innernet.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">







<div><font face="Arial" size="4">Mon,</font></div>
<div><font face="Arial" size="4"></font>&nbsp;</div>
<div><font face="Arial" size="4">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?</font></div>
<div><font face="Arial" size="4"></font>&nbsp;</div>
<div><font face="Arial" size="4">Steve</font></div>
<div><font face="Arial" size="4"></font>&nbsp;</div>
<div>My guess is that speex_decoder_init() should be outside the while().. 
loop<br>as speex_decoder_destroy() is also outside.</div>
<blockquote style="border-left: 2px solid rgb(0, 0, 0); padding-right: 0px; padding-left: 5px; margin-left: 5px; margin-right: 0px;"><span class="q">
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">----- Original Message ----- </div>
  <div style="background: rgb(228, 228, 228) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">
<b>From:</b> 
  <a title="mowin.dev@gmail.com" href="mailto:mowin.dev@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Mo Win</a> 
  </div>
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>To:</b> <a title="speex-dev@xiph.org" href="mailto:speex-dev@xiph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
speex-dev@xiph.org</a> </div>
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Sent:</b> Monday, October 17, 2005 8:05 
  AM</div>
  <div style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Subject:</b> [Speex-dev] Error Executing 
  sampledec in VC++</div>
  <div><br></div></span><div><span class="q" id="q_10700a0bc525377c_2">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 -<span style="font-weight: bold;"> First-chance exception in sampledec.exe : 
  0xC0000005: Access Violation. </span>Has anyone encountered this / does anyone 
  know how to deal with it? by the way, sampleenc executed perfectly... 
  <br><br>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..<br><br>In 
  gratitude,<br>Mon<br><br>(Below is my code. it's almost exactly like sampleenc 
  except I read a file stream instead of stdin)<br><br>#include 
  &quot;speex/speex.h&quot;<br><br>#include &lt;stdio.h&gt;<br>#include 
  &lt;iostream.h&gt;<br><br>void main ()<br>{<br>&nbsp;&nbsp;&nbsp; <span style="color: rgb(153, 255, 153);">// Definitions</span><br>&nbsp;&nbsp;&nbsp; 
  #define FRAME_SIZE 160<br>&nbsp;&nbsp;&nbsp; #define 
  FIXED_POINT<br><br>&nbsp;&nbsp;&nbsp;<span style="color: rgb(153, 255, 153);"> // 
  Variable Declarations</span><br>&nbsp;&nbsp;&nbsp; FILE *fo, 
  *fs;<br>&nbsp;&nbsp;&nbsp; short spx [FRAME_SIZE];<br>&nbsp;&nbsp;&nbsp; float 
  pcm [FRAME_SIZE];<br>&nbsp;&nbsp;&nbsp; char cbits 
  [200];<br>&nbsp;&nbsp;&nbsp; int nbBytes, n, temp;<br><br>&nbsp;&nbsp;&nbsp; 
  void *decstate;<br>&nbsp;&nbsp;&nbsp; SpeexBits 
  spxbits;<br><br><br>&nbsp;&nbsp;&nbsp; <span style="color: rgb(153, 255, 153);">// Program starts 
  here:</span><br>&nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Starting 
  spxdec...\n&quot;;<br>&nbsp;&nbsp;&nbsp; fo = 
  fopen(&quot;samp.spx&quot;,&quot;rb&quot;);<br><br>&nbsp;&nbsp;&nbsp; if (fo == 
  NULL)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; 
  &quot;Error!\n&quot;;<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Okay!\n&quot;;<br><br>&nbsp;&nbsp;&nbsp; fs = 
  fopen (&quot;pcmfile&quot;, &quot;wb&quot;);<br><br>&nbsp;&nbsp;&nbsp; if (fs == 
  NULL)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout &lt;&lt; &quot;Error creating 
  file!\n&quot;;<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  cout &lt;&lt; &quot;File created!\n&quot;;<br><br><br>&nbsp;&nbsp;&nbsp; while 
  (!(feof(fo)))<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; decstate = 
  speex_decoder_init (&amp;speex_nb_mode);<br><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><br>&nbsp;&nbsp;&nbsp; // Initialize spxbits (structure 
  SpeexBits)<br>&nbsp;&nbsp;&nbsp; speex_bits_init 
  (&amp;spxbits);<br><br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fread 
  (&amp;nbBytes, sizeof(int), 1, fo);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  fread (cbits, 1, nbBytes, fo);<br><br>&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; speex_bits_read_from 
  (&amp;spxbits, cbits, nbBytes);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  speex_decode (decstate, &amp;spxbits, pcm);<br><br><br>&nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; // Copy 1 frame from float pcm to short 
  spx<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (n=0; n&lt;FRAME_SIZE; 
  n++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; spx [n] = pcm 
  [n];<br><br>&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;&nbsp; <br>&nbsp;&nbsp;&nbsp; cout &lt;&lt; 
  &quot;Finished processing!\n&quot;;<br>}<br><br>
  </span></div><span class="q"><p>
  </p><hr>

  <p></p>_______________________________________________<br>Speex-dev mailing 
  list<br><a href="mailto:Speex-dev@xiph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Speex-dev@xiph.org</a><br><a href="http://lists.xiph.org/mailman/listinfo/speex-dev" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.xiph.org/mailman/listinfo/speex-dev</a><br><p></p></span></blockquote>

</blockquote></div><br>