Hi all you GStreamer hackers and lurkers,
This is to announce that another 0.11 status updated has landed in you mailbox. It's also just about the perfect moment, we did our first developer preview release of the 0.11 branch and soon we're all heading to the Berlin Desktop Summit to hang out and bathe in barrels of German Beer for a week or so. Good times indeed. Let's get to it before we pass out. Misc core changes ----------------- Long term GStreamer hacker Tim-Philipp Müller started with removing some of the older deprecated tools like gst-feedback and gst-xmlinspect. This then opened the door to finally remove our dependency on libxml2. XML load and save of elements was something fashionable 10 years ago but never really worked so well. Tim-Philipp also cunningly removed the unversioned versions of the tools. They were always quite confusing. Using the unversioned gst-launch, for example could spawn a 0.10 or 0.11 version of the tool depending on what looks like the phase of the moon. Also exchanging pipelines between version is just simply not going to work so well because elements changed or properties got renamed. As part of some more cleanups, Tim-Philipp also update our awkward query API. We used to make it possible for elements answering the query to update the format. That feature has however never been used in 10 years of GStreamer and the API is not very nice to use. This change requires a whole bunch of elements to be updated. Memory allocation ----------------- 0.11 turns out be very focused around improving the memory management and allocation strategies and so further improvements were done on the allocation of buffers and memory. First of all, the ALLOCATION query can now let upstream elements know about the preferred allocators to use. This would make it possible to make a filesrc write directly into allocated memory from an element downstream. We could do this in 0.10 with the pad_alloc calls but since now, there is also a way to do the same (but more powerful) in 0.11. The base classes got support for negotiation the allocation methods to use. This can be using a bufferpool or a custom allocator. Subclasses can also influence the allocator selection. With some more changes to basesrc, we can now make the source element write into buffers allocated from a downstream bufferpool. Bufferpool options ------------------ The last bit of changes were done on the bufferpools. The bufferpools are used to negotiate and setup the buffers that elements will exchange between eachother. It is now possible to expose extra options on the bufferpool that the user can enable. This allows us to specify arbitrary extra properties that are used to allocate memory. A good example was implemented in the gst-ffmpeg plugin and the xvimagesink element. ffmpeg can operate at higher performance when it is given buffers with exactly the right padding of the image and alignment of the strides. Using the new bufferpool option, ffmpeg can configure those extra constraints in the bufferpool after it checked if the bufferpool that it got from xvimagesink supports this. Then xvimagesink will allocate the right kind of buffers from X shared memory. And the plug-ins? ----------------- All the -base plugins were kept up-to-date with the changes. Some of the plugins got support for new features, either because of the baseclass improvements or because we made them use the new core features. We renamed decodebin2 to decodebin and playbin2 to playbin, effectively removing the old versions. The ffmpegcolorspace was removed and replace by the more powerful and faster videoconvert element. The new videoconvert element uses ORC to automatically generate optimized conversion code for the cpu. One of the biggest changes was the addition of the shiny new video helper API. Functions to inspect color formats and deal with video frames were added. These helper functions automatically deal with extra metadata to specify special strides and buffers. Most of the elements in -base were updated to use these new functions. In -good, Mark Nauwelarts went on a porting spree. He ported like 14 plugins and we all owe him a beer or two now :) What's next ----------- Now we start stabilizing and port plugins. There are a couple of blocking things that need fixing such as a caps intersection bug and race conditions in various plugins after the 0.11 porting. We'll be doing some more 0.11 releases as we go. There is still a fair amount of work to do but we're pretty much on track for 1.0. But.. first things first and lets get ready for the Desktop Summit! There will be a talk of yours truly and Edward Hervey about GStreamer 1.0 for those who are interested in such things. See you all there and if you're not going, have a super nice weekend. Wim _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |