Comment 4 for bug 883374

Revision history for this message
RJ Skerry-Ryan (rryan) wrote : Re: [Bug 883374] Re: Shoutcast calls sleep()

Bill if you're up for this task I think the whole sidechain could use a
slight refactor to be like, you add a SidechainWorker to the
EngineSidechain. That will make things a lot cleaner. Shoutcast and
recording would need to be changed to be SidechainWorkers.

Anyway, we definitely should not sleep. If shoutcast allows you to check
for the appropriate delay, we should just go into a 'wait' state and every
time EngineShoutcast gets an update, check if the appropriate amount of
time has passed (discarding all samples that it was fed before the
shoutcast system was ready so that there isn't a big backlog). Sleeping in
the sidechain thread can actually cause either incorrect behavior (e.g. a
glitch in the recorded output of mixxx) or in the worst case I think it
could cause an xrun due to priority inversions issues with the engine (in
the process of being fixed in my refactor branch).

On Fri, Jan 6, 2012 at 7:29 PM, Phillip Whelan <email address hidden>wrote:

> Audio is timing sensitive, even (and especially if) broadcasted. We
> really should be shout_delay(3) to find out how long to sleep for:
> http://www.aelius.com/njh/libshout-doc/libshout.html#shout_delay.
>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/883374
>
> Title:
> Shoutcast calls sleep()
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/883374/+subscriptions
>