Bug #3296

RPi 2/3 Advanced Deinterlace

Added by Dean Kasabow over 3 years ago. Updated over 2 years ago.

Status:AcceptedStart date:06/03/2017
Priority:NormalDue date:
Assignee:Andreas Smas% Done:

0%

Category:Video playback
Target version:5.2
Found in version:5.0.488 Platform:RPi

Description

I noticed that using 3 buffers is often not enough for stable hardware deinterlace of 1920x1080i content. It works 2 or 3 times and then you get OMX error and only black screen. I did a lot of tests and found out that with 6 buffers it works great (always).

in glw_video_rpi.c:

extra_buffers.nU32 = 6;
...
image_filter.nParams[0] = 6;

Works fine with as little as gpu_mem=128, so with STOS's default configuration it won't have any issues.

History

#1 Updated by Dean Kasabow over 3 years ago

Looking at other projects and testing on my RPi2 and RPi3 this seems to give best looking picture (no flickering) and no crashes with fullhd interlaced content. Still using extra 6 buffers + couple of more parameters:

// add extra buffers for Advanced Deinterlace
OMX_PARAM_U32TYPE extra_buffers;
OMX_INIT_STRUCTURE(extra_buffers);
extra_buffers.nU32 = 6;
extra_buffers.nPortIndex = 130;
omxchk(OMX_SetParameter(ovd->ovd_imgfx->oc_handle,
OMX_IndexParamBrcmExtraBuffers, &extra_buffers));
OMX_CONFIG_IMAGEFILTERPARAMSTYPE image_filter;
OMX_INIT_STRUCTURE(image_filter);
image_filter.nPortIndex = 191;
image_filter.nNumParams = 4;
image_filter.nParams[0] = 6;
image_filter.nParams[1] = 0; // default frame interval
image_filter.nParams[2] = 0; // half framerate
image_filter.nParams[3] = 1; // use qpus

#2 Updated by Leonid Protasov almost 3 years ago

  • Status changed from New to Accepted
  • Target version set to 5.2

#3 Updated by Leonid Protasov over 2 years ago

Probably it's just good for you to make a pull request?

Also available in: Atom PDF