Archive for the ‘plan’ category

XOverlay is (almost) working now. Export is next.


Now the xoverlay works finally (and the dynamic pads are solved too, if you missed the comment I wrote on the “Not yet”-post.)(UPDATE: Nope. The dynamic pads are initially connected correctly now, but as soon as the user tries to switch to another movie and then back again to the original one, the pads don’t get connected. And when the user repeats this action once more, the program crashes). It was really difficult and my current branch of gtkD and gstreamerD are quite hand edited on some parts now. I’m not sure how to do some of that stuff automatically with gtkWrapper, but it doesn’t matter on the functionality part.
The only thing not quite working with the xoverlay is the expose(). For some reason it doesn’t really have an effect, and if some other window overlaps it, there will be hole in the video overlay. So you’ll have to resize the monitor widget to get it working normally again. But that’s of minor importance for now. (Thanks to many people over at #gstreamer and #d).

Next is export. I hope I get it sorted out by 30th. The release is going to be a wacky binary release inside a And you’ll propably need to put the two libraries (libgtkD and libgstreamerD) to somewhere inorder for it to work (And it will also be made on Ubuntu Dapper, but I’ve tested that it works on Feisty too). I’ll also release my branch of gtkD and gstreamerD as a, as I don’t have time to merge it with the official version now. The release will be almost usable for something, but totally alpha. But you’ll hopefully be able to see some good(UPDATE: mediocre 🙂 ) stuff there too.

The plan D


Hey, you, programmer!

Pihlaja is written in the D programming language with libraries such as GStreamer for multimedia playback, and Duit (D bindings for GTK+) and Cairo for the user interface.

In 2007 I’m going to make Pihlaja actually do something usefull. I’m trying to gather a team of 4 to 6 developers who could participate in the project this spring. The timeline is set for 6 months, so we should have something working by the end of June or July. So if you would be interested in joining the project – read on:

D is a relatively new programming language (started in 1999, 1.0 released in January 2007). It produces fast native programs just like C or C++, but it’s a bit higher level language that looks a bit like Java or C#. It’s fast to develop for, and the programs run very fast too. Other languages that influenced D are Eiffel and Ruby.

The language and the reference compiler DMD, was designed by Walter Bright, whose merit is writing the first native C++ compiler Zortech C++. It could be said that D is a redesign of C++, the way it should have been written. There is also a GCC compiler version called GDC, which unifies the opensource DMD compiler frontend with the GCC compiler backend.

Here’s a timeline for the project. Containing the history since 2003, and the ambitious future plans for this spring.

2003 First version with C++, Gtkmm, timeline in OpenGL. Concepts evolving.
2004 My computer brakes. I make a rewrite of almost everything using C++, Gtkmm, timeline in libgnomecanvasmm.
2005 There is a blank space in my memory for this year.
2006 Another computer brakes. I get the C++ version working quite nicely, except that it lacks originality.
Too much is copied from existing editing applications.
summer 2006 Third computer brakes. I’ll start thinking of a rewrite in D. I write down the concept, and get some new
node-based ideas.
autumn 2006 Rewrite using D, Duit, and Cairo for the nodes/timeline.
December 2006 Start RTree; Scenes, Edits

Plans for this spring:

Time Plan Status
January 2007 Finish RTree; Scenes, Edits, Movies almost work. Done. RTree has some bugs sometimes.
February GStreamerD bindings video & sound working in a simple example app. Gnonlin testing. 16.2.2007 Bindings are working. They are not complete, but enough for most things. I’m able to play video (.dv and .mov!) and multiple simultaneous audio with GNonLin and D.
March Gnonlin somewhat working. Look at Jokoshers python code. Scenes, Edits and Movies user interface does what it should, but doesn’t necessarily work with real video or audio files yet. Wow, March went by. And a lot of stuff was made. Can’t remember what exactly.
April XML file format. Video and audio working with editing. Reorganizing. Moving to Tango. Did I start using subversion here? XML fileformat is defined, but it’s currently broken.
May Final user interface decisions. Polishing. Making everything work together. It’s almost usable.  
June More polishing. Fixing things that are still broken. Release Pihlaja 003 which can do something usefull: import a few common file formats and codecs like DV. Edit them using all the node-based, “movies are made of scenes” concepts. Export to DV files.  

So, basically I’m fed up with having a non-working video and audio editor and a bunch of supposedly original ideas that are nonexistent in other video or audio editing applications. And I’ve done so many rewrites of the system, broken too many computers, gotten on peoples nerves while always talking about my editor, that I’ve got to get this project off my system.

All those four years haven’t been so active in coding, because of my studies. But this spring might be a chance for me to work on Pihlaja almost fulltime. So I’m confident that I can do a lot of stuff. But I’m (almost) realistic, and think, that I can’t do it alone that fast.

If you’re a developer wanting to work on Pihlaja, the best node-based truly non-linear editor ever, get in contact through:

satelliittipupu at y***

All you need is some motivation, experience in C++, Java, C or other programming language. Team working skills. Willingness to learn about D, Cairo, GStreamer, Subversion, non-linear editing software development, RTrees, XML. Contact me, and I’ll send you a presentation of the new editing concepts involved.