sy6sy2 / xbmc

Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS and Windows.
https://kodi.tv/
Other
6 stars 1 forks source link

Video playback with motion judder #63

Open sasagr opened 5 years ago

sasagr commented 5 years ago

ATV 4K settings Format: 4K HDR @60Hrz Match Dynamic Range: ON Match Frame Rate: ON

Kodi settings Adjust display refresh rate: ALWAYS Sync playback to display: OFF

When playing a video with 25 fps frames rate Kodi 17.6 -> Playback is smooth and judder free - my tv OSD shows playback at 50Hrz. Kodi 19alpha (20190519-6b7f6768bc) -> Obvious judder every 1-2 seconds. My tv OSD shows playback at 60Hrz. I need to manually change the ATV format to 50Hrz to have a fluent video

Can somebody pls double check and confirm if this is a real issue or if any settings need to be adjusted with Kodi19.

sasagr commented 5 years ago

Today I also enabled the sync video to display and video playback seems smoother. I checked the log and this is what I see: 2019-05-29 13:32:30.762 T:6104887296 NOTICE: Whitelist search for: width: 1920, height: 1072, fps: 23.976, 3D: false 2019-05-29 13:32:30.762 T:6104887296 DEBUG: Whitelist is empty using default one 2019-05-29 13:32:30.762 T:6104887296 DEBUG: Trying to find exact refresh rate 2019-05-29 13:32:30.762 T:6104887296 DEBUG: No exact whitelisted resolution matched, trying double refresh rate 2019-05-29 13:32:30.762 T:6104887296 DEBUG: No double whitelisted resolution matched, trying 3:2 pullback 2019-05-29 13:32:30.762 T:6104887296 DEBUG: No 3:2 pullback refresh rate whitelisted resolution matched, trying current resolution 2019-05-29 13:32:30.762 T:6104887296 DEBUG: Current resolution doesn't match, trying default resolution 2019-05-29 13:32:30.762 T:6104887296 DEBUG: Default resolution doesn't provide reqired refreshrate, trying default resolution with double refreshrate 2019-05-29 13:32:30.762 T:6104887296 DEBUG: Default resolution doesn't provide reqired refreshrate, trying default resolution with 3:2 pullback 2019-05-29 13:32:30.762 T:6104887296 DEBUG: No whitelisted resolution matched 2019-05-29 13:32:30.762 T:6104887296 NOTICE: Display resolution ADJUST : Touchscreen: 3840x2160 (16) (weight: 0.000) 2019-05-29 13:32:30.800 T:6108901376 DEBUG: OnAVChange: CApplication::OnAVChange 2019-05-29 13:32:30.808 T:6106034176 DEBUG: CAnnouncementManager - Announcement: OnAVChange from xbmc 2019-05-29 13:32:30.808 T:6106034176 DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnAVChange 2019-05-29 13:32:30.852 T:6106607616 DEBUG: ActiveAE::SyncStream - average error of 18.939715, start adjusting 2019-05-29 13:32:30.852 T:6106607616 DEBUG: ActiveAE::SyncStream - average error 0.939715 below threshold of 30.000000

If I understand correctly he cannot find the right frame rate in the whitelist that is actually empty, there is only 1 line @0Hrz but it is managing to sync to actual display frame rate

sasagr commented 5 years ago

I tried a video with 25fps on same apple tv 4k with kodi 17.6 and I see in the log the following regarding the adjust frame rate:

17:36:20.065 T:6164377600 DEBUG: CRenderManager::Configure - change configuration. 1918x894. display: 1918x894. framerate: 25.00. format: BGRA 17:36:20.070 T:6159790080 DEBUG: DeleteRenderer - deleting renderer 17:36:20.070 T:6159790080 DEBUG: LinuxRendererGL: Cleaning up GL resources 17:36:20.073 T:6159790080 DEBUG: Previous line repeats 1 times. 17:36:20.073 T:6159790080 DEBUG: displayRateSwitch request: refreshRate = 25.00, dynamicRange = SDR 17:36:20.073 T:6159790080 NOTICE: Using GL_TEXTURE_2D 17:36:20.075 T:4405832640 DEBUG: CWinSystemIOS::AnnounceOnLostDevice 17:36:20.081 T:6159790080 NOTICE: GL: Using CVBREF render method 17:36:20.082 T:6159790080 DEBUG: GL: Requested render method: 0 17:36:20.082 T:6159790080 NOTICE: GL: Selecting Single Pass YUV 2 RGB shader 17:36:20.083 T:6159790080 DEBUG: GL: BaseYUV2RGBGLSLShader: defines:

define XBMC_YV12

17:36:20.084 T:6159790080 DEBUG: Previous line repeats 1 times. 17:36:20.084 T:6159790080 DEBUG: GL: Vertex Shader compilation log: 17:36:20.084 T:6159790080 DEBUG: GL: Vertex Shader compiled successfully 17:36:20.084 T:6159790080 DEBUG: GL: Pixel Shader compilation log: 17:36:20.084 T:6159790080 DEBUG: GL: Fragment Shader compiled successfully 17:36:20.085 T:6159790080 DEBUG: GL: Vertex Shader compilation log: 17:36:20.085 T:6159790080 DEBUG: GL: Vertex Shader compiled successfully 17:36:20.085 T:6159790080 DEBUG: GL: Pixel Shader compilation log: 17:36:20.085 T:6159790080 DEBUG: GL: Fragment Shader compiled successfully 17:36:20.085 T:6159790080 NOTICE: GL: NPOT texture support detected 17:36:20.085 T:6159790080 DEBUG: CRenderManager::Configure - 4 17:36:20.090 T:6159790080 DEBUG: Activating window ID: 12005 17:36:20.090 T:6159790080 DEBUG: ------ Window Deinit (MyVideoNav.xml) ------ 17:36:20.091 T:6159790080 DEBUG: ------ Window Init (VideoFullScreen.xml) ------ 17:36:20.091 T:6159790080 INFO: Loading skin file: VideoFullScreen.xml, load type: KEEP_IN_MEMORY 17:36:20.093 T:6159790080 DEBUG: Load VideoFullScreen.xml: 1.77ms 17:36:20.093 T:6159790080 DEBUG: Alloc resources: 1.82ms (1.82 ms skin load) 17:36:20.094 T:6159790080 DEBUG: Resolution 3840x2160@ 59.00 - Full Screen (16) not a very good match for fps 25.000 (weight: 0.199), trying 2:3 cadence 17:36:20.094 T:6159790080 DEBUG: Resolution 3840x2160@ 59.00 - Full Screen (16) not a very good match for fps 25.000 with 2:3 cadence (weight: 0.041), choosing 60 hertz 17:36:20.094 T:6159790080 NOTICE: Display resolution ADJUST : 3840x2160@ 59.00 - Full Screen (16) (weight: 0.199) 17:36:20.111 T:4405832640 NOTICE: VideoPlayer: OnLostDisplay received 17:36:20.111 T:4405832640 DEBUG: displayModeSwitchInProgress == YES, refreshRate = 25.00, dynamicRange = SDR ....

17:36:23.252 T:4405832640 NOTICE: VideoPlayer: OnResetDisplay received 17:36:23.253 T:4405832640 DEBUG: displayModeSwitchInProgress == DONE, refreshRate = 50.00, dynamicRange = SDR

as matter of fact I see on my TV that frame rate changed from 60Hz to 50Hz and playback is smooth (50Hz is a obviously good for 25fps)

fuzzard commented 5 years ago

There were large changes in the 18 Dev cycle, including the introduction of whitelist. Maybe you should go through those settings and see if creating the whitelist changes behaviour

sasagr commented 5 years ago

the whitelist has gives me only one option and it does not make the difference. See attachments IMG_2198 IMG_2199

sasagr commented 5 years ago

Will this help in next updates? https://github.com/xbmc/xbmc/pull/16216

@fuzzard I meant maybe this can be merged in your branch so we can test it?

M2k80 commented 5 years ago

you need to enable automatic refreshrate settings in atv 4k options. if enabled you will see more then one resolution in kodi whitelist

sorry i read wrong, i thought you re talking about ftv 4k

sasagr commented 5 years ago

Just to make it clear. On my ATV4K both Match Dynamic Range and Match Frame rate are ON

fuzzard commented 4 years ago

Modeswitching is implemented in main branch now. Enable adjust to match, and you can select whitelist items. Will only be default resolution, but should cover most media refresh rates (23.976, 24, 25, 30, 50, 60, and i think one other 59.xxx)

If anymore common rates are required, just let me know.

sasagr commented 4 years ago

in the "master_darwin-embedded-ATV"?

fuzzard commented 4 years ago

Yes