Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video playback with motion judder #63

Open
sasagr opened this issue May 20, 2019 · 10 comments
Open

Video playback with motion judder #63

sasagr opened this issue May 20, 2019 · 10 comments

Comments

@sasagr
Copy link

sasagr commented May 20, 2019

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
Copy link
Author

sasagr commented May 29, 2019

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
Copy link
Author

sasagr commented May 30, 2019

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
Copy link

fuzzard commented May 30, 2019

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
Copy link
Author

sasagr commented May 31, 2019

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

@sasagr
Copy link
Author

sasagr commented Jun 1, 2019

Will this help in next updates?
xbmc#16216

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

@M2k80
Copy link

M2k80 commented Jun 2, 2019

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
Copy link
Author

sasagr commented Jun 2, 2019

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

@fuzzard
Copy link

fuzzard commented Oct 14, 2019

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
Copy link
Author

sasagr commented Oct 14, 2019

in the "master_darwin-embedded-ATV"?

@fuzzard
Copy link

fuzzard commented Oct 14, 2019

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants