Some movie bottom screen pixelated problem

Hi got this issue where BOTTOM of the movie is having pixelated for brief seconds n gone
( Doesn’t have this issue [pixelated] in SW decoder but the movie is very laggy )
( Doesn’t happen if i playback the same movie at Kodi on PC via Samba from raspberry osmc )
( Only happen [pixelated] in HW decoder V4L2M2M_DRM_PRIME, Although no laggy or frameskips )




Using Raspberry Pi Model 3 B+
OSMC ( 2021 August 1 )
1x Seagate Slim HDD 2TB
1x HDMI
1x 5V 2.5A Power
1x Ethernet Cable

( Info on the movie )
Disc Title: ENCOUNTER OF THE SPOOKY KIND
Disc Label: ENCOUNTER OF THE SPOOKY KIND
Disc Size: 42,310,704,831 bytes
Protection: AACS
Playlist: 00005.MPLS
Size: 35,403,335,040 bytes
Length: 1:43:14.313
Total Bitrate: 45.72 Mbps
Video: MPEG-4 AVC Video / 34872 kbps / 1080p / 23.976 fps / 16:9 / High Profile 4.1
Audio: Chinese / LPCM Audio / 1.0 / 48 kHz / 1152 kbps / 24-bit
Audio: Chinese / LPCM Audio / 1.0 / 48 kHz / 768 kbps / 16-bit
Audio: English / LPCM Audio / 1.0 / 48 kHz / 768 kbps / 16-bit
Audio: English / DTS-HD Master Audio / 5.1 / 48 kHz / 2357 kbps / 16-bit (DTS Core: 5.1 / 48 kHz / 1509 kbps / 16-bit)
Audio: English / Dolby Digital Audio / 2.0 / 48 kHz / 320 kbps / DN -31dB
Subtitle: English / 32.331 kbps
Subtitle: English / 0.459 kbps

You could try re-muxing the container.

I tried the Osmc BETA V4L2 , it seems that the issue ( pixelated ) have been fixed in the upcoming version of osmc.
MMAL doesnt have this issue
I will just wait and osmc will eventually update and the issue will be gone :slight_smile:

( Info i get from Raspberry Forums)
MMAL and OpenMaxIL both supported flags on a buffer to signal whether a buffer completed a frame or not, so one frame could be fragmented over multiple buffers. V4L2 doesn’t support that.

MMAL and IL will not be supported on 64 bit OSes.

In theory FFmpeg can do one of two things when it finds that it can’t fit a NAL into the buffer, but it depends on how it has configured the V4L2 codec driver.
First option is to stop the input side of the codec, reallocate the buffers, and then resume. This takes some time.
The second option is to use dmabuf mode to pass buffers into the codec, at which point it only validates that the buffer passed in is valid (ie not using more bytes than the allocation)