[Asterisk-video] AMR: WARNING[4493]:	translate.c:175	framein: no	samples for	amrtolin
    Klaus Darilion 
    klaus.mailinglists at pernau.at
       
    Wed Jun 25 03:28:58 CDT 2008
    
    
  
Patrick schrieb:
> Hi Klaus,
> 
> On Mon, 2008-06-23 at 10:10 +0200, Klaus Darilion wrote:
>> Patrick schrieb:
>>> Hi Klaus,
>>>> 3. review the source code to see when this message is printed
>>> The error can be found on line 175 in main/translate.c
>>
>> Do a little bit more reviewing. Why is this message printed. Check the 
>> source code and go back from here to find the problem with the frame.
> 
> That will be a bit of a challenge since I know very little C :(
/*! \brief framein wrapper, deals with plc and bound checks.  */
static int framein(struct ast_trans_pvt *pvt, struct ast_frame *f)
{
         int16_t *dst = (int16_t *)pvt->outbuf;
         int ret;
         int samples = pvt->samples;     /* initial value */
         /* Copy the last in jb timing info to the pvt */
         pvt->f.has_timing_info = f->has_timing_info;
         pvt->f.ts = f->ts;
         pvt->f.len = f->len;
         pvt->f.seqno = f->seqno;
         if (f->samples == 0) {
                 ast_log(LOG_WARNING, "no samples for %s\n", pvt->t->name);
So, in your scenario f->samples is 0. Lets look up the doxygen docu:
http://www.asterisk.org/doxygen/1.4/structast__frame.html#3fe9cc73676c96804037ee2e880792cc
this is the number of samples in the frame. The question is: Why is it 
set to 0? Who sets it?
First guess: rtp.c: rtp->f.samples = ast_codec_get_samples(&rtp->f);
this gets forwarded to amr_samples() in main.c.
Probably there is a bug as this always asumes octed-aligned format.
Thus the next steps would be to
1. get a capture from the Nokia phone:
  - SIP (for SDP analyzing)
  - RTP (for AMR analyzing)
2. find ouf if nokia uses octed-aligned format or not
3. extend codec_amr.c to handle non octed-aligned format too
regards
klaus
regards
klaus
    
    
More information about the asterisk-video
mailing list