[weekly report] week 7: Raw Processing in F-Spot



Hi all,

I just came home from GCDS, so it's time for the weekly report. And this
one will get slightly technical.

RAW processing is a very technical task, partly because of the very
complex algorithms involved, but also because every camera vendor likes
to use a different file format, which might even differ depending on the
camera model.

This leaves two options for adding RAW processing:
1. Write a basic C# RAW library and offer support for only a few cameras
2. Reuse an existing library

The currently available implementations are either highly cluttered and
complex (dcraw) or immature (libopenraw). Implementing a new library is
also not very doable in this timeframe. It seemed like there was no
ideal way of solving this. As a compromise, I decided to use LibRaw.
This is a wrapper library around dcraw, to hide it's horrible internals
(as far as this is possible).

After talking a step back from solving the problem that most of our
loading is blocking (we'll get to that at some later point), I started
writing a GObject wrapper around the subset of LibRaw API we need, for
which I will then create C# bindings.

This is almost done, which means I can hook it into F-Spot soon. Last
week I abstracted the loader infrastructure in F-Spot (in between of
GCDS and sleep), such that it is possible to use different loaders per
file format (using a Factory pattern). The LibRaw based loader will then
be used for RAW files.

Getting the C# bindings ready, fighting with autotools to get it
building in the project tree, hooking up and ironing out the bugs are
what's on the menu for this week. And writing some blog posts.

Cheers,
   Ruben

PS: I had the pleasure of meeting some of the GSoC admins at GCDS. I can
only conclude that those who didn't attend were wrong ;-)


--
Ruben Vermeersch (rubenv)
http://www.savanne.be/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]