Wednesday, March 4, 2009

Saya-VE developers' meeting #5 chat log

<rick_777> This meeting is officially open.
<LubomirD> Ok!
<rick_777> First of all, I'd like to congratulate those who joined.
<rick_777> Our new recruits are Brad Garrick (who is having connection problems but was about to join)
<mau5> thanks, glad to join you, for me it;s my first time
<LubomirD> thank you
<rick_777> , Lubomir Dobrovodsky and Alexandru Tirvea
<RigoCalleja> Rick: I guess it's Tirdea
<rick_777> I'd also like to congratulate Alexandru (can we call you Alex?) for his dedication and enthusiasm, and for helping me fix a bug
<mau5> yes , Tirdea is correct :-)
<rick_777> oops
<rick_777> Tirdea
<rick_777> my mistake
<rick_777> Now, let's get to business
<rick_777> As you can see, we're in the middle (or three quarters, actually) of our conversion from wxWidgets to Qt
<rick_777> so development per-se is stalled until we finish the conversion
<LubomirD> ok
<rick_777> this is the reason why there hasn't been a lot of development activity. Don't worry, things will pace up with time.
<rick_777> So, I'd like to ask who has been having troubles installing and compiling Saya
<LubomirD> I am trying to compile it on Windows XP and it is still not possible for me.
<mau5> i posted in a thread a small how-to about compilling Saya on a windows 2000
<rick_777> Lubomir: Have you been updating the source code on a daily basis?
<rick_777> from the SVN repository
<LubomirD> Yes
<rick_777> Ok. I think Alex managed to compile Saya on WinXP, right?
<mau5> yes
<rick_777> Please share, what did you have to do?
<mau5> first you have to install gettext
<RigoCalleja> Rick: Alex compiled it on Win 2k If I remember correctly
<rick_777> 2k is nearly the same as xp
<rick_777> there's not that much of a difference
<mau5> yes, i compilled on win2k but i think there are no significant differences between various wins
<mau5> yes
<rick_777> so what steps did you have to do? Set up environment variables? Change code?
<rick_777> project settings?
<LubomirD> Ok, I wil try to follow correctly the instructions of Alex, maybe I just misesd something
<rick_777> etc
<mau5> but as a small hint, take care to install gettext directly in the mingw directory
<rick_777> Speaking of compiling...
<LubomirD> Aha, ok, I will have to check this
<rick_777> I think you're the best person to do this task Lubomir
<rick_777> remember the Developers' guide that I wrote?
<LubomirD> yes
<rick_777> That one's designed for wxWidgets.
<rick_777> What do you think about rewriting it for Qt4 ?
<LubomirD> Thats a good task to do
<rick_777> you'll write the windows version, of course
<RigoCalleja> Rick: Btw the project's website still references wxwidgets
<rick_777> this way I can use the extra resources (you) while Alex, Rigo and I concentrate on getting the conversion finished
<LubomirD> Of course, I will do it
<rick_777> perfect
<rick_777> I will e-mail you the .odt
<LubomirD> Great
<rick_777> (You'll need to install )
<LubomirD> No problem, I have it
<RigoCalleja> Lubomir: or sun's odt plugin
<rick_777> great! :)
<RigoCalleja> lubomir: did I assign you a task in berlios?
<LubomirD> I'm using OOo 3 :)
<rick_777> perfect! * * * * *
<LubomirD> Rigo: I think no... I think I forgot to send you my profile - it is ld_orifiel
<rick_777> Now, about the tasks to be done
<RigoCalleja> Lubomir: Thanks I'll add you to the project
<rick_777> Rigo will start giving out tasks to people on
<LubomirD> Rigo: thank you
<rick_777> The official dev site is
<rick_777> just in case you missed it.
<rick_777> no, wait
<rick_777> there. The https is *very* important.
<rick_777> Before we go on with the tasks, I'd like to give you a glimpse of how Saya code works.
<rick_777> on the SVN code, there are various directories:
<rick_777> saya/
<rick_777> saya/core/
<rick_777> ui/
<rick_777> ui/ui
<rick_777> ui/moc
<rick_777> plugins/
<rick_777> resources/
<rick_777> saya/ contains the library for editing the in-memory objects (clips, effects, etc)
<rick_777> saya/core contains the core routines: Multi threading, I/O, file access, etc.
<rick_777> ui/ contains the code for the GUI.
<rick_777> ui/ui contains the .ui.h files that are generated with Qt4-designer
<rick_777> (accessible in the menu Form -> View Code... then copied and pasted)
<rick_777> ui/moc contains the .moc.h files generated with the moc-qt4 commandline utility
<rick_777> these are the ones handling the events
<rick_777> The reason for generating the .ui and .moc files separately is so that we won't need the qt tools (only the libraries) to compile the source code.
<rick_777> this is a bit annoying but it's worth it, as it makes the code compatible with all makefile generators.
<rick_777> the resources/ directory contains the qt resources (also generated beforehand) in .rcc format
<rick_777> Lubomir, you may need to write about that in the Dev's guide, too
<LubomirD> Rick: I understand
<rick_777> resources/ also contains the .qcc files (these are the ones that get compiled into .rcc) and the images (usually .png or .jpg)
<rick_777> That's about the code paths
<rick_777> About the code structure:
<rick_777> what we call the "Core" is a set of classes and functions needed for low-level stuff. As I said, it's in the saya/core/ directory.
<rick_777> On top of the Core is the saya library (which isn't compiled as a library yet) for handling the objects.
<rick_777> The saya library contains some important classes:
<rick_777> VidProject (will have a project's info),
<rick_777> ProjectManager (which opens and saves projects)
<rick_777> PresetManager (takes care of presets)
<rick_777> and PlaybackManager. This is the most recent one, and will take care of video/audio playback objects
<rick_777> basically, we have a 3-tiered system:
<rick_777> CORE / Objects / UI
<rick_777> this is to keep the code portable.
<rick_777> I've also added into the core specialized functions for saya-specific event handling
<rick_777> (which don't depend on Qt or wxwidgets event model)
<rick_777> string handling
<rick_777> etc.
<rick_777> Right now, what we're doing is converting the wxWidgets code in the ui/ directory to use the Qt functions.
<rick_777> What took me the most effort was adapting the event handling stuff, wxWidgets and Qt have completely different event models. But you won't have to worry about it, it's finished.
<rick_777> As soon as we finish the conversion, we have some pending tasks:
<rick_777> * Finishing the playback engine so that it reproduces a hardcoded animation into the screen
<rick_777> * And using 3rd party codec libraries to read .avi files, etc.
<rick_777> But right now, we need only to worry about the UI
<rick_777> This will be a very important step, because we'll get back to the UI later: We'll need to drag and drop clips on the timeline and do all kinds of fun stuff with them.
<rick_777> So we need to eat and breathe Qt
<rick_777> Any questions so far?
<RigoCalleja> "eat & breath" lol
<RigoCalleja> Rick: No questions here
<LubomirD> No questions right now
<mau5> it's ok for me
<rick_777> perfect.
<rick_777> I guess this is all for now. Let's summarize.
<rick_777> Tasks for Lubomir: Get to compile Saya on Windows with Qt, and rewrite the developers' guide for Windows.
<LubomirD> got it
<rick_777> Tasks for Rigo: Convert the New Project dialog to Qt
<rick_777> Tasks for me: Convert the rest of the main window to Qt
<rick_777> Tasks for Brad: Get to compile Saya on Windows with Qt, and start learning Qt and do some practice projects separately.
<rick_777> brb
<RigoCalleja> Rick: Alex is missing
<mau5> i'm here
<mau5> :)
<rick_777> Oh
<mau5> waiting for my tasks
<rick_777> also, everyone please download the Qt Assistant
<RigoCalleja> Alex: task assigment I mean
<rick_777> so you can have an offline-help.
<rick_777> Alex: I'm still wondering what tasks I can give to you...
<RigoCalleja> Rick: remember you assigned the gmerlin task to Alex
<rick_777> Ah yes. I guess you'll have to stick to research.
<RigoCalleja> Rick:it's on BerliOS
<mau5> yes
<mau5> last week i just played with qt/gmerlin
<rick_777> perfect!
<mau5> trying to seek a avi and rendering the frame in a QPixmap
<mau5> it's almost done...
<rick_777> Okay then :)
<mau5> the frame meaning a .bmp in the first stage
<rick_777> keep up the good work. When you finish I'll see if i can give you another task.
<mau5> :P
<rick_777> Also, help Brad and Lubomir with any Saya compilation doubts they have
<mau5> sure
<rick_777> I guess that closes the tasks section.
<rick_777> Any other questions / comments?
<RigoCalleja> what about agustin and the guy from India?
<rick_777> Agustin had told me in a chat 2 weeks ago that he didn't have much time to connect on Saturdays
<rick_777> And there was a guy from India who wanted to join the project
<rick_777> I told him to join the chat
<rick_777> And obviously, he's not in here :)
<RigoCalleja> Rick: ok
<rick_777> Generally I'm wary of new recruits
<rick_777> especially if they don't show up to the meetings
<rick_777> by the way, Alex. Depending on your performance this month,
<rick_777> we'll give you write access to the repository.
<rick_777> :)
<mau5> ok, i'll do my best
<rick_777> Any other questions?
<RigoCalleja> Rick: no questions here
<LubomirD> no...
<rick_777> perfect.
<rick_777> This meeting is now closed.
<rick_777> *bang* :)
<LubomirD> Thank you all for this meeting and have a nice weekend!
<mau5> have a nice weekend you too
<rick_777> you too
<RigoCalleja> Same to everyone

Saya developers meeting #5 (2009-02-28): Summary of Activities

This is a brief summary about what has been discussed in the fifth Saya-VE developers meeting.

About the team:

* Four new developers joined:
- Alexandru Tirdea from Romania. Alexandru has been very active since the day he joined, and has already helped me to tackle a few bugs. It's most probable that the next month he'll be given write access to the repository.

- Lubomir Dobrovodsky, from Slovakia
- Agustin Rubio from Spain (who couldn't attend the meeting)
- Brad Garrick from the U.S. Brad couldn't connect to the meeting on IRC but was online at the time.

* Rigo has been promoted to project administrator. His management skills are impressive, and he keeps the team in a fast pace.

About the tasks:

* To help the newcomers get to know Saya a bit better, I gave an explanation about how Saya's code is written and organized.

* The Qt conversion is around 50% done. The welcome dialog is completed, the playback controls were done by Rigo and I'll adapt them to remake the video player.

* Tasks for me: I will be working on converting the main window and the video playback controls. If I finish soon, I'll go on fixing the video playback framework.

* Tasks for Rigo: Convert the New Project dialog to Qt

* Tasks for Brad: Get to compile Saya on Windows with Qt, and start learning Qt and do some practice projects separately.

* Tasks for Lubomir: Write the developers' guide for Windows (it needs to be changed as now we use Qt, not wxWidgets)

* Tasks for Alex: Finish the research and report on gmerlin and codec libraries.

* Tasks for Agustin: Learn Qt, I guess (we ran out of tasks :P )

About the next meeting:

* The next meeting will take place on Saturday, 28 March 2009, 11AM CDT (-0600).