Monday, March 12, 2012

Printing Multiple Photos in a A4 paper

There are a lot of blogposts complaining about the several applications available in order to print multiple photos in a single paper, underlining their drawbacks.

So, here is why I didn't have a nice time yesterday night:

I tried the applications photoprint and gnome-photo-printer (and tried other ones supposed to do it, but didn' t realy) and it kept printing, only one, distorted photo per image (nothing to do with the Print Preview, the same applications was giving me before actually printing) and in black and white (although I wanted coloured).

Firstly, I thought it was the printer' s fooling around (shit happens), then I thought that my brand new cartridges weren' t aligned properly etc etc, just to find out that what was causing the problem (PROBABLY- but I won't waste more time, ink, photo paper, patience to exhaustively test the thing :)) was the fact that I had chosen "High Resolution Photo" in the Image Quality (in the Printer Settings) and this made all the applications go wild (even Image Viewer), when it comes to printing.

I am using Ubuntu 11.10, Unity and I have an HP Deskjet All-In-One machine.

P.S. Finally, what worked for me is to save in a .jpg file the A4 paper with the photos I want and then open and print it from whichever Image Viewer application, Image Quality: "Normal Color".

P.S.2: And today, I wake up to find that my email account has been hijacked. Well, I guess I should stay away from machines for today...

Wednesday, March 7, 2012

What's new!

Ladies and gentlemen, here we are again at this moment that I must write a blogspot and I certainly feel so reluctant about doing it, that I typed in google "blogophobia" and guess what? It does exist of course! So much fun in internetland (and you can't come)!

PiTiVi activities: The last period, I have been trying to "polish" my undo_redo branch, see what does work and what DOESN'T want to behave yet! The effects undo/redo part is finally working but there are still some bugs that I didn't manage to crash at the corner of the room. (The most annoying one is the case where you are moving a clip horizontally in the timeline)..


I realised that this period of getting lost in a bug-hunting, can get really boring and energy-consuming and this feeling of fruitless can get over, so I decided to leave these bugs as they are for the moment (maybe gain their trust this way and guide them at the corner of the room;)) and do something more funny, to refresh my head a bit! This something, will be the implementation of text titles in PiTiVi. Nekohayo has already started working in the user interface functionality of text titles and I am looking at inaugurating the GES relative object in the project.

In case the scientific term "text titles" is not clear, it is this feature that enables you to add subtitles, titles and names during people's presentations, like another layer (overlay) in your clip, but also add a text with just a font, an image, that doesn' t cover your clip (text title).

Thursday, February 2, 2012

Gstreamer HackFest 2012 in Malaga

Last week, I attended the GStreamer HackFest in Malaga and it turned out to be a very good decision to be there! First of all, I got to meet my two mentors for the OPW (Jeff and Thibault) and Edward, who first started PiTiVi and work closely with them for 3 days. Also, I got to meet a lot of people working on the porting of several applications to GStreamer 0.11. It was a great HackFest and I thank all the people that made it happen.

Working closely with the other PiTiVi team members, offered me the opportunity to work in a more efficient way (by clarifying many things that seemed to confuse me) and get to feel the team spirit (which is a greeeat power of motivation). Meeting all these people made me demystify what exactly is the challenge and the advantages to come while porting PiTiVi to GES. The challenge is that the development of GES is being done almost simultaneously with the porting, so some features/functions could be still not implemented and the advantages are that after the porting advances, the code of PiTiVi will be cleaner and smarter.

As far as the undo/redo functionality is concerned, the MediaLibrary and Timeline parts are working now fine and I am on the Effect part, which must be finally ok very soon (hope today...).

Thursday, January 19, 2012

Quick Description of Modules (PiTiVi) - and do I see them used-

Core

GLib
low-level - Provides us with the implementation of fundamental types and algorithms. It is a base upon which, everything is constructed.
-In PiTiVi, I see the GLib basic types (gboolean, gchar, gint, gfloat, gdouble etc)-

GObject
With the GObject, GLib provides us with the implementation of an object-oriented framework for C.
-In PiTiVi, I see the gobject functions (http://www.pygtk.org/pygtk2reference/gobject-functions.html)-

GStreamer
A multimedia framework that allows us to do anything multimedia-related. It is very flexible and uses elements
that are packaged in the form of plugins.
These elements can be codecs/demuxers/lmuxer/effects etc.
One set of these plugins are the GNonLin plugins, which are the ones who implement anything related to the logic
of video editing in GStreamer. Mainly, handle the timing of reading different multimedia files.

GES (GStreamer Editing Services)
A library created on top of GNonLin plugins, making the use of GNonLin plugins easier to use. It wraps the
GNonLin elements by offering an API of higher level.

In Pitivi, the GNonLin plugins were used directly, up to now and this is why the porting to GES will facilitate
a lot the design of the project.
So, we are using GStreamer via GES and the most objects used are GES ones (even if they come from GStreamer classes).

UI

GTK+
Toolkit for creating graphical user interfaces. Providing standard widgets and event handling. Based also in GLib.

GooCanvas
One of GTK+ widgets, used for drawing.

All of these components are based in GLib and communicate through it and its signals.


So, if I just want to add quickly GES in the PiTiVi' s wiki diagram (https://wiki.pitivi.org/wiki/Architecture), I would add it here:





Friday, January 13, 2012

Pitivi: Undo / Redo Functionality (GES Porting)


So, after spending some days "beating around the bush", trying to integrate myself to the project by following the team' s work, getting to understand the backbone of the project' s code, I get deep into my task, the undo/ redo functionality.

Firstly, I thought of checking about the undo/redo philosophy in applications in general, which helped me get what was implemented in Pitivi_0.15, undo/redo with a stack approach: (en gros) Having an undo stack where every action taken by the user is logged and saved, so every time he wants to return to the previous state, the undo stack is popped. For redo also, the current state is being saved into the redo stack, before an undo is being performed. So, if we regretted having "undone", the redo stack is popped and the new current state is pushed to the undo stack.

What helps me a lot in understanding the logic of the undo implementation in pitivi_0.15 is to check the code at this version while the undo is still working. Now, with the new restructurate version of the project though, the undo classes and code are grouped together under a specific /undo folder.

While Thiblahute was helping me to get started with my task, he already gave a patch which enables the undo/redo functionality in the MediaLibrary:

http://git.pitivi.org/?p=pitivi.git;a=commit;h=418f71b3f7805270df760ec10cb5ed0a7027786e

(which had to do with the use of GstDiscovererInfo in the place of PitiviFactory, information that I have but I don't actually understand what it implies, so I should get more informed about it.....Hmm, if there will be things related to that that don' t allow undo to work now).

And now I am looking for the next step which will be the undo in the Timeline.

In order to work better, I am getting used to the debug system, setting breakpoints and even just printing.