[op25-dev] Re: p25_frame_assembler performance problems

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/op25-dev@lists.osmocom.org/.

verymetl@hotmail.com [op25-dev] op25-dev at yahoogroups.com
Mon Feb 22 15:47:09 UTC 2016


Hi Luke,
 

 That's a pretty significant find you have brought up. I concur on the dramatic performance increase seen on your end. This has a side effect on my end though. There are gaps in between each voice packet during the calls, which is causing constant audio underruns. So this isn't good for me. I'll have to play around with it more to find a cure.
 

 However, when using the logfile workers, there are no gaps in the wav audio. This is kind of a big deal if this is how you use OP25. I can run 6 concurrent workers quite easily on an ancient Intel Q6600 "quad".

 

 Thanks for bringing this up!
 

 -Scott
 

 This is how I modified the function:
 

 void
 p25_frame_assembler_impl::forecast(int nof_output_items, gr_vector_int &nof_input_items_reqd)
 {
    // for do_imbe=false: we output packed bytes (4:1 ratio)
    // for do_imbe=true: input rate= 4800, output rate= 1600 = 32 * 50 (3:1)
    // for do_audio_output: output rate=8000 (ratio 0.6:1)
    const size_t nof_inputs = nof_input_items_reqd.size();
    int nof_samples_reqd = nof_samples_reqd = (int)ceil(4.0f * float(nof_output_items));
    if (d_do_imbe)
      nof_samples_reqd = (int)ceil(3.0f * float(nof_output_items));
    if (d_do_audio_output)
        nof_samples_reqd = (int)ceil(0.6f * float(nof_output_items));
 

    std::fill(&nof_input_items_reqd[0], &nof_input_items_reqd[nof_inputs], nof_samples_reqd);
 }

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/op25-dev/attachments/20160222/1397ce66/attachment.htm>


More information about the op25-dev mailing list