#355 FC19 Sony A65 camera white balance broken

closed-fixed
nobody
None
5
2014-01-21
2013-09-30
Dave Wild
No

Seems UFRAW will not honor amera white balance for my Sony A65v under fedora 19. I have used the FC19 stock package, I have extracted source and compiled myself, I have pulled from GIT and compiled myself, all with same result. I have a copy of the binaries I compiled under FC18 and those work just fine. If I install the FC18 stock ufraw package then it also works fine. This leads me to believe the issue is related to the gcc 4.8.x compiler version in FC18.

Current compiled version for FC19
ufraw_open: w:6024 h:4024 curvesize:0
EXIF data read using exiv2, buflen 47688

Scaling with darkness 128, saturation 4095, and
multipliers 0.000001 0.000000 1.000000 0.000000
Cannot use camera white balance, reverting to auto white balance.
Loading Sony SLT-A65V image from /home/dswild/pict/latest/raw/092813/dsc01510.arw ...
Black: 128, Maximum: 4095

If I use previously compiled version, I see this
ufraw_open: w:6024 h:4024 curvesize:0
EXIF data read using exiv2, buflen 47688

Scaling with darkness 128, saturation 4095, and
multipliers 1.000000 0.307692 0.322115 0.307692
Loading SONY SLT-A65V image from /home/dswild/pict/latest/raw/092813/dsc01510.arw ...
Black: 128, Maximum: 4095

Discussion

  • Dave Wild

    Dave Wild - 2013-10-02

    A little more info. I've discovered the problem is indeed something with gcc 4.8.x I installed gcc-4.7.3 on my system, and if compiled with it then the A65 camera white balance works perfect. I even went as far as narrowing it down to dcraw.cc. If I compile dcraw.cc with 4.7.3, then compile everything else with 4.8 then it also works fine. If dcraw.cc is compiled with 4.8, then it breaks.

     
  • Niels Kristian Bech Jensen

    Hi Dave.

    Thanks for the report. It seems like a a compiler bug though, so you should file a bug report for GCC. Please add a link here when you have filed the bug report so we can follow developments.

    Regards,
    Niels Kristian

     
  • Dave Wild

    Dave Wild - 2013-10-16

    GCC wants to know specifically what gcc 4.8 is breaking, and "when I compile this package it acts different" is not acceptable. The blame the package. Need to know exactly what computation is broken or wrong under 4.8 that worked under 4.7. I have no idea what gets broken where.

    On a side note, I have the same exact problem as
    https://sourceforge.net/p/ufraw/bugs/360/
    all my cameras are broken after the LMCS2 updates. I removed the lcms2-devel package and recompiled (using 4.7) and it works, so it's something with LCMS2 on FC19 that is causing the problem. (lcms2-devel-2.5-1.fc19.x86_64)

     
  • Peter Sütterlin

    As mentioned in the other thread (360), it also happens with lcms2-2.5 on openSUSE (12.3), so the error is not FC-specific

     
  • Niels Kristian Bech Jensen

    There are a couple of things you can check to narrow down the breakage:

    Try to compile from http://www.cybercom.net/~dcoffin/dcraw with GCC 4.8 and check if that shows the same breakage (try both gcc and g++ compilers).

    Is it only files from the SONY SLT-A65V where UFRaw cannot read the camera WB multipliers?

    Regards,
    Niels Kristian

     
  • Dave Wild

    Dave Wild - 2013-10-18

    If I compile dcraw.c with my stock gcc 4.8.1 (or gcc 4.8.2 which I installed) then the A65 is broken, A330 still works fine. If I compile dcraw.c with 4.7.3 then the A65 works fine.

    I only have access to these 2 cameras so it's all I have to verify. A330 always works, just A65 is broken only with 4.8.x

     
  • Udi Fuchs

    Udi Fuchs - 2013-10-19

    It seems that this is a memory leak and not a gcc bug. You can see the memory leak using valgrind or by adding the following debug code:

    --- dcraw.cc 12 Oct 2013 04:30:10 -0000 1.302
    +++ dcraw.cc 19 Oct 2013 01:52:09 -0000
    @@ -2583,6 +2583,8 @@
    if (i == imax) pix[i] = max;
    else if (i == imin) pix[i] = min;
    else {
    + if (dp+(bit>>3) - data >= raw_width - 1)
    + printf("overflow %d %d %d\n", (int)(dp-data), bit, raw_width);
    pix[i] = ((sget2(dp+(bit >> 3)) >> (bit & 7) & 0x7f) << sh) + min;
    if (pix[i] > 0x7ff) pix[i] = 0x7ff;
    bit += 7;

    I mailed Dave Coffin about this issue.

     
  • Niels Kristian Bech Jensen

    I think I have found the cause of the memory leak and fixed it in cvs. Please check it.

    Regards,
    Niels Kristian

     
  • Dave Wild

    Dave Wild - 2013-10-26

    I just pulled the latest and compiling with gcc 4.8.1 camera wb is still broken. I used my 4.7.3 gcc and it works fine.

    It's curious that it works with 4.7.3 because when I get dcraw.c itself and compile it, it won't use the camera wb regardless of which gcc I use to compile it.

     
  • Dave Wild

    Dave Wild - 2014-01-20

    With the latest CVS updates to ufraw (dcraw), this is no longer an issue. I tested it this morning on a variety of images and can no longer reproduce the white balance issue. This can be closed out.

    Thanks for the great work you guys do, this is an awesome package.

     
  • Niels Kristian Bech Jensen

    Hi Dave.

    Thanks for testing. I am closing this bug report as fixed.

    Regards,
    Niels Kristian

     
  • Niels Kristian Bech Jensen

    • Status: open --> closed-fixed
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks