[PiTiVi] Progress update

Refreshing everyone's memory, PiTiVi is a video editor that offers user interface views for simple and advanced users. My project for the summer is to help complete the simple interface view, which looks a lot like the interface of a free video editor from a certain computer company which shall remain nameless. PiTiVI is organized around the concept of a "time line" which contains multiple "clips", or "media sources" in PiTiVi terminology.

Last week, I focused on the relatively easy task of completing the source view widgets (the draggable icons for each movie clip in time line). This week, I'm focusing on the SimpleEditingWidget, which appears briefly in the time line and is supposed to allow users to set the start and stop points of each clip. Up until now it has merely been blank.

This task is quite a bit more complex than finishing the SimpleSourceWidgets. The source widget behavior is managed by the SimpleTimelineWidget, so all that had to be done was to add the gui components to them, and correct the aspect ratio problems. The SimpleEditingWidget, on the other hand, does some deceptively complex manipulations of the internal PiTiVi timeline, and I am going to have to do some reading on gstreamer, pygst, and gnonlin. Not to mention that pitivi is heavily based around the "observer pattern", so merely trying to understand the source code involves following gobject signal paths through multiple classes and files. There seem to be many pitfalls related to incorrectly handling signals (for example, infinite loops when one signal handler emits a signal that re-emits the original signal). Moreover, I have to design the widget's code from a high level perspective, rather than modify existing source. For now, I am satisfied to have the UI layout for the SimpleEditingWidget essentially complete (minus cosmetic tweaks), and have the widget show and hide properly.

Development was proceeding fairly smoothly until lack of debugging features proved to be a limitation. I decided to switch from Vim to GNU EMACS, which does have an initial learning curve. Another issue which has become a problem is that my SVN account was never activated, so I am having to submit patches against SVN via email.

That's it for this week

Stay Tuned,


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