Fri, 2010-08-20 at 10:08 +0200, jori.hamalainen@teliasonera.com wrote:
There is no graphics card, BD/DVD player or other standalone device that
outputs
those rates exactly. I don't know how much they deviate, but I'd guess
it's usually
something like 0.01 % (50.005 Hz instead of 50 Hz), as Jori said.
If you can find a modeline what your output is currently using you can use online services to check framerates it provides.
"xvidtune -show" prints the current modeline, but the refresh rate calculated from it will not be the same as the actual rate. The clock chrystals have deviations in order of 0.01 % and the only way to fix that is by adjusting the timing slightly at frequent intervals as vga-sync-fields does.
Having a more accurate time source might not help either because the broadcast may not be accurately timed.
It does not help using direct Toslink-output from VDR which mostly prohibits resampling of audio.
Audio can be resampled with any PCM output. The idea is to adjust the playback speed slightly by resampling for example 48 kHz audio to 48.01 kHz and then playing the result back at 48 kHz.
This is more difficult if you'd like to play multi-channel AC-3 with S/PDIF passthrough; then the audio would need to be decoded, resampled and re-encoded. An easier alternative is to drop/duplicate AC-3 packets, but that may be more noticeable on playback.
Both Xine and XBMC support resampling audio. XBMC also supports dropping/duplicating audio packets.
And why would you like to have audio decompressed, speeded up 1% and then recompressed.
Just to avoid your output software to duplicate or drop frames. Synch perfectly..
Yep, that's the best way to get fluid video playback with synchronized audio on current PC hardware.
Re-encoding is unnecessary with stereo streams or HDMI1.3 and analog multichannel outputs. High-quality resampling is totally unnoticeable.
--
Niko