How to override built in 175ms delay for 23.976 content?

  • It is loading your advancedsettings.xml file properly, you still having the problem?
    And if you go now in the OSD while playing a 24fps movie, is the audio offset still at 175ms or at 0?

    Edited once, last by vitorp07 (March 25, 2017 at 8:51 PM).


  • It is loading your advancedsettings.xml file properly, you still having the problem?
    And if you go now in the OSD while playing a 24fps movie, is the audio offset still at 175ms or at 0?

    The OSD says zero and I have the audio sync issue with the settings file you seen in the pastebin. I adjust the offset in the OSD to 175ms and the audio is properly in sync (FWIW the OSD shows zero when I don't use my advanced settings file too but again the audio sync is way off).

    There is no noticeable difference between when I have my own settings file in use vs. when I don't, the audio is off @ 23.976fps.

    Edited once, last by voip-ninja (March 25, 2017 at 9:20 PM).


  • I adjust the offset in the OSD to 175ms and the audio is properly in sync

    So i guess that is why LibreELEC still ships with that advancedsettings.xml,
    because if you enable the option "adjust display refresh rate" you need the 175ms delay or else the audio won't be in sync with the video.

    Just out of curiosity you said you owned a Panasonic plasma,
    did you give a try to play those 24fps movies with "adjust display refresh rate" disabled and 0ms delay in the OSD?
    My plasma screen handles it better when staying in 60hz mode for Kodi, with a Blu-ray player i still use 24hz.
    The only real problem i have is with 25fps videos but at least i don't get those too often here.

    Edited once, last by vitorp07 (March 25, 2017 at 9:46 PM).

  • So i guess that is why LibreELEC still ships with that advancedsettings.xml,
    because if you enable the option "adjust display refresh rate" you need the 175ms delay or else the audio won't be in sync with the video.

    Just out of curiosity you said you owned a Panasonic plasma,
    did you give a try to play those 24fps movies with "adjust display refresh rate" disabled and 0ms delay in the OSD?
    My plasma screen handles it better when staying in 60hz mode for Kodi, with a Blu-ray player i still use 24hz.
    The only real problem i have is with 25fps videos but at least i don't get those too often here.

    That makes no sense. If the 175ms in the stock advanced settings file was working the lip sync would not be 175ms off when I play my files back. If I didn't have other files (30fps, 60fps, etc.) then I would just set the offset in the OSD to 175ms, save it for all files and be done with it.

    There are other threads about this, so I'm not the first that has run into this. Unfortunately the fix (using new advancedsettings file) doesn't appear to work in the latest build, I guess I'll have to open a bug report on this.

    Disabling "adjust refresh rate to match display" has no effect on this problem. I've tried all combinations, the only one that sets the sync correct is to have the movie play back at 60fps (same frequency that OSD is set to in main menu) and then I get 3:2 pulldown motion problems (but at least audio is in sync).

    I don't have this problem with my PS4, the PS3 that proceeded that or the Panasonic BD player that proceeded that. All played 23.976 to this TV and it worked perfectly, on LibreElec/Kodi appears to be busted.

    When I posted a thread about this in the Kodi forums the devs reported to me that they've had this 175ms "built in" delay for 23.976 content removed from Kodi for quite a long time and they seemed irritated that Libre/OpenElec are still doing this as it's not supposed to be necessary any more.

    Maybe a developer will notice this thread and offer some insight. The old workaround of setting my own delay in the user profile advancedsettings.xml file is no longer working... apparently.

    Even better they could delete the ancient "fix" in the settings file that's been gone from Kodi mainline for something like 2 releases now.

    Edited once, last by voip-ninja (March 26, 2017 at 2:39 AM).

  • To debug this, you might want to change only the delay in advancedsettings and change nothing else in the GUI and observe what happens in two cases. First, set the offset in the GUI to 0 while playing a 24p video. Then,
    Test 1: Set the delay in advancedsettings to 0. Reboot. Play the video and note what happens.
    Test 2: Change the delay in advancedsettings to 2000. Reboot. Play the same video and note what happens.

    You should see a 2 second relative difference to the first observation. From those two observations, you should be able to determine whether or not the delay in advancedsettings is doing something. And, with a two second delay and observing the difference between Test 1 and Test 2, you should be able to see whether a delay or advance (negative delay) is required for your setup.

    I use this to eliminate the delay for 24p material on my Odroid C2 played through my AVR on a projector. It's only slightly different from what you use.

    Code
    <video>
      <latency>
        <refresh>
          <min>23</min>
          <max>24</max>
          <delay>0</delay>
        </refresh>
      </latency>
    </video>

  • To debug this, you might want to change only the delay in advancedsettings and change nothing else in the GUI and observe what happens in two cases. First, set the offset in the GUI to 0 while playing a 24p video. Then,
    Test 1: Set the delay in advancedsettings to 0. Reboot. Play the video and note what happens.
    Test 2: Change the delay in advancedsettings to 2000. Reboot. Play the same video and note what happens.

    You should see a 2 second relative difference to the first observation. From those two observations, you should be able to determine whether or not the delay in advancedsettings is doing something. And, with a two second delay and observing the difference between Test 1 and Test 2, you should be able to see whether a delay or advance (negative delay) is required for your setup.

    I use this to eliminate the delay for 24p material on my Odroid C2 played through my AVR on a projector. It's only slightly different from what you use.

    Code
    <video>
      <latency>
        <refresh>
          <min>23</min>
          <max>24</max>
          <delay>0</delay>
        </refresh>
      </latency>
    </video>

    Have you tested this out in Krypton?

    Your idea was a good one and when I tried it out I determined that video refused to play with the 2000ms setting (once video synced up at 23.976 it froze and showed "paused" and refused to start again).

    Then I set the delay to 0 and noticed the same problem of the video being off from audio.

    Then I set the delay to -175 (had tried before) and it looks like video is close to in sync. I need to test more because just as I was testing this out my 2 year old pitched a full on fit that he had to watch Disney's Cars while dad was debugging the NUC.

    So, if it turns out -175 is working then I can deduct a couple of things;

    1. Something in Krypton changed and the offset is now cumulative and not overwritten from the system advanced settings file.
    2. Something in the copy/paste of the stock settings file into the version in user data was not being interpreted correctly until I "slimmed it" down a bit.

    I will need to do some more testing on this to really know what is happening now but for the first time might be getting somewhere.

  • Have you tested this out in Krypton?

    Yes, I have tested it in Krypton. A delay of 0 as shown fixes things for me.

    You can use a smaller number, like 1000 or -1000. The point is to use a number that allows you to identify a change in the delay so you can determine if it is working or not. After that, you can change the value in advancedsettings to whatever works for you. It seems as though you found the right value for your setup.


    1. Something in Krypton changed and the offset is now cumulative and not overwritten from the system advanced settings file.


    A delay setting in your advancedsetting.xml will override the delay in LE's advancedsettings.xml. Any additional changes you make to audio delay in the GUI are additive to the one in advancedsettings.xml. That is why I mention to set any GUI-based delay to 0 first.


    2. Something in the copy/paste of the stock settings file into the version in user data was not being interpreted correctly until I "slimmed it" down a bit.


    Strange things can happen depending on the tools/systems used.

    Edited once, last by doug (March 26, 2017 at 10:23 PM).


  • 1. Something in Krypton changed and the offset is now cumulative and not overwritten from the system advanced settings file.

    Tested this again this morning with 0ms in the OSD and i concluded that having "0" in advancedsettings does override the delay, but for some movies/videos the right setting is "-175"(or ahead by 0.175ms in the OSD), so testing with different video sources/files can produce different results.
    For reference this is exactly what is in my advancedsettings.xml file.

    Edited once, last by vitorp07 (March 28, 2017 at 12:25 PM).