Paul,
As you obviously know more about Jack than I do, can you explain how an API
like Jack could provide information to the APP so that Audio and Video can
be kept in sync.

Cheers
James

> -----Original Message-----
> From: Paul Davis [mailto:[EMAIL PROTECTED]]
> Sent: 14 January 2002 15:30
> To: James Courtier-Dutton
> Cc: [EMAIL PROTECTED]
> Subject: Re: [Alsa-devel] Alsa and the future of sound on Linux
>
>
> >I have looked at the Jack web page (http://jackit.sourceforge.net/)
> >
> >It would help more if jack.h had more documentation for all api function,
> >and not just a few of them.
>
> well, we're not quite finished with the API yet. Once its really set
> in stone (for v1.0), something that i imagine will happen once i
> finish getting ardour to work with it (which is shaking out a lot of
> big issues that need addressing for supporting a large, complex
> application like ardour), full documentation will be added to the
> header file. its important, however, that the API stay simple for
> simple things. the sample clients in the current tarball are meant to
> illustrate just how simple things can be.
>
> >I have a particular application in mind, and was wondering how Jack would
> >handle it.
> >1) Audio and Video Sync
> >
> >Here there is no requirement for low latency or synchronous execution.
> >The requirement is just that the app is told exactly how long it will be
> >between the next samples written to the driver, and
>
> there is no such information in an SE-API system. all you get told is
> how much time we expect you to generate and/or process data for in
> this instance of your callback. SE-API's do not promise continuous
> execution, nor linear passage of time, nor monotonic direction of time.
> this is true of ASIO, VST, CoreAudio, PortAudio, TDM and every other
> SE-API that I know of.
>
> so, when your JACK client's process() callback is executed, it will be
> passed an audio frame count (we are debating whether this is the best
> or only unit of time to use). the process() callback is expected to do
> the right thing for the amount of time represented by those frames. if
> its an audio playback client, it will ensure that that many frames are
> present at all of its output ports. if its an audio capture client, it
> will read that many frames from each of its input ports and do
> something (probably lock-free and very fast) with them. if it a video
> client with audio playback, it will probably act like the audio
> playback client and additionally schedule another thread to handle
> video and/or update the video thread's idea of "current time". and so
> on and so forth.
>
> if the client cares about absolute time against a reference time base,
> it must pay attention to information about where we are in time that
> can be otained through the API. a client that is not the timebase
> master must be ready to accept that time may move at different rates,
> may move backwards or stop altogether.
>
> --p


_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to