videodelayhdmihdcp

Compute screen delay through HDMI


When playing a video file on a computer, HD television (LED, Plasma or whatever...), there is a delay between the displayed video and the audio out of the computer.

I heard that blueray player can extract this information from the HDMI connector to delay the audio output accordingly. Is it true? Is it possible to extract this information programmaticaly?


Solution

  • HDMI devices communicate much information among themselves. Some examples:

    In delay, there can be variable delay time while the devices sync with each other. However, in regards to a proper timing of video/audio, later compliant HDMI devices should synchronize automatically. From "Why is Lip Sync important":

    "HDMI 1.3 provides a method whereby the audio processing times in devices can be automatically adjusted to remove lip sync errors."

    To access the information programmatically, I believe you need a Intel licensed HDMI device(see HDCP in Wikipedia) that would be able to send/receive the encrypted HDMI stream from the other device(s). This would be an HDMI device complete with a device driver whose API's you can call from your program.

    In your case you mention playing a video file. To fix the audio/video synchronization, you likely have to find the option in your media player program to either delay or speed up the audio start rather than access and change something on the HDMI device.