[Freeswitch-users] Choppy sound with PCMU
eaf
erandr-junk at usa.net
Wed Dec 2 20:58:39 PST 2009
As I see it, switch_cond_next() currently is just a do_sleep(1000). Yes, it
could be mapped to a 1ms timer, but "#define DISABLE_1MS_COND" overrides
that.
Yeah, there is a global timestamp... It's easy to workaround that for RTP
who calls switch_micro_time_now()... But if somebody accesses
runtime.timestamp directly, it's gonna be tough to grep for that. If only
this was C++...
I'll play around. Never liked polling too much. Never could've guessed that
polling could be so useful for scalability ;) My naive implementation
would've pulled timestamp via system calls and would've done sleeping by
passing exact interval to select() instead of syncing with a pacing thread.
Which would be dead-quiet at idle time, but, of course, would stop scaling
at some point due to excessive number of system calls.
Thanks.
Michael Jerris wrote:
>
> In short. No, you can not for many reasons. The milisecond tic is
> used throughout the code even when there is not any calls up. You can
> grep for switch_cond_next if you would like to see where but it is
> required to keep our global timestamp and for pacing the scheduler
> among other services that run all the time.
>
> Mike
>
> On Dec 2, 2009, at 7:31 PM, eaf <erandr-junk at usa.net> wrote:
>
>>
>> Can I reduce resolution of that timer thread 10 times? I mean, I
>> glanced
>> through the code, and see that among others (are there others?) RTP
>> and IVR
>> set up their timers that are subsequently managed by this thread.
>> RTP timers
>> should be eliminated by that setting you've suggested. IVR timers
>> are set at
>> 20ms... So, if the thread is set to wake up every 10ms instead of
>> 1ms it
>> should be able to wake up those IVR timers just fine. Right?
>>
>> That's a cool design to have one dedicated thread that maintains
>> accurate
>> timing and then broadcasts via condition variables to hundreds of
>> other
>> threads events that they can register for. I'm sure it's one of the
>> reasons
>> why FS scales so much better than Asterisk. But for poor low-end
>> setups that
>> sit in the closet, eat only 6W of power and hardly ever run more
>> than two
>> calls at the same time, can I hack it somehow to be more UNIX-
>> friendly? I.e.
>> make it stuck in select() or recv() when there is nothing to do, call
>> clock_gettime() right from the thread that wants and when it wants
>> to know
>> current time?
>>
>> Say, what if that thread is made to suspend on a condition variable
>> in case
>> if there are no timers registered in TIMER_MATRIX? Then, if some other
>> thread comes up and adds its timer into the matrix, it could wake up
>> the
>> timer thread and enjoy accurate timing as needed, on demand? And in-
>> between
>> the calls, when there is no RTP or IVR, it will all go silent? I mean,
>> sitting on a wait queue in the kernel is way better than go back and
>> forth
>> incrementing counters that nobody even needs at the moment?
>>
>>
>> Anthony Minessale-2 wrote:
>>>
>>> idle is a 4 letter word to a realtime application.
>>>
>>> The core keeps a single high-priority thread to keep 1ms timing and
>>> expands
>>> that broadcasting
>>> to hundreds or thousand of threads who need accurate timing.
>>>
>>> Your choppy audio is caused by linksys lying about the packet len
>>> that
>>> it's
>>> using and we set our timer
>>> to the wrong speed.
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Choppy-sound-with-PCMU-tp26594250p26619085.html
>> Sent from the Freeswitch-users mailing list archive at Nabble.com.
>>
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-
>> users
>> http://www.freeswitch.org
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
--
View this message in context: http://old.nabble.com/Choppy-sound-with-PCMU-tp26594250p26621005.html
Sent from the Freeswitch-users mailing list archive at Nabble.com.
More information about the FreeSWITCH-users
mailing list