Tuesday, November 16, 2010

PiTiVi Dialogs

I am (finally) making progress on the two main dialogs in pitivi: "Project Settings" and "Render". I'll just get right to the point: Screenshots!

Render dialog showing video tab

Render dialog showing general tab
Project settings showing video tab

I spent most of my time today on project settings. I'm still not quite happy with it, as the current design is, well, huge. I think I could make it a little narrower and shorter. But that's more-or-less what I'm after.

The properties in the video tab are inter-dependent. One feature I wanted was for the widgets to ripple-update like a spreadsheet. To make this easier I wrote a class that manages a graph of widgets that you give it. Each widget can have an update function, and when the user changes one of the widgets, the the update functions are called starting from that widget in breadth-first order. During the traversal, updates are ignored to prevent infinite loops of signal emissions. This means I get my ripple updating behavior, but I only have to write a single, naive update function for each widget without worrying about keeping other widget values in sync.

Tomorrow I will implement presets, make sure the dialogs remember their state, and then test the hell out of them.

4 comments:

Anonymous said...

NICE.

bemasc.net said...

The aspect ratio of standard PAL is 4:3, not 5:4. For 720x576 video, this requires a pixel aspect ratio of 16:15.

In fact, the truth is even more complicated than this, but the bottom line is that anyone producing 720x576 video with square pixels is almost certainly Doing It Wrong.

brandon lewis said...

You are quite correct. I should have been more careful with my screen shot :P. In fact, I will fix this straightaway so that people don't get the wrong idea.

At this point I am not worried about the values being correct, but at getting the layout and behavior right.

jech said...

Since PiTiVi (at least I feel it this way) is targeted mainly at beginners I would suggest following changes:

In the "General" tab, I would replace the "Container" field with a preset selection like (DV, DVD, DivX, WebM, AVCHD etc.) These presets would contain the right combination of container, video compression and audio compression. There would be also a custom preset, which would allow the user to manually select any possible combination of these 3 formats.

Also the "General" tab should contain target size (with presets like CD, 2 CD, DVD, DL DVD and of course custom size).

In the Video tab I would show full resolution or vertical resolution (240p, 480i, 576p, 1080i etc.) And instead of codec I would show "Format". If the user selects for example MPEG-4 ASP, he should be able to choose libavcodec or XviD in the "Advanced" window.