[haiku-development] Re: Media Kit design, BeOS message passing and future of it

  • From: Julian Harnath <julian.harnath@xxxxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sun, 05 Jan 2014 19:29:00 +0100

Barrett <b.vitruvio@xxxxxxxxx> schrieb:
> Into this thread a BeOS developer (JBQ) talked
> about the fact that in professional audio the BeOS kernel was adding
> additional latency due to the message passing, and this was cause of
> glitches. 

Could you post a link to that discussion?

I have a hard time imagining that the messaging (kernel port messages 
after all, not BMessages) adds anything problematic to the latency. 
Compared to the real latency causes (calculation time of e.g. an audio 
effect), the overhead of sending a kernel port message is miniscule.

More important IMO for the prevention of glitches is exact thread 
timing. When a node tells the system: I go to sleep now, wake me up in 
5ms, that 5ms wait has to be reasonably precise. There are some bug 
tickets in our Trac which seem to indicate that on some computers, 
Haiku has problems with this precision, most proabably due to a broken 
driver or similar.

> Another addition should be to remove all those messy input/output,
> source/destination, media_format structs out there and introduce 
> classes
> like BMediaEndPoint, BMediaInput, BMediaOutput (derived from the 
> first) and
> BStreamFormat.

I agree that this jungle of structs and classes is unnecessarily 
confusing. The rationale behind it as explained in the BeBook is that 
the structs are faster to pass around than the more "heavy" classes and 
that it's then better for real-time operation. Given the advances of 
computers since the mid-to-late 90s, where the MediaKit was designed, I 
don't see that necessary anymore.

--
So long, jua


Other related posts: