Pixelation artifacts after DVB stream is stalled and resumed

Le Potato, current CE master (ng).
I see this issue when there is any sort of DVB stream disruption occur for a short period of time (e.g. a signal loss from a satellite dish). When the signal is back and the stream is automatically resumed I get this annoying pixelation until I switch to another channel or stop and resume the stream.
Sometimes it would resume with no issue, sometimes I get the pixelation.
This issue seem to be specific to Amlogic, I don’t see it with my x86 and RPi LE boxes.

A short video of the problem (00:17, 00:38) - https://www.dropbox.com/s/0m6sl3uu56cl8vp/VID_20200718_015437.mp4?dl=1

The DVB streams in question are 1080i h.264.

You might want to observe kernel log “journalctl -kf”. If you see messages about DI source change it might be a problem I’m currently hunting.

Nothing changes in the log when the artifacts occur.
At 16:51:15 I interrupt the stream.
At 16:51:53 the stream resume and a bit later the glitches start to occur but there are only the “kernel: di:err:de_irq: enter 12c0000” messages.

Jul 18 16:50:42 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:43 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:44 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:49 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:50 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:53 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:53 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:51:01 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:51:02 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:51:15 CoreELEC kernel: snd_spdif_dai: aiu 958 playback disable
Jul 18 16:51:15 CoreELEC kernel: snd_spdif_dai: set normal 512 fs /4 fs
Jul 18 16:51:53 CoreELEC kernel: audio_dsp: buf=0
Jul 18 16:51:53 CoreELEC kernel: audio_dsp: IEC958_mode_raw=0
Jul 18 16:51:53 CoreELEC kernel: audio_dsp: IEC958_mode_codec= 0, IEC958 type 2 CH PCM
Jul 18 16:51:53 CoreELEC kernel: audio_dsp: last mode 0,now 0
Jul 18 16:51:53 CoreELEC kernel: snd_spdif_dai: set normal 512 fs /4 fs
Jul 18 16:51:53 CoreELEC kernel: snd_spdif_dai: set normal 512 fs /4 fs
Jul 18 16:51:53 CoreELEC kernel: snd_spdif_dai: aiu 958 playback enable
Jul 18 16:51:54 CoreELEC kernel: [55B blob data]
Jul 18 16:51:56 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:51:58 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:51:59 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:04 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:08 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:17 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:20 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:21 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:24 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:25 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:26 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:27 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:27 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:31 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:32 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:38 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:48 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:52:54 CoreELEC kernel: di:err:de_irq: enter 12c0000

Here’s the log from when I disrupt the stream (16:50:05) and the issue does NOT occur after that. There is some difference from the previous log at the point when the stream is resumed.

Jul 18 16:49:48 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:49:48 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:49:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:49:58 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:49:58 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:02 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:03 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:05 CoreELEC kernel: snd_spdif_dai: aiu 958 playback disable
Jul 18 16:50:05 CoreELEC kernel: snd_spdif_dai: set normal 512 fs /4 fs
Jul 18 16:50:34 CoreELEC kernel: audio_dsp: buf=0
Jul 18 16:50:34 CoreELEC kernel: audio_dsp: IEC958_mode_raw=0
Jul 18 16:50:34 CoreELEC kernel: audio_dsp: IEC958_mode_codec= 0, IEC958 type 2 CH PCM
Jul 18 16:50:34 CoreELEC kernel: audio_dsp: last mode 0,now 0
Jul 18 16:50:34 CoreELEC kernel: snd_spdif_dai: set normal 512 fs /4 fs
Jul 18 16:50:34 CoreELEC kernel: snd_spdif_dai: set normal 512 fs /4 fs
Jul 18 16:50:34 CoreELEC kernel: snd_spdif_dai: aiu 958 playback enable
Jul 18 16:50:36 CoreELEC kernel: 0: Error, reference pic has no colocated buf
Jul 18 16:50:36 CoreELEC kernel: 0: config_decode_buf fail (-7)
Jul 18 16:50:36 CoreELEC kernel: 0: h264_reset_bufmgr frame count 25209 to skip 0
Jul 18 16:50:36 CoreELEC kernel: H264 sysinfo: 1920x1080 duration=3844, pts_outside=1
Jul 18 16:50:36 CoreELEC kernel: sync_outside=0, use_idr_framerate=0, is_used_v4l: 0
Jul 18 16:50:36 CoreELEC kernel: [46B blob data]
Jul 18 16:50:36 CoreELEC kernel: 0: frame_mbs_only_flag 0, crop_bottom 2, frame_height 1080,
Jul 18 16:50:36 CoreELEC kernel: 0: mb_height 68,crop_right 0, frame_width 1920, mb_width 120
Jul 18 16:50:36 CoreELEC kernel: 0: mb height/widht/total: 44/78/1fe0 level_idc 28 max_ref_num 4
Jul 18 16:50:36 CoreELEC kernel: 0: restriction_flag=0, max_dec_frame_buffering=0, reorder_pic_num=5
Jul 18 16:50:36 CoreELEC kernel: [81B blob data]
Jul 18 16:50:36 CoreELEC kernel: [59B blob data]
Jul 18 16:50:36 CoreELEC kernel: [37B blob data]
Jul 18 16:50:36 CoreELEC kernel: [59B blob data]
Jul 18 16:50:36 CoreELEC kernel: [59B blob data]
Jul 18 16:50:36 CoreELEC kernel: [59B blob data]
Jul 18 16:50:42 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:43 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:44 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:49 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:50 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:51 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:53 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:50:53 CoreELEC kernel: di:err:de_irq: enter 12c0000
Jul 18 16:51:01 CoreELEC kernel: di:err:de_irq: enter 12c0000

Thanks for the log. It is a different new issue. Can you try to record a pixelation so it shows if you pla it back. This is a h264 decoder issue. I am currently poking around there anyway so I can add your problem to the list.

I tried to record it, no pixelation on the recording. Also tried to stream from Le Potato to another device while the pixelation occur on Le Potato. No pixelation on the other device.

Also, this issue exist on kernel 3.14, so it’s not exclusive to ng.

Then it will be hard to fix. Because if I have a video I can check what’s happening with debugging flags.

I will try to reproduce the issue with a recorded ts stream. If I’m successful I will upload the file and instructions how to reproduce.

2 Likes

This seem to be finally fixed. I suspect this is what fixed it.

3 Likes

I can confirm that Pixelation has been resolved! I made a construction with the most recent commit.

Edited.
Wrong decreases not solved.
Unfortunately.

1 Like

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