[linux-audio-dev] mux concept paper

Stéphane Letz letz at grame.fr
Thu Feb 17 15:03:54 UTC 2005


Le 17 févr. 05, à 15:43, Paul Davis a écrit :

>>> you can have absolute minimal latency, but that requires
>>> locking the graph against use when it is reordered.
>>
>> AFAICS, that is not the real reason. If it were, the simple
>> solution would be to let the engine continue using a copy
>> of the current graph while the new one is being computed and
>> the required resources created.
>>
>> Probably if look you into it deep enough you'll find that the
>> necessity to stop processing while new clients are created
>> or when the port connection change can be traced back to the
>> combined effect of:
>>
>> 1. only having one JACK-controlled thread in each client,
>> 2. the synchronous nature of the API calls that modify
>>   the graph.
>
> stephane's new OSX implementation (jackdmp) avoids both of these, and
> ends up with an extra process-cycle worth of latency. he does exactly
> what you suggest above. is it avoidable? i don't know. stephane didn't
> seem to think so when we talked about it briefly on IRC. maybe it can
> be.
>
> --p
>
>

Just one word about the "one extra process-cycle worth of latency":  
this is not exactly related to the fact that the graph is updated 
without stopping the audio thread  : one could perfectly keep the 
current model (where the server waits for the client graph execution 
end  to write the output buffer ) *and* have the "don't stop audio 
thread" property most of the time.

The  "one extra process-cycle worth of latency" is a consequence of 
another  idea to implement a more "robust" system, where robust mean a 
system where *some* audio clients may fail during one cycle without 
stopping  the entire graph.

Stephane





More information about the Linux-audio-dev mailing list