[opus] Availability of the 1.1.1 stable version

Jean-Marc Valin jmvalin at jmvalin.ca
Thu Apr 16 05:06:43 PDT 2015


Please provide the input file that produces this with opus_demo.

On 16/04/15 03:24 AM, Suresh Thiriveedi wrote:
> Hi  Jean-Marc,
> 
> Could you please update if you got a chance to look into. As I
> mentioned, I don't see the same issue in 1.1.1, but I don't see any
> difference in 1.1.1 other than optimization based on the architecture.
> This optimization could have fixed some stack overflow issue in some
> specific cases?
> 
> 
> Thanks
> Suresh
> 
> On 13 April 2015 at 12:39, Suresh Thiriveedi <sthiriveedi at gmail.com
> <mailto:sthiriveedi at gmail.com>> wrote:
> 
>     Hi Jean-Marc,
> 
>     Thanks for your response. Please find the details as below.
> 
>     *_Backtrace we got for this crash:_*
> 
>     #0  0x0000000000800c54 in opus_decode_frame (st=0x38906b8f99d09c5,
> 
>         data=0xf0aa10b4ef1008ae <Address 0xf0aa10b4ef1008ae out of
>     bounds>, len=-188613428, pcm=0x6e80016085efd57,
> 
>         frame_size=44037315, decode_fec=58716895) at src/opus_decoder.c:384
> 
> 
>     #1  0x00000000008009c0 in opus_decode_frame (st=0x712357d0,
> 
>         data=0x7effff9ab72d
>     "~▒`\\▒K\005▒▒y▒w+g~▒S2\025▒\036T▒\002x▒▒h!▒▒▒\220\233\066s▒\030#gb
>     \rn▒rF\005Q▒\213;▒`\207$O▒(m\222=9▒▒/h▒▒t▒▒E묳w▒\237\"\206z\005
>     \213»u at e", len=88, pcm=0x7effff9a6a80, frame_size=640, decode_fec=0)
>     at src/opus_decoder.c:319
> 
> 
>     #2  0x0000000000801be1 in opus_decode_native (st=0x712357d0,
> 
>         data=0x7effff9ab72d
>     "~▒`\\▒K\005▒▒y▒w+g~▒S2\025▒\036T▒\002x▒▒h!▒▒▒\220\233\066s▒\030#gb
>     \rn▒rF\005Q▒\213;▒`\207$O▒(m\222=9▒▒/h▒▒t▒▒E묳w▒\237\"\206z\005
>     \213»u at e", len=89, pcm=0x7effff9a6a80, frame_size=640, decode_fec=0,
>     self_delimited=0,
> 
>         packet_offset=0x0, soft_clip=1) at src/opus_decoder.c:681
> 
> 
>     #3  0x000000000080226c in opus_decode (st=0x712357d0,
> 
>         data=0x7effff9ab72c
>     "▒~▒`\\▒K\005▒▒y▒w+g~▒S2\025▒\036T▒\002x▒▒h!▒▒▒\220\233\066s▒\030#gb
>     \rn▒rF\005Q▒\213;▒`\207$O▒(m\222=9▒▒/h▒▒t▒▒E묳w▒\237\"\206z\005
>     \213»u at e", len=89, pcm=0x71245a60, frame_size=640, decode_fec=0) at
>     src/opus_decoder.c:867
> 
> 
>     #4  0x00000000004fd6b5 in kn_opus_decode (decHandle=0x712357d0,
>     decProp=0x1675698, src=0x16756d0, dest=0x71245a60,
> 
>         dstLen=0x1673210) at MSTranscodeOPUS.c:100
> 
> 
> 
>     *_And the code flow what we have observed for this specific incident:_*
>     *_
>     _*
>     *_Called this as mode is CELT_ONLY,_*
> 
>        if (data!=NULL && st->prev_mode > 0 && (
>            (mode == MODE_CELT_ONLY && st->prev_mode != MODE_CELT_ONLY &&
>     !st->prev_redundancy)
>         || (mode != MODE_CELT_ONLY && st->prev_mode == MODE_CELT_ONLY) )
>           )
>        {
>           _transition = 1_;
>           /* Decide where to allocate the stack memory for pcm_transition */
>           if (mode == MODE_CELT_ONLY)
>              pcm_transition_celt_size = F5*st->channels;
>           else
>              pcm_transition_silk_size = F5*st->channels;
>        }
> 
>     *_So transition is made as 1 called this,_*
> 
>        if (transition && mode == MODE_CELT_ONLY)
>        {
>           pcm_transition = pcm_transition_celt;
>           opus_decode_frame(st, NULL, 0, pcm_transition, IMIN(F5,
>     audiosize), 0);
>        }
> 
>     *_In "opus_decode_frame" again, as data is passed as NULL, goes to
>     else part_*
> 
>        if (data != NULL)
>        {
>           audiosize = st->frame_size;
>           mode = st->mode;
>           ec_dec_init(&dec,(unsigned char*)data,len);
>        } else {
>           audiosize = frame_size;
>           mode = st->prev_mode;
> 
>     *_As the mode is made as prev mode now, which was a silk, this goes
>     inside,_*
> 
>       /* SILK processing */
>        if (mode != MODE_CELT_ONLY)
>        {
> 
>     *_Then in this function called this_*,
> 
>             silk_ret = silk_Decode( silk_dec, &st->DecControl,
>                                     lost_flag, first_frame, &dec,
>     pcm_ptr, &silk_frame_size );
> 
> 
>     *_And finally, somehow, the "silk_frame_size" is a negative value (
>     say -1376272 in our case), then in the same function called the
>     below and this crashes here._*
> 
>      pcm_ptr += silk_frame_size * st->channels;
> 
> 
>     Please help.
> 
>     Thanks
>     Suresh
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>     On 12 April 2015 at 21:23, Jean-Marc Valin <jmvalin at jmvalin.ca
>     <mailto:jmvalin at jmvalin.ca>> wrote:
> 
>         Do you have any file that demonstrates the problem with either
>         opus_demo
>         or opusdec?
> 
>                 Jean-Marc
> 
>         On 09/04/15 04:01 AM, Suresh Thiriveedi wrote:
>         > Hi,
>         >
>         > I'm curious to know when would be the 1.1.1 stable version
>         available.
>         >
>         > In 1.1, we are facing crash when opus library is trying to
>         decode the
>         > CELT-only, full band and 20 ms. So we tried with 1.1.1 beta
>         and it looks
>         > to be fine. Is there any open issue regarding this in 1.1 version?
>         >
>         > Thanks
>         > Suresh
>         >
>         >
>         > _______________________________________________
>         > opus mailing list
>         > opus at xiph.org <mailto:opus at xiph.org>
>         > http://lists.xiph.org/mailman/listinfo/opus
>         >
> 
> 
> 


More information about the opus mailing list