<br><br><div class="gmail_quote">On Sun, Jul 4, 2010 at 11:42 AM, Andrey Nechypurenko <span dir="ltr">&lt;<a href="mailto:andreynech@googlemail.com">andreynech@googlemail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi Folks,<br>
<br>
In my application I want to capture the output of the encoding<br>
pipeline for further processing. So my assumption was that using<br>
appsink would give me the same byte stream as the one stored in file<br>
with filesink. To be more concrete, I have the following pipeline:<br>
<br>
  pipeline =<br>
    GST_PIPELINE(gst_parse_launch<br>
                 (&quot;videotestsrc ! &quot;<br>
                  &quot;video/x-raw-yuv,width=640,height=480,framerate=30/1 ! &quot;<br>
                  &quot;x264enc ! &quot;<br>
                  &quot;matroskamux ! &quot;<br>
                  &quot;appsink name=mysink&quot;,<br>
                  NULL));<br>
<br>
then, after setting up the callback I just write the buffer into file:<br>
<br>
  GstElement *mysink = gst_bin_get_by_name(GST_BIN(this-&gt;pipeline), &quot;mysink&quot;);<br>
  g_object_set(G_OBJECT(mysink), &quot;emit-signals&quot;, TRUE, &quot;sync&quot;, FALSE, NULL);<br>
  g_signal_connect(mysink, &quot;new-buffer&quot;, G_CALLBACK (on_new_buffer), NULL);<br>
<br>
static void<br>
on_new_buffer(GstElement *element, void *data)<br>
{<br>
  GstBuffer *buffer = gst_app_sink_pull_buffer(GST_APP_SINK(element));<br>
  fwrite(GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer), 1, f);<br>
  gst_buffer_unref(buffer);<br>
}<br>
<br>
To my surprise, the content of the file is not recognized as matroska<br>
container. The header (the beginning of the file) is indeed totally<br>
different from what I get if I execute the following command line:<br>
<br>
gst-launch videotestsrc !<br>
video/x-raw-yuv,width=640,height=480,framerate=30/1 ! x264enc !<br>
matroskamux ! filesink location=test.mka<br>
<br>
So my question is - am I right assuming that my application with<br>
appsink should produce correct mka file similar to the command line<br>
with filesink?<br></blockquote><div><br></div><div>The problem here is that muxers usually have to seek back to rewrite some values it didn&#39;t know from the start to properly finish the file. Appsink doesn&#39;t provide a way to notify about this and filesink obviously handles it.</div>

<div><br></div><div>Checkout this bug for further info:</div><div><a href="https://bugzilla.gnome.org/show_bug.cgi?id=570619">https://bugzilla.gnome.org/show_bug.cgi?id=570619</a></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


<br>
If not, I would appreciate any suggestion or hints on how the pipeline<br>
should looks like to playback what is recorded by appsink in the<br>
scenario mentioned above.<br>
<br>
<br>
Thank you very much!<br>
Andrey.<br>
<br>
------------------------------------------------------------------------------<br>
This SF.net email is sponsored by Sprint<br>
What will you do first with EVO, the first 4G phone?<br>
Visit <a href="http://sprint.com/first" target="_blank">sprint.com/first</a> -- <a href="http://p.sf.net/sfu/sprint-com-first" target="_blank">http://p.sf.net/sfu/sprint-com-first</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Thiago Sousa Santos<br>