<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">



<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hello, Tim</p>
<p><br>
</p>
<p>I have a question about memory management.</p>
<p><br>
</p>
<p>Almost all functions returning pointer: for example <span>gst_element_factory_make();</span></p>
<p><span><br>
</span></p>
<p><span>Do i need to "delete" it after i don`t need it?</span></p>
<p><span>Will you also have time to explain why?</span></p>
<p><span><br>
</span></p>
<p><span>My question in c++ code:</span></p>
<p><span><br>
</span></p>
<p><span>v1:</span></p>
<p><span>class Recorder</span></p>
<p><span>{</span></p>
<p><span><span><span class="Apple-tab-span" style="white-space:pre"></span>GstElement* _pipeline =
<span>nullptr</span>;</span><br>
</span></p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;"> </span><span class="Apple-tab-span" style="font-size: 12pt; white-space: pre;">
</span><span style="font-size: 12pt;">void Start()</span><br>
</p>
<p><span><span class="Apple-tab-span" style="white-space:pre"></span>{</span></p>
<p><span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>if(<span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">_pipeline
 !=nullptr</span>) delete <span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">_pipeline ;</span><br>
</span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span> _pipeline
 = <span>gst_pipeline_new("VideoRecorder");</span></span><br>
</span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span><br>
</span></span></span></p>
<p><span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span><span class="Apple-tab-span" style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px; white-space: pre;"></span><span class="Apple-tab-span" style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px; white-space: pre;"></span>//some
 code<br>
</span></span></span></p>
<p><span><span class="Apple-tab-span" style="white-space:pre"></span>}</span></p>
<p><span style="font-size: 12pt;">}</span><br>
</p>
<p><span style="font-size: 12pt;"><br>
</span></p>
<p><span style="font-size: 12pt;"></span></p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
v2:</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
class Recorder</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
{</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px; white-space: pre;"></span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">GstElement*
 _pipeline</span><span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">;</span><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
 <span class="Apple-tab-span" style="white-space: pre;"> </span>void Start()<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span>{</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span><span class="Apple-tab-span" style="white-space: pre;"></span>_pipeline = gst_pipeline_new("VideoRecorder");<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span><span class="Apple-tab-span" style="white-space: pre;"></span>//some code<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span>}</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-size: 12pt;">}</span></p>
<div><span style="font-size: 12pt;"><br>
</span></div>
<br>
<p></p>
<p><span style="font-size: 12pt;"></span></p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
v3:</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
class Recorder</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
{</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
 <span class="Apple-tab-span" style="white-space: pre;"> </span>void Start()<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span>{</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span><span class="Apple-tab-span" style="white-space: pre;"></span> <span style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">GstElement* </span>_pipeline
 = gst_pipeline_new("VideoRecorder");<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span><span class="Apple-tab-span" style="white-space: pre;"></span>//some code<br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span class="Apple-tab-span" style="white-space: pre;"></span>}</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-size: 12pt;">}</span></p>
<br>
<p></p>
<div>Best regards, Michael.</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Tim Müller [via GStreamer-devel] <ml-node+<a href="/user/SendEmail.jtp?type=node&node=4679650&i=0" target="_top" rel="nofollow" link="external">[hidden email]</a>><br>
<b>Sent:</b> Friday, September 16, 2016 6:19:47 PM<br>
<b>To:</b> Michael Yarochkin<br>
<b>Subject:</b> Re: Video processing(record\play) real time from camera with metadata</font>
<div> </div>
</div>
<div>On Fri, 2016-09-16 at 06:49 -0700, Mikl wrote: <br>
<br>
Hi, <br>
<div class="shrinkable-quote"><br>
> For the moment i am doing only video and from test source. <br>
> Here is my pipeline <br>
> videotestsrc ! video/x- <br>
> raw,format=RGB,width=800,height=400,framerate=24/1 ! matroskamux <br>
> ! filesink location=c:\gstreamer\test.mkv <br>
> I have file. It have size (big one). I can see structure <br>
> using MKVToolNix. <br>
> videotestsrc  will be replaced by appsrc.  And i will not <br>
> need capsfilter anymore.  <br>
> <br>
> But: <br>
> -i can not play it <br>
> -see no information </div>
<br>
Yes, it will be very big, because you are storing raw (unencoded) video <br>
frames in the file. If you want to encode them, add a x264enc (for <br>
example) before matroskamux. <br>
<br>
<br>
> Even when i did simple pipeline <br>
> videotestsrc ! avimux ! filesink location=c:\gstreamer\test.avi <br>
> i was not able to see information about video, navigate in video. <br>
> And it was opened not in all players. <br>
<br>
I suspect not all players will be able to handle raw video in AVI. <br>
Also, if you use gst-launch-1.0 (or your own app) you will need to make <br>
sure that you shut down the pipeline 'cleanly', so that the muxer has <br>
an opportunity to finalise the file properly (write indices, fix up the <br>
header, etc.). In gst-launch-1.0 you do that by passing the -e command <br>
line option, or using videotestsrc num-buffers=100 or such. In your <br>
application you would have to send an EOS event on the pipeline with <br>
gst_element_send_event(pipeline, gst_event_new_eos()) and then wait for <br>
an EOS message on the bus before shutting down the pipeline with <br>
gst_element_set_state(). <br>
<br>
Cheers <br>
 -Tim <br>
<br>
-- <br>
Tim Müller, Centricular Ltd - <a href="http://www.centricular.com" target="_top" rel="nofollow" link="external">
http://www.centricular.com</a><br>
<br>
Join us at the GStreamer Conference! <br>
10-11 October 2016 in Berlin, <br>
Germany <br>
<a href="http://gstreamer.freedesktop.org/conference/" target="_top" rel="nofollow" link="external">http://gstreamer.freedesktop.org/conference/</a><br>
<br>
<br>
_______________________________________________ <br>
gstreamer-devel mailing list <br>
<a href="/user/SendEmail.jtp?type=node&node=4679636&i=0" target="_top" rel="nofollow" link="external">[hidden email]</a>
<br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_top" rel="nofollow" link="external">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
<hr noshade="noshade" size="1" color="#cccccc">
<div style="color:#444; font: 12px tahoma,geneva,helvetica,arial,sans-serif;">
<div style="font-weight:bold">If you reply to this email, your message will be added to the discussion below:</div>
<a href="http://gstreamer-devel.966125.n4.nabble.com/Video-processing-record-play-real-time-from-camera-with-metadata-tp4679305p4679636.html" target="_top" rel="nofollow" link="external">http://gstreamer-devel.966125.n4.nabble.com/Video-processing-record-play-real-time-from-camera-with-metadata-tp4679305p4679636.html</a>
</div>
<div style="color:#666; font: 11px tahoma,geneva,helvetica,arial,sans-serif;margin-top:.4em;line-height:1.5em">
To unsubscribe from Video processing(record\play) real time from camera with metadata,
<a href="" target="_top" rel="nofollow" link="external">
click here</a>.<br>
<a href="http://gstreamer-devel.966125.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" rel="nofollow" style="font:9px serif" target="_top" link="external">NAML</a>
</div>
</div>




        
        
        
<br/><hr align="left" width="300" />
View this message in context: <a href="http://gstreamer-devel.966125.n4.nabble.com/Video-processing-record-play-real-time-from-camera-with-metadata-tp4679305p4679650.html">Re: Video processing(record\play) real time from camera with metadata</a><br/>
Sent from the <a href="http://gstreamer-devel.966125.n4.nabble.com/">GStreamer-devel mailing list archive</a> at Nabble.com.<br/>