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:
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:
Provided warnings:
From time to time, there are multiple IPU warnings returned (which do not exit the application).
Thank you in advance
Christian
解決済! 解決策の投稿を見る。
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
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
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.