Hi All,
I'm playing and displaying multiple streams using mfw_isink. The system can dynamical switch from one Full screen stream to 4/12/16 streams. To achieve this I'm changing the state of each pipeline to NULL , changing the mfw_isink (x,y,h,w) then setting the state back to PLAY. This is working fine except that some pipelines occasionally leaves the last image on display. This means every time I NULL all the pipelines I will see this last image momentary until the state is set back to PLAY again.
It looks like I need to clear the mfw_isink buffers before staring any new stream. What is the best way to do so?
Thanks
Hi,
I'm experiencing the same issue as described above. I'm doing the following:
-> Quitting the video, which means that I set the pipeline to NULL, and unreference all the objects.
->Restarting the video, creating a new pipeline and linking all the elements.
After doing the above steps, the last image of the video destroyed is displayed before the new video is played. How can I avoid this issue?
Thank you,
Erick.
By the way I'm using the I.MX6 and GStreamer Core Library version 0.10.36, my sink element is mfw_isink.
Hi,
Have you tried to set the state to STOP then NULL?
DaianeAngolini and FabioEstevam are more familiar with the gstreamer API than I am. Maybe they can give you more advice :)!
Michel
There is no Gstreamer State = STOP
T
Are you playing these videos from local files or streaming? Have you tried to unref the pipeline after you have set it to NULL? I used to do that at the end of every video before the next one played. If I recall, I only saw the frame remain if I exited the process early (ctrl c). I will try to look through some of my old code to see if I can re-replicate the results. Also, I think each video has to have its own pipeline in order to link to a new mfw_isink pad. You may be missing a NULL state one of these pipes.
I'm streaming the video. On my initial implementation I use to un-link the pipeline after each video to make sure all the elements and buffers are distorted correctly then link a new pipeline for the new stream. This method worked fine in terms of clearing the screen but caused the system to crash. The fact that linking a new pipeline every time I start a new stream and dynamically allocating buffers will fragment the memory very quickly, resulting in allocation failure. This is not a common problem and it's unique to my application because I'm running 32 pipeline simultaneously hence I need a lot of memory,.
I was hopping to find a better way to clear mfw_isink buffers at the end of each video without having to rebuild the pipeline every time.
Thanks
Can you create a small test that replicates the behavior and provide the source code? Maybe we can come up with something here.
Michel
You're right, memory failed me.
Michel