<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi,<DIV><BR class="khtml-block-placeholder"></DIV><DIV>That's what I'm doing actually. What I'd like to do is get a direct pointer to the SDL_Overlay in the structure of the element (but if xvimagesink had worked on the Nokia 770 that'd have solved my problem). My problem is that the video doesn't fit in my view. Maybe I should make a personalized version of sdlvideosink with explicit height / width parameters.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Thx,</DIV><DIV>Corentin.</DIV><DIV><BR><DIV><DIV>Le 6 juin 06 à 15:20, Edgard Lima a écrit :</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">try the code attached code is attached</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">unfortunatelly sdlvideosink (I have to try fix that) still doens't work 100% fine<SPAN class="Apple-converted-space">  </SPAN>:-(</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">you can see how it works with 100% with ximagesink and xvimagesink insteadof sdlvideosink</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">video_sink = gst_element_factory_make("sdlvideosink", NULL);</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(video_sink, GDK_WINDOW_XWINDOW(widgetGst-&gt;window));</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://gstreamer.freedesktop.org/media/large/matrix.avi">http://gstreamer.freedesktop.org/media/large/matrix.avi</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">compile with</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">gcc<SPAN class="Apple-converted-space">  </SPAN>-Wall `pkg-config --cflags --libs gstreamer-plugins-base-0.10` `pkg-config --cflags --libs gstreamer-0.10` `pkg-config --cflags --libs gstreamer-base-0.10`<SPAN class="Apple-converted-space">  </SPAN>`pkg-config --cflags --libs gtk+-2.0` /home/edlima/Projects/gstreamer/v0010/alex/gst-plugins-base-0.10.0/gst-libs/gst/interfaces/xoverlay.c seek.c</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">btw: code is ugly but you can see how some things work.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">BR,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Edgard</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ext Corentin BARON wrote:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV> <BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Hello,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Does anyone know how I could get a pointer to the SDL_Overlay stuff<SPAN class="Apple-converted-space">  </SPAN>in the sdlvideosink? That would be very useful.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Thx,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Corentin.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">------------------------------------------------------------------------</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">gstreamer-devel mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</A></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><SPAN class="Apple-converted-space"> </SPAN><BR class="khtml-block-placeholder"></P> </BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR><SPAN><DIV>&lt;babytux.png&gt;</DIV></SPAN><FONT face="Monaco" size="2" style="font: 10.0px Monaco">/*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* Copyright (C) &lt;2006&gt; Edgard Lima &lt;<A href="mailto:edgard.lima@indt.org.br">edgard.lima@indt.org.br</A>&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>* License: do all you want with this code.</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN>*/</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">#include &lt;gtk/gtk.h&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">#include &lt;gdk/gdkx.h&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">#include &lt;gst/gst.h&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">#include &lt;gst/interfaces/xoverlay.h&gt;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GtkWindow *window;<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GtkWidget *box;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GtkWidget *widget;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GtkWidget *widgetGst;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GtkWidget *button;<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GtkWidget *hscale;<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *pipeline;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *source;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *demuxer;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *video_queue;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *video_dec;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *video_conv;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *video_scale;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *video_sink;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *audio_queue;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *audio_dec;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *audio_conv;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GstElement *audio_sink;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">GMutex* mutex;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gboolean update_pos_flag = TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gint64 duration;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gint64 position;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">static void</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">new_pad (GstElement *element,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> GstPad <SPAN class="Apple-converted-space">    </SPAN>*pad,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> gpointer<SPAN class="Apple-converted-space">    </SPAN>data)</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>GstPad *sinkpad;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gchar* name;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* We can now link this pad with the audio decoder */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_print ("Dynamic pad created, linking parser/decoder\n");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>name = gst_pad_get_name(pad);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>if ( name[0] == 'a' ) // audio_00</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>sinkpad = gst_element_get_pad (audio_queue, "sink");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>else // video_00</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>sinkpad = gst_element_get_pad (video_queue, "sink");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_pad_link (pad, sinkpad);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_free(name);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_object_unref (sinkpad);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">static gboolean</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">bus_call (GstBus <SPAN class="Apple-converted-space">    </SPAN>*bus, GstMessage *msg, gpointer<SPAN class="Apple-converted-space">    </SPAN>data)</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf("message from %s\n", GST_OBJECT_NAME(GST_MESSAGE_SRC(msg)));</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>switch (GST_MESSAGE_TYPE (msg)) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>case GST_MESSAGE_EOS:</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf ("End-of-stream\n");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>break;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>case GST_MESSAGE_ERROR: {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>gchar *debug;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>GError *err;</FONT></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN></FONT><BR class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>gst_message_parse_error (msg, &amp;err, &amp;debug);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>g_free (debug);</FONT></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN></FONT><BR class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf ("Error: %s\n", err-&gt;message);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>g_error_free (err);</FONT></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN></FONT><BR class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>break;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>case GST_MESSAGE_STATE_CHANGED: {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>GstState oldstate;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>GstState newstate;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>GstState pending;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>gst_message_parse_state_changed (msg,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">    </SPAN>&amp;oldstate,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">    </SPAN>&amp;newstate,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">    </SPAN>&amp;pending);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>/*</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf("oldstate = %s, newstate = %s, pendingstate = %s",</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">  </SPAN>gst_element_state_get_name (oldstate),</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">  </SPAN>gst_element_state_get_name (newstate),</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">  </SPAN>gst_element_state_get_name (pending));</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>*/</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>if ( newstate == GST_STATE_PAUSED ) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>GstFormat format = GST_FORMAT_TIME;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>gst_element_query_duration (pipeline, &amp;format, &amp;duration);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>gst_element_query_position (pipeline, &amp;format, &amp;position);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>printf("duration = %lld, position = %lld\n", duration, position);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>gtk_range_set_range((GtkRange*)hscale, 0, duration);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>gtk_range_set_value((GtkRange*)hscale, position);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>break;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>default:</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf(gst_message_type_get_name (GST_MESSAGE_TYPE (msg)));</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf("\n");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>break;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf("\n");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>fflush(stdout);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gboolean start_seek (GtkWidget *widget, GdkEventButton *event, gpointer user_data) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_lock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>update_pos_flag = FALSE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_unlock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return FALSE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gboolean stop_seek (GtkWidget *widget, GdkEventButton *event, gpointer user_data) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_lock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>update_pos_flag = TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_unlock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return FALSE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gboolean update_pos (gpointer data) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>GstFormat format = GST_FORMAT_TIME;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_lock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>if ( ! update_pos_flag ) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>g_mutex_unlock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>return TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_unlock(mutex);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_query_duration (pipeline, &amp;format, &amp;duration);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_query_position (pipeline, &amp;format, &amp;position);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf("duration = %lld, position = %lld\n", duration, position);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_range_set_range((GtkRange*)hscale, 0, duration);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_range_set_value((GtkRange*)hscale, position);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gboolean seek (GtkRange *range, GtkScrollType scroll, gdouble value, gpointer user_data) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf("value = %lf\n", value);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>if ( scroll == GTK_SCROLL_JUMP ) {</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>gst_element_seek(pipeline, 1.0, GST_FORMAT_TIME,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">      </SPAN>GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">      </SPAN>GST_SEEK_TYPE_SET, value,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">      </SPAN>GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>return FALSE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>return TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">void change_null(GtkWidget *locwidget, gpointer data)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_set_state (pipeline, GST_STATE_NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_hide(widgetGst);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_show(widget);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">void change_ready(GtkWidget *locwidget, gpointer data)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_set_state (pipeline, GST_STATE_READY);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_hide(widgetGst);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_show(widget);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">void change_paused(GtkWidget *locwidget, gpointer data)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_hide(widget);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_show(widgetGst);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_set_state (pipeline, GST_STATE_PAUSED);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">void change_playing(GtkWidget *locwidget, gpointer data)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_hide(widget);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_show(widgetGst);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_set_state (pipeline, GST_STATE_PLAYING);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gint delete_event(GtkWidget *widget, GdkEvent event, gpointer data)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* when this function returns FALSE, the delete-event<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">     </SPAN>signal becomes a destroy signal */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return FALSE;<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space"> </SPAN></FONT><BR class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">void end_program(GtkWidget *widget, gpointer data)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* End the main loop */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf ("Returned, stopping playback\n");<SPAN class="Apple-converted-space">  </SPAN>fflush(stdout);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_set_state (pipeline, GST_STATE_NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_main_quit();<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">gboolean expose (GtkWidget *widget,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> GdkEventExpose *event,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> gpointer user_data)</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf("expose1\n"); fflush(stdout);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_x_overlay_set_xwindow_id (GST_X_OVERLAY(video_sink), GDK_WINDOW_XWINDOW(widgetGst-&gt;window));</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf("expose2\n"); fflush(stdout);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return TRUE;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">int main(int argc, char **argv)<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">{<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* Initialize GTK+ */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_init(&amp;argc, &amp;argv);<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_init(&amp;argc, &amp;argv);<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create window, set default height and width to 200 pixels */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>window = g_object_new(GTK_TYPE_WINDOW,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                        </SPAN>"default-height", 200,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                        </SPAN>"default-width", 200,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                        </SPAN>"border-width", 12,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                        </SPAN>"title", "GtkHello",<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                        </SPAN>NULL);<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* add signal handlers for window */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(window,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"delete-event", G_CALLBACK(delete_event),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>NULL);<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(window,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"destroy", G_CALLBACK(end_program),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>NULL);<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>box = gtk_vbox_new(FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>widget = gtk_image_new_from_file("babytux.png");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>widgetGst = gtk_drawing_area_new();</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_set_size_request (widgetGst, 352, 288);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(widgetGst,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"expose-event", G_CALLBACK(expose),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_start (GTK_BOX(box), widget, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_start (GTK_BOX(box), widgetGst, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_hide(widgetGst);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create a button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>button = gtk_button_new_with_label("state to null!");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_end (GTK_BOX(box), button, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* install signal handlers for button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(button,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"clicked", G_CALLBACK(change_null),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create a button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>button = gtk_button_new_with_label("state to ready!");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_end (GTK_BOX(box), button, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* install signal handlers for button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(button,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"clicked", G_CALLBACK(change_ready),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create a button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>button = gtk_button_new_with_label("state to paused!");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_end (GTK_BOX(box), button, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* install signal handlers for button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(button,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"clicked", G_CALLBACK(change_paused),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create a button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>button = gtk_button_new_with_label("state to playing!");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_end (GTK_BOX(box), button, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* install signal handlers for button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(button,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"clicked", G_CALLBACK(change_playing),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create a button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>hscale = gtk_hscale_new_with_range(0.0, 100.0, 1);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_box_pack_end (GTK_BOX(box), hscale, FALSE, FALSE, 0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* install signal handlers for button */<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(hscale,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"change-value", G_CALLBACK(seek),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(hscale,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"button-press-event", G_CALLBACK(start_seek),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect(hscale,<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>"button-release-event", G_CALLBACK(stop_seek),<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">                   </SPAN>window);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_range_set_value((GtkRange*)hscale, 0.0);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(box));<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_widget_show_all(GTK_WIDGET(window));</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* create elements */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>pipeline = gst_pipeline_new ("audio-player");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>source = gst_element_factory_make ("filesrc", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>demuxer = gst_element_factory_make ("avidemux", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>video_queue = gst_element_factory_make ("queue", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>video_dec = gst_element_factory_make ("ffdec_msmpeg4", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>video_conv = gst_element_factory_make ("ffmpegcolorspace", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>video_scale = gst_element_factory_make ("videoscale", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>video_sink = gst_element_factory_make ("sdlvideosink", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>audio_queue = gst_element_factory_make ("queue", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>audio_dec = gst_element_factory_make ("mad", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>audio_conv = gst_element_factory_make ("audioconvert", NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>audio_sink = gst_element_factory_make ("alsasink", NULL);</FONT></DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN></FONT><BR class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>if (!pipeline || !source || !demuxer ||</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>!video_queue || !video_dec || !video_conv || !video_scale || !video_sink ||</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">      </SPAN>!audio_queue || !audio_dec || !audio_conv || !audio_sink )<SPAN class="Apple-converted-space">  </SPAN>{</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>printf ("One element could not be created\n");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">    </SPAN>return -1;</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* set filename property on the file source. Also add a message</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">   </SPAN>* handler. */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_object_set (G_OBJECT (source), "location", "matrix.avi", NULL); <SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>//g_object_set (G_OBJECT (scaler), "method", 1, NULL); <SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>//<SPAN class="Apple-converted-space">  </SPAN>g_object_set (G_OBJECT (sink), "fullscreen", TRUE, NULL); <SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_bus_add_watch (gst_pipeline_get_bus (GST_PIPELINE (pipeline)),</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN> <SPAN class="Apple-converted-space">    </SPAN>bus_call, NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* put all elements in a bin */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_bin_add_many (GST_BIN (pipeline),</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-converted-space">    </SPAN>source, demuxer,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-converted-space">    </SPAN>video_queue, video_dec, video_conv, video_scale, video_sink,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN><SPAN class="Apple-converted-space">    </SPAN>audio_queue, audio_dec, audio_conv, audio_sink, NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* link together - note that we cannot link the parser and</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">   </SPAN>* decoder yet, becuse the parser uses dynamic pads. For that,</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">   </SPAN>* we set a pad-added signal handler. */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_link_many (source, demuxer, NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_signal_connect (demuxer, "pad-added", G_CALLBACK (new_pad), NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_link_many (video_queue, video_dec, video_conv, video_scale, video_sink, NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_link_many (audio_queue, audio_dec, audio_conv, audio_sink, NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>mutex = g_mutex_new();</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_timeout_add (100, update_pos, NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf ("Running\n"); fflush(stdout);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gtk_main();</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>/* clean up nicely */</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf ("Returned, stopping playback\n");<SPAN class="Apple-converted-space">  </SPAN>fflush(stdout);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_element_set_state (pipeline, GST_STATE_NULL);</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>printf ("Deleting pipeline\n");</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>gst_object_unref (GST_OBJECT (pipeline));</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>g_mutex_free(mutex); <SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px/normal Monaco; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco"><SPAN class="Apple-converted-space">  </SPAN>return 0;<SPAN class="Apple-converted-space"> </SPAN></FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT face="Monaco" size="2" style="font: 10.0px Monaco">}</FONT></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">gstreamer-devel mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</A></DIV> </BLOCKQUOTE></DIV><BR><DIV> <SPAN></SPAN></DIV></DIV></BODY></HTML>