Not enough buffer for SDES packet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

That's rather strange, since the max_len supposed to be bigger (much bigger)
than that. Moreover, streamutil.c also uses pjmedia stream (including rtcp)
so it should face the same problem. For now, please try to clean and
rebuild the whole pjsua project first, if the problem persists, please help
us to reproduce (e.g: describe pjsua command line params, etc), I have never
got this assertion before and AFAIK, RTCP SDES should have nothing to do
with codec.

Regards,
nanang


2008/9/5 ??? <wsycqyz at 126.com>

>  Hi, nanang
>
>          I use the latest 2262 version of pjsip on Windows XP SP3 and
> VS2005.
>
>          I have done some experiments about adding the 2.4K MELP codec to
> the pjmedia-codec.
>
>          I followed your help:
>
>
>
> *- set codec ptime to 45ms.*
>
> *- encode(), decode(), and parse() should aware that other pjmedia
> components outside this codec will 'think' that the codec works with 45ms
> frames, in other words encode() and decode() will be supplied with 45ms
> frames (encode/decode twice), parse() should parse per 45ms encoded frame.
> *
>
>
>
>          And the result is: *encdec.exe & streamutil.exe* can perfectly
> work.
>
> Then I turned to *pjsua*. The *pjsua* crashed when it had received the
> first RTP packet. The console shows:
>
>
>
> *??*
>
> *23:47:30.265    pjsua_app.c  Call 0 state changed to CONFIRMED*
>
> *Assertion failed: !"Not enough buffer for SDES packet", file
> d:\pjsip\trunk\pjmedia\src\pjmedia\stream.c, line 556*
>
> *??*
>
>
>
>          Then I debugged into the *stream.c*, the assertion fail is in
> function *create_rtcp_sdes()* at line *556* of *stream.c* which is like
> this:
>
>
>
> *if (max_len < (hdr.length << 2)) {*
>
> *pj_assert(!"Not enough buffer for SDES packet");*
>
> *         return 0;*
>
> *}*
>
>
>
>          I saw *max_len* = 22 and *hdr.length << 2* = 28. The *max_len* is
> give by function *on_rx_rtp()* at line *1333* of *stream.c* which is like
> this:
>
>
>
> *len = create_rtcp_sdes(stream, (pj_uint8_t*)pkt, *
>
> *                          stream->enc->out_pkt_size - len);*
>
>
>
>          Is there any chance to fix the assertion fail? Or should I provide
> any more information?
>
>          Thanks!
>
>
>
> William Wong
>
> 2008-9-6
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080905/e1ef23b2/attachment.html 


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux