The first blog post I made for this project was about the cheese-avatar-chooser that was integrated in Empathy some time ago. Working this week at the effects window an idea bumped into my mind...
Why not have also a default images window from which to choose from?
Initially the code for avatar chooser was inspired from gnome-control-center but I only added support for setting an avatar from the camera. The first version of it looked like this:
Yesterday I managed to integrate also the um-photo-dialog from gnome-control-center. I didn't send it for review yet because I still have to clean the code. I will see what the Empathy guys have to say about it but in the meantime ...here you are a screenshot :
building a black hole
Sunday, August 21, 2011
Friday, August 19, 2011
Cheesy effects attack Empathy
These days major changes are happening in Empathy. Some of them are happening in the GUI where people are making stylish redesign of the video call window. In the meantime I finally managed to implement the effects window from Cheese to Empathy.
In a few words:
Next to the camera button I added a new shiny button for video effects.
Hmmmmm...Let's add some color to this face...maybe this will do :
Cooooooolish !!!! >:P
Hmmmmm...Let's add some color to this face...maybe this will do :
Cooooooolish !!!! >:P
If you click on it (MUA-HA-HA! you wouldn't dare to push teh button! ) the effects window will show up, just like in the image bellow.
You can choose from a variance of six effects per page one that you like the most just like in this case :
Voila! :D You can have a video conversation with the coolest effects :) !!
I still have to implement the sliding from one page of effects to another and I think that it will be ready by tomorrow. Also, if you would like another button instead of teh button please let me know.
The code was sent for review and I really hope it is accepted.
The code was sent for review and I really hope it is accepted.
Here you can find the repository: https://github.com/raluca-elena/empathy-cheese/tree/cheese-video-effects
So much to do... so little of this summer left :P...
Coming soon! Be prepared for a massive attack of cheesy effects :D !
Wednesday, August 3, 2011
a camerabin2 story
These past two weeks I went just like Alice... in camerabin2 Wonderland :p
Cheese needed to switch from camerabin to camerabin2 which is more flexible than the previous camerabin version. For the switch there were some adjustments to be made. I tried to come up with a decent solution :D
Some work done is listed bellow :
1. Support for viewfinder and effects preview
There were minimal changes to be done to integrate camerabin2. These included providing support for both viewfinder (Cheese's main window) and effects preview.
Camerabin2 requires something special from its "camera-source". For that "wrappercamerabinsrc" module was used so that "camera-source" could be created.
In particular for camera-source the video filter applies to all modes (If the effect is applied on camera_source, the effect will be available in viewfinder and image/video capture modes)
2. Renaming needed
As in every porting some renaming had to be done :
"filename"(cheese-camera) to "location"
the signals were renamed from capture-start/stop to start/stop-capture
3. Thumb-view handling
In "cheese-thumb-view.c" we had to handle the case of photo/video moved to monitored directories.
The use case is the following :
Camerabin2 creates a temporary file, writes data into it and finally it moves it to the destination path.
Without G_FILE_MONITOR_SEND_MOVED to g_file_monitor_directory, moves would be sent as DELETE + CREATE. Unfortunately, we would also get CREATE events when the temporary file would be created. We cannot listen to CREATE events as temporary files would be CREATED and then CHANGED and the thumb-view creation code would work with bad data .
By using G_FILE_MONITOR_SEND_MOVED we get a single event when the file is moved. As the file monitor ignores files with unknown extensions (as is the case for the temporary files created by camerabin2) we could only just append the new file.
Because the user might also move a picture/video manually from the Pictures/Webcam or Videos/Webcam directories, removing the old file from the thumb-view keeps it up-to-date with the state of the file system.
If Camerabin2 switches away from the create-temp+move approach, to the camerabin one (create the destination file directly), we're prepared to handle that code with G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT.
4. Switching from signal to bus message
For performance reasons the signal "image-done" from camerabin changed in camerabin2 to a bus message.
5. Fixes in camerabin2
Last but not least I managed to fix pixbuff-only capture (capturing and storing an image only in memory used for an avatar), but Thiago Santos provided a better solution.
This week I also developed other patches for camerabin2, most of them clean-up patches.
MUA-HA-HA!!! :p
Cheese needed to switch from camerabin to camerabin2 which is more flexible than the previous camerabin version. For the switch there were some adjustments to be made. I tried to come up with a decent solution :D
Some work done is listed bellow :
1. Support for viewfinder and effects preview
There were minimal changes to be done to integrate camerabin2. These included providing support for both viewfinder (Cheese's main window) and effects preview.
Camerabin2 requires something special from its "camera-source". For that "wrappercamerabinsrc" module was used so that "camera-source" could be created.
In particular for camera-source the video filter applies to all modes (If the effect is applied on camera_source, the effect will be available in viewfinder and image/video capture modes)
2. Renaming needed
As in every porting some renaming had to be done :
"filename"(cheese-camera) to "location"
the signals were renamed from capture-start/stop to start/stop-capture
3. Thumb-view handling
In "cheese-thumb-view.c" we had to handle the case of photo/video moved to monitored directories.
The use case is the following :
Camerabin2 creates a temporary file, writes data into it and finally it moves it to the destination path.
Without G_FILE_MONITOR_SEND_MOVED to g_file_monitor_directory, moves would be sent as DELETE + CREATE. Unfortunately, we would also get CREATE events when the temporary file would be created. We cannot listen to CREATE events as temporary files would be CREATED and then CHANGED and the thumb-view creation code would work with bad data .
By using G_FILE_MONITOR_SEND_MOVED we get a single event when the file is moved. As the file monitor ignores files with unknown extensions (as is the case for the temporary files created by camerabin2) we could only just append the new file.
Because the user might also move a picture/video manually from the Pictures/Webcam or Videos/Webcam directories, removing the old file from the thumb-view keeps it up-to-date with the state of the file system.
If Camerabin2 switches away from the create-temp+move approach, to the camerabin one (create the destination file directly), we're prepared to handle that code with G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT.
4. Switching from signal to bus message
For performance reasons the signal "image-done" from camerabin changed in camerabin2 to a bus message.
5. Fixes in camerabin2
Last but not least I managed to fix pixbuff-only capture (capturing and storing an image only in memory used for an avatar), but Thiago Santos provided a better solution.
This week I also developed other patches for camerabin2, most of them clean-up patches.
MUA-HA-HA!!! :p
Friday, July 15, 2011
a Cheese state of mind
Long time no blog :P
How is the GNOME's Cheese doing? Well, not that good not that bad...surviving ... flying all the way from Paris to a little town in Romania and becoming from a French cheese a Romanian one :D and..getting better.
Finally after a change of air and a hole lot of digging in both Cheese and Empathy things got clearer... that doesn't mean they got easier...As I posted in the activity reports there is a big difference in the way Empathy and Cheese play with the video stream. The first problem was to find a common ground, to understand things like: what is Clutter, what is Gstreamer and how it works and mostly... what's the magic beneath camerabin and camerabin2.
Here's the big picture:
The effect previews window in Cheese now is self adjustable. The video camera in Empathy was reimplemented using Clutter(both I and Emilio worked in parallel on it but his implementation was better and was the winning one) and also Cheese camera is being re implemented using camerabin2.
In the bloody war with Gstreamer and Clutter some other bugs were unmasked and defeated. This nasty ones were found in glib and also in clutter. You must have no fear because they were punished and will produce no harm again.
How is the GNOME's Cheese doing? Well, not that good not that bad...surviving ... flying all the way from Paris to a little town in Romania and becoming from a French cheese a Romanian one :D and..getting better.
Finally after a change of air and a hole lot of digging in both Cheese and Empathy things got clearer... that doesn't mean they got easier...As I posted in the activity reports there is a big difference in the way Empathy and Cheese play with the video stream. The first problem was to find a common ground, to understand things like: what is Clutter, what is Gstreamer and how it works and mostly... what's the magic beneath camerabin and camerabin2.
Here's the big picture:
The effect previews window in Cheese now is self adjustable. The video camera in Empathy was reimplemented using Clutter(both I and Emilio worked in parallel on it but his implementation was better and was the winning one) and also Cheese camera is being re implemented using camerabin2.
In the bloody war with Gstreamer and Clutter some other bugs were unmasked and defeated. This nasty ones were found in glib and also in clutter. You must have no fear because they were punished and will produce no harm again.
Tuesday, May 24, 2011
say cheese...you've got your avatar :)
I just made my first patch for Empathy and I hope it gets accepted :p .
In a few words the functionality is the following:
Open Empathy and try to change your avatar.
In the dialog that typically had the option of browsing for an image I added another "wonder button" called "Take a photo..." If you have the courage to push the button( ...MUA-HA-HA!! ... you wouldn't dare pushing that button!!! :p ) another dialog opens, the camera dialog from Cheese. Finally you can take photos till you look handsome enough and have the coolest avatar ever :D
~ The End ~
In a few words the functionality is the following:
Open Empathy and try to change your avatar.
In the dialog that typically had the option of browsing for an image I added another "wonder button" called "Take a photo..." If you have the courage to push the button( ...MUA-HA-HA!! ... you wouldn't dare pushing that button!!! :p ) another dialog opens, the camera dialog from Cheese. Finally you can take photos till you look handsome enough and have the coolest avatar ever :D
~ The End ~
Thursday, May 5, 2011
Empathizing with the Gnome's cheese
This blog is about the last Pokemon series :D...Just kidding ...Actually I am gonna write about "the making of" GNOME's Cheese, the most popular feature of Empathy...in other words: Integrating Cheese with Empathy.
Cheese is a Photobooth-inspired GNOME application for taking pictures and videos from a webcam. It also includes fancy graphical effects based on the gstreamer-backend.
You can find more details by just clicking the link bellow:
http://live.gnome.org/Cheese
http://live.gnome.org/Empathy
- In case there's somebody that is not familiar with GNOME's Cheese:
Cheese is a Photobooth-inspired GNOME application for taking pictures and videos from a webcam. It also includes fancy graphical effects based on the gstreamer-backend.
You can find more details by just clicking the link bellow:
http://live.gnome.org/Cheese
- You might also consider in changing your messaging program to this :D :
http://live.gnome.org/Empathy
Subscribe to:
Posts (Atom)