<font color="#333333"><font size="2"><font face="arial,helvetica,sans-serif">About the GStreamer Conference - 
Prague, 2011:<br>
Time Shifting with GStreamer</font></font></font> released by Fluendo available at <font color="#333333"><font size="2"><font face="arial,helvetica,sans-serif"> 
<a href="https://core.fluendo.com/gstreamer/trac/browser/trunk/gst-fluendo-timeshift" target="_blank">https://core.fluendo.com/gstreamer/trac/browser/trunk/gst-fluendo-timeshift</a></font></font></font><br>
<br>Cheers,<br clear="all"><font style="color: rgb(51, 51, 51); font-family: arial,helvetica,sans-serif;" color="#2323dc"><font size="2"><b>Fluendo Marcom Team</b><br>

              
              <b><span style="color: rgb(51, 51, 51);">FLUENDO</span><font style="color: rgb(51, 51, 51);" size="2"> <font size="1">Influencing the Multimedia World</font></font></b></font></font><font style="color: rgb(51, 51, 51); font-family: arial,helvetica,sans-serif;" color="#2323dc" size="2"><font style="color: rgb(153, 153, 153);" size="1"><br>

San Francisco, USA &amp;
 Barcelona, SPAIN<br></font>
              </font><font style="color: rgb(153, 153, 153); font-family: arial,helvetica,sans-serif;" color="#2323dc" size="1">
Contact phone:<br>
              Spain:  +34 933 175 153<br>
              United States: +1 415 773 5353</font><font style="color: rgb(153, 153, 153); font-family: arial,helvetica,sans-serif;" color="#2323dc" size="1"><br><a href="http://www.fluendo.com/" target="_blank">www.fluendo.com</a></font><font size="5"><font color="#2323dc"><br>

</font><span style="color: rgb(0, 153, 0);">P</span></font><b style="color: rgb(0, 153, 0);"><font size="1"><b>lease
                  consider the environment before printing this e-mail.</b></font></b><br>
<br><br><div class="gmail_quote">On Mon, Oct 31, 2011 at 6:05 PM,  <span dir="ltr">&lt;<a href="mailto:gstreamer-devel-request@lists.freedesktop.org">gstreamer-devel-request@lists.freedesktop.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Send gstreamer-devel mailing list submissions to<br>
        <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:gstreamer-devel-request@lists.freedesktop.org">gstreamer-devel-request@lists.freedesktop.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:gstreamer-devel-owner@lists.freedesktop.org">gstreamer-devel-owner@lists.freedesktop.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of gstreamer-devel digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. Re: Changing source without stopping pipeline (Stefan Sauer)<br>
   2. Second pre-release of GStreamer FFmpeg plugin (Edward Hervey)<br>
   3. Conference notes, slides (Josh Doe)<br>
   4. Re: Conference notes, slides (Victor Manuel J?quez Leal)<br>
   5. Re: Conference notes, slides (Nicolas Dufresne)<br>
   6. Re: Get v4l2src width and height before pipeline runs?<br>
      (Kapil Agrawal)<br>
   7. Re: Invalid property&#39;s type for a controller at runtime:<br>
      `G_VALUE_TYPE (value) == self-&gt;priv-&gt;type&#39; failed (Rossana Guerra)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Mon, 31 Oct 2011 11:24:59 +0100<br>
From: Stefan Sauer &lt;<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>&gt;<br>
Subject: Re: Changing source without stopping pipeline<br>
To: <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
Message-ID: &lt;<a href="mailto:4EAE777B.6090804@hora-obscura.de">4EAE777B.6090804@hora-obscura.de</a>&gt;<br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
On 10/30/2011 03:40 AM, superlou wrote:<br>
&gt; I have a simplified test pipeline consisting of:<br>
&gt; v4l2src -&gt; ffmpegcolorspace --&gt; videoscale --&gt; ximagesink<br>
&gt;<br>
&gt; I would like to detect a loss of signal from the v4lsrc (currently doing by<br>
&gt; waiting for the EOS signal, though the v42lsrc provides better warnings on<br>
&gt; camera disconnection if I can figure out how to get them).  For now, I&#39;m<br>
&gt; trying to achieve the simpler case of simply switching the source element to<br>
&gt; a videotestsrc while the pipeline is playing.<br>
&gt;<br>
&gt; I&#39;ve read the information about pad blocking<br>
&gt; (<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>
&gt; but it doesn&#39;t provide any indication on what to do for changing the source<br>
&gt; element.  I read that it may be possible to simply unlink the v4l2src,<br>
&gt; remove it, add the videotestsrc, and link it.  This sort of works in that<br>
&gt; eventually you see the videotestsrc, but it updates the output every few<br>
&gt; seconds (like a very slow stuttering).  If I stop and play, the output is<br>
&gt; smooth.<br>
You might want to use &quot;videotestsrc ! capsfilter&quot; and set the format<br>
that you use on v4l2src to videotestsrc.<br>
<br>
Stefan<br>
&gt; I was wondering if anyone could point me towards an example or help me find<br>
&gt; the search terms to find the proper way to change out the source element on<br>
&gt; a playing pipeline.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Louis<br>
&gt;<br>
&gt; --<br>
&gt; View this message in context: <a href="http://gstreamer-devel.966125.n4.nabble.com/Changing-source-without-stopping-pipeline-tp3952239p3952239.html" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/Changing-source-without-stopping-pipeline-tp3952239p3952239.html</a><br>


&gt; Sent from the GStreamer-devel mailing list archive at Nabble.com.<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Mon, 31 Oct 2011 12:03:54 +0100<br>
From: Edward Hervey &lt;<a href="mailto:bilboed@gmail.com">bilboed@gmail.com</a>&gt;<br>
Subject: Second pre-release of GStreamer FFmpeg plugin<br>
To: &quot;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&quot;<br>
        &lt;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&gt;<br>
Message-ID: &lt;1320059034.15507.3.camel@deumeu&gt;<br>
Content-Type: text/plain; charset=&quot;us-ascii&quot;<br>
<br>
Hi all,<br>
<br>
  Mea culpa for saying the release would be done during the gst conf,<br>
too much time was taken up on other items.<br>
<br>
  More patches needed to go in, so here&#39;s a new pre-release. This time<br>
the window will be much smaller. Unless something critical comes up,<br>
expect release on Wednesday 2nd November.<br>
<br>
<a href="http://gstreamer.freedesktop.org/src/gst-ffmpeg/pre/gst-ffmpeg-0.10.12.3.tar.bz2" target="_blank">http://gstreamer.freedesktop.org/src/gst-ffmpeg/pre/gst-ffmpeg-0.10.12.3.tar.bz2</a> <a href="http://gstreamer.freedesktop.org/src/gst-ffmpeg/pre/gst-ffmpeg-0.10.12.3.tar.gz" target="_blank">http://gstreamer.freedesktop.org/src/gst-ffmpeg/pre/gst-ffmpeg-0.10.12.3.tar.gz</a><br>


<br>
Bugs fixed:<br>
  * 654037 - gst-ffmpeg enables GPL parts in ffmpeg/libav<br>
  * 661417 - G722 encoder is broken<br>
<br>
      Edward<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Mon, 31 Oct 2011 09:26:11 -0400<br>
From: Josh Doe &lt;<a href="mailto:josh@joshdoe.com">josh@joshdoe.com</a>&gt;<br>
Subject: Conference notes, slides<br>
To: Discussion of the development of and with GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&gt;<br>
Message-ID:<br>
        &lt;CAJnipd7QXAbo4fANcPYKwVb4q6Pg=YRk96xCmD1ubn=<a href="mailto:d2RywVg@mail.gmail.com">d2RywVg@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
I&#39;m kind of surprised there&#39;s been no mention of the conference on<br>
this list; I was hoping to go, but was unable to in the end, however I<br>
am very interested in the talks that were given.<br>
<br>
I&#39;ve found hardly anything online, and certainly no slides yet. I know<br>
from Christian&#39;s post that Ubicast should have videos online within a<br>
month:<br>
<a href="http://blogs.gnome.org/uraeus/2011/10/29/back-from-gstreamer-conference-in-prague/" target="_blank">http://blogs.gnome.org/uraeus/2011/10/29/back-from-gstreamer-conference-in-prague/</a><br>
<br>
Aside from a few tweets that didn&#39;t contain much information, I found<br>
some demo videos from Guillame Emont&#39;s stabilisation talk:<br>
<a href="http://emont.org/stabilisation-demo/" target="_blank">http://emont.org/stabilisation-demo/</a><br>
<br>
And Fluendo&#39;s press release on the Time Shifting talk:<br>
<a href="http://www.fluendo.com/press/fluendo-gstreamer-time-shifting-element/" target="_blank">http://www.fluendo.com/press/fluendo-gstreamer-time-shifting-element/</a><br>
<br>
Any more? Perhaps we can compile these links and others in a page like<br>
<a href="http://gstreamer.freedesktop.org/wiki/GStreamerConference2010" target="_blank">http://gstreamer.freedesktop.org/wiki/GStreamerConference2010</a><br>
<br>
-Josh<br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Mon, 31 Oct 2011 15:19:57 +0100<br>
From: Victor Manuel J?quez Leal &lt;<a href="mailto:ceyusa@gmail.com">ceyusa@gmail.com</a>&gt;<br>
Subject: Re: Conference notes, slides<br>
To: Discussion of the development of and with GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&gt;<br>
Message-ID:<br>
        &lt;CAG6h3__==<a href="mailto:Fn5jB6XT-E91L944AJ2wgnpymJ423_2kFXHzCoUMw@mail.gmail.com">Fn5jB6XT-E91L944AJ2wgnpymJ423_2kFXHzCoUMw@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
On Mon, Oct 31, 2011 at 2:26 PM, Josh Doe &lt;<a href="mailto:josh@joshdoe.com">josh@joshdoe.com</a>&gt; wrote:<br>
&gt; I&#39;m kind of surprised there&#39;s been no mention of the conference on<br>
&gt; this list; I was hoping to go, but was unable to in the end, however I<br>
&gt; am very interested in the talks that were given.<br>
<br>
Mine are here<br>
<br>
<a href="https://gitorious.org/vjaquez-misc/syslink-talk/trees/master" target="_blank">https://gitorious.org/vjaquez-misc/syslink-talk/trees/master</a><br>
<br>
But perhaps I should put the PDF in a simple HTTP server<br>
<br>
vmjl<br>
<br>
&gt;<br>
&gt; I&#39;ve found hardly anything online, and certainly no slides yet. I know<br>
&gt; from Christian&#39;s post that Ubicast should have videos online within a<br>
&gt; month:<br>
&gt; <a href="http://blogs.gnome.org/uraeus/2011/10/29/back-from-gstreamer-conference-in-prague/" target="_blank">http://blogs.gnome.org/uraeus/2011/10/29/back-from-gstreamer-conference-in-prague/</a><br>
&gt;<br>
&gt; Aside from a few tweets that didn&#39;t contain much information, I found<br>
&gt; some demo videos from Guillame Emont&#39;s stabilisation talk:<br>
&gt; <a href="http://emont.org/stabilisation-demo/" target="_blank">http://emont.org/stabilisation-demo/</a><br>
&gt;<br>
&gt; And Fluendo&#39;s press release on the Time Shifting talk:<br>
&gt; <a href="http://www.fluendo.com/press/fluendo-gstreamer-time-shifting-element/" target="_blank">http://www.fluendo.com/press/fluendo-gstreamer-time-shifting-element/</a><br>
&gt;<br>
&gt; Any more? Perhaps we can compile these links and others in a page like<br>
&gt; <a href="http://gstreamer.freedesktop.org/wiki/GStreamerConference2010" target="_blank">http://gstreamer.freedesktop.org/wiki/GStreamerConference2010</a><br>
&gt;<br>
&gt; -Josh<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;<br>
<br>
<br>
------------------------------<br>
<br>
Message: 5<br>
Date: Mon, 31 Oct 2011 10:46:29 -0400<br>
From: Nicolas Dufresne &lt;<a href="mailto:nicolas.dufresne@collabora.co.uk">nicolas.dufresne@collabora.co.uk</a>&gt;<br>
Subject: Re: Conference notes, slides<br>
To: Discussion of the development of and with GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&gt;<br>
Message-ID: &lt;1320072389.4543.6.camel@macbookpro&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
There is couple of video here<br>
<a href="http://gstconf.ubicast.tv/channels/#conferences2010" target="_blank">http://gstconf.ubicast.tv/channels/#conferences2010</a><br>
<br>
enjoy,<br>
Nicolas<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: &lt;<a href="http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/3ff188aa/attachment-0001.htm" target="_blank">http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/3ff188aa/attachment-0001.htm</a>&gt;<br>


<br>
------------------------------<br>
<br>
Message: 6<br>
Date: Mon, 31 Oct 2011 22:30:38 +0530<br>
From: Kapil Agrawal &lt;<a href="mailto:kapil.agl@gmail.com">kapil.agl@gmail.com</a>&gt;<br>
Subject: Re: Get v4l2src width and height before pipeline runs?<br>
To: Discussion of the development of and with GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:CADK2-S5sKEAwyNbefbwtUcW5BG89Jt5ikwA-dYqEUNdzmXd0GQ@mail.gmail.com">CADK2-S5sKEAwyNbefbwtUcW5BG89Jt5ikwA-dYqEUNdzmXd0GQ@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;iso-8859-1&quot;<br>
<br>
Just a thought, may not be realted to this specific issue of yours<br>
Writing your own gstreamer plugin to do image processing stuff would make<br>
it more cleaner and better.<br>
<br>
like v4l2src ! ffmpegcolorspace ! your_image_processing_plugin !<br>
xvimagesink ?<br>
<br>
Best<br>
- Kapil<br>
<br>
On Sat, Oct 29, 2011 at 2:23 AM, wally_bkg &lt;<a href="mailto:wb666greene@gmail.com">wb666greene@gmail.com</a>&gt; wrote:<br>
<br>
&gt;<br>
&gt; Edward Hervey wrote:<br>
&gt; &gt;<br>
&gt; &gt;   Why aren&#39;t you using the v4l2src/v4l2sink elements ? If you have<br>
&gt; &gt; issues with them, please explain it in detail and/or file a bug report.<br>
&gt; &gt;<br>
&gt;<br>
&gt; I have vrl2src elements at the start of my pipeline that ends with an<br>
&gt; appsink, this worked fine with fixed video frame sizes, but now that I&#39;ve<br>
&gt; removed that restriction in the image processing algorithm the question is<br>
&gt; how do I get the frame size from v4l2 without setting the pipeline to<br>
&gt; playing?<br>
&gt;<br>
&gt; I&#39;ve had lots of issues with the gstreamer v4l2src tuner interface and<br>
&gt; never<br>
&gt; could get it to reliably set the norm and select the input across the<br>
&gt; various v4l2 capture devices on hand.  As to bug reports, the answer was<br>
&gt; always to try a newer version, but when I tried the Ubuntu 10.04 gstreamer<br>
&gt; PPA it broke all things multimedia and wasted a fair amount of time<br>
&gt; recovering.  At that point it became easier to just use v4l2 calls to set<br>
&gt; the norm and select the input, then build the pipeline.<br>
&gt;<br>
&gt; Grossly simplified my code is<br>
&gt;<br>
&gt; V4l2src-&gt;ffmpegcolorspace-&gt;fixed caps filter-&gt;appsink<br>
&gt; duplicate the appsink buffer data<br>
&gt; do some image processing on the duplicated buffer data<br>
&gt; appsrc-&gt;xvimagesink (for realtime viewing, of the processed data)<br>
&gt; appsrc-&gt;mp4 encoding-&gt;filesink ( original data to allow non-realtime<br>
&gt; processing afterwards)<br>
&gt;<br>
&gt; Works quite well with fixed caps.  I&#39;m stuck on how to get the frame height<br>
&gt; and width without fixed caps before the pipeline runs.   I have to build a<br>
&gt; bunch of tables that depend on the frame size and takes a couple of seconds<br>
&gt; to do (perhaps not the most efficient recursive code, but it only runs<br>
&gt; once).<br>
&gt;<br>
&gt; I could work around this by pre-building tables of the possibilities<br>
&gt; (640x480, 704x480, &amp; 720x480 so far, depending on the capture device, fixed<br>
&gt; caps was just set to 640x480) but the real issue is I&#39;d like the v4l2<br>
&gt; timestamps from the driver to use to synchronize A/D data from another<br>
&gt; process running on the same machine.  I asked about this earlier but got no<br>
&gt; response:<br>
&gt;<br>
&gt;<br>
&gt; <a href="http://gstreamer-devel.966125.n4.nabble.com/Getting-V4l2-timestamps-from-v4l2src-td3915764.html" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/Getting-V4l2-timestamps-from-v4l2src-td3915764.html</a><br>


&gt;<br>
&gt; Dealing with various frame sizes is at this point only needed to test my<br>
&gt; changes (which I quickly did by changing the fixed caps  to match the<br>
&gt; different capture card possibilities) in anticipation of someday using HD<br>
&gt; video.  The timestamps to synchronize the A/D data with the video is an<br>
&gt; action item.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; View this message in context:<br>
&gt; <a href="http://gstreamer-devel.966125.n4.nabble.com/Get-v4l2src-width-and-height-before-pipeline-runs-tp3942212p3949188.html" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/Get-v4l2src-width-and-height-before-pipeline-runs-tp3942212p3949188.html</a><br>


&gt; Sent from the GStreamer-devel mailing list archive at Nabble.com.<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;<br>
<br>
<br>
<br>
--<br>
<a href="http://www.linkedin.com/in/kapilagrawal" target="_blank">http://www.linkedin.com/in/kapilagrawal</a><br>
<a href="http://www.mediamagictechnologies.com" target="_blank">www.mediamagictechnologies.com</a><br>
(Consultancy - Multimedia, Gstreamer, ffmpeg, Streaming for platforms-<br>
linux, windows, TI, android)<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: &lt;<a href="http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/3e014580/attachment-0001.htm" target="_blank">http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/3e014580/attachment-0001.htm</a>&gt;<br>


<br>
------------------------------<br>
<br>
Message: 7<br>
Date: Mon, 31 Oct 2011 15:05:29 -0200<br>
From: Rossana Guerra &lt;<a href="mailto:guerra.rossana@gmail.com">guerra.rossana@gmail.com</a>&gt;<br>
Subject: Re: Invalid property&#39;s type for a controller at runtime:<br>
        `G_VALUE_TYPE (value) == self-&gt;priv-&gt;type&#39; failed<br>
To: Discussion of the development of and with GStreamer<br>
        &lt;<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:CAAMjx-ddGAKxdgXCtHGh4v__LR9ocXmv6Mx7FJo-S8S4XfigJg@mail.gmail.com">CAAMjx-ddGAKxdgXCtHGh4v__LR9ocXmv6Mx7FJo-S8S4XfigJg@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
thanks for response, it helps me a lot. In fact I need audio as well, I&#39;ll<br>
work around it, at least with one file.<br>
Regards,<br>
<br>
Rossana<br>
<br>
<br>
2011/10/31 Stefan Sauer &lt;<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>&gt;<br>
<br>
&gt; **<br>
&gt; On 10/30/2011 02:15 AM, Rossana Guerra wrote:<br>
&gt;<br>
&gt; Hi Stefan, I saw and run the code. I noticed the differences, mostly in<br>
&gt; the &quot;on-pad-added&quot; function.<br>
&gt; You create a fakesink where the &quot;flow&quot; doesn&#39;t come from video, then you<br>
&gt; create a bin from the parent element and got the static pad from it for<br>
&gt; linking. I didn&#39;t get the meaning of this technique.<br>
&gt;<br>
&gt;<br>
&gt; There where two distinct bugs. The first was to use src1 twice for the<br>
&gt; pad-aaded callback if I recall right. The 2nd is that in the pad-addded<br>
&gt; callback you get pads for audio and video. You want to terminate the<br>
&gt; audio-pads with a fakesink and only connect the video-pads to videomixer.<br>
&gt; If you want the adio too, you&#39;ll need to use a similar setup like<br>
&gt; videomixer, but using adder.<br>
&gt;<br>
&gt; You will still need to ensure that both video-outputs are in a compatible<br>
&gt; format for videomxer. I did not had time to analyze further. Use the<br>
&gt; GST_DEBUG_BIN_TO_DOT_FILE to understand whats in the resulting pipeline and<br>
&gt; where it goes wrong.<br>
&gt;<br>
&gt; Stefan<br>
&gt;<br>
&gt;<br>
&gt; I have an &quot;internal data flow error&quot; message. Here&#39;s the output when I run<br>
&gt; with debug option as you pointed out.<br>
&gt;<br>
&gt; Debug information:<br>
&gt;<br>
&gt; rossana@Studio:~/CodeBlocks/ctrl/bin/Debug$ GST_DEBUG=&quot;*:2&quot; ./ctrl<br>
&gt; &quot;/home/rossana/video1.avi&quot; &quot;/home/rossana/video2.avi&quot;<br>
&gt; Inicio...<br>
&gt; Creando...<br>
&gt; Creando pipeline...<br>
&gt; Creando 1...<br>
&gt; Playing...<br>
&gt; Dynamic pad created: video/x-raw-rgb<br>
&gt; ... linking video<br>
&gt; Dynamic pad created: audio/x-raw-int<br>
&gt; ... dropping audio<br>
&gt; 0:00:00.064628890  4083      0x157f070<br>
&gt; WARN  basetransform<br>
&gt; gstbasetransform.c:1211:gst_base_transform_setcaps:&lt;alfa1&gt; transform could<br>
&gt; not transform video/x-raw-yuv, width=(int)720,<br>
&gt; height=(int)528, framerate=(fraction)25/1, format=(fourcc)I420,<br>
&gt; interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1 in anything we<br>
&gt; support<br>
&gt; Dynamic pad created: video/x-raw-rgb<br>
&gt; ... linking video<br>
&gt; Dynamic pad created: audio/x-raw-int<br>
&gt; ... dropping audio<br>
&gt; 0:00:00.076359290  4083      0x1545b80<br>
&gt; WARN  ffmpeg gstffmpegdec.c:2241:gst_ffmpegdec_frame:&lt;ffdec_mpeg40&gt;<br>
&gt; ffdec_mpeg4: decoding error (len: -1, have_data: 0)<br>
&gt;<br>
&gt;<br>
&gt; I am trying to play 2 .avi files, I have no problem to visualize them with<br>
&gt; Banshee or any other player, so I think I got the right codecs in my<br>
&gt; computer.<br>
&gt; Both videos have the same properties values:<br>
&gt;<br>
&gt; *Video:<br>
&gt;<br>
&gt; Dimension 720x528<br>
&gt; Codec DivX MPEG-4 Version 5<br>
&gt; 25 fps<br>
&gt; bit rate: N/A<br>
&gt;<br>
&gt; * Sound:<br>
&gt; Codec MPEG1 Audio, layer<br>
&gt; Channels Stereo<br>
&gt; Frec 44100Hz<br>
&gt; bit rate 127 kpbs<br>
&gt;<br>
&gt; I&#39;ll keep trying, and thanks for your suggestions. Nice weekend.<br>
&gt;<br>
&gt; Rossana<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; 2011/10/28 Rossana Guerra &lt;<a href="mailto:guerra.rossana@gmail.com">guerra.rossana@gmail.com</a>&gt;<br>
&gt;<br>
&gt;&gt; Hi Stefan, I didn&#39;t receive the email, I even looked into the spam<br>
&gt;&gt; folder, just in case....<br>
&gt;&gt;<br>
&gt;&gt;  2011/10/28 Stefan Sauer &lt;<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt;  On 10/28/2011 12:40 AM, Rossana Guerra wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Sorry Stefan, where is the code to compare with?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  I forwarded the mail to your personal address. Out mailing list tried<br>
&gt;&gt;&gt; to be super smart and stipped attached *sourcecode*.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ..I downloaded the doc (pdf) and the order remains the same.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;  I pushed the fix to the API docs to git. That does not regenerate the<br>
&gt;&gt;&gt; pdf. To be sure which pdf exactly are you talking about?<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The pdf asociated with the html file, the one that has this chapter:<br>
&gt;&gt;<br>
&gt;&gt; <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dparams-parameters.html" target="_blank">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dparams-parameters.html</a><br>


&gt;&gt; <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/manual.pdf" target="_blank">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/manual.pdf</a><br>
&gt;&gt;<br>
&gt;&gt; thanks<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; Stefan<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Regards and thanks<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; 2011/10/27 Stefan Sauer &lt;<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;  Hi,<br>
&gt;&gt;&gt;&gt; On 10/27/2011 01:37 AM, Rossana Guerra wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Well the error type disappeared, it was due where the place the<br>
&gt;&gt;&gt;&gt; gst_controller_set_control_source (ctrl, &quot;position&quot;, GST_CONTROL_SOURCE<br>
&gt;&gt;&gt;&gt; (csource)) sentence was.<br>
&gt;&gt;&gt;&gt; The first time I did it according the documentation, at the end of the<br>
&gt;&gt;&gt;&gt; value sets of the control source. It seems it isn&#39;t the right place, I<br>
&gt;&gt;&gt;&gt; changed the sentences right after creating the controller, it seems it<br>
&gt;&gt;&gt;&gt; works. Hope it helps someone else.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I fix the wrong order of calls in the docs.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;  In this way:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I made a few more fixes - compare your source and mine in a diff viewer<br>
&gt;&gt;&gt;&gt; (e.g. meld). You still need to do more stuff to ensure both sources can be<br>
&gt;&gt;&gt;&gt; mixed (run it as GST_DEBUG=&quot;*:2&quot; ./ctrl &lt;file1&gt; &lt;file2&gt; to see the<br>
&gt;&gt;&gt;&gt; warnings).<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Stefan<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; GstInterpolationControlSource * csource =<br>
&gt;&gt;&gt;&gt; gst_interpolation_control_source_new();<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; gst_interpolation_control_source_set_interpolation_mode(csource,GST_INTERPOLATE_LINEAR);<br>
&gt;&gt;&gt;&gt; gst_controller_set_control_source (ctrl, &quot;position&quot;, GST_CONTROL_SOURCE<br>
&gt;&gt;&gt;&gt; (csource));<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; (Now the runtime is another! but one less at least)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Specially thanks to Stefan!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Here is the complete code:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; #include &lt;gst.h&gt;<br>
&gt;&gt;&gt;&gt; #include &lt;controller/gstcontroller.h&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; #include &lt;iostream&gt;<br>
&gt;&gt;&gt;&gt; #include &lt;string.h&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; using namespace std;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; // Manejador de errores<br>
&gt;&gt;&gt;&gt; static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer data)<br>
&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;     GMainLoop *loop = (GMainLoop *) data;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     switch (GST_MESSAGE_TYPE (msg))<br>
&gt;&gt;&gt;&gt;     {<br>
&gt;&gt;&gt;&gt;     case GST_MESSAGE_EOS:<br>
&gt;&gt;&gt;&gt;         g_print (&quot;Final de stream\n&quot;);<br>
&gt;&gt;&gt;&gt;         g_main_loop_quit (loop);<br>
&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;     case GST_MESSAGE_ERROR:<br>
&gt;&gt;&gt;&gt;     {<br>
&gt;&gt;&gt;&gt;         gchar *debug;<br>
&gt;&gt;&gt;&gt;         GError *error;<br>
&gt;&gt;&gt;&gt;         gst_message_parse_error (msg, &amp;error, &amp;debug);<br>
&gt;&gt;&gt;&gt;         g_free (debug);<br>
&gt;&gt;&gt;&gt;         g_printerr (&quot;Error: %s\n&quot;, error-&gt;message);<br>
&gt;&gt;&gt;&gt;         g_error_free (error);<br>
&gt;&gt;&gt;&gt;         g_main_loop_quit (loop);<br>
&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;     default:<br>
&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;     return TRUE;<br>
&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; static void on_pad_added (GstElement *element, GstPad *pad, gpointer<br>
&gt;&gt;&gt;&gt; data)<br>
&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;   GstPad *sinkpad = NULL;<br>
&gt;&gt;&gt;&gt;   GstElement * elemento = (GstElement *) data;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   /* Ahora linkeo el pad de comp con sink pad */<br>
&gt;&gt;&gt;&gt;   g_print (&quot;Dynamic pad created, linking queue\n&quot;);<br>
&gt;&gt;&gt;&gt;   sinkpad = gst_element_get_static_pad (elemento, &quot;sink&quot;);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   gst_pad_link (pad, sinkpad);<br>
&gt;&gt;&gt;&gt;   gst_object_unref(sinkpad);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; int main(int argc, char *argv[])<br>
&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   GMainLoop *loop = NULL;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   GstElement *src1, *src2,*dec1,*dec2,*alfa1,*color,*smpte,*queue,*sink;<br>
&gt;&gt;&gt;&gt;   GstBus *bus;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   gdouble duracion = 500.0;<br>
&gt;&gt;&gt;&gt;   gint transicion = 1;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Inicio...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     /* init GStreamer */<br>
&gt;&gt;&gt;&gt;   gst_init (&amp;argc, &amp;argv);<br>
&gt;&gt;&gt;&gt;   bool iniciado = gst_controller_init (&amp;argc, &amp;argv);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;    loop = g_main_loop_new (NULL, FALSE);<br>
&gt;&gt;&gt;&gt;   //gint transicion = 1;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   /* make sure we have input */<br>
&gt;&gt;&gt;&gt;   if (argc != 3) {<br>
&gt;&gt;&gt;&gt;     g_print (&quot;Usage: %s &lt;filename1&gt; &lt;filename2&gt;\n&quot;, argv[0]);<br>
&gt;&gt;&gt;&gt;     return -1;<br>
&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Creando...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;   src1 = gst_element_factory_make(&quot;filesrc&quot;, &quot;src1&quot;);<br>
&gt;&gt;&gt;&gt;   g_object_set(G_OBJECT(src1),&quot;location&quot;,argv[1], NULL);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   src2 = gst_element_factory_make(&quot;filesrc&quot;, &quot;src2&quot;);<br>
&gt;&gt;&gt;&gt;   g_object_set(G_OBJECT(src1),&quot;location&quot;,argv[2], NULL);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   GstElement *pipeline = gst_pipeline_new (&quot;video-player&quot;);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   dec1 = gst_element_factory_make(&quot;decodebin2&quot;,&quot;dec1&quot;);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   dec2 = gst_element_factory_make(&quot;decodebin2&quot;,&quot;dec2&quot;);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Creando pipeline...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));<br>
&gt;&gt;&gt;&gt;   gst_bus_add_watch (bus, bus_call, loop);<br>
&gt;&gt;&gt;&gt;   gst_object_unref (bus);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   alfa1   = gst_element_factory_make (&quot;alpha&quot;,&quot;alfa1&quot;);<br>
&gt;&gt;&gt;&gt;   smpte  = gst_element_factory_make (&quot;smptealpha&quot;,&quot;smpte&quot;);<br>
&gt;&gt;&gt;&gt;   g_object_set(smpte,&quot;type&quot;, transicion, NULL);<br>
&gt;&gt;&gt;&gt;   color  = gst_element_factory_make (&quot;ffmpegcolorspace&quot;, &quot;color&quot;);<br>
&gt;&gt;&gt;&gt;   GstElement * mixer  = gst_element_factory_make(&quot;videomixer&quot;, &quot;mixer&quot;);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   if ((!alfa1) || (!smpte) || (!color) || (!mixer))<br>
&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;       g_printerr (&quot;Alguno de los elementos del Bin no pudo ser creado.<br>
&gt;&gt;&gt;&gt; Saliendo\n&quot;);<br>
&gt;&gt;&gt;&gt;      return 0;<br>
&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Creando 1...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   // Agrego Controlador<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   GstController * ctrl = gst_object_control_properties(G_OBJECT(smpte),<br>
&gt;&gt;&gt;&gt; &quot;position&quot;,NULL);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   if (ctrl == NULL)<br>
&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;         GST_WARNING (&quot;No puede controlar el elemento fuente\n&quot;);<br>
&gt;&gt;&gt;&gt;         return 1;<br>
&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   // Todo valor GValue debe inicializarse en 0<br>
&gt;&gt;&gt;&gt;   GValue val_double = { 0, };<br>
&gt;&gt;&gt;&gt;   g_value_init (&amp;val_double, G_TYPE_DOUBLE);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   // Creo la fuente al controlador y la asocio al controlador<br>
&gt;&gt;&gt;&gt;   // Seteo modo de interpolacion<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   GstInterpolationControlSource * csource =<br>
&gt;&gt;&gt;&gt; gst_interpolation_control_source_new();<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; gst_interpolation_control_source_set_interpolation_mode(csource,GST_INTERPOLATE_LINEAR);<br>
&gt;&gt;&gt;&gt;   gst_controller_set_control_source (ctrl, &quot;position&quot;,<br>
&gt;&gt;&gt;&gt; GST_CONTROL_SOURCE (csource));<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   // Seteo primer valor<br>
&gt;&gt;&gt;&gt;   g_value_set_double(&amp;val_double, 0.0);<br>
&gt;&gt;&gt;&gt;   gst_interpolation_control_source_set(csource,(0 *<br>
&gt;&gt;&gt;&gt; GST_MSECOND),&amp;val_double);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   // Seteo segundo valor<br>
&gt;&gt;&gt;&gt;   g_value_set_double(&amp;val_double, 1.0);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; gst_interpolation_control_source_set(csource,(duracion*GST_MSECOND),&amp;val_double);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   //gst_controller_set_control_source (ctrl, &quot;position&quot;,<br>
&gt;&gt;&gt;&gt; GST_CONTROL_SOURCE (csource));<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   g_object_unref (csource);<br>
&gt;&gt;&gt;&gt;   g_value_unset (&amp;val_double);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   g_signal_connect (G_OBJECT (dec1), &quot;pad-added&quot;, G_CALLBACK<br>
&gt;&gt;&gt;&gt; (on_pad_added),alfa1);<br>
&gt;&gt;&gt;&gt;   g_signal_connect (G_OBJECT (dec2), &quot;pad-added&quot;, G_CALLBACK<br>
&gt;&gt;&gt;&gt; (on_pad_added),smpte);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   queue = gst_element_factory_make(&quot;queue&quot;, &quot;queue&quot;);<br>
&gt;&gt;&gt;&gt;   sink  = gst_element_factory_make(&quot;autovideosink&quot;, &quot;sink&quot;);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   gst_bin_add_many (GST_BIN (pipeline),src1, src2, dec1, dec2, alfa1,<br>
&gt;&gt;&gt;&gt; smpte, mixer, queue, color, sink, NULL);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   gst_element_link (src1,dec1);<br>
&gt;&gt;&gt;&gt;   gst_element_link (src2,dec2);<br>
&gt;&gt;&gt;&gt;   gst_element_link (alfa1,mixer);<br>
&gt;&gt;&gt;&gt;   gst_element_link (smpte,mixer);<br>
&gt;&gt;&gt;&gt;   gst_element_link (mixer,queue);<br>
&gt;&gt;&gt;&gt;   gst_element_link (queue,sink);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   /* now run */<br>
&gt;&gt;&gt;&gt;   gst_element_set_state (pipeline, GST_STATE_PLAYING);<br>
&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Playing...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;   g_main_loop_run (loop);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;     /* also clean up */<br>
&gt;&gt;&gt;&gt;   gst_element_set_state (pipeline, GST_STATE_NULL);<br>
&gt;&gt;&gt;&gt;   gst_object_unref (GST_OBJECT (pipeline));<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;   return 0;<br>
&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 2011/10/26 Rossana Guerra &lt;<a href="mailto:guerra.rossana@gmail.com">guerra.rossana@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Sorry, I had some copy/paste errors. Here&#39;s the code, the runtime<br>
&gt;&gt;&gt;&gt;&gt; error is:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;  CRITICAL **: gst_interpolation_control_source_set: assertion<br>
&gt;&gt;&gt;&gt;&gt; `G_VALUE_TYPE (value) == self-&gt;priv-&gt;type&#39; failed.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I changed the duracion value variable unit to second (replacing 500<br>
&gt;&gt;&gt;&gt;&gt; with 5), and I tryed with GST_SECOND insted, but it didn&#39;t work.<br>
&gt;&gt;&gt;&gt;&gt; So I wrote it back to GST_MSECOND.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; The code ?without&quot; typing errors:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; #include &lt;gst.h&gt;<br>
&gt;&gt;&gt;&gt;&gt; #include &lt;controller/gstcontroller.h&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; #include &lt;iostream&gt;<br>
&gt;&gt;&gt;&gt;&gt;  #include &lt;string.h&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; using namespace std;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; // Manejador de errores<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer data)<br>
&gt;&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;&gt;     GMainLoop *loop = (GMainLoop *) data;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;     switch (GST_MESSAGE_TYPE (msg))<br>
&gt;&gt;&gt;&gt;&gt;     {<br>
&gt;&gt;&gt;&gt;&gt;     case GST_MESSAGE_EOS:<br>
&gt;&gt;&gt;&gt;&gt;         g_print (&quot;Final de stream\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;         g_main_loop_quit (loop);<br>
&gt;&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;&gt;     case GST_MESSAGE_ERROR:<br>
&gt;&gt;&gt;&gt;&gt;     {<br>
&gt;&gt;&gt;&gt;&gt;         gchar *debug;<br>
&gt;&gt;&gt;&gt;&gt;         GError *error;<br>
&gt;&gt;&gt;&gt;&gt;         gst_message_parse_error (msg, &amp;error, &amp;debug);<br>
&gt;&gt;&gt;&gt;&gt;         g_free (debug);<br>
&gt;&gt;&gt;&gt;&gt;         g_printerr (&quot;Error: %s\n&quot;, error-&gt;message);<br>
&gt;&gt;&gt;&gt;&gt;         g_error_free (error);<br>
&gt;&gt;&gt;&gt;&gt;         g_main_loop_quit (loop);<br>
&gt;&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;&gt;     default:<br>
&gt;&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;&gt;     return TRUE;<br>
&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; static void on_pad_added (GstElement *element, GstPad *pad, gpointer<br>
&gt;&gt;&gt;&gt;&gt; data)<br>
&gt;&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;&gt;   GstPad *sinkpad = NULL;<br>
&gt;&gt;&gt;&gt;&gt;   GstElement * elemento = (GstElement *) data;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   /* Ahora linkeo el pad de comp con sink pad */<br>
&gt;&gt;&gt;&gt;&gt;   g_print (&quot;Dynamic pad created, linking queue\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   sinkpad = gst_element_get_static_pad (elemento, &quot;sink&quot;);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   gst_pad_link (pad, sinkpad);<br>
&gt;&gt;&gt;&gt;&gt;   gst_object_unref(sinkpad);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; int main(int argc, char *argv[])<br>
&gt;&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   GMainLoop *loop = NULL;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   GstElement *src1,<br>
&gt;&gt;&gt;&gt;&gt; *src2,*dec1,*dec2,*alfa1,*color,*smpte,*queue,*sink;<br>
&gt;&gt;&gt;&gt;&gt;   GstBus *bus;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    guint duracion = 500;<br>
&gt;&gt;&gt;&gt;&gt;   gint transicion = 1;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Inicio...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;     /* init GStreamer */<br>
&gt;&gt;&gt;&gt;&gt;   gst_init (&amp;argc, &amp;argv);<br>
&gt;&gt;&gt;&gt;&gt;   bool iniciado = gst_controller_init (&amp;argc, &amp;argv);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   loop = g_main_loop_new (NULL, FALSE);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    if (argc != 3) {<br>
&gt;&gt;&gt;&gt;&gt;     g_print (&quot;Usage: %s &lt;filename1&gt; &lt;filename2&gt;\n&quot;, argv[0]);<br>
&gt;&gt;&gt;&gt;&gt;     return -1;<br>
&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    cout &lt;&lt; &quot;Creando...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   src1 = gst_element_factory_make(&quot;filesrc&quot;, &quot;src1&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   g_object_set(G_OBJECT(src1),&quot;location&quot;,argv[1], NULL);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   src2 = gst_element_factory_make(&quot;filesrc&quot;, &quot;src2&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   g_object_set(G_OBJECT(src1),&quot;location&quot;,argv[2], NULL);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   GstElement *pipeline = gst_pipeline_new (&quot;video-player&quot;);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   dec1 = gst_element_factory_make(&quot;decodebin2&quot;,&quot;dec1&quot;);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   dec2 = gst_element_factory_make(&quot;decodebin2&quot;,&quot;dec2&quot;);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Creando pipeline...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));<br>
&gt;&gt;&gt;&gt;&gt;   gst_bus_add_watch (bus, bus_call, loop);<br>
&gt;&gt;&gt;&gt;&gt;   gst_object_unref (bus);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   alfa1   = gst_element_factory_make (&quot;alpha&quot;,&quot;alfa1&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   smpte  = gst_element_factory_make (&quot;smptealpha&quot;,&quot;smpte&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   g_object_set(smpte,&quot;type&quot;, transicion, NULL);<br>
&gt;&gt;&gt;&gt;&gt;   color  = gst_element_factory_make (&quot;ffmpegcolorspace&quot;, &quot;color&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   GstElement * mixer  = gst_element_factory_make(&quot;videomixer&quot;,<br>
&gt;&gt;&gt;&gt;&gt; &quot;mixer&quot;);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   if ((!alfa1) || (!smpte) || (!color) || (!mixer))<br>
&gt;&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;&gt;       g_printerr (&quot;Alguno de los elementos del Bin no pudo ser creado.<br>
&gt;&gt;&gt;&gt;&gt; Saliendo\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;      return 0;<br>
&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;    // Agrego Controlador<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   GstController * ctrl =<br>
&gt;&gt;&gt;&gt;&gt; gst_object_control_properties(G_OBJECT(smpte), &quot;position&quot;,NULL);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   if (ctrl == NULL)<br>
&gt;&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;&gt;         GST_WARNING (&quot;No puede controlar el elemento fuente\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;         return 1;<br>
&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   // Todo valor GValue debe inicializarse en 0<br>
&gt;&gt;&gt;&gt;&gt;    GValue val_int = { 0, };<br>
&gt;&gt;&gt;&gt;&gt;   g_value_init (&amp;val_int, G_TYPE_INT);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   // Set interpolation mode<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   GstInterpolationControlSource * csource =<br>
&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_new();<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set_interpolation_mode(csource,GST_INTERPOLATE_LINEAR);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   // Seteo primer valor<br>
&gt;&gt;&gt;&gt;&gt;    g_value_set_int(&amp;val_int, 0);<br>
&gt;&gt;&gt;&gt;&gt;   gst_interpolation_control_source_set(csource,(0 *<br>
&gt;&gt;&gt;&gt;&gt; GST_MSECOND),&amp;val_int);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   // Seteo segundo valor<br>
&gt;&gt;&gt;&gt;&gt;   g_value_set_int (&amp;val_int, 1);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set(csource,(duracion*GST_MSECOND),&amp;val_int);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   gst_controller_set_control_source (ctrl, &quot;position&quot;,<br>
&gt;&gt;&gt;&gt;&gt; GST_CONTROL_SOURCE (csource));<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   g_object_unref (csource);<br>
&gt;&gt;&gt;&gt;&gt;    g_value_unset (&amp;val_int);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   g_signal_connect (G_OBJECT (dec1), &quot;pad-added&quot;, G_CALLBACK<br>
&gt;&gt;&gt;&gt;&gt; (on_pad_added),alfa1);<br>
&gt;&gt;&gt;&gt;&gt;   g_signal_connect (G_OBJECT (dec2), &quot;pad-added&quot;, G_CALLBACK<br>
&gt;&gt;&gt;&gt;&gt; (on_pad_added),smpte);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   queue = gst_element_factory_make(&quot;queue&quot;, &quot;queue&quot;);<br>
&gt;&gt;&gt;&gt;&gt;   sink  = gst_element_factory_make(&quot;autovideosink&quot;, &quot;sink&quot;);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   gst_bin_add_many (GST_BIN (pipeline),src1, src2, dec1, dec2, alfa1,<br>
&gt;&gt;&gt;&gt;&gt; smpte, mixer, queue, color, sink, NULL);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_link (src1,dec1);<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_link (src2,dec2);<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_link (alfa1,mixer);<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_link (smpte,mixer);<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_link (mixer,queue);<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_link (queue,sink);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   /* now run */<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_set_state (pipeline, GST_STATE_PLAYING);<br>
&gt;&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Playing...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;&gt;   g_main_loop_run (loop);<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;     /* also clean up */<br>
&gt;&gt;&gt;&gt;&gt;   gst_element_set_state (pipeline, GST_STATE_NULL);<br>
&gt;&gt;&gt;&gt;&gt;   gst_object_unref (GST_OBJECT (pipeline));<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   return 0;<br>
&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;   2011/10/26 Rossana Guerra &lt;<a href="mailto:guerra.rossana@gmail.com">guerra.rossana@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Where it says guint duration = 500.0 it should say guint duration =<br>
&gt;&gt;&gt;&gt;&gt;&gt; 500. Nonetheless, the error persists.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; 2011/10/26 Rossana Guerra &lt;<a href="mailto:guerra.rossana@gmail.com">guerra.rossana@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; HI Stefan, thanks for your help, I changed the variable type from<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; gdouble to guint, same error.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; Here&#39;s the whole code example:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; #include &lt;gst.h&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; #include &lt;controller/gstcontroller.h&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; #include &lt;iostream&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; using namespace std;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; // Error handler<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; static gboolean bus_call (GstBus *bus, GstMessage *msg, gpointer<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; data)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     GMainLoop *loop = (GMainLoop *) data;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     switch (GST_MESSAGE_TYPE (msg))<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     case GST_MESSAGE_EOS:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         g_print (&quot;Final de stream\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         g_main_loop_quit (loop);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     case GST_MESSAGE_ERROR:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         gchar *debug;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         GError *error;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         gst_message_parse_error (msg, &amp;error, &amp;debug);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         g_free (debug);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         g_printerr (&quot;Error: %s\n&quot;, error-&gt;message);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         g_error_free (error);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         g_main_loop_quit (loop);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     default:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         break;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     return TRUE;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; static void on_pad_added (GstElement *element, GstPad *pad,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; gpointer  data)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstPad *sinkpad = NULL;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstElement * elemento = (GstElement *) data;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   /* Ahora linkeo el pad de comp con sink pad */<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_print (&quot;Dynamic pad created, linking queue\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   sinkpad = gst_element_get_static_pad (elemento, &quot;sink&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_pad_link (pad, sinkpad);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_object_unref(sinkpad);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; int main(int argc, char *argv[])<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GMainLoop *loop = NULL;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstElement *src1,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; *src2,*dec1,*dec2,*alfa1,*color,*smpte,*queue,*sink;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstBus *bus;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   guint duracion = 500.0;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   guint transicion = 1;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     /* init GStreamer */<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_init (&amp;argc, &amp;argv);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   bool iniciado = gst_controller_init (&amp;argc, &amp;argv);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   loop = g_main_loop_new (NULL, FALSE);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   /* make sure we have input */<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   if (argc != 3) {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     g_print (&quot;Usage: %s &lt;filename1&gt; &lt;filename2&gt;\n&quot;, argv[0]);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     return -1;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   src1 = gst_element_factory_make(&quot;filesrc&quot;, &quot;src1&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_object_set(G_OBJECT(src1),&quot;location&quot;,argv[1], NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   src2 = gst_element_factory_make(&quot;filesrc&quot;, &quot;src2&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_object_set(G_OBJECT(src1),&quot;location&quot;,argv[2], NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstElement *pipeline = gst_pipeline_new (&quot;video-player&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   dec1 = gst_element_factory_make(&quot;decodebin2&quot;,&quot;dec1&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   dec2 = gst_element_factory_make(&quot;decodebin2&quot;,&quot;dec2&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Creando pipeline...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_bus_add_watch (bus, bus_call, loop);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_object_unref (bus);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   alfa1   = gst_element_factory_make (&quot;alpha&quot;,&quot;alfa1&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   smpte  = gst_element_factory_make (&quot;smptealpha&quot;,&quot;smpte&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_object_set(smpte,&quot;type&quot;, transicion, NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   color  = gst_element_factory_make (&quot;ffmpegcolorspace&quot;, &quot;color&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstElement * mixer  = gst_element_factory_make(&quot;videomixer&quot;,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; &quot;mixer&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   if ((!alfa1) || (!smpte) || (!color) || (!mixer))<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;       g_printerr (&quot;Alguno de los elementos del Bin no pudo ser<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; creado. Saliendo\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;      return 0;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Controller creation<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstController * ctrl =<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_object_control_properties(G_OBJECT(smpte), &quot;position&quot;,NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   if (ctrl == NULL)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         GST_WARNING (&quot;No puede controlar el elemento fuente\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;         return 1;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Todo valor GValue debe inicializarse en 0<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GValue val_double = { 0, };<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_init (&amp;val_double, G_TYPE_DOUBLE);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;    // Set interpolation mode<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstInterpolationControlSource * csource =<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_new();<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set_interpolation_mode(csource,GST_INTERPOLATE_LINEAR);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Seteo primer valor<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_set_double(&amp;val_double, 0.0);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_interpolation_control_source_set(csource,(0 *<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; GST_MSECOND),&amp;val_double);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Seteo segundo valor<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_set_double (&amp;val_double, 1.0);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set(csource,(duracion*GST_MSECOND),&amp;val_double);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_controller_set_control_source (ctrl, &quot;position&quot;,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; GST_CONTROL_SOURCE (csource));<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_object_unref (csource);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_unset (&amp;val_double);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;    g_signal_connect (G_OBJECT (dec1), &quot;pad-added&quot;, G_CALLBACK<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; (on_pad_added),alfa1);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_signal_connect (G_OBJECT (dec2), &quot;pad-added&quot;, G_CALLBACK<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; (on_pad_added),smpte);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   queue = gst_element_factory_make(&quot;queue&quot;, &quot;queue&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   sink  = gst_element_factory_make(&quot;autovideosink&quot;, &quot;sink&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_bin_add_many (GST_BIN (pipeline),src1, src2, dec1, dec2,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; alfa1, smpte, mixer, queue, color, sink, NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_link (src1,dec1);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_link (src2,dec2);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_link (alfa1,mixer);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_link (smpte,mixer);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_link (mixer,queue);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_link (queue,sink);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   /* now run */<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_set_state (pipeline, GST_STATE_PLAYING);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   cout &lt;&lt; &quot;Playing...&quot; &lt;&lt; endl;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_main_loop_run (loop);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;     /* also clean up */<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_element_set_state (pipeline, GST_STATE_NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_object_unref (GST_OBJECT (pipeline));<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;   return 0;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 2011/10/26 Stefan Sauer &lt;<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  On 10/26/2011 03:12 AM, Rossana Guerra wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Hi I trying to control the position property of a smptealpha element. It<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; controls the opacity of the alpha channel,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  no, position controls the transition of the fade. 0.0:input1,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1.0:input2.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   it varies from 0.0 to 1.0.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; The duration of this setting is 500ms.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; I am working around this problem, it happens at runtime, I can&#39;t figure out<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; what it&#39;s wrong.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  What is not working? The code snippet looks more of less okay.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Maybe you can post a full standalone example.<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Stefan<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  Thanks and regards,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Rossana<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Here&#39;s the code;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; _____________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set: assertion `G_VALUE_TYPE (value) ==<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; self-&gt;priv-&gt;type&#39; failed<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; // Agrego Controlador<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gdouble duracion = 500;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;  guint64 duracion = 500;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;    GstController * ctrl = gst_object_control_properties(G_OBJECT(smpte),<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &quot;position&quot;,NULL);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   if (ctrl == NULL)<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   {<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;         GST_WARNING (&quot;No puede controlar el elemento fuente\n&quot;);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;         return 0;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   }<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Todo valor GValue debe inicializarse en 0<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GValue val_double = { 0, };<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_init (&amp;val_double, G_TYPE_DOUBLE);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Seteo modo de interpolacion<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   GstInterpolationControlSource * csource =<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_new();<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set_interpolation_mode(csource,GST_INTERPOLATE_LINEAR);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Seteo primer valor<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_set_double(&amp;val_double, 0.0);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_interpolation_control_source_set(csource,(0 *<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; GST_MSECOND),&amp;val_double);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   // Seteo segundo valor<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_set_double (&amp;val_double, 1.0);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; gst_interpolation_control_source_set(csource,(duracion*GST_MSECOND),&amp;val_double);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   gst_controller_set_control_source (ctrl, &quot;position&quot;, GST_CONTROL_SOURCE<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; (csource));<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_object_unref (csource);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;   g_value_unset (&amp;val_double);<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; gstreamer-devel mailing listgstreamer-devel@lists.freedesktop.orghttp://<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>


&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; gstreamer-devel mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; gstreamer-devel mailing listgstreamer-devel@lists.freedesktop.orghttp://<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>


&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; gstreamer-devel mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; gstreamer-devel mailing listgstreamer-devel@lists.freedesktop.orghttp://<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>


&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; gstreamer-devel mailing list<br>
&gt;&gt;&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt;&gt;&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing listgstreamer-devel@lists.freedesktop.orghttp://<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>


&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
&gt;<br>
&gt;<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: &lt;<a href="http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/350c2653/attachment.htm" target="_blank">http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20111031/350c2653/attachment.htm</a>&gt;<br>


<br>
------------------------------<br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
End of gstreamer-devel Digest, Vol 9, Issue 90<br>
**********************************************<br>
</blockquote></div><br>