[mythtv] Changing video delay
Jeremiah Morris
jm at whpress.com
Wed Jan 26 16:36:32 EST 2005
On 26 Jan 2005, at 2:14 PM, Chris Birkinshaw wrote:
> I need to route audio
> accross a dedicated network using jack.udp to an audio only PC. This
> will
> introduce some extra delay - the send and receive buffers for jack.udp
> and the
> 1024 samples delay in my brutefir setup - so I need a way to delay the
> video
Myth already compensates for some audio delay (most sound cards buffer
at least half a second), so what you need to do is have this mechanism
calculate the delay based on your entire setup. Since the drivers
request buffering information from the audio output layer, the correct
approach is to make sure jack returns an answer based on what's
actually playing from the second PC. Since I know nothing about jack or
brutefir, I have no idea if that's technically possible.
Failing that, it would be fairly straightforward to modify
audiooutputbase.cpp to add a fixed number when it calculates the number
of buffered bytes on the sound card, which would give you what you're
asking for. Your latency would have to be extremely consistent for the
audio to remain in sync with the video; if you're entering a fixed
number guess, I'm not sure that this will be the case.
Usually the timing on the sound card is not identical to what Myth
expects, so without the real timing information from the final sound
card, you'd get further out of sync as time goes on, until the sound
card is either starved for data or runs out of buffer space as it's far
behind the video.
Have you tried this setup in practice now, to see what results you get?
Can you hook this up and play a 30 or 60 minute program without
interruption? I'd be curious to hear what happens, if you're always off
by 1 second or whatever throughout, or if it drifts (either falls
behind, or stutters as it gets ahead of the sent stream). If it's the
latter, then changing Myth's code won't help you.
- Jeremiah
More information about the mythtv-dev
mailing list