Friday, July 1, 2011

GstTranscodeBin is (hopefully) done

I now have transcodebin doing actual transcoding as part of rygel, so I think it's time to actually publicize some git repositories.

If you're wondering what I did over the past few weeks, aside from the annoying delays which kept me from my chair at times... I moved out all the transcoding logic from Rygel into a separeate gstreamer plugin called gst-transcode. The plugin can be spawned as "transcodebin" from the element factory; it provides a sink and a src pad. You also have to set the "profile" property with a GstEncodingProfile just like encodebin. Anything coming in the sink pad gets autoplugged and transcoded, and output on the src pad.

Transcodebin is available on this github repo:

There's also a test application in tests called gst-transcodetest which grabs a DLNA profile by name from gupnp-dlna and tries to transcode a file into the target format. Compilation of the test application is disabled by default; since it's not very useful, adds a build-dependancy on gupnp-dlna, and I plan to remove it eventually. If you want to compile it look in the and files to see what needs to be uncommented.

It also has debian packaging which I added back before I spent two days switching from Ubuntu to Fedora in search of newer packages, then to Fedora Rawhide to get the bleeding edge. That ordeal is immortalized on my twitter.

Likewise I patched Rygel to use transcodebin; it removes about 50 lines of code from rygel-transcoder.vala. I've also got a github for that here:

Master is just a mirror of the gnome git; my patch is in branch gsoc2011-transcoding. I've tested this on a Sony Bluray player, specifically playing an OCRemix album in OGG format live-transcoded to LPCM through Rygel and transcodebin.

There's a known bug; if I do OGG->LPCM through the gst-transcodetest program, autoplugging fails. OGG->MP3 works, and so does Rygel's LPCM transcoder. Since I next plan to replace Rygel's transcoders with a single generic transcoder fed by gupnp-dlna's profiles, I expect this bug to rear it's ugly head when said work is done.

No comments:

Post a Comment