Conduit & iPod Module - Week 7



Hi,

I've finally fixed my Bazaar branch and included my latest code: https://code.launchpad.net/~airmind/conduit/gsoc08
If anyone has an iPod you could try it out (just remember it will accept any file, even non-supported media). You can even copy files back from the iPod to your computer. You need the libgpod python bindings (0.6 or better).

I started to implement the video conversion using gst.parse_launch, so I could get a pipeline easily, but I reached a problem when I tried to implement video scaling. The problem is that I need to scale down the video size if it is too big (for instance, the iPod only supports 320x240 videos), but for this I need to know the video dimensions. So I could run the pipeline over it once to get the video dimensions, and then run it again for the real conversion, but that would mean too much overhead. So, I got into Gstreamer internals to find a way to dynamically set the output video size, but it is being harder then I thought. I need to set the pipeline to run, so I get the video dimensions, but that sets the output size. Somehow I need to put the needed dimensions in between that.
Also, because I needed all this stuff, I re-implemented some code using a pipeline directly, which gives me more control (and more complexity). I think I'll still use parse_launch for modules to pass their encoders, so they can pass a full pipeline if they need to, and it wil be added to the pipeline just as another element. But for this to work I have to figure out the GhostPad completely (I think I got it now, but it still very confusing).

And I've been thinking about the last part of my project, a easy-to-use interface to all these features, similar to the iTunes experience. The problem is that I don't know how it fits with Conduit. This interface don't fit with the Conduit drag-and-drop model, and I don't know if a program just to configure Conduit is needed (after all, you could just open Conduit and drag-and-drop the required modules). It would be great if Conduit could fit this kind of interaction inside itself, but I really don't know how. So, my goal is to create something that could be used by media-players, like Rhythmbox. It would replace the current iPod plugin with an interface very similar to the iTunes, allowing the user to choose to manually manage the iPod, or to automatically sync playlists, notes, etc.
I still need to research the Conduit DBus interface, to see if everything I need is supported.

--
Alexandre Rosenfeld

EngComp 06 - USP São Carlos


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]