Copyright
=========

libopenraw is Copyright (c) 2005-2020 Hubert Figuiere and
other contributors. See the respective files.
It is licensed under LGPLv3 or later. See files COPYING
and COPYING.LESSER

Code of Conduct:
================

Contributors to this project agree to the Freedesktop.org Code of
Conduct:

  https://www.freedesktop.org/wiki/CodeOfConduct/

Prerequistes to build:
======================

    - a C++ 11 compiler (tested on gcc 4.7 and up)
    - libboost 1.33.1 (Boost.String, Boost.Test, Boost.Variant)
    - libjpeg
    - libxml > 2.5.0 (for the test suite)
    - libcurl (option for the test suite bootstrap)
    - Rust to support CR3.

If building from the git tree you also need:

    - automake/autoconf
    - autoconf-archive
    - pkg-config for the associated m4 macros

Optional Gnome support

    - gdkpixbuf

Supported file format:
======================

Here are the supported file formats. For details per-camera, see
below:

    - Canon CR2
    - Canon CR3
    - Canon CRW (not those coming from CHDK firmware like A610)
    - Nikon NEF
    - Olympus ORF
    - Pentax PEF
    - Epson ERF
    - DNG
    - GoPro GPR
    - Sony ARW and SR2
    - Minolta MRW
    - Panasonic RAW and RW2
    - Fujifilm RAF

How to build:
=============

  Using automake/autoconf:

    $ ./autogen.sh
    $ ./configure --prefix=...
    $ make
    $ make install DESTDIR=...


Support table:
==============

  T  Tested and proven to work. (I have a sample.)
  Y  Yes, it is there. (Untested as I do not have a sample but the format
     is known to be similar.) Yes, it is for the whole format.
  N  Not supported.
  B  Known to be Broken. (Needs to be fixed. I have a sample but further
     work is required.)
  X  Not needed.
  #  Sample file needed.

                          ThNail
                         /  CFA compressed (as is)
                         | /  CFA decompress
                         | | /  Orientation Tag
                         | | | /  Bayer Type
                         | | | | /  Type ID
                         | | | | | /  Active Area (ROI)
                         | | | | | | /  Color Matrices
                         | | | | | | | /
                         | | | | | | | |
Canon CR2                Y Y Y Y Y Y Y Y
 1000D/Rebel XS          T T T T T T T
 1100D/Rebel T3          T T T T T T T
 20D                     T T T T T T T
 30D                     T T T T T T T
 350D/Rebel XT           T T T T T T T
 40D                     T T T T T T T
 400D                    T T T T T T T
 450D                    T T T T T T T
 50D                     T T T T T T T
 500D                    T T T T T T T
 550D                    T T T T T T T
 5D                      T T T     T T
 5DMarkII                T T T T   T T
 5DMarkIII               T T T T   T T
 6D
 60D                     T T T T T T T
 600D                    T T T T T T T
 650D/T4i
 7D                      T T T     T T
 1DMarkII                T T T     T T
 1DMarkIII
 1DMarkIV                T T T T T T T
 1D X
 EOS-M
 G9                                T T
 G10                               T T
 G11                     T T T     T T
 G12                     T T T T T T T
 G15
 G1X
 SX1 IS                  # # # # # # #
 S90                     T T T T T T T
 S95                     T T T T T T T
 S100

Canon CR3                Y         Y   Y
 EOS M50                 T         T

Canon CRW                Y Y Y Y Y Y N Y
 300D                    T T T T T T
 10D                     T T T   T T
 D60                     T T T   T T
 G1                      T T T   T T
 G2                      T T T   T T
 G5                      T T T   T T
 Pro1                    T T T   T T

Canon CRW CHDK           N N N N N N N N
(unofficial firmware)
 A610                    N N N N N N N

Nikon NEF                Y Y Y Y Y Y N Y
 D1                      T T X X T T
 D1H                     # # # # # # # #
 D1X                     T T X X T T
 D100                    T T T X T T
 D2H                     T T Y T T T
 D2X                     T T X T T T
 D200                              T
 D3
 D3S                     T   B     T
 D3X                     T   B     T
 D300                    T T T     T
 D300S                   T   B     T
 D3000                   T B B T T T
 D3100                   T T T T T T
 D3200                   T   B     T
 D4
 D40                     T T Y T T T
 D40X                    T T Y T T T
 D50                               T
 D5000                   T   B     T
 D5100                   T   B     T
 D5200
 D60
 D600
 D70                     T T Y T T T
 D70s                    T T Y T T T
 D700                              T
 D7000                   T T T T T T
 D7100
 D80                               T
 D800                              T
 D800E                             T
 D90                         B     T
 J1                      T T B Y Y T
 J2
 J3
 S1
 V1                      T T B Y Y T
 V2
 Coolpix A

Nikon NRW                Y         Y N Y
 P6000                   T         T   T
 P7000                   T         T   T
 P7100                   T             T
 P7700

Olympus ORF              Y Y B Y Y Y N Y
 E-1                     T T T   T T
 E-10                    T B B     T
 E-3                     T T T   T T
 E-300                   T T B T T T
 E-330                   T T N     T
 E-400                   T B T T T T
 E-410                   T T T T T T
 E-500                   T T B T   T
 E-510                   B T T T T T
 E-620                   B T T   T T
 SP-350                  B B X T T T
 SP-500                  B B X T T T
 SP-510                  B B X T T T
 SP-550                  B B X T T T
 E-P1                    T T T   T T
 E-P2                    B T T   T T
 E-P3                    B T T   T T
 E-PL1                   B T T   T T
 E-PL2                   B T T   T T
 E-PL3                   B T T   T T
 E-PL5
 E-PM1                   B T T   T T
 E-PM2
 E-M5                    B       T T
 XZ-1                    B T T   T T
 XZ-2

Adobe DNG                Y Y B Y Y Y Y Y
 Leica DMR               T T X T T T
 Leica M8                T T X T T T
 Leica M9                T T X T T T
 Leica M-Monochrom       T T X T T T
 Leica X1                T T T T T T
 Leica X2
 Leica S2                T T B T T T
 Adobe DNG converter     T T B T T T
 Pentax K10D             T T X T T T T
 Pentax K200D            T T   T T T T
 Pentax K30
 Pentax K-r              T T   T T T T
 Pentax K-x              T T   T T T T
 Pentax 645D             T T X T T T T
 Pentax Q                T T X T T T T
 Samsung GX-10           T T X T T T
 Samsung Pro815          T T X T T T
 Ricoh GR-2              T T X T T T
 Ricoh GRX               T T X T T T
 Ricoh GX100

GoPro GPR                Y Y N Y Y Y Y Y

Sony SR2                 Y Y N Y N Y N Y
 R-1

Sony ARW                 Y Y N Y N Y N Y
 A-100                   T N   T   T
 A-200                   # # # # # T #
 A-550                   T T       T
 A-580
 A-700                   T T   T   T
 A-380                   T T       T
 A-390                   T T       T
 A-560
 A-850
 A-900
 SLT-A33
 SLT-A35
 SLT-A55                 T T       T
 SLT-A57
 SLT-A65                 T T       T
 SLT-A77                 T T       T
 SLT-A99
 Nex-3                   T T   T   T
 Nex-5                   T T       T
 Nex-5N                  T T       T
 Nex-6
 Nex-C3                  T T       T
 Nex-F3
 Nex-7
 RX-1
 RX-100

Pentax PEF               Y Y N Y Y Y N Y
 *-ist D                 T T X X T T
 *-ist DL                T T N     T
 K10D                    T T N T T T
 K100D                   # # # # # T #
 K100D Super             T T N     T
 K20D                    T T N T   T
 K-r                               T   T
 K-x                               T   T
 K-5                               T   T
 K-7                               T   T
 645D                              T   T

Epson ERF                Y Y Y Y Y Y N Y
 Epson RD1               T T T T T T   Y
 Epson RD1s                            Y

Minolta MRW              Y Y B N Y Y N Y
 A1                      T T T X T     Y
 A2                      T T T X T     Y
 Dimage 5                T T X X T T   Y
 Dimage 7i               T T X X T T   Y
 Dimage 7Hi              T T X X T T   Y
 Maxxum 5D               T T T N T     Y
 Maxxum 7D               T T T N T     Y
 A200

Sony SRF                 N N N N N N N N

Kodak DCR                N N N N N N N N

Kodak KDC                N N N N N N N N

FujiFilm RAF             Y Y B N N Y N T
 Finepix S2Pro           T         T
 Finepix S3Pro           T         T
 Finepix S5Pro           T         T
 Finepix S6500Fd         T         T
 Finepix S5600           T         T
 Finepix S9500           T         T
 Finepix X100            T T T     T
 Finepix F700            T         T
 Finepix E900            T         T
 X10                     T         T
 X100S
 X20
 X-Pro1                  T       Y T   N
 X-E1
 X-S1                    T         T   N
 XF1
 Finepix S200 EXR        T         T

Foveon X3F               N N N N N N N N

Panasonic RAW            Y Y N Y Y Y Y N
 FZ30                    N T X T   T T
 FZ50                    N T X T   T T
 FZ8                     N T B T   T T
 FZ18                    T T B T   T T
 L1                      N T X T   T T
 L10                     T T N T   T T
 LX2                     N T X T   T T
 Leica Digilux 2         N T X T   T T
 Leica DLUX 3            N T X T   T T
 Leica VLUX 1            N T X T   T T

Panasonic RW2            Y Y N Y Y Y Y N
 GF1                     T T       T T
 GF2                     T T       T T
 GF3
 GF5
 GF6
 GH1                     T T       T T
 GH2                     T T N     T T
 GH3
 G1                      T T       T T
 G2                      T T       T T
 G3
 G5
 G10                     T T       T T
 LX3                     T T B     T T
 LX5                     T T B     T T
 LX7
 FZ200
 FZ28                    T T B     T T

Mamiya MEF               N N N N N N N N
 Mamiya ZD

Samsung SRW              N N N N N N N N


Test suite
==========

There is a test suite driven by an XML file. It require you to provide
your own RAW files and configure it.  testsuite/testsuite.xml is an
example of valid XML configuration file that works on my local
machine.

TODO2: provide a better description of the test file.

TODO3: fix ordiag to allow outputting a test case in XML.

Running the testsuite
---------------------

$ make check

This will run it automatically.

If you need to bootstrap the testsuite, you can go as follow:

WARNING: The bootstrap will download "random" files from the
internet. They currently aren't validated.

$ make
$ cd testsuite
$ ./testsuite -b -d directory

Here directory is the existing directory where files will be
downloded.  If you build in a different directory than the source
directory, you need to set the `srcdir` environment to the path where
the testsuite binary is build.

