<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><font face="Helvetica, Arial, sans-serif">Hi, I recently started
working with gstreamer, and I am trying to make a video pipeline
where you can watch the video while it is being recorded from a
live source (an ip camera). I got something to work, but I do
not know why it works.</font></p>
<p><font face="Helvetica, Arial, sans-serif">I should start off with
I am using the prebuilt windows binary version 1.11.2 of gstreamer.</font></p>
<p><font face="Helvetica, Arial, sans-serif">The problem I am facing
is that setting async-handling to true on the autovideosink
causes everything to work, but if it is set to false, the
pipeline is frozen and never starts.</font></p>
<p><font face="Helvetica, Arial, sans-serif">I got to this solution
from this Stack Overflow answer:</font></p>
<p><font face="Helvetica, Arial, sans-serif"><a class="moz-txt-link-freetext" href="http://stackoverflow.com/a/8532148/5125564">http://stackoverflow.com/a/8532148/5125564</a></font></p>
<p><font face="Helvetica, Arial, sans-serif">However the
documentation:</font></p>
<p><font face="Helvetica, Arial, sans-serif"><a class="moz-txt-link-freetext" href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html#GstBin--async-handling">https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html#GstBin--async-handling</a></font></p>
<p><font face="Helvetica, Arial, sans-serif">States that it should
only be used if the bin subclass is modifying the state of its
children on its own, which I don't think autovideosink does.</font></p>
<p><font face="Helvetica, Arial, sans-serif">I just want to make sure
I am not doing anything wrong that will come to bite me later.<br>
</font></p>
<p><font face="Helvetica, Arial, sans-serif"><br>
</font></p>
<p><font face="Helvetica, Arial, sans-serif"><br>
</font></p>
<p><font face="Helvetica, Arial, sans-serif">Here is a gst-launch
command line to recreate the situtation (this command line
works).<br>
</font></p>
<p>gst-launch-1.0.exe --gst-debug-level=3 uridecodebin
uri=<a class="moz-txt-link-freetext" href="rtsp://">rtsp://</a>{username}:{password}@{ip_address} ! queue ! tee name=t
! autovideosink async-handling=true t. ! x264enc ! mp4mux !
filesink location=C:\\GStreamerTests\\taco123.mp4</p>
<p>And I get this output:</p>
<p>Setting pipeline to PAUSED ...<br>
0:00:00.121268503 19384 00000000042111E0 WARN
d3dvideosink
d3dhelpers.c:1103:d3d_set_window_handle:<autovideosink0-actual-sink-d3dvideo>
Window HWND already set to: 0<br>
Pipeline is live and does not need PREROLL ...<br>
Progress: (open) Opening Stream<br>
Progress: (connect) Connecting to
<a class="moz-txt-link-freetext" href="rtsp://">rtsp://</a>{username}:{password}@{ip_address}<br>
Progress: (open) Retrieving server options<br>
Progress: (open) Retrieving media info<br>
Progress: (request) SETUP stream 0<br>
Progress: (open) Opened Stream<br>
Setting pipeline to PLAYING ...<br>
New clock: GstSystemClock<br>
0:Progress: (request) Sending PLAY request<br>
00:00.556251111 Progress: (request) Sending PLAY request<br>
19384 0000000004290840 FIXME default
gstutils.c:3829:gst_pad_create_stream_id_internal:<fakesrc0:src>
Creating random stream-id, consider implementing a deterministic
way of creating a stream-id<br>
Progress: (request) Sent PLAY request<br>
Redistribute latency...<br>
Redistribute latency...<br>
0:00:03.572875522 19384 00000000033E9580 FIXME
basesink
gstbasesink.c:3144:gst_base_sink_default_event:<filesink0>
stream-start event without group-id. Consider implementing
group-id handling in the upstream elements<br>
Redistribute latency...<br>
</p>
<p><br>
</p>
<p>However, if I change async handling from true to false (or just
remove it because the default is false). I get this command line
(this command line does NOT work):</p>
<p>gst-launch-1.0.exe --gst-debug-level=3 uridecodebin uri=<a class="moz-txt-link-freetext" href="rtsp://">rtsp://</a>{username}:{password}@{ip_address}
! queue ! tee name=t ! autovideosink async-handling=false t. !
x264enc ! mp4mux ! filesink
location=C:\\GStreamerTests\\taco123.mp4</p>
<p>And I get this output:</p>
<p>Setting pipeline to PAUSED ...<br>
0:00:00.145754270 21360 00000000042391E0 WARN
d3dvideosink
d3dhelpers.c:1103:d3d_set_window_handle:<autovideosink0-actual-sink-d3dvideo>
Window HWND already set to: 0<br>
Pipeline is live and does not need PREROLL ...<br>
Progress: (open) Opening Stream<br>
Progress: (connect) Connecting to
<a class="moz-txt-link-freetext" href="rtsp://">rtsp://</a>{username}:{password}@{ip_address}<br>
Progress: (open) Retrieving server options<br>
Progress: (open) Retrieving media info<br>
Progress: (request) SETUP stream 0<br>
Progress: (open) Opened Stream<br>
Setting pipeline to PLAYING ...<br>
New clock: GstSyste0mC:00:00.608258221 lock<br>
213Progress: (request) Sending PLAY request<br>
60 00000000042AC840 Progress: (request) Sending PLAY request<br>
FIXME default
gstutils.c:3829:gst_pad_create_stream_id_internal:<fakesrc0:src>
Creating random stream-id, consider implementing a deterministic
way of creating a stream-id<br>
Progress: (request) Sent PLAY request<br>
Redistribute latency...</p>
<p>Then nothing happens until i ctrl+c the process.</p>
<p>Any feedback is welcome. Thanks in advance!<br>
</p>
<p>Cheers,</p>
<p>Michael.<br>
</p>
<br />--
<br />This message has been scanned for viruses and dangerous content by <br />
<a href="http://www.efa-project.org"><b>E.F.A. Project</b></a>, and is believed to be clean.
</body>
</html>