For this first day, I'll need to code a quick render preview widget.

I already started to split the VLMC's RenderWidget into 2 separate classes : one for the clips/media preview, one for the timeline/workflow render, but the second isn't implemented yet, this will be my first day job. I'll post along the day, as the code is written :)

In order to provide a little more genericity and flexibility to the code, i'll add an generic class on the top of the two described above.

First surprise, the Q_DISABLE_COPY macro disable the default ctor... this is quite normal since this maccro adds a private copy ctor, and as soon as the compiler sees a user defined constructor, it disable every default ctor... so normal but surprising :p

After a quick code fix, it works as good as the old version :)

I was kinda scared by the idea of having pure virtual slots, but this works just fine. I really do love Qt more and more every day :o

So now, VLMC has a GenericPreviewWidget... it just needs to be used (as the generic type) a little more, and moreover, it needs a RenderPreviewWidget implementation :)

10:33AM : VLMC now has an "independent" GUI for its two renderers. Code has been pushed to GIT, and now the fun part begin, with the render preview implementation, which depends on in-vmem codec, freshly fixed by etix :)

01:00Pm : invmem isn't as simple as I expected :(
At the moment, it just displays a white screen, and it seems that the clip workflow that wasn't tested isn't functionnal... Hopefully this will be solved soon :/

01:05Pm : woops, I just didn't remember how to use memset anymore... shame on me, the problem definitly doesn't come from the invmem codec...
Next step will be to export what the vout:vmem save into the memory, and see if that's correct...

2:15Pm : Damn it.... each time a graphic window pops over VLC, my X-server crashes... I hope that the recent Xorg update (1.5.3-r5 -> 1.5.3-r6 on gentoo is to blame, but I don't feel like it :/ )
It reminds me of a bug I came across last year, each time a graphic window would cover an opengl window, X was completly frozen... the only solution was to reboot the computer, and it looked like the intel graphics drivers were to blame... i *really* do hope that this won't be the case here :/
This hasn't been solved yet... that's sad :/

3:30Pm : Hurray it works !
We now have a basic clip workflow that output a clip to a video buffer, and a main workflow that asks the first track to output the first clip output, and output it through the render preview widget, using the invmem codec. Basically, it just reads the video at the moment, but now our primary workflow is functionnal.
Next step : we should use Clip instead of Media. A clip is a representation of a media inside the timeline, and can cover just a part of it, or the entire media. Inside of the timeline, we must use Clip, but we use Media at the moment.
This implies that we have to handle at least :

  • Videos that doesn't start at "0"
  • Videos that ends (this case hasn't been tested yet, funny isn't it ?)
  • Videos that ends before the real end of the video
  • Generating a Clip from the Media, using the GUI.
  • Probably many other things :)