<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hello,<br>
<br>
I'm trying to implement a pipeline which can encode a video stream and at will, trigger the display of the stream without loosing frames in the encoding.<br>
<br>
So I made a application out of this prototype :<br>
gst-launch videotestsrc num-buffers=100 ! tee name="splitter" ! queue ! ffmpegcolorspace ! x264enc byte-stream=true ! avimux ! filesink location=videotestsrc.avi splitter. ! queue leaky=1 ! autovideosink<br>
<br>
With the branch :<br>
videotestsrc num-buffers=100 ! tee name="splitter" ! queue ! ffmpegcolorspace ! x264enc byte-stream=true ! avimux ! filesink location=videotestsrc.avi<br>
Created at startup<br>
<br>
and :<br>
splitter. ! queue leaky=1 ! autovideosink<br>
when an event appears.<br>
<br>
<br>
I'm able to trigger the "display branch" but I must go through the GST_STATE_READY. By doing so, I will lost frames.<br>
<br>
I've already try to create two separate bins with a ghost pad but it doesn't help.<br>
A solution that I haven't tried is to play with blocked pad.<br>
I've already read this document :<br>
<a href="http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-block.txt" target="_blank">http://cgit.freedesktop.org/gstreamer/gstreamer/tree/docs/design/part-block.txt</a><br>
but I'm not sure where I should block the pad to be as efficient as possible (the final solution will be embedded).<br>
<br>
Is it possible to plug this display toolchain to the running encoding ?<br>
Sould I create the "display queue" also on startup and blocked the pad between the splitter and this queue as long as the window is not wanted ?<br>
<br>
Thank you,<br>
<br>
Jonathan<br>
</div>
</body>
</html>