This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Memory leak on GStreamer when using about-to-finish signal and rkximagesink
#1
Hello.

We are facing a problem on our media solution when using the Tinkerboard with TinkerOS_Debian v2.0.8 and gstreamer .
When we use the about-to-finish signal to implement a gapless transition between videos, we see a memory leak of about 100 MBs every time we set the playbin uri with the new file when using the rkximagesink.
If we switch from rkximagesink to xvimagesink, the memory leak goes away.

If we set the playstate of playbin to null or ready when we get the about-to-finish signal, gstreamer frees the memory right away, but then shows a black screen between the end of the current video and the start of the next video.

We tried building mpp and gstreamer from the sources, but the memory leak persisted.
Has anyone faced this problem before? Or has any leads of how to clear this memory leak using the about-to-finish signal?
Reply
#2
Hi LucianoIank:
Could you help to use the newest gstreamer-rockchip to test? And, could you provide the related files and the steps of reproduce to us?

https://github.com/rockchip-linux/gstrea...its/master

Thank a lot!
Reply
#3
Hi  yi-hsin_hung.

I have prepared a demo in both python and mono that will allow you to reproduce the problem.
We have tested them in a Tinkerboard with lastest Rockchip Gstreamer compiled in it. It also has mono installed so we can run dot.net programs in it.

The files of this demo can be downloaded at https://drive.google.com/open?id=1HbPjLW...L0yZpaLZoE

Place the files at /home/linaro and execute the Python script GstreamerTest.py or run mono /home/linaro/mono/GStreamerTest.exe to run the demo and reproduce the problem.

Both demos initialize GStreamer, create a playbin object, set the video-sink to rkximagesink, hook the about-to-finish event and play bigbuckbunny.mp4 (a 10 seconds cut of the original file).
Each time the about-to-finish signal is reached, the demo reloads the uri of playbin to bigbuckbunny.mp4, creating a gapless loop.
Whenever it reaches the signal and reloads the uri, there is a memory loss of around 80MB in tinker OS.

It will either hang or crash after 20 or so loops.

Memory loss example:
[Image: ODGMMN4.png]
[Image: HFP0vy8.png]

Crash:
[Image: dk1clDK.png]

Thanks.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)