Details on Texas Instruments and GStreamer

So I blogged about Texas Instruments work around GStreamer yesterday. Today I found this article about GStreamer and Texas Instruments on EETimes.com. Lots of lovely quotes in the article like:

Since GStreamer is a very popular and well-known framework, which has become a standard in digital video development, the ability to access the capabilities of the DSP from within this environment saves programmers from the need to learn the proprietary DSP programming language.

Yes, you heard it here first, GStreamer has become a standard for digital video development.

Decodebin2 has landed

Ok the wait is over, the new Decodebin element has landed in GStreamer. It will be part of the new GStreamer core and base release next week. It will not be used by default for this version though, instead you have to set the USE_DECODEBIN2=true Environment variable to have playbin use it instead of the old decodebin. Once it gotten some testing during this release it will be the default in the release afterwards.

So what new features do this bring? Well for the end user nothing will change overnight, but for developers it opens the path to fixing things like Chained Ogg playback, DVD handling and non-raw media output (for instance outputing AC3 to your S/PDIF port). A big thanks to Edward for fixing this.

Jack and GStreamer

Paul Davies of JACK Audio fame popped up on GStreamer-devel list last week asking about GStreamer JACK support. The discussion on both the mailing list and on IRC has since been about when to pull and when to push :). Anyway Wim decided to do take a stab at a JACK sink for GStreamer and its scheduled to hit CVS tonight.Update: It hit bugzilla today :)

Pitivi UI mockups

Mentioned some time ago that Edward and Christoph had worked out some mockups about how the ‘simple’ view in Pitivi should work and look. As many of you might beware of we are aiming for a two view model in Pitivi, with a simple view which should allow anyone to do some basic editing and an advanced view meant for the more technical user who wants more detailed controlled of the timeline.

Edward Hervey blogged about these mockups last week after they are not cleaned up and commented. Be sure to check them out, we don’t know exactly when we will get to implement them all, but they do show the direction we are heading with Pitivi.

Jokosher roadmap

Another must read blog is Stuart Langridge, hacker extraordinaire on Jokosher and Jackfield. He had a recent blog entry discussing the outcome of the Jokosher 1.0 planing meeting with links and information on what the Jokosher community priorities are going forward. Be sure to check it out.

Ogg Trick modes!

Ok, so Wim went on a hacking spree this Sunday and implemented trick-modes with Theora video. This means you can now grab gst-plugins-base CVS and playback Theora in reverse using it. Elisa has some support for this already in subversion, but the best test application is the ‘seek’ example application under tests/examples/seek in gst-plugins-base. Been having some fun playing some of the Ogg Theora movies I have in fast-forward mode, slow motion mode, slow motion reverse and fast rewind mode by modifying the ‘rate’ value in ‘seek’. Vorbis sound is also speeding up/slowing down and playing the sound in reverse perfectly. I tried recording a screencast of it using Istanbul, but my machine is not even close to being fast enoungh to both do the trick mode playback and recording to Ogg at the same time :). A big thanks to Wim. Really looking forward to demonstrating this at future conferences and meetings.

With the support now implemented in a set of open source decoders and demuxers hopefully more people in the community will be able to help out with trick mode enabling the rest of our supported formats. Up to this point only the Fluendo Windows Media plugins supported trick modes, but that doesn’t really help anyone outside Fluendo understand how trick modes are supposed to work in GStreamer, with these changes the secret sauce is available for anyone to study alongside the already public
design document
:)

Update on the Texas Instruments OpenMax plugins

Texas Instruments sent in the first version of their OpenMax optimized
GStreamer plugins. Their plugins use the open source OpenMax implementation Bellagio/Omxil which was created by Semiconductor Technologies. ST plans on releasing a set of
GStreamer plugins of their own also as far as I know.

DVD and GStreamer

For a long time now things have been moving slowly in terms of
improving the state of DVD support with GStreamer. Tim Müller
has been working on improving it bit-by-bit over time, but being
only one person and having a lot of other tasks on his plate the
progress have been slow. Well know it seems some help has arrived
in the form of Jason Gerard DeRose who sent in information about his
new dvdread element to the mailing list last Friday and at the same time expressing interest in working also on working on the DVD navigation problemspace. Jason’s original reason for working on
the dvdread element was for his KungFu DVD ripper, but with the DVD stuff fresh in his head is willing to put time into improving also the playback side of things. A big thanks to Jason!

Proprietary 3D drivers

After Mark Shuttleworths invitation for Suse devs to switch to Ubuntu, which today he clarified, a lot of discussion has happened. A frequent topic that has come up in that discussion is the planed use of binary drivers for default in future Ubuntu releases for ATI and NVidia graphics cards. Well the binary graphics driver issue old news I say, I thought about that over 9 months ago ;)

NVidia/Fedora Quake crash

I would like to thank those who provided some feedback on my crash problem. It turned out to be a known bug in the latest released drivers and upgrading to the latest beta solved it. Thanks to the AC who pointed me in this direction.

No Quake3 in my FC6 world

Been running FC6 for a little while now and I am happy with it for the most part. Only irritating regression is that Quake3 don’t want to run anymore, it actually pulls down the whole X server when I try to run it. This is using the non-free Nvidia driver package from livna.org.

The xorg.0.log file doens’t give me much to work with, at least nothing that Google gives me anything on.

Backtrace:
0: /usr/bin/Xorg(xf86SigHandler+0x81) [0x80d4cc1]
1: [0x414420]
2: /usr/lib/xorg/modules/drivers/nvidia_drv.so(_nv001255X+0x38) [0x2ee5dc]
3: [0xa0fb8c0]

Fatal server error:
Caught signal 11.  Server aborting

Anyone seen and fixed this on their own system? I am using the quake3 version from Fedora Extras.

Cool Jokosher review/podcast

Dann Washko did a little podcast/audio review of Jokosher as part of the series of podcasts they do at Twatech.org. The cool part is that he records the little podcast with Jokosher. Some bugs and issues where found (partly as this was pre 0.2 Jokosher), but it is great to see and hear the excitment and use people are putting Jokosher too. Of course Dann by doing this made sure his bugs and experiences is getting top attention from the Jokosher devs now :)

TestingGst-editor

So I decided to take a look at the new Gst-Editor that was developed as part of the Google Summer of Code. Took me a little time to locate the homepage of goocanvas and the homepage of pygoocanvas which the new editor depends on, but after a little googling I had it all put together. Even built packages of both for FC6. Here is a little screenshot of the new editor in action:

gst editor image

The application looks nice but it is a bit more like a proof of concept than a truly useful application at this point. As the screenshot shows it can create and run 1-to-1 pipelines only currently, which makes using it to prototype and test pipelines for applications like Jokosher or Pitivi impossible. As you see from the screenshot I tried to make a pipeline for transcoding a file to Ogg/Vorbis/Dirac, but I was unable to hook the audio part of the pipeline inn as the decodebin and oggmuxer only accepted one connection. But hopefully we can get the project moving forward again and make it a truly useful development tool. An a big plus point was that unlike the old editor for 0.8 it didn’t crash for me when testing it :)

The struggle of Pitivi

One of the applications we have under development here is Pitivi. For outside developers it could seem as if Pitivi has been standing still for a while. This is both very true and very false. Edward who is the lead developer on Pitivi have had little time to put into enabling more features in the GUI and polishing up the look and feel of the GUI lately. On the other hand improving Pitivi is only half about working on ‘pitivi’, the other part of the equation is fixing bugs in GStreamer itself and gnonlin. Both of these libraries have seen a lot of bugfixes over the last few months and Jokosher is a living testament to their effect.

Pitivi being both audio and video is more complex, but also for Pitivi these fixes have made the application more stable and producing less error messages. Doing some QA work over the last few days I found that AVI (Divx) and MOV (Quicktime) files both transcoded dependably to Ogg Theora.

More work is needed to make MPEG and Windows Media transcode as dependable, but this shouldn’t be to hard to rectify. Once we got the input formats working dependably for Pitivi I guess it would be time to go through the output formats. I haven’t tested yet, but there has been quite a lot of work done to enable and fix more muxers in recent months so maybe some combinations already work fine.

Edwards next target for Pitivi is enabling cutting in the GUI. That means that we at least allow cutting and gluing of video clips which should be a step toward providing useful functionality beyong transcoding.

Of course a lot more could be enabled quickly in the GUI if more python hackers came onboard to help out. If you are getting into Python and is interested in helping out, please stop by #pitivi on irc.freenode.net

Latest developments – Schrodinger, Flumotion, Elisa and Trick Modes

For those who want to use Schrodinger to build plugins or support Dirac encoding/decoding in their own applications or libraries which don’t use GStreamer David have now commited the changes to SVN which makes libschrodinger install the needed header files for development. We are still not promising a fully stable API, but we don’t expect any radical changes either so it should be a good time to start playing with it.

On the topic of free formats. Wim wrote a full set of GStreamer RTP plugins for Vorbis and Theora recently and now Sebastian, who is the latest addition to our Flumotion team, is working on integrating RTP streaming into the open source Flumotion. When this is done we will have a end-to-end Vorbis/Theora RTP streaming solution going from Flumotion to Totem.

Philippe checked in initial trick modes support to Elisa the other day. That means that when you play back you can speed up/slow down the playback speed of videos, using your remote or using the keyboard arrow keys.
Forward trick modes (fast forward, slow forward) works on all formats automatically, but reverse playback only works on formats where support for it is specifically added to the decoder. Wim is working on getting reverse playback going for Ogg Vorbis/Theora files currently so there is at least one open working example of it available.

Getting an end-to-end RTP streaming solution using Vorbis/Theora and full Ogg Theora/Vorbis trick modes going will be a good milestone for us as one of our initial goals at Fluendo was making sure that free formats where competitive on features with non-free ones. Its been a rough road getting there as enabling these for open formats have tendsed to be harder in many cases compared to the non-free ones, both due to the distinct nature of the Ogg container format and also the need to define specifications first in many cases (like our sponsorship of getting the Vorbis and Theora RTP specifications written), but seeing things come together now feels really rewarding.

Btw, I did a new micro release of the MPEG Transport stream muxing library today with a tiny fix to the .pc file. If you installed libtsmux into something else than /usr/lib you would have discovered by now that the GStreamer MPEG TS muxing plugin didn’t build. This updated version of libtsmux fixes that. Get it from the Schrodinger download page

Also a big congratulations to the Jokosher team on their 0.2 release. Keep on rocking guys!