This post was updated on .
Hi
With the pipeline I have I am able to change resolution if I put the pipeline to NULL. It happens to see 1 sec a blank screen before the pipeline is switched back to the PLAY state. What I have been trying to do is to put pipeline in PAUSE and change the resolution after usings a capsfilter. I have 2 options: 1. I put the capsfilter to NULL, the pipeline to PAUSE and I change resolution. result: after putting back to PLAY capsfilter element the whole pipeline remains stopped. 2. to set only ximagesink to the NULL state and keep PAUSE for the rest of the pipeline. result: after putting back ximagesink to PLAY the streaming UDP works fine but the ximagesink is somehow desincronized with the rest of the pipeline displaing 1 frame every 10 secs. How could be solved the "change resoltion" while beeing in PAUSE state? I have this pipeline: gst_bin_add_many(GST_BIN (m_pipeline), v4l2src, queueVideorate, m_videorate, m_capsfilter, tee, queueLocal, ffmpegcolorspace_local, videoscale, m_scalefilter, m_xvimagesink, queueRemote, ffmpegcolorspace_remote, m_x264enc, m_rtph264pay, m_udpsink, NULL); |
This post was updated on .
2.
in fact I try at step nr.2 to LOCK the ximagesink, use the function to change state with LOCK active, put ximagesink to PAUSE, set all pipeline to NULL state, make some modification on the capsfilter element- change resolution UNLOCK the ximagesink and put PLAY on all the pipeline. But I have seen every change in state on the ximagesink, after returning to Play on this element result in a desyncronization in Play (something like 1 frame for every 10 secs). I dont know how to resyncronize this element with the rest of the pipeline. 1. Is it possible in the Pause state of the pipeline to force re negocianting of the Caps from the Pads? |
The renegtitation of pads in the PAUSED state is not possible, I guess.
you may try by putting it to the READY state, and then back PLAYING, with a seek operation done to resume the play from the palce where it left before going to READY state.
On Wed, Nov 30, 2011 at 8:04 PM, kemicalbrother <[hidden email]> wrote: 2. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
What I have been trying to do was
to change the resolution on the Run. What I mean is to behave exactly like other video streaming application, to be able to change resolution without seeing any black screen. Beetwen resolution changes ..aprox 1sec. I want to have Pause or image freeze, or to change directly. I have tried multiple solution, even one with a pipeline with an input selector (on one branch a image freeze element), but to be able to keep the image the Imagesink should remain in the Play state, or should be locked, the rest of the pipeline put to NULL to be able to set the filter on filtercaps element (change resolution). My problem is after putting back to Play (from Pause), or if I have it lock and just change sources with Input selector, It desyncronizes with the rest of the pipeline playing frames - 1 frame at 10secs. I don t know at this point how could be possible with the Gstreamer to change resolution at run without any black screens (resulted in resetting the pipeline to null). |
O Mar, 06-12-2011 ás 01:19 -0800, kemicalbrother escribiu:
> I have tried multiple solution, even one with a pipeline with an input > selector (on one branch a image freeze element), but to be able to > keep the > image the *Imagesink* should remain in the Play state, or should be > locked, > the rest of the pipeline put to NULL to be able to set the filter on > filtercaps element (change resolution). Well, I think it can also be in PAUSED as long as you expose with image again with gst_x_overlay_expose. Br. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (205 bytes) Download Attachment |
I have tried also to put imagesink element in the PAUSE, lock its state, than change the pipeline state to NULL, apply the changes- in my case resolution change (re applying the filter on capsfilter),
put the pipeline to PUASE, all the element of the pipeline are now in PAUSE unlock the imagesink element, put START on all the pipeline. the result is the pipeline starts but the imagesink element plays with 1 frame per 10 seconds. |
Free forum by Nabble | Edit this page |