GStreamer Conference In Prague

We’re looking forward to attending the GStreamer Conference coming up next month in Prague, it’s always great connecting with fellow developers in person. This years schedule is full of some great speakers on topics ranging from GStreamer and Blue Ray, the upcoming GStreamer release, and our founder, David Schleef will be speaking about GStreamer in broadcast and web streaming. Hope to see some of you there!

 

Posted in conferences, gstreamer | Tagged , , , | Comments Off

10 and 16 bit Video Processing in GStreamer

Professional video hardware and software usually uses 10 bits per component for color representation. Consumer products are usually 8-bit, and video distribution to consumers is universally 8 bits per component. Up until recently, GStreamer‘s support for 10- and 16-bit formats has been minimal, mostly enough to convert 10-bit input into an 8-bit format for further processing.

One of my side projects recently has been to improve much of the basic video infrastructure to handle 10-bit and also 16-bit color components.  There are a few interesting 10-bit packing structures, mainly v210 and UYVP, which are YCbCr 4:2:2 formats used by QuickTime and SDI capture cards, and also r210, which is a 10-bit RGB format.  Packed structures of this form are difficult to work with in SIMD code, so they tend to be inefficient for most processing.  They are more interesting for interfacing with hardware and reading/writing to disk.

For more computational efficiency, and also to promote using a lot more precision instead of a little more precision, I’m encouraging people to use 4:4:4:4 16-bit AYUV or ARGB as an intermediate format for high color depth work instead of any of the 10 or 12 bit formats.  Many GStreamer plugins already support 8-bit AYUV, so adding support for 16-bit AYUV is usually a pretty simple task.

Orc has made the task easier as well.  I would not have started this task if it had involved writing a bunch of SIMD code directly, since deep-color processing is a specialized interest and I only have a finite amount of spare time.

Format negotiation among elements is similar to how it works with any other format.  The 10 and 16 bit formats are simply extensions of how the existing GStreamer capabilities (caps) system works.

Some elements supporting 10 and 16-bit formats:

  • videotestsrc – The video test signal generator.  Of course, this is the first place to start for implementing any new formats.  The patterns are all still fundamentally 8-bit, unfortunately.
  • videoscale – The video scaling element.
  • colorspace – This is the new format conversion and RGB/YCbCr matrixing element in gst-plugins-bad, which is based on Orc.  At some point, it will be moved to -base and be used instead of ffmpegcolorspace.
  • decklinksrc/sink and linsyssdisrc/sink – These SDI capture and playback elements handle 10-bit video in hardware, so it makes sense to deliver this to the GStreamer pipeline.
  • schroenc/schrodecSchrödinger has handled 10-bit video for several years, but only when handling VC-2 video (i.e., the intra subset of Dirac).
  • qtmux/qtdemux – Handles a few 10 and 16 bit formats in the QuickTime container.
  • pngdec – Decodes 16-bit PNG images.

The project to make Schrödinger handle high-precision video has been moving along as well. Although not ready for end users, it is possible to decode up to 26-bit component depth video. (26 happens to be a natural limitation. 10 and 16 work fine, too. I just said 26 to brag a little.)

Most of this work is done simply to have a high-precision pipeline available for test purposes, such as converting the 16-bit RGB Sintel PNGs into a clean high-bit-depth master for encoder testing. Hopefully soon, enough elements will have been updated to allow entire applications in 16-bit, for example, PiTiVi rendering.

Posted in development, dirac, gstreamer, orc | Tagged , , , , , , , , , , , , | Comments Off

E1000 At The Embedded Linux Conference

This week we’ve been attending the 2011 San Francisco Embedded Linux Conference. Last night we ran a demo of the E1000 box streaming in flash, WebM, and ogg. We’re putting the finishing touches on version 2.0 of the firmware for this product, this was the first public showing of the updated and improved user interface.

 

 

Posted in conferences, products | Tagged , , , , , , | Comments Off

Linux Foundation Collaboration Summit

The 5th Annual Linux Foundation Collaboration Summit is taking place this week here in San Francisco. Our founder, David Schleef will be attending, contact us if you are interested in scheduling a time to meet with him. The weather looks like it’ll be wonderful all this week, both unusual and very welcome for our foggy city.

David will also be attending the upcoming Embedded Linux Conference on April 11-13th.

Posted in conferences | Tagged , , , , , | Comments Off

Mozilla Releases Firefox 4

Today Mozilla released Firefox mobile, and several days ago we saw the launch of Firefox 4 (which you should absolutely download if you haven’t yet). In this latest release, Firefox has incorporated Google-supported WebM into video playback. This is exciting for a number of reasons, but may cause some head-scratching as to how to best utilize these new video capabilities.

If you are making, streaming, or encoding any kind of video content, you need your video to be viewable cross platform. As new formats are introduced, it becomes necessary to alter your encoding process to include it. Luckily, WebM is in the hands of a number of companies and developers who have already stepped up to the plate with products to help you out.

We’re one of them. Our E1000 Live Encoder is able to stream live video up to 720p in WebM, and cover almost all web browsers, media players, and mobile devices.  To reach all those devices and browsers, it encodes and streams in multiple formats, not only WebM, but also H.264, MPEG-4, Ogg/Theora, and Dirac.

For developers, we’ve created our Media SDK to assist you in creating WebM-ready applications, with playback, editing, and encoding features.

And of course we also welcome inquiries from companies regarding custom development to help your products stay on the edge of web video technology while reaching the widest possible range of customers. Go ahead and contact us with your questions on how we can help best take advantage of all that WebM has to offer.

 

Posted in codecs, gstreamer, open codecs, products, theora | Tagged , , , , , , , , , | Comments Off

GStreamer SDI Capture Plugins

I’m getting ready to push several commits to the gst-plugins-bad source repository that add plugins for capturing SDI and HD-SDI using cards from two different manufacturers: BlackMagic Design‘s DeckLink, and Linear Systems SDI Master capture card.

The Linear Systems cards are probably better known by their reseller, DVEO. Entropy Wave uses both of these cards in the E1000 Live Encoder appliance, we’ve found that aside from some motherboard incompatibilities in the DeckLink cards, they both work great in Linux. While we’re primarily interested in live capture at the moment, output has also been implemented.

We slightly prefer the Linear Systems cards – mainly because the drivers are open source, but also because the API allows lower level access to the hardware, including SDI clocking and raw VANC and HANC data. It also allows subframe latency,  although not implemented in the GStreamer plugin, it will be nice to use in the future.

In comparison, the DeckLink driver and SDK are not open source (which means I can’t fix any bugs), although they conveniently provide open source headers and shim code for interfacing with the SDK. This allows the GStreamer plugin to be completely open source and legally distributable separately from the SDK, but will only work if the SDK libraries and driver are present. Optical fiber connections are only available in the DeckLink, and the DeckLink cards tend to be less expensive.

It will take a few weeks for these to be available as part of a GStreamer release, however, they are available in the Media SDK now.

Posted in development, gstreamer | Tagged , , , , , , , , , , , , , , , , , | Comments Off

GStreamer Conference 2011

Photo by flickr photographer Kruhme, under Creative Commons license

Looks like last year was only the beginning – the 2011 GStreamer conference is scheduled to share space with LinuxCon Europe, The Linux Kernel Summit and ELC-Europe at the end of October in Prague, according to Christian Shaller.

Hope to see some of you there!

 

Posted in conferences | Tagged , , | Comments Off

New decoders for MP3 and AC-3

Development recently finished on decoders for two more formats, MP3 and AC-3. The MP3 decoder (ewmp3dec) will be added to the retail decoder package soon, and will be available as an update for people that purchased the decoder pack previously. We’re still working on the patent licensing for AC-3, so it won’t be part of the retail decoder pack just yet. However, both codecs are available to OEMs as a software license.

Posted in codecs, development, products | Tagged , , , , , , , , , , | Leave a comment

GStreamer Conference Recap

The first GStreamer conference took place last week in Cambridge in the UK, which I attended and gave a presentation about Orc.  I was pleasantly surprised at the number of people that attended, packing the room with people spilling out into the hall.  For those of you that missed it, the presentation was recorded by the people from Free Electrons and will be posted on their site some time soon.

Several people mentioned to me at the conference some variation of “I have no assembly background, but I learned how to use Orc in a few hours, converted my video processing code, and now it’s 4x faster.”  This is always encouraging to hear.  Of course, some mention that Orc-generated code isn’t faster than C code — we’ll have to work on that.

The rest of the GStreamer conference was excellent and a huge success.  The organizer, Christian Schaller, said that the conference was sold out, so it seems likely that we’ll have a bigger and better conference next year.  I was interested in seeing every talk, which means I’ll be spending an entire day watching the ones I missed whenever the video is uploaded.

Posted in conferences | Tagged , , , , , , | Leave a comment

David Schleef at New TeeVee Live

Our founder, David Schleef, will be giving a short talk on WebM, VP8, and Open Video at the New TeeVee conference, taking place on November 10, here in San Francisco. View the scheduled speakers, and register at this link.

Posted in conferences, Uncategorized | Tagged , , , | Leave a comment