Time skipping produces HEVC video artefacts since CoreELEC 21.0-Omega

Hi, this may actually not be Ugoos specific but since I use the AM6B+ with Amlogic-ng, I’ll ask here.

Has anyone else noticed that in some HEVC videos (I tested mostly SDR), when you skip around the timeline (for example simple 10 second jumps forward or back), there are visible artefacts for a few moments when the video resumes from the new position? I mean pixelization just like if the video file is damaged (or you have weak broadcast signal) but of course it’s just the skip transition. Then it plays fine again.

I’m asking about it because I found out this is a recent regression introduced by the following commit:

I spent a day trying various CoreELEC versions and concluded that the last one which didn’t exhibit this issue was 21.0-Omega_rc2. Then before the 21.0 release the change above was made to fix some DV FEL playback corner case if I understand it correctly. I also made a custom build of 21.2 with this commit reverted to verify my assumption and it fixed the problem indeed.

Unfortunately, this change can negatively impact playback of any HEVC video. I was able to see this with a couple of 1080p HEVC SDR files (29.97 or 59.94 fps although that probably doesn’t matter).
For comparison, I tried to play the same files on the Ugoos Android and Kodi on my Sony Bravia (Mediatek SoC). There were no comparable artefacts.

Seeing what was changed in the code, it would seem this is not a bug but rather a “feature”. I’m wondering if this could be improved so that the adjusted “nal_skip_policy” is only applied when decoding DV FEL videos.

Do you have any thoughts, @Portisch? Thank you.

Maybe true.

It’s weight out what users care more.
Artifacts for how long, 1-2 frames?

Or broken playback after seek?

It all depends how users watch a movie, by seek hundreds times?

When there is time left again I can take a look again to this issue.

But maybe it will be solved only for CE-22, NO as there is maybe no dual layer handling need anymore at all.

Well, does it have to be “either/or”? It seems to me you could apply this change for dual layer videos only. I’d be happy to even submit a pull request but I’m no expert on video decoding so I may need some guidance.

I find these artefacts quite distracting for the type of content where I tend to use the skip function a lot. Let’s be honest, Dolby Vision FEL is still kind of a niche, so it doesn’t make sense from my perspective to make changes so disruptive to accommodate just a small subset of media.

While I could wait for Amlogic-no, I still find it useful to have a box which can play “anything” so I’m looking for a “best of both worlds” type of solution.

So I’m not arguing the commit should be simply reverted. I understand why it was needed in the first place. It’s just a little unfortunate it fixes an issue at the price of introducing this non-standard behaviour which frankly degrades user experience compared to any other Kodi solution I tried.

I opened a pull request. Does it make sense?

Please try again tomorrow with new nightly.
Thx for the PR!

1 Like

I’m sorry, isn’t there a typo actually? There is no ‘/sys/module/amvdec_h265/parameters/cat’ but there’s of course ‘/sys/module/amvdec_h265/parameters/nal_skip_policy’.

It’s a typo, yes :man_facepalming:

Thank you for your great work on CoreELEC!

I want to try it but the last nightly I could find is from Saturday.
https://relkai.coreelec.org/?dir=Amlogic-ng/ce-21

The latest nightly works great, thanks again.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.