Opened 14 years ago

Closed 14 years ago

Last modified 11 years ago

#7745 closed patch (fixed)

Support for raw photos in MythGallery

Reported by: Chad Parry <spam@…> Owned by: beirdo
Priority: minor Milestone: 0.24
Component: Plugin - MythGallery Version: 0.22-fixes
Severity: medium Keywords: raw dcraw photos
Cc: Ticket locked: yes

Description

Several users, including myself, would like to see MythGallery support raw photos. (See http://www.mythtv.org/pipermail/mythtv-users/2007-February/167851.html and http://www.gossamer-threads.com/lists/mythtv/dev/407038). That way I won't have to convert all my photos just for the sake of Myth.

I've created a patch to provide this support. The raw decoding is handled by dcraw, naturally. The configure script detects the presence of dcraw, and the behavior degrades gracefully if it is not present. Here are some sample configurations:

./configure # By default, if dcraw is present then it is enabled.
./configure --disable-dcraw # The dcraw feature can be explicitly disabled.
./configure --icc-profile=6131_PS.ICC # A custom color profile can be specified to improve raw decoding.
./configure --disable-all --enable-mythgallery --enable-dcraw --icc-profile=/usr/share/color/icc/6131_PS.ICC # This uses the same color profile as before, and all other plugins are omitted.

I just need someone to apply this patch so that this feature is available to everyone. Thanks!

Attachments (2)

dcraw.patch (13.1 KB) - added by Chad Parry <spam@…> 14 years ago.
Support for raw photos in MythGallery
0001-Patch-from-7745-add-dcraw-processing.patch (13.2 KB) - added by beirdo 14 years ago.
updated to svn [25661]

Download all attachments as: .zip

Change History (16)

Changed 14 years ago by Chad Parry <spam@…>

Attachment: dcraw.patch added

Support for raw photos in MythGallery

comment:1 Changed 14 years ago by otto at kolsi dot fi

This patch seems to work fine here (based on very quick testing). I've tried it with Canon CRW and CR2 RAW files and with couple of different file sizes. Haven't tested the ICC profile option yet. 15 mpix CR2 takes some time to decode but that's the way it goes with RAW files..

Would be nice to see this added to MythGallery.

comment:2 Changed 14 years ago by stuartm

I'd prefer to see this done as a QT plugin - http://doc.trolltech.com/4.4/qimageioplugin.html - is that something you would be interested in trying?

comment:3 Changed 14 years ago by paulh

Isn't that what he has already done?

Maybe we could use the dcrawlib or incorporate the dcdraw source into MythGallery rather than call an external program to decode the images?

comment:4 Changed 14 years ago by Colin Guthrie <mythtv@…>

I don't want to add fluff to this bug, so will make only this simple comment. I'm no expert on this issue but I remember following the dcraw code in Digikam project for a while and one of the mail problems was the licence of the application itself which caused various problems for linking against it in GPL programs etc. (which is why there was a library available at one point which basically wrapped up calling the external app IIRC). As my info is sketchy at best, if you want help and advice with raw support (including latest licensing issues) then Gilles Caullier of Digikam may be able to help. He's usually on Freenode IRC in #kde-imaging or #digikam rooms.

comment:5 Changed 14 years ago by stuartm

Paul you are right, sorry Chad! I made assumptions instead of looking at the patch.

comment:6 Changed 14 years ago by Chad Parry <spam@…>

Paul, I'm the first to admit that invoking an external executable is a crude way to call a library. It does provide a few advantages, however:
1) The only supported distribution of the dcraw code is in a standalone executable. Right or wrong, the author feels very strongly that this added layer of isolation improves the program's reliability.
2) The dcraw executable gets updated with new camera types and MythGallery will automatically benefit from that. Any other repackaging of the code ends up requiring extra maintenance and drifts out of sync with the original.
3) This method doesn't require us to import dcraw sources or link to dcraw binaries, so we are able to avoid the licensing issues raised by Colin.

So I would be happy to use a dcraw wrapper instead, but I wouldn't want to make the change unless there would be benefits to MythGallery. Since the current patch already works, I don't know of any potential benefits. Even the overhead of starting a new process is negligible, since unfortunately it takes several seconds to decode each image.

comment:7 in reply to:  6 Changed 14 years ago by paulh

Chad, We always try to avoid adding new dependencies if possible but in this case I think it should be acceptable for the reasons you give and because it's an optional dependency.

One other thing having to tell configure which color profile file to use is fine if you compile your own stuff but many people install Myth using packages so they wouldn't have a way to change it. Maybe it would be better when dcraw support is compiled in to add a setting on MythGallery's settings pages for it?

comment:8 Changed 14 years ago by Chad Parry <spam@…>

Paul, you are right about using a MythGallery setting for the ICC profile. I should never have created a build option for it.

Likewise, Stephen made a good suggestion on the distribution list. The embedded thumbnail inside the raw file could be used for generating the MythGallery thumbnails. It would make the decoding run much faster.

That said, I don't think I'll be the person to make those changes. I'm trying to cut back on the amount of time I spend maintaining my Myth installation. I recommend that this patch be accepted as-is. In the future someone can make those changes as a separate feature.

comment:9 Changed 14 years ago by beirdo

Owner: changed from Isaac Richards to beirdo
Status: newassigned

Changed 14 years ago by beirdo

updated to svn [25661]

comment:10 Changed 14 years ago by beirdo

I will need some test RAW photos to make sure this works before committing it. Unfortunately all my digital cameras are dead/stolen at the moment, so I have no way of generating any.

I will also move the ICC profile file into a setting before committing.

comment:11 Changed 14 years ago by beirdo

Status: assignedaccepted

comment:12 Changed 14 years ago by beirdo

Milestone: unknown0.24

comment:13 Changed 14 years ago by beirdo

Resolution: fixed
Status: acceptedclosed

(In [25667]) Adds support for the various raw photo formats as decoded by dcraw. As dcraw is only distributed as a binary, this actually creates a Qt plugin for mythgallery that runs dcraw externally.

There are likely to be some RAW photo extensions that dcraw supports that got missed by the original author, and will need to be added.

Also, I decided to leave the icc-profile as a configure-time setting for the moment as there's a push to be redoing all settings soon anyways, and we might as well redo it then.

Original patch from Chad Parry <spam@…> Closes #7745

comment:14 Changed 11 years ago by stuartm

Ticket locked: set
Note: See TracTickets for help on using tickets.