GStreamer displaying transitions on Yocto iMX6

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

GStreamer displaying transitions on Yocto iMX6

Jump to solution
1,695 Views
christianbauer
Contributor I

Hi there,

I am currently trying to display and control multiple GStreamer pipelines (udpsrc, rtpjpegdepay, jpegparse, imxvpudec, imxg2dvideosink) on one screen.

I am using the following properties on the imxg2dvideosink's to achieve several splitscreens:

  • window-x-coord 
  • window-y-coord 
  • window-width
  • window-height

The Qt program that I wrote using GStreamer API is working just as expected with one major problem:

Every now and then upon switching to the next specified splitscreen, the application will show a blackscreen for aprox. 1-2 seconds before displaying video again.

Fyi: The transition is made by dynamically changing the properties of one (or multiple) sinks, while the corresponding pipeline is still running.

My current setup is:

  • iMX6q with Kernel 3.14.28 running Yocto Linux
  • GStreamer 1.4.5 pipelines (see above) on /dev/fb0
  • Qt 5.4 Application on /dev/fb1, using eglfs
  • Colorkey 0x00FF00FF (ARGB) for /dev/fb1
  • Framebuffer 0: D: 71.003 MHz, H: 49.307 kHz, V: 59.912 Hz
    geometry 1280 800 1280 800 32
    timings 14084 80 48 14 3 32 6
    vsync high
    rgba 8/16,8/8,8/0,8/24
  • Framebuffer 1: D: 4.608 MHz, H: 3.600 kHz, V: 4.500 Hz
    geometry 1280 800 1280 1600 16
    timings 217013 0 0 0 0 0 0
    rgba 5/11,6/5,5/0,0/0
  • imxg2dvideosink properties: force-aspect-ratio = false

Provided warnings:

From time to time, there are multiple IPU warnings returned (which do not exit the application).

  • IPU_INT_STAT_10[19] = DI0 Synchronous display error interrupt.
  • IPU_INT_STAT_5[23, 27] = New Frame before end-of-frame error indication of Channel interrupt.
  • alloc_contig_range test_pages_isolated(4a600, 4a78a) failed

Thank you in advance

Christian 

Labels (4)
0 Kudos
Reply
1 Solution
1,406 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi Christian,

I checked your warning, IPU_INT_STAT_10 means that bit 19 of IPU_INT_STAT_10 is DI0_SYNC_DISP_ERR. This bit is set when there's an error, usually as result of data starvation when data that should be sent to display is not available in IPUs internal

FIFO. Cause for this issue is huge load on the DDR memory bus. It means that the IPU encounters the data starvation, that is, it can not get data sometimes from memory. Solution to this issue is reducing the display resolution,  framerate, frame buffer bits per pixel or any other measure  that helps to reduce the memory bandwidth utilization.

 

https://developer.ridgerun.com/wiki/index.php?title=IMX6_Memory_Bandwidth_usage

 

IPU_INT_STAT_5 Indicates the corresponding DMA channel number. New Frame before end-of-frame error indication of Channel interrupt. This bit is the status bit of New Frame before end-of-frame error interrupt of  Channel #n.

 

Hope this helps

View solution in original post

0 Kudos
Reply
2 Replies
1,407 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hi Christian,

I checked your warning, IPU_INT_STAT_10 means that bit 19 of IPU_INT_STAT_10 is DI0_SYNC_DISP_ERR. This bit is set when there's an error, usually as result of data starvation when data that should be sent to display is not available in IPUs internal

FIFO. Cause for this issue is huge load on the DDR memory bus. It means that the IPU encounters the data starvation, that is, it can not get data sometimes from memory. Solution to this issue is reducing the display resolution,  framerate, frame buffer bits per pixel or any other measure  that helps to reduce the memory bandwidth utilization.

 

https://developer.ridgerun.com/wiki/index.php?title=IMX6_Memory_Bandwidth_usage

 

IPU_INT_STAT_5 Indicates the corresponding DMA channel number. New Frame before end-of-frame error indication of Channel interrupt. This bit is the status bit of New Frame before end-of-frame error interrupt of  Channel #n.

 

Hope this helps

0 Kudos
Reply
1,406 Views
christianbauer
Contributor I

Hi Alfred,

I've managed to limit the number of blackscreen transition occurences by adapting my bootargs:

+ video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24

- video=mxcfb0:dev=hdmi,1280x800M@60,if=RGB24

I didn't realize, that 1280x800 is not a standard resolution.

Now I need to adapt some graphic components to avoid stretching.

Thank you for your help.

0 Kudos
Reply