Guys, Program stack is getting overflowed when I create and destroy encoder instance continuously for around 30 times. How can I ensure stack is completely freed when I destroy the encoder instance? I tried with VAR_ARRAYS. But Its giving me errors while I try to compile. I suppose VAR_ARRAYS allocates local variables as arrays so that they could go on to stack and finally when we leave the function, the stack is freed. when I use VAR_ARRAYS, I get this error " declarations may not appear after an executable statement in the block". Is there any changes need to be done in stack_alloc.h ? Have you guys faced same trouble or any fix is already done on this issue? My platform is TI C6424, CCS and windows. -- Best Regards Fezin E T Senior Engineer - Systems Business Unit | Design And Development TATA ELXSI Technopark Campus Trivandrum 695 581 India Tel +91 471 666 1117 www.tataelxsi.com<http://www.tataelxsi.com/> Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/opus/attachments/20130527/338dce0e/attachment-0001.htm
Did you try replacing the create() with separate malloc() and init() steps. If so, which of the two was causing the problems? BTW, you need a C99 compiler for VAR_ARRAYS to work, although you may be able to use USE_ALLOCA. Jean-Marc On 05/27/2013 08:36 AM, Fezin E T wrote:> Guys, > > Program stack is getting overflowed when I create and destroy encoder > instance continuously for around 30 times. How can I ensure stack is > completely freed when I destroy the encoder instance? I tried with > VAR_ARRAYS. But Its giving me errors while I try to compile. I suppose > VAR_ARRAYS allocates local variables as arrays so that they could go on > to stack and finally when we leave the function, the stack is freed. > when I use VAR_ARRAYS, I get this error " declarations may not appear > after an executable statement in the block". Is there any changes need > to be done in stack_alloc.h ? Have you guys faced same trouble or any > fix is already done on this issue? > My platform is TI C6424, CCS and windows. > > -- > > Best Regards > > Fezin E T > > Senior Engineer - Systems Business Unit | Design And Development > TATA ELXSI > > Technopark CampusTrivandrum 695 581 India > > Tel +91 471 666 1117 > > _www.tataelxsi.com <http://www.tataelxsi.com/>_ > > Notice: The information contained in this e-mail message and/or > attachments to it may contain confidential or privileged information. If > you are not the intended recipient, any dissemination, use, review, > distribution, printing or copying of the information contained in this > e-mail message and/or attachments to it are strictly prohibited. If you > have received this communication in error, please notify us by reply > e-mail or telephone and immediately and permanently delete the message > and any attachments. Thank you > > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus >
I got over the stack overflow issue it seems. I was using destroy() API to free
the encoder or decoder instance memory. In that function, Only the structure
opusEncoder is getting freed. When I used create() call to allocate memory, it
used get_size() function in which size it returned combined sizeof(struct
OpusEncoder) + silkEncSizeBytes + celtEncSizeBytes. Now in destroy() I called
get_size again and freed entire memory and the issue is fixed! I can turn on any
number of times in real time without any issue.
Thank You guys for your time!
Best Regards
Fezin E T
On 5/27/2013 8:50 PM, Jean-Marc Valin wrote:
Did you try replacing the create() with separate malloc() and init()
steps. If so, which of the two was causing the problems?
BTW, you need a C99 compiler for VAR_ARRAYS to work, although you may be
able to use USE_ALLOCA.
Jean-Marc
On 05/27/2013 08:36 AM, Fezin E T wrote:
Guys,
Program stack is getting overflowed when I create and destroy encoder
instance continuously for around 30 times. How can I ensure stack is
completely freed when I destroy the encoder instance? I tried with
VAR_ARRAYS. But Its giving me errors while I try to compile. I suppose
VAR_ARRAYS allocates local variables as arrays so that they could go on
to stack and finally when we leave the function, the stack is freed.
when I use VAR_ARRAYS, I get this error " declarations may not appear
after an executable statement in the block". Is there any changes need
to be done in stack_alloc.h ? Have you guys faced same trouble or any
fix is already done on this issue?
My platform is TI C6424, CCS and windows.
--
Best Regards
Fezin E T
Senior Engineer - Systems Business Unit | Design And Development
TATA ELXSI
Technopark CampusTrivandrum 695 581 India
Tel +91 471 666 1117
_www.tataelxsi.com
<http://www.tataelxsi.com/><http://www.tataelxsi.com/>_
Notice: The information contained in this e-mail message and/or
attachments to it may contain confidential or privileged information. If
you are not the intended recipient, any dissemination, use, review,
distribution, printing or copying of the information contained in this
e-mail message and/or attachments to it are strictly prohibited. If you
have received this communication in error, please notify us by reply
e-mail or telephone and immediately and permanently delete the message
and any attachments. Thank you
_______________________________________________
opus mailing list
opus at xiph.org<mailto:opus at xiph.org>
http://lists.xiph.org/mailman/listinfo/opus
.
Notice: The information contained in this e-mail message and/or attachments to
it may contain confidential or privileged information. If you are not the
intended recipient, any dissemination, use, review, distribution, printing or
copying of the information contained in this e-mail message and/or attachments
to it are strictly prohibited. If you have received this communication in error,
please notify us by reply e-mail or telephone and immediately and permanently
delete the message and any attachments. Thank you
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.xiph.org/pipermail/opus/attachments/20130528/58afee6f/attachment.htm