<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Thibault Saunier</title><link>https://blog.thibaultsaunier.com/</link><description>Thibault Saunier's blog: GStreamer, multimedia, open source.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 17:51:09 +0000</lastBuildDate><atom:link href="https://blog.thibaultsaunier.com/" rel="self" type="application/rss+xml"/><item><title>gst-dots-viewer: A New Tool for GStreamer Pipeline Visualization</title><link>https://blog.thibaultsaunier.com/2025/05/gst-dots-viewer-a-new-tool-for-gstreamer-pipeline-visualization/</link><pubDate>Fri, 16 May 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">https://blogs.gnome.org/tsaunier/2025/05/16/gst-dots-viewer-a-new-tool-for-gstreamer-pipeline-visualization/</guid><description>&lt;p&gt;We’re happy to have released &lt;code&gt;gst-dots-viewer&lt;/code&gt;, a new development tool that makes it easier to visualize and debug GStreamer pipelines. This tool,  included in GStreamer 1.26, provides a web-based interface for viewing pipeline graphs in real-time as your application runs and allows to easily request all pipelines to be dumped at any time.&lt;/p&gt;&#10;&lt;h2 id="what-is-gst-dots-viewer"&gt;What is gst-dots-viewer?&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;gst-dots-viewer&lt;/code&gt; is a server application that monitors a directory for &lt;code&gt;.dot&lt;/code&gt; files generated by GStreamer’s pipeline visualization system and displays them in your web browser. It automatically updates the visualization whenever new &lt;code&gt;.dot&lt;/code&gt; files are created, making it simpler to debug complex applications and understand the evolution of the pipelines at runtime.&lt;/p&gt;&#10;&lt;h2 id="key-features"&gt;Key Features&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Real-time Updates: Watch your pipelines evolve as your application runs&lt;/li&gt;&#10;&lt;li&gt;Interactive Visualization:&#10;&lt;ul&gt;&#10;&lt;li&gt;Click nodes to highlight pipeline elements&lt;/li&gt;&#10;&lt;li&gt;Use Shift-Ctrl-scroll or w/s keys to zoom&lt;/li&gt;&#10;&lt;li&gt;Drag-scroll support for easy navigation&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Easily deployable in cloud based environments&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="how-to-use-it"&gt;How to Use It&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Start the viewer server:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gst-dots-viewer&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Open your browser at &lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Enable the dots tracer in your GStreamer application:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GST_TRACERS&lt;span style="color:#f92672"&gt;=&lt;/span&gt;dots your-gstreamer-application&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The web page will automatically update whenever new pipeline are dumped, and you will be able to dump all pipelines from the web page.&lt;/p&gt;&#10;&lt;h2 id="new-dots-tracer"&gt;New Dots Tracer&lt;/h2&gt;&#10;&lt;p&gt;As part of this release, we’ve also introduced a new &lt;code&gt;dots&lt;/code&gt; tracer that replaces the previous manual approach to specify where to dump pipelines. The tracer can be activated simply by setting the &lt;code&gt;GST_TRACERS=dots&lt;/code&gt; environment variable.&lt;/p&gt;&#10;&lt;h2 id="interactive-pipeline-dumps"&gt;Interactive Pipeline Dumps&lt;/h2&gt;&#10;&lt;p&gt;The &lt;code&gt;dots&lt;/code&gt; tracer integrates with the &lt;a href="https://gstreamer.freedesktop.org/documentation/rstracers/pipeline-snapshot.html?gi-language=c" class="external" target="_blank" rel="noopener"&gt;&lt;code&gt;pipeline-snapshot&lt;/code&gt;&lt;/a&gt; tracer to provide real-time pipeline visualization control. Through a WebSocket connection, the web interface allows you to trigger pipeline dumps. This means you can dump pipelines exactly when you need them during debugging or development, from your browser.&lt;/p&gt;&#10;&lt;h2 id="future-improvements"&gt;Future Improvements&lt;/h2&gt;&#10;&lt;p&gt;We plan on adding more feature and  have this list of possibilities:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Additional interactive features in the web interface&lt;/li&gt;&#10;&lt;li&gt;Enhanced visualization options&lt;/li&gt;&#10;&lt;li&gt;Integration with more GStreamer tracers to provide comprehensive debugging information. For example, we could integrate the newly released &lt;a href="https://gstreamer.freedesktop.org/documentation/rstracers/memory-tracer.html?gi-language=c#memorytracer-page" class="external"&gt;memory-tracer&lt;/a&gt; and &lt;a href="https://gstreamer.freedesktop.org/documentation/rstracers/memory-tracer.html?gi-language=c#memorytracer-page" class="external"&gt;queue-level&lt;/a&gt; tracers so to plot graphs about memory usage at any time.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This could transform gst-dots-viewer into a more complete debugging and monitoring dashboard for GStreamer applications.&lt;/p&gt;&#10;&lt;h2 id="demo"&gt;Demo&lt;/h2&gt;&#10;&lt;div class="video"&gt;&lt;iframe src="https://www.youtube-nocookie.com/embed/bk9Vy44RtfU" title="YouTube video" allowfullscreen loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&#10;</description></item><item><title>GStreamer: one repository to rule them all</title><link>https://blog.thibaultsaunier.com/2021/09/gstreamer-one-repository-to-rule-them-all/</link><pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate><guid isPermaLink="false">https://blogs.gnome.org/tsaunier/2021/09/29/gstreamer-one-repository-to-rule-them-all/</guid><description>&lt;p&gt;For the last years, the &lt;a href="https://gstreamer.freedesktop.org/" class="external" target="_blank" rel="noopener"&gt;GStreamer&lt;/a&gt; community has been &lt;a href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/474" class="external"&gt;analysing and discussing&lt;/a&gt; the idea of merging all &lt;a href="https://gstreamer.freedesktop.org/documentation/additional/splitup.html" class="external" target="_blank" rel="noopener"&gt;the modules&lt;/a&gt; into one single repository. Since all the official modules are released in sync and the code evolves simultaneously between those repositories, having the code split was a burden and several core GStreamer developers believed that it was worth making the effort to consolidate them into a single repository. As &lt;a href="https://lists.freedesktop.org/archives/gstreamer-devel/2020-November/076754.html" class="external" target="_blank" rel="noopener"&gt;announced&lt;/a&gt; a while back this is now effective and this post is about explaining the technical choices and implications of that change.&lt;/p&gt;&#10;&lt;p&gt;You can also check out our &lt;a href="https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/mono-repository.html" class="external" target="_blank" rel="noopener"&gt;Monorepo FAQ&lt;/a&gt; for a list of questions and answers.&lt;/p&gt;&#10;&lt;h2 id="technicall-details-of-the-unification"&gt;Technicall details of the unification&lt;/h2&gt;&#10;&lt;p&gt;Since we moved to &lt;a href="https://mesonbuild.com/" class="external" target="_blank" rel="noopener"&gt;meson&lt;/a&gt; as a build system a few years ago we implemented &lt;a href="https://gitlab.freedesktop.org/gstreamer/gst-build/-/tree/29352ad0f82c38649424801c97473e33d75caf41" class="external" target="_blank" rel="noopener"&gt;gst-build&lt;/a&gt; which leverages the &lt;a href="https://mesonbuild.com/Subprojects.html" class="external"&gt;meson subproject&lt;/a&gt; feature to build all GStreamer modules as one single project. This greatly enhanced the development experience of the GStreamer framework but we considered that we could improve it even more by having all GStreamer code in a single repository that looks the same as &lt;code&gt;gst-build&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;This is what the new unified git repository looks like, &lt;code&gt;gst-build&lt;/code&gt; in the main &lt;code&gt;gstreamer&lt;/code&gt; repository, except that all the code from the GStreamer modules located in the &lt;code&gt;subprojects/&lt;/code&gt; directory are checked in.&lt;/p&gt;&#10;&lt;p&gt;This new setup now lives in the &lt;code&gt;main&lt;/code&gt; default branch of &lt;a href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/main" class="external" target="_blank" rel="noopener"&gt;the gstreamer repository&lt;/a&gt;, the &lt;code&gt;master&lt;/code&gt; branches for all the other modules repositories are now retired and frozen, no new merge request or code change will be accepted there.&lt;/p&gt;&#10;&lt;p&gt;This is only the first step and we will consider reorganizing the repository in the future, but the goal is to minimize disruptions.&lt;/p&gt;&#10;&lt;p&gt;The technical process for merging the repositories looks like:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;foreach GSTREAMER_MODULE&#10; git remote add GSTREAMER_MODULE.name GSTREAMER_MODULE.url&#10; git fetch GSTREAMER_MODULE.name&#10; git merge GSTREAMER_MODULE.name/master&#10; git mv list_all_files_from_merged_gstreamer_module() GSTREAMER_MODULE.shortname&#10; git commit -m &amp;quot;Moved all files from &amp;quot; + GSTREAMER_MODULE.name&#10;endforeach&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;This allows us to keep the exact same history (and checksum of each commit) for all the old gstreamer modules in the new repository which guarantees that the code is still exactly the same as before.&lt;/p&gt;&#10;&lt;h2 id="releases-with-the-new-setup"&gt;Releases with the new setup&lt;/h2&gt;&#10;&lt;p&gt;In the same spirit of avoiding disruption, releases will look &lt;strong&gt;exactly the same&lt;/strong&gt; as before. In the new unique &lt;code&gt;gstreamer&lt;/code&gt; repository we still have meson subprojects for each GStreamer modules and they will have their own release tarballs. In practice, this means that not much (nothing?) should change for distribution packagers and consumers of GStreamer tarballs.&lt;/p&gt;&#10;&lt;h2 id="what-should-i-do-with-my-pending-mrs-in-old-modules-repositories"&gt;What should I do with my pending MRs in old modules repositories?&lt;/h2&gt;&#10;&lt;p&gt;Since we can not create new merge requests in your name on gitlab, we wrote a &lt;a href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/scripts/move_mrs_to_monorepo.py" class="external" target="_blank" rel="noopener"&gt;move_mrs_to_monorepo&lt;/a&gt; script that you can run yourself. The script is located in &lt;a href="https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/main" class="external" target="_blank" rel="noopener"&gt;the gstreamer repository&lt;/a&gt; and you can start moving all your pending MRs by simply calling it (&lt;code&gt;scripts/move_mrs_to_monorepo.py&lt;/code&gt; and follow the instructions).&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;You can also check out our &lt;a href="https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/mono-repository.html" class="external" target="_blank" rel="noopener"&gt;Monorepo FAQ&lt;/a&gt; for a list of questions and answers.&lt;/p&gt;&#10;&lt;p&gt;Thanks to everyone in the community for providing us with all the feedback and thanks to &lt;a href="https://blogs.gnome.org/xclaesse/" target="_blank" rel="noopener"&gt;Xavier Claessens&lt;/a&gt; for co-leading the effort.&lt;/p&gt;&#10;&lt;p&gt;We are still working on ensuring the transition as smoothly as possible and if you have any question don’t hesitate to come talk to us in #gstreamer on the oftc IRC network.&lt;/p&gt;&#10;&lt;p&gt;Happy GStreamer hacking!&lt;/p&gt;&#10;</description></item><item><title>GStreamer Editing Services OpenTimelineIO support</title><link>https://blog.thibaultsaunier.com/2019/04/gstreamer-editing-services-opentimelineio-support/</link><pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate><guid isPermaLink="false">https://blogs.gnome.org/tsaunier/2019/04/22/gstreamer-editing-services-opentimelineio-support/</guid><description>&lt;h1 id="gstreamer-editing-services-opentimelineio-support"&gt;GStreamer Editing Services OpenTimelineIO support&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/PixarAnimationStudios/OpenTimelineIO" class="external"&gt;OpenTimelineIO&lt;/a&gt; is an Open Source API and interchange format for editorial timeline information, it basically allows some form of interoperability between the different post production Video Editing tools. It is being developed by &lt;a href="http://graphics.pixar.com/" class="external"&gt;Pixar&lt;/a&gt; and several other studios are contributing to the project allowing it to &lt;a href="https://github.com/PixarAnimationStudios/OpenTimelineIO/commits/master" class="external"&gt;evolve quickly&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;We, at &lt;a href="https://igalia.com" class="external"&gt;Igalia&lt;/a&gt;, recently &lt;a href="https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/41" class="external"&gt;landed&lt;/a&gt; support for the &lt;a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-editing-services/html/ges-architecture.html" class="external"&gt;GStreamer Editing Services&lt;/a&gt; (GES) serialization format in OpenTimelineIO, making it possible to convert GES timelines to any format supported by the library. This is extremely useful to integrate GES into existing Post production workflow as it allows projects in any &lt;a href="https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html" class="external"&gt;format supported by OpentTimelineIO&lt;/a&gt; to be used in the GStreamer Editing Services and vice versa.&lt;/p&gt;&#10;&lt;p&gt;On top of that we are building a &lt;a href="https://gitlab.freedesktop.org/gstreamer/gst-editing-services/merge_requests/67" class="external"&gt;GESFormatter&lt;/a&gt; that allows us to transparently handle any file format supported by OpenTimelineIO. In practice it will be possible to use cuts produced by other video editing tools in any project using GES, for instance &lt;a href="http://www.pitivi.org" class="external"&gt;Pitivi&lt;/a&gt;:&lt;/p&gt;&#10;&lt;p&gt;&lt;video controls preload="metadata" width="512"&gt;&lt;source src="screencast.mov" type="video/mp4"&gt;&lt;source src="screencast.webm" type="video/webm"&gt;&lt;/video&gt;&lt;/p&gt;&#10;&lt;p&gt;At &lt;a href="https://igalia.com" class="external"&gt;Igalia&lt;/a&gt; we are aiming at making GStreamer ready to be used in existing Video post production pipelines and this work is one step in that direction. We are working on additional features in GES to fill the gaps toward that goal, for instance we are now implementing &lt;a href="https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/60" class="external"&gt;nested timeline&lt;/a&gt; support and &lt;a href="https://gitlab.freedesktop.org/gstreamer/gst-editing-services/issues/61" class="external"&gt;framerate based timestamps&lt;/a&gt; in GES. Once we implement them, those features will enhance compatibility of Video Editing projects created from other NLE softwares through OpenTimelineIO. Stay tuned for more information!&lt;/p&gt;&#10;</description></item><item><title>WebKitGTK and WPE gain WebRTC support back!</title><link>https://blog.thibaultsaunier.com/2018/07/webkitgtk-and-wpe-gains-webrtc-support-back/</link><pubDate>Tue, 31 Jul 2018 00:00:00 +0000</pubDate><guid isPermaLink="false">https://blogs.gnome.org/tsaunier/2018/07/31/webkitgtk-and-wpe-gains-webrtc-support-back/</guid><description>&lt;p&gt;&lt;a href="https://www.w3.org/TR/webrtc/" class="external"&gt;WebRTC&lt;/a&gt; is a w3c draft protocol that “enables rich, high-quality RTP applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols”. The protocol is mainly used to provide video conferencing systems from within web browsers.&lt;/p&gt;&#10;&lt;figure&gt;&#10;&lt;img src="c43863-appr.tc-screenshort-1.png" decoding="async" alt="https://appr.tc running in WebKitGTK" /&gt;&#10;&lt;figcaption aria-hidden="true"&gt;https://appr.tc running in WebKitGTK&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;h2 id="a-brief-history"&gt;A brief history&lt;/h2&gt;&#10;&lt;p&gt;At the very beginning of the WebRTC protocol, before 2013, Google was still using WebKit in chrome and they started to implement support using &lt;a href="https://webrtc.org/" class="external"&gt;LibWebRTC&lt;/a&gt; but when they &lt;a href="https://blog.chromium.org/2013/04/blink-rendering-engine-for-chromium.html" class="external"&gt;started the blink fork&lt;/a&gt; the implementation stopped in WebKit.&lt;/p&gt;&#10;&lt;p&gt;Around 2015/2016 &lt;a href="https://www.ericsson.com/research-blog/" class="external"&gt;Ericsson&lt;/a&gt; and &lt;a href="https://www.igalia.com/" class="external"&gt;Igalia&lt;/a&gt; (later sponsored by &lt;a href="https://www.metrological.com/" class="external"&gt;Metrological&lt;/a&gt;) implemented &lt;a href="https://blogs.igalia.com/xrcalvar/2016/10/03/webrtc-in-webkitwpe/" class="external"&gt;WebRTC support into WebKit&lt;/a&gt;, but instead of using &lt;a href="https://webrtc.org/" class="external"&gt;LibWebRTC&lt;/a&gt; from google, &lt;a href="https://www.openwebrtc.org/" class="external"&gt;OpenWebRTC&lt;/a&gt; was used. This had the advantage of being implemented on top of the &lt;a href="https://gstreamer.freedesktop.org/" class="external"&gt;GStreamer framework&lt;/a&gt; which happens to be used for the Multimedia processing inside WebKitGTK and WebKitWPE. At that point in time, the standardization of the WebRTC protocol was still moving fast, mostly pushed by Google itself, and it was hard to be interoperable with the rest of the world. Despite of that, the WebKit/GTK/WPE WebRTC implementation started to be usable with website like &lt;a href="https://appr.tc" class="external"&gt;appr.tc&lt;/a&gt; at the end of 2016.&lt;/p&gt;&#10;&lt;p&gt;Meanwhile, in late 2016, Apple decided to implement WebRTC support on top of google LibWebRTC in their ports of WebKit which led to &lt;a href="https://webkit.org/blog/7726/announcing-webrtc-and-media-capture/" class="external"&gt;WebRTC support in WebKit announcement&lt;/a&gt; in June 2017.&lt;/p&gt;&#10;&lt;p&gt;Later in 2017 the OpenWebRTC project lost momentum and as it was considered unmaintained, we, at &lt;a href="https://www.igalia.com/" class="external"&gt;Igalia&lt;/a&gt;, decided to use LibWebRTC for WebKitGTK and WebKitWPE too. At that point, the OpenWebRTC backend was &lt;a href="https://bugs.webkit.org/show_bug.cgi?id=177868" class="external"&gt;completely removed&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="gstreamerlibwebrtc-implementation"&gt;GStreamer/LibWebRTC implementation&lt;/h2&gt;&#10;&lt;p&gt;Given that Apple had implemented a LibWebRTC based backend in WebKit, and because this library is being used by the two main web browsers (Chrome and Firefox), we decided to reuse Apple’s work to implement support in our ports based on LibWebRTC at the end of 2017. A that point, the two main APIs required to allow video conferencing with WebRTC needed to be implemented:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia" class="external"&gt;MediaDevices.GetUserMedia&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaStream" class="external"&gt;MediaStream&lt;/a&gt;: Allows to retrieve Audio and Video streams from the user Cameras and Microphones (potentially more than that but those are the main use cases we cared about).&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection" class="external"&gt;RTCPeerConnection&lt;/a&gt;: Represents a WebRTC connection between the local computer and a remote peer.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;As WeKit/GTK/WPE heavily relies on GStreamer for the multimedia processing, and given its flexibility, we made sure that our implementation of those APIs leverage the power of the framework and the existing integration of GStreamer in our WebKit ports.&lt;/p&gt;&#10;&lt;p&gt;Note that the whole implementation is reusing (after refactoring) big parts of the infrastructure introduced during the previously described history of WebRTC support in WebKit.&lt;/p&gt;&#10;&lt;h3 id="getusermediamediastream"&gt;GetUserMedia/MediaStream&lt;/h3&gt;&#10;&lt;p&gt;To implement that part of the API the following main components were developed:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;RealtimeMediaSourceCenterLibWebRTC: Main entry point for our GStreamer based LibWebRTC backend.&lt;/li&gt;&#10;&lt;li&gt;GStreamerCaptureDeviceManager: A class to list and manage local Video/Audio devices using the &lt;a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstDeviceMonitor.html" class="external"&gt;GstDeviceMonitor&lt;/a&gt; API.&lt;/li&gt;&#10;&lt;li&gt;GStreamerCaptureDevice: Implementation of WebKit abstraction for capture devices, basically wrapping GstDevices.&lt;/li&gt;&#10;&lt;li&gt;GStreamerMediaStreamSource: A &lt;a href="https://gstreamer.freedesktop.org/documentation/application-development/basics/elements.html#source-elements" class="external"&gt;GStreamer Source element&lt;/a&gt; which wraps WebKit abstraction of MediaStreams to be used directly in a &lt;a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-playbin3.html" class="external"&gt;playbin3&lt;/a&gt; pipeline (through a custom &lt;code&gt;mediastream://&lt;/code&gt; protocol). This implementation leverages latest &lt;a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStream.html" class="external"&gt;GstStream&lt;/a&gt; APIs so it is already one foot into the future.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The main commit can be found &lt;a href="https://trac.webkit.org/changeset/232589" class="external"&gt;here&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="rtcpeerconnection"&gt;RTCPeerConnection&lt;/h3&gt;&#10;&lt;p&gt;Enabling the PeerConnection API meant bridging previously implemented APIs and the LibWebRTC backend developed by Apple:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;RealtimeOutgoing/Video/Audio/SourceLibWebRTC: Passing local stream (basically from microphone or camera) to LibWebRTC to be sent to the peer.&lt;/li&gt;&#10;&lt;li&gt;RealtimeIncoming/Video/Audio/SourceLibWebRTC: Passing remote stream (from a remote peer) to the MediaStream object and in turn to the GStreamerMediaStreamSource element.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;On top of that and to leverage GStreamer Memory management and negotiation capabilities we implemented encoders and decoder for LibWebRTC (namely GStreamerVideoEncoder and GStreamerVideoDecoders). This brings us a huge number of Hardware accelerated encoders and decoders implementations, especially on embedded devices, which is a big advantage in particular for WPE which is tuned for those platforms.&lt;/p&gt;&#10;&lt;p&gt;The main commit can be found &lt;a href="https://trac.webkit.org/changeset/234138" class="external"&gt;here&lt;/a&gt;&lt;/p&gt;&#10;&lt;img src="615f6a-webkitwpe_webrtc_media_dataflow.png" decoding="async" alt="WebKitWebRTC dataflow diagram" /&gt;&#10;&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;&#10;&lt;p&gt;While we were able to make GStreamer and LibWebRTC work well together in that implementation, using the new &lt;a href="http://blog.nirbheek.in/2018/02/gstreamer-webrtc.html" class="external"&gt;GstWebRTC&lt;/a&gt; component (that is now in upstream GStreamer) as a WebRTC backend would be cleaner. Many pieces of the current implementation could be reused and it would allow us to have a simpler infrastructure and avoid having several RTP stack in the WebKitGTK and WebKitWPE ports.&lt;/p&gt;&#10;&lt;p&gt;Most of the required APIs and features have been implemented, but a few are still under development (namely &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices" class="external"&gt;MediaDevices.enumerateDevices&lt;/a&gt;, &lt;a href="https://bugs.webkit.org/show_bug.cgi?id=169811" class="external"&gt;canvas captureStream&lt;/a&gt; and &lt;a href="https://bugs.webkit.org/show_bug.cgi?id=186933" class="external"&gt;WebAudio and MediaStream bridging&lt;/a&gt;) meaning that many Web applications using WebRTC already work, but some don’t yet, we are working on those!&lt;/p&gt;&#10;&lt;p&gt;A big thanks to my employer &lt;a href="https://www.igalia.com/" class="external"&gt;Igalia&lt;/a&gt; and &lt;a href="https://www.metrological.com/" class="external"&gt;Metrological&lt;/a&gt; for sponsoring our work on that!&lt;/p&gt;&#10;</description></item><item><title>gst-validate: A suite of tools to run integration tests for GStreamer</title><link>https://blog.thibaultsaunier.com/2014/04/gst-validate-a-suite-of-tools-to-run-integration-tests-for-gstreamer/</link><pubDate>Mon, 21 Apr 2014 00:00:00 +0000</pubDate><guid isPermaLink="false">https://blogs.gnome.org/tsaunier/2014/04/21/gst-validate-a-suite-of-tools-to-run-integration-tests-for-gstreamer-2/</guid><description>&lt;p&gt;&lt;a href="http://www.collabora.com/" class="external"&gt;Collabora ltd.&lt;/a&gt; has been developing a tool that allows GStreamer developers to check that the GstElements they write behave the way they are supposed to: GstValidate. The tool was started first to provide plug-ins developers with a tool to check that they use the framework the proper way. Since the beginning, it has been available in &lt;a href="http://cgit.freedesktop.org/gstreamer/gst-devtools/" class="external"&gt;gst-devtools&lt;/a&gt;, a gst module where we collect a set of tools to facilitate GStreamer development and usage.&lt;/p&gt;&#10;&lt;h1 id="well-what-is-it-about"&gt;Well, what is it about?&lt;/h1&gt;&#10;&lt;h2 id="the-gstvalidatemonitor"&gt;The GstValidateMonitor&lt;/h2&gt;&#10;&lt;p&gt;Basically gst-validate allows us to monitor everything that is happening inside a &lt;a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPipeline.html" class="external"&gt;GstPipeline&lt;/a&gt;. For example if you want to check that every component of a pipeline is properly behaving, you can create a GstValidatePipelineMonitor that will track that pipeline. Then each time a GstElement is added to the pipeline, a GstValidateElementMonitor will be instantiated and start tracking that element. Then when a GstPad is added to that GstElement a GstValidatePadMonitor will be monitoring that pad.&lt;/p&gt;&#10;&lt;p&gt;This monitoring logic allows us to check that what those elements do respect some rules GStreamer components have to follow so all the elements of a pipeline can properly interact together. For example, a GstValidatePadMonitor will make sure that if we receive a GstSegment from upstream, an equivalent segment is sent downstream before any buffer gets out. You can find the whole list of tests currently implemented &lt;a href="http://cgit.freedesktop.org/gstreamer/gst-devtools/tree/validate/gst/validate/gst-validate-report.c#n87" class="external"&gt;here&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="the-gstvalidaterunner"&gt;The GstValidateRunner&lt;/h2&gt;&#10;&lt;p&gt;Then there is an issue reporting system so that each issue found during the execution of the pipeline is reported with as much details as possible so that users understand what the detected misbehaviour is about and can fix it efficiently.&lt;/p&gt;&#10;&lt;p&gt;In term of code the only thing to do in order to get a pipeline monitored is:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;int&#10;main (int argc, gchar ** argv)&#10;{&#10; GstElement *pipeline;&#10; GstValidateRunner *runner;&#10; GstValidateMonitor *monitor;&#10;&#10; gboolean ret = 0;&#10;&#10; /* Initialize GStreamer and GstValidate */&#10; gst_init (&amp;amp;argc, &amp;amp;argv);&#10; gst_validate_init ();&#10;&#10; /* Create the pipeline and make sure it is&#10; * monitored */&#10; pipeline = gst_pipeline_new (&#10; &amp;quot;monitored-pipeline&amp;quot;);&#10; runner = gst_validate_runner_new ();&#10; monitor = gst_validate_monitor_factory_create (&#10; GST_OBJECT (pipeline),&#10; runner,&#10; NULL);&#10;&#10; /* HERE you can do anything you want with that&#10; * monitored pipeline */&#10;&#10; /* Now print the errors on stdout.&#10; * The return value of that function&#10; * is != 0 if if critical errors occured&#10; * during the execution of the pipeline */&#10; ret = gst_validate_runner_printf (runner);&#10;&#10; /* Cleanup */&#10; gst_object_unref (pipeline);&#10; gst_object_unref (monitor);&#10; gst_object_unref (runner);&#10;&#10; return ret;&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;The result of gst_validate_runner_printf will look something like:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;issue : buffer is out of the segment range Detected on theoradec0.srcpad at 0:00:00.096556426&#10; &#10;Details : buffer is out of segment and shouldn't be pushed. Timestamp: 0:00:25.000 - duration: 0:00:00.040 Range: 0:00:00.000 - 0:00:04.520&#10;Description : buffer being pushed is out of the current segment's start-stop range. Meaning it is going to be discarded downstream without any use&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;Here we can see that an issue occurred on the src pad of theoradec as it outputted a buffer that was not inside the segment it last pushed. This is an interesting piece of information and clearly shows an error in the element. (Note: This issue does not actually exist)&lt;/p&gt;&#10;&lt;h1 id="how-should-it-be-used"&gt;How should it be used?&lt;/h1&gt;&#10;&lt;h2 id="gstvalidate-command-line-tools"&gt;GstValidate command line tools&lt;/h2&gt;&#10;&lt;p&gt;In order to make gst-validate usage simple, we created command line tools that allow plugin developers test there elements in many use cases from a high level perspective.&lt;/p&gt;&#10;&lt;h3 id="the-gst-validate-pipeline-launcher"&gt;The gst-validate pipeline launcher&lt;/h3&gt;&#10;&lt;p&gt;This is a command line pipeline launcher similar to gst-launch. That tool uses the gst-launch pipeline description syntax and make sure that the pipeline is monitored and that the users will have all the reported information from the GstValidate infrastructure. As you can expect, you can monitor the playback of a media file using &lt;a href="gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/gst-plugins-base-plugins-playbin.html"&gt;playbin&lt;/a&gt; as follow:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;gst-validate-1.0 playbin uri=file:///.../file.ogg&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;You will then be able to see all the issues GstValidate found.&lt;/p&gt;&#10;&lt;h3 id="the-gst-validate-transcoding-tool"&gt;The gst-validate-transcoding tool&lt;/h3&gt;&#10;&lt;p&gt;A command line tool allowing to test media files transcoding with a straight forward syntax. You can for example transcode any media file to vorbis vp8 in webm doing:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;gst-validate-transcoding-1.0 &#10; file:///./file.ogg &#10; file:///.../transcoded.webm &#10; -o 'video/webm:video/x-vp8:audio/x-vorbis'&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;It will report what issues happened during the execution of that pipeline.&lt;/p&gt;&#10;&lt;h3 id="the-gst-validate-media-check-tool"&gt;The gst-validate-media-check tool&lt;/h3&gt;&#10;&lt;p&gt;A command line tool checking that media files discovering works properly with &lt;a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstdiscoverer.html" class="external"&gt;gst-discoverer&lt;/a&gt;. Basically it needs a reference text file containing valid information about a media file (which can be generated with the same tool) and then it will be able to check that those informations correspond to what is reported by gst-discoverer over new runs.  For example, given that we have a valid reference.media_info file, we can run:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;gst-validate-media-check-1.0 &#10; file:///./file.ogv &#10; --expected-results reference.media_info&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;That will then output found errors if any and return an exist code different from 0 if an error was found.&lt;/p&gt;&#10;&lt;h3 id="gstvalidatescenarios"&gt;GstValidateScenarios&lt;/h3&gt;&#10;&lt;p&gt;As you can notice, those tools let us test static pipelines execution and not that the pipeline reacts properly during execution of actions from the end user such as seeking, or changing the pipeline state, etc… In order to make that possible and easy to use we introduced the concept of scenarios.&lt;/p&gt;&#10;&lt;p&gt;A scenario is a set of actions to be executed on the monitored pipeline serialized in a text file. An  action (GstValidateAction) is just a function call executed at a precise time (usually based on the playback position of the pipeline).&lt;/p&gt;&#10;&lt;p&gt;An example of scenario:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;# Just some metadatas describing the scenario&#10;# The format is the GstStructure serialization &#10;# synthax&#10;description, seek=true, duration=3.0&#10;&#10;# When the pipeline reaches 1.0 second of&#10;# playback it launches an accurate flushing&#10;# seek to 10.0 seconds&#10;seek, playback_time=1.0, start=10.0, &#10;flags=accurate+flush&#10;&#10;# Send EOS to the pipeline&#10;# so it stops and the application&#10;# knows about it.&#10;eos, playback_time=12.0&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;You can find more examples of scenarios &lt;a href="http://cgit.freedesktop.org/gstreamer/gst-devtools/tree/validate/data" class="external"&gt;here&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="gst-validate-launcher"&gt;gst-validate-launcher&lt;/h2&gt;&#10;&lt;p&gt;This looks all right but shouldn’t those tests be executed automatically on a large number of samples and with the various existing scenarios? This is where gst-validate-launcher comes into play. It is basically a python application that launches the tools described above with the proper parameters. It then monitors them, check their results and serializes those results into a junit xml file (more formatter could obviously be implemented). That tools is pretty simple and it is only a matter of setting the media samples to run the tests on and set what scenarios you want to run.&lt;/p&gt;&#10;&lt;h1 id="where-is-it-used"&gt;Where is it used?&lt;/h1&gt;&#10;&lt;h2 id="gstreamer-editing-services"&gt;GStreamer Editing Services&lt;/h2&gt;&#10;&lt;p&gt;As part of the &lt;a href="http://wiki.pitivi.org/wiki/GES" class="external"&gt;GStreamer Editing Services&lt;/a&gt; project, I have made sure that ges-launch (a command line tool that launches timelines, video editing projects etc…) works with GstValidate, if compiled against it. This means that we can launch scenarios and test GES sharing the same infrastructure as the rest of GStreamer. It is also very interesting to be able to monitor dynamic pipeline (within GES the GstPipeline changes very dynamically) to discover elements misbehavior in that stressful use case. For the time being we do not have many GES specific GstValidateActions implemented, but we will implement more as needed (mostly implementing timeline edition actions, ie. moving clips around the timeline, changing effect properties, etc…) As part of the &lt;a href="http://fundraiser.pitivi.org" class="external"&gt;Pitvi fundraiser&lt;/a&gt;, we are also investigating how to serialize users action in &lt;a href="http://pitivi.org" class="external"&gt;Pitivi&lt;/a&gt; so that we could easily reproduce users issues outside of the application (and thus outside the python interpreter).&lt;/p&gt;&#10;&lt;h2 id="the-gstreamer-jenkins-integration-server"&gt;The GStreamer jenkins integration server&lt;/h2&gt;&#10;&lt;p&gt;On the &lt;a href="https://jenkins.arracacha.collabora.co.uk" class="external"&gt;GStreamer continuous integration&lt;/a&gt; server, we are &lt;a href="https://jenkins.arracacha.collabora.co.uk/view/pitivi/job/gst-validate-tests/" class="external"&gt;running gst-validate-launcher&lt;/a&gt; on a set of media sample in major formats after (almost) each commit on any of the component of the GStreamer stack. This is just the beginning and we are slowly adding more tests there making sure they pass and tracking regressions.&lt;/p&gt;&#10;&lt;p&gt;A lot of work has been done around that tool. We still need to clean up some part, review the few APIs we have, and a particular effort as to be made around the documentation. But now that good basis are there, we should just keep adding more tests to detect regressions in GStreamer as soon as possible. If you are interested in using that tool please come talk to us in #gstreamer on freenode!&lt;/p&gt;&#10;</description></item><item><title>PiTiVi 0.15 is out</title><link>https://blog.thibaultsaunier.com/2011/09/pitivi-0-15-is-out/</link><pubDate>Wed, 28 Sep 2011 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2011/09/pitivi-015-is-out.html</guid><description>&lt;div id="magicdomid94" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;div id="magicdomid135" class="ace-line"&gt;&#10;&lt;p&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt;The PiTiVi team is proud to announce the &lt;a href="https://wiki.pitivi.org/wiki/0.15"&gt;0.15 release&lt;/a&gt;&lt;/span&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt;.&lt;/span&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt; This will be the last release using the &amp;ldquo;traditional&amp;rdquo; core/engine of PiTiVi. The next releases will be based on GStreamer Editing Services (GES) and should thus depart significantly from this release in terms of performance, features and stability.&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid6" class="ace-line"&gt;&#10;&lt;p&gt;&lt;a href="61d134-lubosz_the_magician.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="0108f4-lubosz_the_magician.png" id="BLOGGER_PHOTO_ID_5657429052863752610" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" data-border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid99" class="ace-line"&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt;Jean François did a great &lt;/span&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt;screencast&lt;/span&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt; that sums up what has been done during the last 2 years:&lt;/span&gt;&lt;/p&gt;&#10;&lt;div class="video"&gt;&lt;iframe src="https://www.youtube-nocookie.com/embed/obLA4ZagGew" title="YouTube video" allowfullscreen loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid72" class="ace-line"&gt;&#10;&lt;p&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt;H&lt;/span&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt;e also&lt;/span&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt; published the video of the 2011 desktop summit and PiTiVi/GES hackfest&lt;/span&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt; &lt;/span&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt;for your enjoyment&lt;/span&gt;&lt;/p&gt;&#10;&lt;div class="video"&gt;&lt;iframe src="https://www.youtube-nocookie.com/embed/UlFrshNSqJ0" title="YouTube video" allowfullscreen loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&#10;&lt;p&gt;:&lt;/p&gt;&#10;&lt;p&gt;All those videos are also accessible in HTML5 versions on the &lt;a href="http://pitivi.org/?go=showcase"&gt;showcase&lt;/a&gt; page.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid84" class="ace-line"&gt;&#10;&lt;p&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt;Thanks to &lt;/span&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt;everybody who&lt;/span&gt;&lt;span class="author-g-wdo0nc53c22qlc85"&gt; made this release possible&lt;/span&gt;&lt;span class="author-g-ubu9iid79aw145sw"&gt;!&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid14" class="ace-line"&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>PiTiVi: Let's go faster!</title><link>https://blog.thibaultsaunier.com/2011/06/pitivi-let-s-go-faster/</link><pubDate>Thu, 16 Jun 2011 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2011/06/pitivi-lets-go-faster.html</guid><description>&lt;p&gt;As I said &lt;a href="http://thiblahute.blogspot.com/2011/05/pitivi-014-no-longer-kills-kittens.html"&gt;in the last release announcement post,&lt;/a&gt; the PiTiVi community needs changes in the releasing process, and as &lt;a href="http://twitter.com/#%21/bilboed/status/74398993144233984"&gt;newly appointed release manager&lt;/a&gt; I have the primary goal of making the development as dynamic as possible. The last release cycle lasted 8 months, which is way too long when we are supposed to be following the &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/Release_early,_release_often"&gt;release early, release often&lt;/a&gt;&amp;rdquo; philosophy. Avoiding it, is something we really want to work on, but I think a little explanation of why it happened is well needed:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;We had blocker bugs that could only be fixed by the main developers, and it was difficult for them to do so.&lt;/li&gt;&#10;&lt;li&gt;The person in charge of releasing was much too busy to do the job, which is why I have now been appointed as new release manager and will do my best to find the time to do it well.&lt;/li&gt;&#10;&lt;li&gt;We did not have any release schedule, which meant that we did not have any obligation concerning releases.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;Also I want to explain a few of the reasons why I do believe this is something we really want to avoid:&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Users think nothing is happening, that the project is dying. Yet, as the activity on our git repository shows, rumors of our death have been greatly exaggerated.&lt;/li&gt;&#10;&lt;li&gt;Potential contributors are hesitant to invest in the project because they think the project is dormant.&lt;/li&gt;&#10;&lt;li&gt;Without a feature freeze, bugs tend to accumulate as new features land Contributors may be discouraged by the fact that they do not see their work reach the users quickly enough.&lt;/li&gt;&#10;&lt;li&gt;There are many more reasons, as you can guess, but listing them all here would take too much time and I would have to delay the release ;-)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;Therefore, we decided to take a set of measures concerning our release process to keep our current developers active and attract as many new contributors as possible. So here are the changes that are going to occur in the near future:&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;First and foremost, starting from now, PiTiVi should follow the &lt;a href="https://live.gnome.org/ThreePointOne#Schedule"&gt;Gnome release schedule&lt;/a&gt;. This is not going to be easy, since our manpower is quite limited, but this is something that is really needed to ensure a healthy development pace.&lt;/li&gt;&#10;&lt;li&gt;Have an official patch review policy: we want to &amp;ldquo;guarantee&amp;rdquo; that any patch that is sent to us will be reviewed *within 3 weeks*. This is also a great opportunity for new contributors who have experience in programming in general and would like to start by reading and improving other&amp;rsquo;s code. Collaboration towards making a great patch is a great motivator! Upholding this goal will be a challenge, and your help in reviewing patches is very welcome.&lt;/li&gt;&#10;&lt;li&gt;We want to make sure that deprecated libraries or broken/unmaintained features get removed as fast as possible. Dead code must die.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;The project is pretty active these days, and I believe it is the right time to get those changes done. The feature list is becoming bigger and bigger and thanks to our very close relationship with the GStreamer multimedia framework, implementing new ones is becoming very simple. Also, the GStreamer community is very active and we are looking forward the &lt;a href="http://blogs.gnome.org/uraeus/2011/06/14/on-the-path-to-gstreamer-1-0/"&gt;GStreamer 1.0&lt;/a&gt; release which should come out soon and will bring us new opportunities toward our goal of creating a video editor that can serve the needs of professional video editors.&lt;/p&gt;&#10;&lt;p&gt;So if you are interested in helping us making those changes happen, you are very welcome to have a look at our &lt;a href="http://wiki.pitivi.org/wiki/Main_Page"&gt;wiki&lt;/a&gt; page and &lt;a href="http://wiki.pitivi.org/wiki/PiTiVi_Love"&gt;our task list&lt;/a&gt;. I also warmly encourage you to join us on #pitivi on the freenode irc server, I am sure people will be happy to help you getting involved in this great software development project!&lt;/p&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>PiTiVi 0.14 "No longer kills kittens"</title><link>https://blog.thibaultsaunier.com/2011/05/pitivi-0-14-no-longer-kills-kittens/</link><pubDate>Tue, 31 May 2011 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2011/05/pitivi-014-no-longer-kills-kittens.html</guid><description>&lt;div id="magicdomid1817" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;The PiTiVi team is proud to announce&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; the immediate availability of our new &lt;a href="http://ftp.acc.umu.se/pub/GNOME/sources/pitivi/0.14/pitivi-0.14.0.tar.bz2"&gt;0.14 release&lt;/a&gt;&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;, with &lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;major &lt;a href="http://ftp.acc.umu.se/pub/GNOME/sources/pitivi/0.13/pitivi-0.13.9.90.news"&gt;new features, bug fixes and usability improvements&lt;/a&gt;.&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; We &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;hope you can use and enjoy the improvements in &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;PiTiVi&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; 0.14,&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; and report bugs &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;you may encounter&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; (&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;bugs are a fact of life! Help us hunt them out!&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;).&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1992" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid2186" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Some of the m&lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;ajor new features&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;deserve to be enhanced in here such as:&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1486" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Audio and video effects: &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;w&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;ith PiTiVi 0.14, it is now possible to add all the effects &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;provided&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; by GStreamer&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; and some other libraries&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;, which&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;, depending on what is installed on your system, means &amp;ldquo;a lot&amp;rdquo;. The user interface for managing th&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;o&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;se effects will improve in future releases.&lt;/span&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1827" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Ability to preview video, audio and image files before importing: the file chooser dialog&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; now lets&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; you &lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;directly &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;preview the files you want to import. This is pretty useful when you do&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;n&amp;rsquo;t remember the name of a file you wanted to import, or when you&amp;rsquo;re just &amp;ldquo;looking around&amp;rdquo; for media to use in your project&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;.&lt;/span&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid482" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Welcome dialog: &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;w&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;hen starting PiTiVi&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;, a startup assistant now helps you load recently used projects in two clicks or create a new project&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;. &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Don&amp;rsquo;t feel like using this dialog? Just click its Close button or press the &amp;ldquo;Escape&amp;rdquo; key on your keyboard. However, we trust that this little fella will make you much more efficient, not less. We hate useless windows. See also &lt;/span&gt;&lt;a href="http://jeff.ecchi.ca/blog/2010/11/23/startup-assistant/"&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva url"&gt;this post&lt;/span&gt;&lt;/a&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;, for some explanation of the design process that went into this welcome dialog.&lt;/span&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid2190" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&amp;hellip;And more. See the full &lt;a href="http://git.pitivi.org/?p=pitivi.git;a=blob_plain;f=RELEASE;h=9ac8ea4830aaabb15b9d5a3599e5c8174b407c4b;hb=3cfd226c3ac42b6c878be9f86e2e8d8c42a2e590"&gt;release notes&lt;/a&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; for a more exhaustive list of goodies.&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1474" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1500" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Th&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;is release&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; cycle has been &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;very eventful. A&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;s the list of contributors &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;reveals&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;, lot&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;s&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; of people got involved in the &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;software &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;development.&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;I also want to thank all the people who work&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;ed hard on&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; translating PiTiVi&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; in a timely manner and reporting localization issues&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;.&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1479" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1507" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;We are now entering &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;a new cycle &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;o&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;n the road to maturity.&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; Four&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; student&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;s&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; are working &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;full time &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;on PiTiVi&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; this summer, thanks to the &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Google Summer of Code program, &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;and we will try to increase the general development pace to &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;keep th&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;e&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; great &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;momentum we had in the past few weeks. Stay tuned for another blog post on how we plan to achieve this&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;!&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid619" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1803" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;T&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;o celebrate&lt;/span&gt;&lt;span class="author-g-35dsi8gqguo3xvk6"&gt;,&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; I &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;personally &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;wanted to &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;do some &lt;a href="http://en.wikipedia.org/wiki/Eating_your_own_dog_food"&gt;dogfooding&lt;/a&gt; &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;by making this little video, with the additional constraint of using only footage coming from my own camera (no, I am not a video artist!):&lt;/span&gt;&lt;/p&gt;&#10;&lt;div class="video"&gt;&lt;iframe src="https://www.youtube-nocookie.com/embed/dBlpbF8sypM" title="YouTube video" allowfullscreen loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div&gt;&#10;&lt;p&gt;here or &lt;a href="http://dl.dropbox.com/u/2804070/pitivi-0.14_final.webm"&gt;here&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1288" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;div id="magicdomid1849" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;p&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;But this is for sure, not the best &lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;P&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;i&lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;T&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;i&lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;V&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;i can do. See our &lt;a href="http://www.pitivi.org/?go=showcase"&gt;showcase page&lt;/a&gt; &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;for examples of videos we found to be aesthetically interesting&lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;, and feel free to submit your own! P&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;ost links to your videos in comments&lt;/span&gt;&lt;span class="author-g-p82rb927kbntnz122zyc"&gt;, &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;and if they&amp;rsquo;re really cool, they could end up in our showcase! ;)&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid1844" class="ace-line" style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>PiTiVi pre-release</title><link>https://blog.thibaultsaunier.com/2011/05/pitivi-pre-release/</link><pubDate>Wed, 25 May 2011 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2011/05/pitivi-pre-release.html</guid><description>&lt;div id="magicdomid2"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;The whole PiTiVi team is pleased to announce a pre-release of the PiTiVi video editor.&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid3"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid4"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;This pre-release contains the past 7 months of work, implementing this pretty new feature list:&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid6"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;A&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;udio and &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;v&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;ideo effects&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Completely redesigned project settings dialog, with the ability to create presets&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Completely redesigned rendering dialog&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;W&lt;span class="author-g-o536cfcy73qm7wpq"&gt;elcome &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;dialog that helps you start a project or load recent projects in two clicks&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Ability to preview video, audio and image files before importing&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Add a &amp;ldquo;best fit&amp;rdquo; zoom button&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Ability to jump to an exact position in the timeline&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Ability to specify custom aspect ratios and framerates&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Show a progress bar when loading projects&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;300% faster project timeline loading&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Search bar in the Media Library&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Ability to detach all the tabs and the previewer&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;N&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;ew manpage&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;Commandline render mode&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Use &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;the standard &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;infobar&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; widget&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; all around&lt;/span&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;And&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; &lt;/span&gt;&lt;a href="https://bugzilla.gnome.org/buglist.cgi?product=pitivi;target_milestone=0.14"&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;l&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;ot&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;s&lt;/span&gt;&lt;/a&gt; of bug fixing&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid22"&gt;&#10;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; &#10;&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid25"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Unless anything critical or regressions pop up, expect the 0.14 release next tuesday (&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;May &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;31st).&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid26"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid27"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Please test it and abuse it and report bugs at:&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid28"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq url"&gt;&lt;a href="https://bugzilla.gnome.org/enter_bug.cgi?product=pitivi"&gt;https://bugzilla.gnome.org/enter_bug.cgi?product=&lt;/a&gt;&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva url"&gt;&lt;a href="https://bugzilla.gnome.org/enter_bug.cgi?product=pitivi"&gt;pitivi&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid29"&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid30"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Tarballs are available here:&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid45" class="ace-line"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq url"&gt;&lt;a href="http://ftp.gnome.org/pub/GNOME/sources/pitivi/0.13/pitivi-0.13.9.90.tar.gz"&gt;http://ftp.gnome.org/pub/GNOME/sources/pitivi/0.13/pitivi-0.13.9.90.tar.gz&lt;/a&gt;&lt;/p&gt;&#10;&lt;/span&gt;&#10;&lt;div id="magicdomid49" class="ace-line"&gt;&#10;&lt;p&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;E&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;xpect updated Ubuntu packages soon on the &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;GS&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;treamer &lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;D&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;evelopers&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt; &lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;PPA:&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid50" class="ace-line"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq url"&gt;&lt;a href="https://launchpad.net/%7Egstreamer-developers/+archive/ppa"&gt;https://launchpad.net/~gstreamer-developers/+archive/ppa&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="magicdomid36"&gt;&#10;&lt;p&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt;Thanks for testing and help&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;ing&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; us mak&lt;/span&gt;&lt;span class="author-g-fuiwc1yg1a5l5cva"&gt;e&lt;/span&gt;&lt;span class="author-g-o536cfcy73qm7wpq"&gt; this the best release ever :)&lt;/span&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Working for Collabora Multimedia :)</title><link>https://blog.thibaultsaunier.com/2010/12/working-for-collabora-multimedia/</link><pubDate>Fri, 17 Dec 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/12/working-for-collabora-multimedia.html</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&#10;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&#10;&lt;p&gt;&lt;a href="79bac0-logo.png" data-imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img src="79bac0-logo.png" data-border="0" width="320" height="52" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;This month is my first month working (part time) for the multimedia team at &lt;a href="http://www.collabora.co.uk/"&gt;Collabora&lt;/a&gt;. I think you all know about this company which is specialized in open source softwares particularly in Gstreamer and all majors Gnome/Freedesktop technologies.&lt;/p&gt;&#10;&lt;p&gt;So I am now working on GStreamer related technologies and in particular on &lt;a href="http://www.pitivi.org/"&gt;PiTiVi&lt;/a&gt; to make it rock more and more!&lt;/p&gt;&#10;&lt;p&gt;I am very glade to be part of this team and am looking forward the good time I am going to have hacking as a multimedian :)&lt;/p&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Pitivi master finaly gets effects!</title><link>https://blog.thibaultsaunier.com/2010/09/pitivi-master-finaly-gets-effects/</link><pubDate>Wed, 22 Sep 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/09/pitivi-master-finaly-gets-effects.html</guid><description>&lt;p&gt;So as suggested by the title, the work I did during the Google Summer Of Code has been Merged! It means that the next Pitivi release which should arrive quite soon will gain effects.&lt;/p&gt;&#10;&lt;p&gt;I haven&amp;rsquo;t been blogging for a long while so sorry about not telling you what was happening but I did it in order to make a surprise :P&lt;/p&gt;&#10;&lt;p&gt;Now that it is merged, you are very welcome to test it and report all the bugs you will find so we have a great release soon to propose the world&amp;hellip;. with effects!&lt;/p&gt;&#10;&lt;p&gt;Sorry for not making a screencast but as you can test it quite easily, it shouldn&amp;rsquo;t matter so much ;) (and &lt;a href="http://jeff.ecchi.ca/blog/"&gt;nekohayo&lt;/a&gt; is telling me he should make one soon)&lt;/p&gt;&#10;&lt;p&gt;As I enjoyed a LOT working in the pitivi community during this summer, I am going to keep working on it in my free time fixing the bugs you are going to report. And of course I am planing to enhance effects support and add features such as keyframes handling&amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;And just a little screenshot so you can have an idea about how the UI looks like now:&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="a0f296-Capture-_Nouveau_projet_PiTiVi.png"&gt;&lt;img src="88de0a-Capture-_Nouveau_projet_PiTiVi.png" id="BLOGGER_PHOTO_ID_5519848785366740450" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 317px; height: 167px;" data-border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Pitivi get effects, part 6</title><link>https://blog.thibaultsaunier.com/2010/08/pitivi-get-effects-part-6/</link><pubDate>Sun, 08 Aug 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/08/pitivi-get-effects-part-6.html</guid><description>&lt;p&gt;Sorry for not blogging in such a long time!&lt;/p&gt;&#10;&lt;p&gt;Now that I am back in chile afer the GUADEC, I have finally been able to hack again on Pitivi. So has I said during my presentation of my project during the GUADEC, I implemented everything I wanted to. So I am now working on debugging everything, cleaning code, and even if I have a few remaining critical bugs (which could probably be bugs in gnonlin), you can use it for testing purposes.&lt;/p&gt;&#10;&lt;p&gt;I also started to work on a new branch[0] in order to save the undocked windows state, but since I found new bugs on the effect implementations, I am working on them.&lt;/p&gt;&#10;&lt;p&gt;So for now I don&amp;rsquo;t have a screencast, but I promise I will make one when I can show everything working smoothly.&lt;/p&gt;&#10;&lt;p&gt;You can give it a try if you have the latest gstreamer from git using my git repo[1]&lt;/p&gt;&#10;&lt;p&gt;[0]: &lt;a href="http://github.com/thiblahute/Pitivi/commits/save_undock_windows_state"&gt;http://github.com/thiblahute/Pitivi/commits/save_undock_windows_state&lt;/a&gt;&lt;br&gt;&#10;[1]: &lt;a href="http://github.com/thiblahute/Pitivi"&gt;http://github.com/thiblahute/Pitivi&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Great time at GUADEC</title><link>https://blog.thibaultsaunier.com/2010/08/great-time-at-guadec/</link><pubDate>Thu, 05 Aug 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/08/great-time-at-guadec.html</guid><description>&lt;p&gt;&lt;a href="17b49e-sponsored-badge-simple.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;br /&gt;&#10;&lt;/a&gt;So as you may know, last week took place GUADEC and I am one of the lucky guys who have been sponsored by the Gnome fundation to take part in it! I spent a great time there and finally could meet all the people I have been working with those last two years!&lt;/p&gt;&#10;&lt;p&gt;So I wanted to say a big thanks to all people who organized this great event, and all the sponsors.&lt;/p&gt;&#10;&lt;p&gt;See you all at GUADEC 2011 in Berlin!&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="17b49e-sponsored-badge-simple.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="17b49e-sponsored-badge-simple.png" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 213px; height: 213px;" data-border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Pitivi get effects, part 5</title><link>https://blog.thibaultsaunier.com/2010/07/pitivi-get-effects-part-5/</link><pubDate>Mon, 12 Jul 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/07/pitivi-get-effects-part-5.html</guid><description>&lt;p&gt;I didn&amp;rsquo;t blog for almost 3 weeks but it doesn&amp;rsquo;t mean I didn&amp;rsquo;t progress with this project. I thing it actually means more that I prefer to spend my time on coding than on blogging!&lt;/p&gt;&#10;&lt;p&gt;Last week was pretty full because of the end of the semester but tomorrow I have my last examen for university. Next week I am planning to go skiing so it may not be the week I will be hacking the most, but anyway, I will code!&lt;/p&gt;&#10;&lt;p&gt;The UI is almost the same as &lt;a href="http://lh6.ggpht.com/_3mLd5CtlHo4/TCIk1jYJH3I/AAAAAAAAHSw/J_ELnMPOmQE/s1152/Capture-3.png"&gt;the mockup&lt;/a&gt; I showed you last time apart from the key-frame thing since I am not sure I want to do it this way, and because I want to have effects stable before implementing this feature.&lt;/p&gt;&#10;&lt;p&gt;So for now the UI looks exactly like:&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="eeac19-Capture-14.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="3a8eea-Capture-14.png" id="BLOGGER_PHOTO_ID_5493547493669533394" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" data-border="0" /&gt;&lt;/a&gt;&lt;br&gt;&#10;What is working:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Adding effects&lt;/li&gt;&#10;&lt;li&gt;Configuring effects, the UI is generated automatically depending on the effect property so all effects are configurable. But there is also a system which will permit to create a special UI for more complicated effects.&lt;/li&gt;&#10;&lt;li&gt;Enabling/disabling effects even if a few bugs still remain concerning it&lt;/li&gt;&#10;&lt;li&gt;Removing effects&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;What doesn&amp;rsquo;t work:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Seeking, right now when I add an effect and try to seek, it always go to the first frame of the video. It is a pretty critical bug on which I am actively working, and that&amp;rsquo;s the reason why I didn&amp;rsquo;t do a screen-cast (sorry about that). When this is solved, I will make a screen-cast and post it here for sure.&lt;/li&gt;&#10;&lt;li&gt;Drag&amp;rsquo;n drop directly to the effects list. This is almost nothing but I want to fix the first issue before implementing it.&lt;/li&gt;&#10;&lt;li&gt;Keyframe based effect configuration&lt;/li&gt;&#10;&lt;li&gt;Saving/opening projects containing effects. I have already started this work but it is still not working. It should be done quite easily.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;So I don&amp;rsquo;t miss so many things to complete the plan I had made for this Google Summer of Code, but the idea is to get something almost bug free and merge and release it (something I have been told should be possible quite soon&amp;hellip; I hope :))&lt;/p&gt;&#10;&lt;p&gt;I also wanted to talk about &lt;a href="http://bicyclerepair.sourceforge.net/"&gt;a tool&lt;/a&gt; I use for refactoring python code called &amp;lsquo;Bicycle repair man&amp;rsquo;. It permits to rename variable/classes very easily and this through all python files of the project, cut functions into several ones and make the proper calls, and probably much more but those are the two features I actually use and abuse. I use it inside vim and noticed a real gain of productivity and style.&lt;/p&gt;&#10;&lt;p&gt;The code is still available in my GIT repository here: &lt;a href="http://github.com/thiblahute/Pitivi"&gt;http://github.com/thiblahute/Pitivi&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Hoping I can show you a screencast of all that and tell you that I need tester soon.&lt;/p&gt;&#10;</description></item><item><title>Pitivi get effects, part 4</title><link>https://blog.thibaultsaunier.com/2010/06/pitivi-get-effects-part-4/</link><pubDate>Tue, 22 Jun 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/06/pitivi-get-effects-part-4.html</guid><description>&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;I didn&amp;rsquo;t blog for almost 2 weeks now because I wanted to have something interesting to say before saying it!&lt;/p&gt;&#10;&lt;p&gt;So the last 2 weeks I started an &lt;a href="http://github.com/thiblahute/Pitivi/tree/experimental-timeline-based"&gt;experimental branch&lt;/a&gt; to handle effects in the timeline and of course corrected all the bugs I found during this time. Then I rethought this design with &lt;a href="http://jeff.ecchi.ca/blog/"&gt;nekohayo&lt;/a&gt; and got this pretty cool mockup from him:&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_3mLd5CtlHo4/TCIk1jYJH3I/AAAAAAAAHSw/J_ELnMPOmQE/s1152/Capture-3.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="35cecb-Capture-3.png" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 460px; height: 288px;" data-border="0" /&gt;&lt;/a&gt; So as you can expect, I am now implementing that. I already rewrite the effect list and it looks the same as you can see in the mockup. And I am working on making effects being per clip or per track instead of being considered as clips themselves. This should actually be pushed by the end of the week.&lt;/p&gt;&#10;&lt;p&gt;So afterward I am going to work on this new middle section for clips properties and effect configurations. I think I will get it working in the next two weeks. I am quite in advanced on the planning I proposed for the postulation but this is a good thing because I am still at university and may have to spend more time for it in the coming weeks.&lt;/p&gt;&#10;&lt;p&gt;You still can grab my latest code &lt;a href="http://github.com/thiblahute/Pitivi"&gt;here&lt;/a&gt; and play with it!&lt;/p&gt;&#10;</description></item><item><title>Pitivi gets effects, Part 3</title><link>https://blog.thibaultsaunier.com/2010/06/pitivi-gets-effects-part-3/</link><pubDate>Fri, 04 Jun 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/06/pitivi-gets-effects-part-3.html</guid><description>&lt;p&gt;This week I have been debugging everything and I final (Thanks to my mentor Edward Hervey) got effects working!&lt;/p&gt;&#10;&lt;p&gt;So better show you how it works for now. It is still quite buggy, and not really ergonomic, but it is the beginning!&lt;/p&gt;&#10;&lt;p&gt;Here is the video (of course edited in Pitivi and using effects). The original host (people.collabora.co.uk) is gone, so the video is no longer available:&lt;/p&gt;&#10;&lt;p&gt;You need a modern browser to see this video (chromium, firefox, epiphnay, midori&amp;hellip;)&lt;/p&gt;&#10;&lt;p&gt;You can grab the code &lt;a href="http://www.github.com/thiblahute/pitivi"&gt;here&lt;/a&gt; if you want to give it a try even if it&amp;rsquo;s not ready for production&amp;hellip;&lt;br&gt;&#10;So next week I am going to clean up the code and of course fix the bugs I find. If I have time, I will start working on the UI part.&lt;/p&gt;&#10;&lt;div&gt;&#10;&lt;/div&gt;&#10;&lt;div&gt;&#10;&lt;p&gt;[Edit] I tried &lt;a href="http://tinyvid.tv/"&gt;the only&lt;/a&gt; website I found that permits to upload ogv files in order to use it with the video tag, but it seems no to work well. So you can find the video &lt;a href="http://openvideo.dailymotion.com/video/xdk5ek_demo-effects-in-pitivi_tech"&gt;here&lt;/a&gt; and in better quality &lt;a href="http://ubuntuone.com/p/64O/"&gt;here&lt;/a&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Pitivi is getting effects, Part 2</title><link>https://blog.thibaultsaunier.com/2010/05/pitivi-is-getting-effects-part-2/</link><pubDate>Thu, 27 May 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/05/pitivi-is-getting-effects-part-2.html</guid><description>&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-style: normal"&gt;Here is my second report about the implementation of effects in Pitivi. I am going quite well with this project, and I now have almost everything ready to be able to add effects to videos. The dragging of effects to the timeline is almost ready, but I need to work on it a bit more to be able to show you a screen-cast! I hope it can be done next week.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-style: normal"&gt;Sorry for this kind of useless post, but I just wanted to tell you I make good progress, and I should be able to show you more soon!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-style: normal"&gt;You still can have a look at my &lt;a href="http://github.com/thiblahute/pitivi"&gt;git repository&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;</description></item><item><title>Going to GUADEC</title><link>https://blog.thibaultsaunier.com/2010/05/going-to-guadec/</link><pubDate>Fri, 21 May 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/05/going-to-guadec.html</guid><description>&lt;p&gt;Thanks to the Gnome foundation for sponsoring my travel to attend to this year &lt;a href="http://www.guadec.org/index.php/guadec/index"&gt;GUADEC&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;I am looking forward to be there and finally see the people I am working with!&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="17b49e-sponsored-badge-simple.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="38993d-sponsored-badge-simple.png" id="BLOGGER_PHOTO_ID_5473901972054627490" style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 213px; height: 213px;" data-border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Pitivi is getting effects, Part 1</title><link>https://blog.thibaultsaunier.com/2010/05/pitivi-is-getting-effects-part-1/</link><pubDate>Fri, 14 May 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/05/pitivi-is-getting-effects-part-1.html</guid><description>&lt;p&gt;&lt;span class="Apple-style-span" style="font-family:'DejaVu Sans', sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size:medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family:'DejaVu Sans', sans-serif;"&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-style: normal"&gt;Here is the first report about &lt;a href="http://thiblahute.blogspot.com/2010/04/i-have-been-accepetd-for-google-summer.html"&gt;my Google summer of code project&lt;/a&gt;. I have been working quite a lot on it for the last 2 weeks! So here is the summary of what have been done so far:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="en-US"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;&lt;span style="background: transparent"&gt;Code reading, analyze of Pitivi architecture (Thanks to the &lt;a href="http://wiki.pitivi.org/wiki/Main_Page"&gt;pitivi wiki&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;Some reading about Gstreamer to understand better the way it works&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;Creation of &lt;a href="http://github.com/thiblahute/pitivi"&gt;my git branch&lt;/a&gt; to start working on effects implementation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;Implementation of the core Pitivi modifications to be able to create effects (With unit tests)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="en-US"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;&lt;span style="background: transparent"&gt;See how I can implement &lt;a href="http://live.gnome.org/AppIntegration/GstreamerVisualEffects"&gt;effect files&lt;/a&gt; as &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;described in my Gsoc application, and discussions about it in the Pitivi community. We actually didn&amp;rsquo;t take a fixed decision about this for now.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span lang="en-US"&gt;&lt;span style="font-style: normal"&gt;&lt;span style="font-weight: normal"&gt;&lt;span style="background: transparent"&gt;Creation of the UI to show the list of effects detected thanks to the &lt;a href="http://www.gstreamer.net/data/doc/gstreamer/head/gstreamer/html/GstRegistry.html"&gt;gstreamer registry&lt;/a&gt; (the list was already retrieved in Pitivi)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;&lt;span style="font-style: normal"&gt;Some talking to know how this UI should be done. I will need to talk more about that to the Pitivi community to take a good decision about how it should look like. For now, it looks like:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;a href="9cea4b-first_screenshot.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="ced6d2-first_screenshot.png" id="BLOGGER_PHOTO_ID_5471340830349008834" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" data-border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;I am now working on drag&amp;rsquo;n droping effects to the timeline.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:DejaVu Sans, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="background: transparent"&gt;That is all for now, and I will give you frequent news about how things are going.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#10;</description></item><item><title>I have been accepted for the Google Summer of Code 2010</title><link>https://blog.thibaultsaunier.com/2010/04/i-have-been-accepted-for-the-google-summer-of-code-2010/</link><pubDate>Mon, 26 Apr 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/04/i-have-been-accepetd-for-google-summer.html</guid><description>&lt;p&gt;I haven&amp;rsquo;t blog for a long time since I had other things to do. I really wanted to participate in the Google Summer of code again, and I have actually been accepted in the Gstreamer community! The project I am going to work on is called &amp;ldquo;Permit &lt;a href="http://www.pitivi.org/"&gt;pitivi&lt;/a&gt; users to add effects to the videos they are editing&amp;rdquo;. The main goal is to permit to add all kind of effect easily in Pitivi and implement the most important ones.&lt;/p&gt;&#10;&lt;div&gt;&#10;&lt;div&gt;&#10;&lt;/div&gt;&#10;&lt;div&gt;&#10;&lt;div style="text-align: justify; "&gt;&#10;&lt;p&gt;I want to thank everyone who is responsible for the Gsoc, and my participation in it! I also want to thank and say &amp;ldquo;Hello&amp;rdquo; to Edward Hervey who is going to mentor me during the project and to the whole Gstreamer and Pitivi community.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Presentation of a programing course of Python (and other Gnome related technologies) I am now teaching</title><link>https://blog.thibaultsaunier.com/2010/04/presentation-of-a-programing-course-of-python-and-other-gnom/</link><pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/04/presentation-of-programing-course-of.html</guid><description>&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;I wanted to talk about a class (Taller en español) of Python I am teaching now in the University of &lt;a href="http://www.upla.cl/inicio/"&gt;Playa Ancha&lt;/a&gt; in Valparaiso (Chile).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;First I want to share with you the great tool I found to make presentations which is &lt;a href="http://www.inkscape.org/"&gt;Inskape&lt;/a&gt; with the &lt;a href="http://code.google.com/p/jessyink/"&gt;JessyInk&lt;/a&gt; plug-in. It lets you make presentations in SVG format quite easily, and I personally find the result pretty satisfying! I am using it for all my presentations now, and obviously for the ones I am making for this lesson. &lt;a href="http://jessyink.googlecode.com/files/JessyInk_1_4_0_showcase.svg"&gt;Here&lt;/a&gt; is a good introduction to jessyInk, I also found a good &lt;a href="http://screencasters.heathenx.org/tag/jessyink/"&gt;video tutorial&lt;/a&gt; to help you starting with this plug-in. I actually didn&amp;rsquo;t know anything about Inkscape before this, but with this video tutorial I learned fast and I am now able to make presentations with those tools.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;your browser does not support the video tag&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;The video tutorial to start with JessyInk&lt;/em&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;I also wanted to share with you the content of this class, so I created a git repository on &lt;a href="http://github.com/thiblahute/classePythonEspanol"&gt;github&lt;/a&gt; containing my presentations (in Spanish) and the examples which go with the course.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;I didn&amp;rsquo;t find anything similar so I decided to do it myself hoping it can be useful for other Spanish speakers! And you are of course encouraged to improve it, translate it and correct my mistakes.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Good news about the Google Documents Gvfs Backend</title><link>https://blog.thibaultsaunier.com/2010/01/good-news-about-the-google-documents-gvfs-backend/</link><pubDate>Sat, 16 Jan 2010 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2010/01/good-news-about-google-documents-gvfs.html</guid><description>&lt;p&gt;Just a quick post to say that I am back working on the Google documents GVFS backend, and that &lt;a href="http://googledocs.blogspot.com/2010/01/upload-and-store-your-files-in-cloud.html"&gt;Google announced&lt;/a&gt; this week that they are going to let people uploading any kind of documents to their service. This should mean that using my backend you will be able to actually save any kind of document on the cloud via the Google documents service! I personally think that it makes the backend even more useful!&lt;/p&gt;&#10;&lt;div&gt;&#10;&lt;/div&gt;&#10;&lt;div&gt;&#10;&lt;p&gt;Please be patient as I (hopefully) should be able to have something stable quite soon!&lt;/p&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>Some new about my GVFS Google Documents Backend</title><link>https://blog.thibaultsaunier.com/2009/12/some-new-about-my-gvfs-google-documents-backend/</link><pubDate>Sun, 13 Dec 2009 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2009/12/some-new-about-my-gvfs-google-documents.html</guid><description>&lt;p&gt;Just a short entry about &lt;a href="http://live.gnome.org/thiblahute/Gsoc2009"&gt;my Gsoc&lt;/a&gt; project &amp;ldquo;Nautilus: add Google documents support&amp;rdquo;. So as I am now in summer vacation (studying in chile for one year), I found some time last week to carry on my work on my GVFS backend. It is still missing a few things and robustness, but it hopefully should be mergeable in this cycle. Actually the reading/writing isn&amp;rsquo;t fully functionnal so it&amp;rsquo;s not yet open to public test.&lt;/p&gt;&#10;&lt;p&gt;I am now going to Brazil for vacation for one month, but I promise, afterward I will fix this issues, and then would like to find people to test it and report bugs, if it&amp;rsquo;s possible ;).&lt;/p&gt;&#10;&lt;p&gt;Just a little reminder if anyone wants to help me developing/reviewing the backend (we never now ;) ) &lt;a href="http://github.com/thiblahute/gvfs/tree/googledocuments"&gt;http://github.com/thiblahute/gvfs/tree/googledocuments&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Hopping I can send you interesting news quite quickly!&lt;/p&gt;&#10;</description></item><item><title>My vim for android devlopement environment</title><link>https://blog.thibaultsaunier.com/2009/11/my-vim-for-android-devlopement-environment/</link><pubDate>Sun, 22 Nov 2009 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2009/11/my-vim-for-android-devlopement.html</guid><description>&lt;p&gt;I haven&amp;rsquo;t blogged for a long time, and I would have liked to be able to blog about &lt;a href="http://thiblahute.blogspot.com/2009/08/gsoc-add-google-documents-support-to.html"&gt;my Gnome soc project&lt;/a&gt;, but unfortunately, I have other priorities. As part of my studies, I had to do some development for the android platform, and since the last summer, I can&amp;rsquo;t use other development environment than Vim, I decided to find a way of using it for my android project.&lt;/p&gt;&#10;&lt;p&gt;So here is the description of my Vim environment for android applications development. I use vim 7.2, the version distributed with Ubuntu 9.10, the &lt;a href="http://www.vim.org/scripts/script.php?script_id=1213"&gt;Vjde plugin&lt;/a&gt;, &lt;a href="https://launchpad.net/terminator"&gt;terminator&lt;/a&gt; as a terminal (which by the way is a great terminal emulator!!) and then &lt;a href="http://developer.android.com/sdk/index.html"&gt;last android JDK&lt;/a&gt; in order to develop application for android2.0 (eclaire).&lt;/p&gt;&#10;&lt;p&gt;First I installed the SDK (there are a few bugs on the emulator installation due to &lt;a href="https://bugzilla.gnome.org/show_bug.cgi?id=598734"&gt;this bug&lt;/a&gt; and an &lt;a href="http://groups.google.com/group/android-developers/browse_thread/thread/814e3c898d7b24fc?hl=en#"&gt;this ssl problem.&lt;/a&gt; I fallowed &lt;a href="http://developer.android.com/sdk/index.html"&gt;this guide&lt;/a&gt; to set the sdk. Then, I installed the Vjde plug-in which is a Vim plug-in to get a Java development environment in Vi, this plugin permit to add intelligent completion for methods calls as well as for imports (I only unziped &lt;a href="http://www.vim.org/scripts/download_script.php?src_id=10992"&gt;this&lt;/a&gt; in you ~/.vim directory). Afterward, I created my android project (&lt;a href="http://developer.android.com/guide/developing/other-ide.html"&gt;this&lt;/a&gt; page explains well how to do it). And then I created an vjde project, in vim:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;:Vjdeas filename.prj&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;This is actually a text file which permit to save variables to you project. Then I set it Vjde to look at android class, methods and package, in vim:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;:let g:vjde_lib_path='/path/to/android/sdk/platforms/android-2.0/android.jar:build.classes'&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;And save it&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;:Vjdesave&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Thanks to it, I can have functions/imports completion available with the CTRL-X+CTRL-U key combination (I need to load the project(&lt;span style="font-style: italic;"&gt;:Vjdeload filename.prj)&lt;/span&gt; every time I want to work on it, I think there must be a way of doing it automatically but didn&amp;rsquo;t figure it out yet). It would also be possible to get the documentation integration thanks to the Vjde plugin, but I am used to have it in another window.&lt;/p&gt;&#10;&lt;p&gt;Then to try the program on the android emulator, I lunch the emulator, and in a terminal:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;ant debug &amp;amp;&amp;amp; adb install -r bin/yourAppName-debug.apk&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;You can then launch it in the android emulator menu (I looked for a way of lunching the program directly from the command line, but didn&amp;rsquo;t find :( ). To debug the app, you can launch the &lt;a href="http://developer.android.com/guide/developing/tools/ddms.html"&gt;ddms&lt;/a&gt; tool which is part of the android sdk.&lt;/p&gt;&#10;&lt;p&gt;I hope this could be useful for some people who want to develop for the android platform and don&amp;rsquo;t want to use eclipse or netbeans IDE.&lt;/p&gt;&#10;&lt;p&gt;Edit: I find a good trick to manage the make and install thing, base from &lt;a href="http://www.builderau.com.au/program/java/soa/Configure-vi-for-Java-application-development/0,339024620,320276164,00.htm"&gt;here&lt;/a&gt;. I added the following (executable) file to ~/.local/bin/vimAntAndroid:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;#!/bin/sh&lt;/code&gt;&lt;br&gt;&#10;&lt;code&gt;ant debug -Dbuild.compiler.emacs=true -quiet -find build.xml 2&amp;gt;&amp;amp;1 | grep '\[javac\]'&lt;/code&gt;&lt;br&gt;&#10;&lt;code&gt;echo &amp;quot;Installing...&amp;quot;&lt;/code&gt;&lt;br&gt;&#10;&lt;code&gt;adb install -r ${1} | grep 'null'&lt;/code&gt;&lt;br&gt;&#10;And then in Vim&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;set makeprg=vimAntAndroid&lt;/code&gt;&lt;/p&gt;&#10;</description></item><item><title>Gsoc: add google documents support to nautilus</title><link>https://blog.thibaultsaunier.com/2009/08/gsoc-add-google-documents-support-to-nautilus/</link><pubDate>Tue, 18 Aug 2009 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2009/08/gsoc-add-google-documents-support-to.html</guid><description>&lt;div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;During those 12 weeks of my Google summer of code, I have hacked mainly on 2 gnome project which are gvfs and libgdata.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;Concerning libgdata, I added the google documents service and it&amp;rsquo;s now in the master branch, it&amp;rsquo;s functional even if there are still a few bugs.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;As far as gvfs is concerned, I have an alpha version of the gdocs backend which isn&amp;rsquo;t really usable for final users yet, but don&amp;rsquo;t worry I am going to make it working well in the coming weeks! All the functions are implemented, I need to stabilize it and optimize it in order to hopefully get it merged in gvfs.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;I have also worked a little bit on nautilus to support the new backend (almost nothing).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;some screenshots:&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;&lt;a href="bf4c5b-show_google_documents.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="67c3c7-show_google_documents.png" id="BLOGGER_PHOTO_ID_5371405685229221906" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" data-border="0" /&gt;&lt;/a&gt;&lt;br&gt;&#10;&lt;a href="ed69ee-Connecting_window.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="c358ce-Connecting_window.png" id="BLOGGER_PHOTO_ID_5371405681095447314" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" data-border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;div&gt;&#10;&lt;div style="text-align: left;"&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: left;"&gt;&#10;&lt;p&gt;If you anyway want to give it a try (I think you should wait a few weeks more), you will need:&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div style="text-align: left;"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://git.gnome.org/cgit/libgdata/tree/gdata/"&gt;Libgdata master branch&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://github.com/thiblahute/gvfs/tree/googledocuments"&gt;My Gvfs branch.&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;The latest nautilus and optionality &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=591178"&gt;my patch&lt;/a&gt; for a better integration of the new GVFS backend.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>First post: My google Summer of code project and my future in the gnome comunity</title><link>https://blog.thibaultsaunier.com/2009/08/first-post-my-google-summer-of-code-project-and-my-future-in/</link><pubDate>Wed, 05 Aug 2009 00:00:00 +0000</pubDate><guid isPermaLink="false">https://thiblahute.blogspot.com/2009/08/first-post-my-google-summer-of-code.html</guid><description>&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;This is my first post on a blog, I decided to write now about my Gsoc project, &amp;ldquo;Nautilus: add support to Google documents&amp;rdquo; because it&amp;rsquo;s almost the end of this project and because I decided that I want to carry on this work. As you may have heard about, this project consist in adding the possibility to nautilus users to use their &lt;a href="http://docs.google.com/"&gt;Google documents&lt;/a&gt; as if they were local documents so it mean that they should be able to use it with any office application suite such as Open-office, Goffice&amp;hellip; This will permit users to always have their documents synchronized on the web and to be able to access it on-line (throw the Google website) all the time even if they can manage it very easily from their computer and use it with their favorite software.&lt;/p&gt;&#10;&lt;p&gt;To complete this project I had to work on three different gnome project which are:&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Libgdata: A Glib base library which permit to handle Google services. I needed to hack on it to add the Google documents services. The service is now implemented and available in the master branch of the &lt;a href="http://git.gnome.org/cgit/libgdata/"&gt;git&lt;/a&gt; repository.&lt;/li&gt;&#10;&lt;li&gt;GVFS: the gnome virtual file system. I needed to add a Google documents backend which permits to handle the Google documents with any program using it. I now have a branch accessible &lt;a href="http://github.com/thiblahute/gvfs/tree/googledocuments"&gt;here&lt;/a&gt;. It is not finalized yet but in a good way. I will need some review in the coming days ;)&lt;/li&gt;&#10;&lt;li&gt;Nautilus: done, patch available &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=591178"&gt;here&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div style="text-align: justify;"&gt;&#10;&lt;p&gt;I think I will use this blog to talk about my gnome hackes and I won&amp;rsquo;t stop working on gnome after my Google summer of code since I enjoyed a lot the work I did so far and even if I couldn&amp;rsquo;t be at GUADEC this year I wish I could next year ;)&lt;/p&gt;&#10;&lt;p&gt;I first want my Gsoc project to be integrated in gnome (maybe 2.30/3.0? would be great for me ;) ) I know I need to get it working perfectly before, and to polish it a lot&amp;hellip; but I will do it. I also will add some feature such the possibility to access documents off-line and synchronize it when the user get connected. And maybe more when I get more ideas!&lt;/p&gt;&#10;&lt;p&gt;And afterward I have some other projects such as the creation of another backend to access Google Picassaweb pictures, I actually have thought my actual Backend so it will be more simple to integrate this other one.&lt;/p&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>