[arch-commits] Commit in python-rawkit/trunk (PKGBUILD libraw19-support.patch)

Jaroslav Lichtblau jlichtblau at archlinux.org
Tue Nov 13 20:22:37 UTC 2018


    Date: Tuesday, November 13, 2018 @ 20:22:36
  Author: jlichtblau
Revision: 407155

upgpkg: python-rawkit 0.6.0-5 - FS#60708 fix

Added:
  python-rawkit/trunk/libraw19-support.patch
Modified:
  python-rawkit/trunk/PKGBUILD

------------------------+
 PKGBUILD               |   49 +-
 libraw19-support.patch |  843 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 870 insertions(+), 22 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-11-13 20:19:05 UTC (rev 407154)
+++ PKGBUILD	2018-11-13 20:22:36 UTC (rev 407155)
@@ -1,3 +1,4 @@
+# Maintainer: Jaroslav Lichtblau <svetlemodry at archlinux.org>
 # Contributor: Eli Schwartz <eschwartz at archlinux.org>
 
 _pkgname=rawkit
@@ -4,8 +5,8 @@
 pkgbase=python-rawkit
 pkgname=('python-rawkit' 'python2-rawkit')
 pkgver=0.6.0
-pkgrel=4
-pkgdesc="ctypes based libraw bindings"
+pkgrel=5
+pkgdesc="ctypes based libraw bindings "
 arch=('any')
 url="https://rawkit.readthedocs.io/"
 license=('MIT')
@@ -12,44 +13,48 @@
 depends=('libraw')
 makedepends=('python-setuptools' 'python2-setuptools')
 checkdepends=('python-mock' 'python2-mock' 'python-pytest' 'python2-pytest')
-source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/photoshell/rawkit/archive/v${pkgver}.tar.gz"
-        "https://github.com/photoshell/rawkit/pull/140/commits/663e90afa835d398aedd782c87b8cd0bff64bc9f.patch")
+source=(${_pkgname}-${pkgver}.tar.gz::https://github.com/photoshell/rawkit/archive/v${pkgver}.tar.gz
+        https://github.com/photoshell/rawkit/pull/140/commits/663e90afa835d398aedd782c87b8cd0bff64bc9f.patch
+        libraw19-support.patch)
 sha256sums=('c07971ddbca9568cef93753ebb06a72b5b622f9b827a5d8bf96f2a137cc4219e'
-            '1297740c3825d41b394808b3be145d0f41effc415e5dbd6fd1e17e51328ce418')
+            '1297740c3825d41b394808b3be145d0f41effc415e5dbd6fd1e17e51328ce418'
+            '104598076673c435f863cd25508060c0f2639b46d0fdcce7fa89b7723af443c5')
 
 prepare() {
-    cd "${srcdir}"/${_pkgname}-${pkgver}
+  cd "${srcdir}"/${_pkgname}-${pkgver}
 
-    # python 3.7
-    patch -p1 -i ../663e90afa835d398aedd782c87b8cd0bff64bc9f.patch
+  # python 3.7
+  patch -p1 -i "${srcdir}"/663e90afa835d398aedd782c87b8cd0bff64bc9f.patch
+  # FS#60708 fix
+  patch -p1 -i "${srcdir}"/libraw19-support.patch
 }
 
 build() {
-    cd "${srcdir}"/${_pkgname}-${pkgver}
+  cd "${srcdir}"/${_pkgname}-${pkgver}
 
-    python setup.py build
-    python2 setup.py build
+  python setup.py build
+  python2 setup.py build
 }
 
 check() {
-    cd "${srcdir}"/${_pkgname}-${pkgver}
+  cd "${srcdir}"/${_pkgname}-${pkgver}
 
-    python -m pytest
-    python2 -m pytest
+  python -m pytest
+  python2 -m pytest
 }
 
 package_python-rawkit() {
-    depends+=('python')
+  depends+=('python')
 
-    cd "${srcdir}"/${_pkgname}-${pkgver}
-    python setup.py install --root="${pkgdir}" --optimize=1 --skip-build
-    install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+  cd "${srcdir}"/${_pkgname}-${pkgver}
+  python setup.py install --root="${pkgdir}" --optimize=1 --skip-build
+  install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
 }
 
 package_python2-rawkit() {
-    depends+=('python2')
+  depends+=('python2')
 
-    cd "${srcdir}"/${_pkgname}-${pkgver}
-    python2 setup.py install --root="${pkgdir}" --optimize=1 --skip-build
-    install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+  cd "${srcdir}"/${_pkgname}-${pkgver}
+  python2 setup.py install --root="${pkgdir}" --optimize=1 --skip-build
+  install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
 }

Added: libraw19-support.patch
===================================================================
--- libraw19-support.patch	                        (rev 0)
+++ libraw19-support.patch	2018-11-13 20:22:36 UTC (rev 407155)
@@ -0,0 +1,843 @@
+--- a/docs/source/index.rst
++++ b/docs/source/index.rst
+@@ -48,7 +48,7 @@ Requirements
+ - Python
+ 
+   - CPython 2.7+
+-  - CPython 3.4+
++  - CPython 3.5+
+   - PyPy 2.5+
+   - PyPy3 2.4+
+ 
+@@ -64,8 +65,8 @@ Installing rawkit
+ First, you'll need to install LibRaw:
+ 
+   - `libraw` on Arch_
+-  - `LibRaw` on Fedora_ 21+
+-  - `libraw10` on Ubuntu_ Utopic+
++  - `LibRaw` on Fedora_ 21+ and EPEL 6
++  - `libraw-bin` on Ubuntu_ trusty+
+   - `libraw-bin` on Debian_ Jessie+
+ 
+ Now you can fetch rawkit from PyPi_:
+@@ -76,7 +77,7 @@ Now you can fetch rawkit from PyPi_:
+ 
+ .. _Arch: https://www.archlinux.org/packages/extra/x86_64/libraw/
+ .. _Fedora: https://apps.fedoraproject.org/packages/LibRaw
+-.. _Ubuntu: http://packages.ubuntu.com/utopic/libraw10
++.. _Ubuntu: https://packages.ubuntu.com/bionic/libraw-bin
+ .. _Debian: https://packages.debian.org/stable/graphics/libraw-bin
+ .. _PyPi: https://pypi.python.org/pypi/rawkit
+ 
+--- a/libraw/bindings.py
++++ b/libraw/bindings.py
+@@ -6,2 +6,6 @@
+ 
++import os.path
++import platform
++import sys
++
+ from ctypes import *  # noqa
+@@ -11,2 +15,3 @@
+ from libraw.callbacks import data_callback
++from libraw.callbacks import exif_parser_callback
+ from libraw.callbacks import memory_callback
+@@ -17,2 +22,3 @@
+ from libraw import structs_18
++from libraw import structs_19
+ 
+@@ -32,2 +38,12 @@
+         libraw = util.find_library('raw')
++        if libraw is None:
++            # Windows (apparently; see #142)
++            libraw = util.find_library('libraw')
++        if libraw is None:
++            # Attempt to guess manually (See #116)
++            shared_lib_ext = {'Linux': '.so',
++                              'Darwin': '.dylib', 'Windows': '.dll'}
++            libraw = os.path.join(
++                sys.prefix, 'lib', 'libraw' + shared_lib_ext[platform.system()])
++
+         try:
+@@ -45,2 +61,3 @@
+                 18: structs_18,
++                19: structs_19,
+             }[self.version_number[1]]
+@@ -57,3 +74,3 @@
+ 
+-        self.libraw_init.argtypes = [c_int]
++        self.libraw_init.argtypes = [c_uint]
+         # enum LibRaw_progress
+@@ -79,2 +96,7 @@
+         self.libraw_close.argtypes = [POINTER(libraw_data_t)]
++        self.libraw_set_exifparser_handler.argtypes = [
++            POINTER(libraw_data_t),
++            exif_parser_callback,
++            c_void_p,
++        ]
+         self.libraw_set_memerror_handler.argtypes = [
+--- a/libraw/callbacks.py
++++ b/libraw/callbacks.py
+@@ -93,3 +93,33 @@ def progress_cb(data, stage, iteration, expected):
+ Returns:
+     _ctypes.PyCFuncPtrType: A C callback.
+ """
++
++exif_parser_callback = CFUNCTYPE(
++    c_void_p, c_int, c_int, c_int, c_uint, c_void_p)
++"""
++A callback that will be called to alert you when EXIF data is parsed.
++
++
++.. sourcecode:: python
++
++    def exif_cb(context, tag, type, len, ord, ifp):
++        pass
++
++    cb = exif_parser_callback(exif_cb)
++
++    libraw.libraw_set_exifparser_handler(libraw_data, cb, data)
++
++Your callback function should map to the LibRaw C callback defintion below:
++
++.. sourcecode:: c
++
++    typedef void (*exif_parser_callback)(
++        void *context, int tag, int type, int len, unsigned int ord, void *ifp
++    );
++
++Args:
++    callback (function): The Python function to convert to a C callback.
++
++Returns:
++    _ctypes.PyCFuncPtrType: A C callback.
++"""
+--- /dev/null
++++ b/libraw/structs_19.py
+@@ -0,0 +1,726 @@
++""":mod:`libraw.structs` --- LibRaw struct definitions
++~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++"""
++
++from ctypes import *  # noqa
++
++
++class ph1_t(Structure):
++
++    """Contains color data read by Phase One cameras."""
++    _fields_ = [
++        ('format', c_int),
++        ('key_off', c_int),
++        ('tag_21a', c_int),
++        ('t_black', c_int),
++        ('split_col', c_int),
++        ('black_col', c_int),
++        ('split_row', c_int),
++        ('black_row', c_int),
++        ('tag_210', c_float),
++    ]
++
++
++class libraw_iparams_t(Structure):
++
++    """The primary parameters of the image."""
++    _fields_ = [
++        ('guard', c_char * 4),
++        ('make', c_char * 64),
++        ('model', c_char * 64),
++        ('software', c_char * 64),
++        ('raw_count', c_uint),
++        ('dng_version', c_uint),
++        ('is_foveon', c_uint),
++        ('colors', c_int),
++        ('filters', c_uint),
++        ('xtrans', c_char * 6 * 6),
++        ('xtrans_abs', c_char * 6 * 6),
++        ('cdesc', c_char * 5),
++        ('xmplen', c_uint),
++        ('xmpdata', POINTER(c_char)),
++    ]
++
++
++class libraw_raw_crop_t(Structure):
++
++    """Describes the crop of an image."""
++    _fields_ = [
++        ('cleft', c_ushort),
++        ('ctop', c_ushort),
++        ('cwidth', c_ushort),
++        ('cheight', c_ushort),
++    ]
++
++
++class libraw_image_sizes_t(Structure):
++
++    """Describes the size of the image."""
++    _fields_ = [
++        ('raw_height', c_ushort),
++        ('raw_width', c_ushort),
++        ('height', c_ushort),
++        ('width', c_ushort),
++        ('top_margin', c_ushort),
++        ('left_margin', c_ushort),
++        ('iheight', c_ushort),
++        ('iwidth', c_ushort),
++        ('raw_pitch', c_uint),
++        ('pixel_aspect', c_double),
++        ('flip', c_int),
++        ('mask', c_int * 8 * 4),
++        ('raw_crop', libraw_raw_crop_t),
++    ]
++
++
++class libraw_dng_color_t(Structure):
++
++    _fields_ = [
++        ('parsedfields', c_uint),
++        ('illuminant', c_ushort),
++        ('calibration', c_float * 4 * 4),
++        ('colormatrix', c_float * 4 * 3),
++        ('forwardmatrix', c_float * 3 * 4),
++    ]
++
++
++class libraw_canon_makernotes_t(Structure):
++
++    _fields_ = [
++        ('CanonColorDataVer', c_int),
++        ('CanonColorDataSubVer', c_int),
++        ('SpecularWhiteLevel', c_int),
++        ('NormalWhiteLevel', c_int),
++        ('ChannelBlackLevel', c_int * 4),
++        ('AverageBlackLevel', c_int),
++        ('multishot', c_uint * 4),
++        ('MeteringMode', c_short),
++        ('SpotMeteringMode', c_short),
++        ('FlashMeteringMode', c_char),
++        ('FlashExposureLock', c_short),
++        ('ExposureMode', c_short),
++        ('AESetting', c_short),
++        ('HighlightTonePriority', c_char),
++        ('ImageStabilization', c_short),
++        ('FocusMode', c_short),
++        ('AFPoint', c_short),
++        ('FocusContinuous', c_short),
++        ('AFPointsInFocus30D', c_short),
++        ('AFPointsInFocus1D', c_char * 8),
++        ('AFPointsInFocus5D', c_ushort),
++        ('AFAreaMode', c_ushort),
++        ('NumAFPoints', c_ushort),
++        ('ValidAFPoints', c_ushort),
++        ('AFImageWidth', c_ushort),
++        ('AFImageHeight', c_ushort),
++        ('AFAreaWidths', c_short * 61),
++        ('AFAreaHeights', c_short * 61),
++        ('AFAreaXPositions', c_short * 61),
++        ('AFAreaYPositions', c_short * 61),
++        ('AFPointsInFocus', c_short * 4),
++        ('AFPointsSelected', c_short * 4),
++        ('PrimaryAFPoint', c_ushort),
++        ('FlashMode', c_short),
++        ('FlashActivity', c_short),
++        ('FlashBits', c_short),
++        ('ManualFlashOutput', c_short),
++        ('FlashOutput', c_short),
++        ('FlashGuideNumber', c_short),
++        ('ContinuousDrive', c_short),
++        ('SensorWidth', c_short),
++        ('SensorHeight', c_short),
++        ('SensorLeftBorder', c_short),
++        ('SensorTopBorder', c_short),
++        ('SensorRightBorder', c_short),
++        ('SensorBottomBorder', c_short),
++        ('BlackMaskLeftBorder', c_short),
++        ('BlackMaskTopBorder', c_short),
++        ('BlackMaskRightBorder', c_short),
++        ('BlackMaskBottomBorder', c_short),
++        ('AFMicroAdjMode', c_int),
++        ('AFMicroAdjValue', c_float),
++    ]
++
++
++class libraw_hasselblad_makernotes_t(Structure):
++
++    _fields_ = [
++        ('BaseISO', c_int),
++        ('Gain', c_double),
++    ]
++
++
++class libraw_dng_levels_t(Structure):
++
++    _fields_ = [
++        ('parsedFields', c_uint),
++        ('dng_cblack', c_uint * 4102),
++        ('dng_black', c_uint),
++        ('dng_whitelevel', c_uint * 4),
++        ('default_crop', c_uint * 4),  # Origin and size
++        ('preview_colorspace', c_uint),
++        ('analogbalance', c_float * 4),
++    ]
++
++
++class libraw_P1_color_t(Structure):
++
++    _fields_ = [
++        ('romm_cam', c_float * 9),
++    ]
++
++
++class libraw_colordata_t(Structure):
++
++    """Describes all color data of the image."""
++    _fields_ = [
++        ('curve', c_ushort * 0x10000),
++        ('cblack', c_uint * 4102),
++        ('black', c_uint),
++        ('data_maximum', c_uint),
++        ('maximum', c_uint),
++        ('linear_max', c_long * 4),
++        ('fmaximum', c_float),
++        ('fnorm', c_float),
++        ('white', c_ushort * 8 * 8),
++        ('cam_mul', c_float * 4),
++        ('pre_mul', c_float * 4),
++        ('cmatrix', c_float * 3 * 4),
++        ('ccm', c_float * 3 * 4),
++        ('rgb_cam', c_float * 3 * 4),
++        ('cam_xyz', c_float * 4 * 3),
++        ('phase_one_data', ph1_t),
++        ('flash_used', c_float),
++        ('canon_ev', c_float),
++        ('model2', c_char * 64),
++        ('UniqueCameraModel', c_char * 64),
++        ('LocalizedCameraModel', c_char * 64),
++        ('profile', c_void_p),
++        ('profile_length', c_uint),
++        ('black_stat', c_uint * 8),
++        ('dng_color', libraw_dng_color_t * 2),
++        ('dng_levels', libraw_dng_levels_t),
++        ('baseline_exposure', c_float),
++        ('WB_Coeffs', c_int * 256 * 4),
++        ('WBCT_Coeffs', c_float * 64 * 5),
++        ('P1_color', libraw_P1_color_t * 2),
++    ]
++
++
++class libraw_gps_info_t(Structure):
++
++    """GPS data for the image."""
++    _fields_ = [
++        ('latitude', c_float * 3),
++        ('longitude', c_float * 3),
++        ('gpstimestamp', c_float * 3),
++        ('altitude', c_float),
++        ('altref', c_char),
++        ('latref', c_char),
++        ('longref', c_char),
++        ('gpsstatus', c_char),
++        ('gpsparsed', c_char),
++    ]
++
++
++class libraw_imgother_t(Structure):
++
++    """
++    Information read from the raw file that is unnecessary for raw processing.
++    """
++    _fields_ = [
++        ('iso_speed', c_float),
++        ('shutter', c_float),
++        ('aperture', c_float),
++        ('focal_len', c_float),
++        ('timestamp', c_uint),  # time_t
++        ('shot_order', c_uint),
++        ('gpsdata', c_uint * 32),
++        ('parsed_gps', libraw_gps_info_t),
++        ('desc', c_char * 512),
++        ('artist', c_char * 64),
++        ('FlashEC', c_float),
++        ('FlashGN', c_float),
++        ('CameraTemperature', c_float),
++        ('SensorTemperature', c_float),
++        ('SensorTemperature2', c_float),
++        ('LensTemperature', c_float),
++        ('AmbientTemperature', c_float),
++        ('BatteryTemperature', c_float),
++        ('exifAmbientTemperature', c_float),
++        ('exifHumidity', c_float),
++        ('exifPressure', c_float),
++        ('exifWaterDepth', c_float),
++        ('exifAcceleration', c_float),
++        ('exifCameraElevationAngle', c_float),
++        ('real_ISO', c_float),
++    ]
++
++
++class libraw_thumbnail_t(Structure):
++
++    """Describes the thumbnail image embedded in the raw file."""
++    _fields_ = [
++        ('tformat', c_uint),  # LibRaw_thumbnail_formats
++        ('twidth', c_ushort),
++        ('theight', c_ushort),
++        ('tlength', c_uint),
++        ('tcolors', c_int),
++        ('thumb', POINTER(c_char)),
++    ]
++
++
++class libraw_internal_output_params_t(Structure):
++
++    _fields_ = [
++        ('mix_green', c_uint),
++        ('raw_color', c_uint),
++        ('zero_is_bad', c_uint),
++        ('shrink', c_ushort),
++        ('fuji_width', c_ushort),
++    ]
++
++
++class libraw_rawdata_t(Structure):
++
++    """
++    Raw image data (after it has been unpacked) and a backup copy of color info
++    used during post processing.
++    """
++    _fields_ = [
++        ('raw_alloc', c_void_p),
++        ('raw_image', POINTER(c_ushort)),
++        ('color4_image', POINTER(c_ushort * 4)),
++        ('color3_image', POINTER(c_ushort * 3)),
++        ('float_image', POINTER(c_float)),
++        ('float3_image', POINTER(c_float * 3)),
++        ('float4_image', POINTER(c_float * 4)),
++        ('ph1_cblack', POINTER(c_short * 2)),
++        ('ph1_rblack', POINTER(c_short * 2)),
++        ('iparams', libraw_iparams_t),
++        ('sizes', libraw_image_sizes_t),
++        ('ioparams', libraw_internal_output_params_t),
++        ('color', libraw_colordata_t),
++    ]
++
++
++class libraw_output_params_t(Structure):
++
++    """Output parameters for processing the image with dcraw."""
++    _fields_ = [
++        ('greybox', c_uint * 4),      # -A  x1 y1 x2 y2
++        ('cropbox', c_uint * 4),      # -B x1 y1 x2 y2
++        ('aber', c_double * 4),       # -C
++        ('gamm', c_double * 6),       # -g
++        ('user_mul', c_float * 4),    # -r mul0 mul1 mul2 mul3
++        ('shot_select', c_uint),      # -s
++        ('bright', c_float),          # -b
++        ('threshold', c_float),       # -n
++        ('half_size', c_int),         # -h
++        ('four_color_rgb', c_int),    # -f
++        ('highlight', c_int),         # -H
++        ('use_auto_wb', c_int),       # -a
++        ('use_camera_wb', c_int),     # -w
++        ('use_camera_matrix', c_int),  # +M/-M
++        ('output_color', c_int),      # -o
++        ('output_profile', c_char_p),  # -o
++        ('camera_profile', c_char_p),  # -p
++        ('bad_pixels', c_char_p),     # -P
++        ('dark_frame', c_char_p),     # -K
++        ('output_bps', c_int),        # -4
++        ('output_tiff', c_int),       # -T
++        ('user_flip', c_int),         # -t
++        ('user_qual', c_int),         # -q
++        ('user_black', c_int),        # -k
++        ('user_cblack', c_int * 4),
++        ('user_sat', c_int),          # -S
++
++        ('med_passes', c_int),        # -m
++        ('auto_bright_thr', c_float),
++        ('adjust_maximum_thr', c_float),
++        ('no_auto_bright', c_int),    # -W
++        ('use_fuji_rotate', c_int),   # -j
++        ('green_matching', c_int),
++        # DCB parameters
++        ('dcb_iterations', c_int),
++        ('dcb_enhance_fl', c_int),
++        ('fbdd_noiserd', c_int),
++        ('exp_correc', c_int),
++        ('exp_shift', c_float),
++        ('exp_preser', c_float),
++        # Raw speed
++        ('use_rawspeed', c_int),
++        # DNG SDK
++        ('use_dngsdk', c_int),
++        # Disable Auto-scale
++        ('no_auto_scale', c_int),
++        # Disable intepolation
++        ('no_interpolation', c_int),
++        ('raw_processing_options', c_uint),
++        ('sony_arw2_posterization_thr', c_int),
++        # Nikon Coolscan
++        ('coolscan_nef_gamma', c_float),
++        ('p4shot_order', c_char * 5),
++        # Custom camera list
++        ('custom_camera_strings', POINTER(c_char_p)),
++    ]
++
++
++class libraw_nikonlens_t(Structure):
++
++    _fields_ = [
++        ('NikonEffectiveMaxAp', c_float),
++        ('NikonLensIDNumber', c_ubyte),
++        ('NikonLensFStops', c_ubyte),
++        ('NikonMCUVersion', c_ubyte),
++        ('NikonLensType', c_ubyte),
++    ]
++
++
++class libraw_dnglens_t(Structure):
++
++    _fields_ = [
++        ('MinFocal', c_float),
++        ('MaxFocal', c_float),
++        ('MaxAp4MinFocal', c_float),
++        ('MaxAp4MaxFocal', c_float),
++    ]
++
++
++class libraw_makernotes_lens_t(Structure):
++
++    _fields_ = [
++        ('LensID', c_ulonglong),
++        ('Lens', c_char * 128),
++        ('LensFormat', c_ushort),
++        ('LensMount', c_ushort),
++        ('CamID', c_ulonglong),
++        ('CameraFormat', c_ushort),
++        ('CameraMount', c_ushort),
++        ('body', c_char * 64),
++        ('FocalType', c_short),
++        ('LensFeatures_pre', c_char * 16),
++        ('LensFeatures_suf', c_char * 16),
++        ('MinFocal', c_float),
++        ('MaxFocal', c_float),
++        ('MaxAp4MinFocal', c_float),
++        ('MaxAp4MaxFocal', c_float),
++        ('MinAp4MinFocal', c_float),
++        ('MinAp4MaxFocal', c_float),
++        ('MaxAp', c_float),
++        ('MinAp', c_float),
++        ('CurFocal', c_float),
++        ('CurAp', c_float),
++        ('MaxAp4CurFocal', c_float),
++        ('MinAp4CurFocal', c_float),
++        ('MinFocusDistance', c_float),
++        ('FocusRangeIndex', c_float),
++        ('LensFStops', c_float),
++        ('TeleconverterID', c_ulonglong),
++        ('Teleconverter', c_char * 128),
++        ('AdapterID', c_ulonglong),
++        ('Adapter', c_char * 128),
++        ('AttachmentID', c_ulonglong),
++        ('Attachment', c_char * 128),
++        ('CanonFocalUnits', c_short),
++        ('FocalLengthIn35mmFormat', c_float),
++    ]
++
++
++class libraw_lensinfo_t(Structure):
++
++    _fields_ = [
++        ('MinFocal', c_float),
++        ('MaxFocal', c_float),
++        ('MaxAp4MinFocal', c_float),
++        ('MaxAp4MaxFocal', c_float),
++        ('EXIF_MaxAp', c_float),
++        ('LensMake', c_char * 128),
++        ('Lens', c_char * 128),
++        ('LensSerial', c_char * 128),
++        ('InternalLensSerial', c_char * 128),
++        ('FocalLengthIn35mmFormat', c_ushort),
++        ('nikon', libraw_nikonlens_t),
++        ('dng', libraw_dnglens_t),
++        ('makernotes', libraw_makernotes_lens_t),
++    ]
++
++
++class libraw_processed_image_t(Structure):
++
++    """A container for processed image data."""
++    _fields_ = [
++        ('type', c_uint),  # Libraw_image_formats
++        ('height', c_ushort),
++        ('width', c_ushort),
++        ('colors', c_ushort),
++        ('bits', c_ushort),
++        ('data_size', c_uint),
++        ('data', c_ubyte * 1),
++    ]
++
++
++class libraw_decoder_info_t(Structure):
++
++    """Describes a raw format decoder name and format."""
++    _fields_ = [
++        ('decoder_name', c_char_p),
++        ('decoder_flags', c_uint),
++    ]
++
++
++class libraw_fuji_info_t(Structure):
++
++    _fields_ = [
++        ('FujiExpoMidPointShift', c_float),
++        ('FujiDynamicRange', c_ushort),
++        ('FujiFilmMode', c_ushort),
++        ('FujiDynamicRangeSetting', c_ushort),
++        ('FujiDevelopmentDynamicRange', c_ushort),
++        ('FujiAutoDynamicRange', c_ushort),
++        ('FocusMode', c_ushort),
++        ('AFMode', c_ushort),
++        ('FocusPixel', c_ushort * 2),
++        ('ImageStabilization', c_ushort * 3),
++        ('FlashMode', c_ushort),
++        ('WB_Preset', c_ushort),
++        ('ShutterType', c_ushort),
++        ('ExrMode', c_ushort),
++        ('Macro', c_ushort),
++        ('Rating', c_uint),
++        ('FrameRate', c_ushort),
++        ('FrameWidth', c_ushort),
++        ('FrameHeight', c_ushort),
++    ]
++
++
++class libraw_nikon_makernotes_t(Structure):
++
++    _fields_ = [
++        ('ExposureBracketValue', c_double),
++        ('ActiveDLighting', c_ushort),
++        ('ShootingMode', c_ushort),
++        ('ImageStabilization', c_ubyte * 7),
++        ('VibrationReduction', c_ubyte),
++        ('VRMode', c_ubyte),
++        ('FocusMode', c_char * 7),
++        ('AFPoint', c_ubyte),
++        ('AFPointsInFocus', c_ushort),
++        ('ContrastDetectAF', c_ubyte),
++        ('AFAreaMode', c_ubyte),
++        ('PhaseDetectAF', c_ubyte),
++        ('PrimaryAFPoint', c_ubyte),
++        ('AFPointsUsed', c_ubyte * 29),
++        ('AFImageWidth', c_ushort),
++        ('AFImageHeight', c_ushort),
++        ('AFAreaXPposition', c_ushort),
++        ('AFAreaYPosition', c_ushort),
++        ('AFAreaWidth', c_ushort),
++        ('AFAreaHeight', c_ushort),
++        ('ContrastDetectAFInFocus', c_ubyte),
++        ('FlashSetting', c_char * 13),
++        ('FlashType', c_char * 20),
++        ('FlashExposureCompensation', c_ubyte * 4),
++        ('ExternalFlashExposureComp', c_ubyte * 4),
++        ('FlashExposureBracketValue', c_ubyte * 4),
++        ('FlashMode', c_ubyte),
++        ('FlashExposureCompensation2', c_char),
++        ('FlashExposureCompensation3', c_char),
++        ('FlashExposureCompensation4', c_char),
++        ('FlashSource', c_ubyte),
++        ('FlashFirmware', c_ubyte * 2),
++        ('ExternalFlashFlags', c_ubyte),
++        ('FlashControlCommanderMode', c_ubyte),
++        ('FlashOutputAndCompensation', c_ubyte),
++        ('FlashFocalLength', c_ubyte),
++        ('FlashGNDistance', c_ubyte),
++        ('FlashGroupControlMode', c_ubyte * 4),
++        ('FlashGroupOutputAndCompensation', c_ubyte * 4),
++        ('FlashColorFilter', c_ubyte),
++        ('NEFCompression', c_ushort),
++        ('ExposureMode', c_int),
++        ('nMEshots', c_int),
++        ('MEgainOn', c_int),
++        ('ME_WB', c_double * 4),
++        ('AFFineTune', c_ubyte),
++        ('AFFineTuneIndex', c_ubyte),
++        ('AFFineTuneAdj', c_int8),
++    ]
++
++
++class libraw_olympus_makernotes_t(Structure):
++
++    _fields_ = [
++        ('OlympusCropID', c_int),
++        ('OlympusFrame', c_ushort * 4),
++        ('OlympusSensorCalibration', c_int * 2),
++        ('FocusMode', c_ushort * 2),
++        ('AutoFocus', c_ushort),
++        ('AFPoint', c_ushort),
++        ('AFAreas', c_uint * 64),
++        ('AFPointSelected', c_double * 5),
++        ('AFResult', c_ushort),
++        ('ImageStabilization', c_uint),
++        ('ColorSpace', c_ushort),
++        ('AffineTune', c_ubyte),
++        ('AffineTuneAdj', c_short * 3),
++    ]
++
++
++class libraw_panasonic_makernotes_t(Structure):
++
++    _fields_ = [
++        # Compression:
++        # 34826 (Panasonic RAW 2): LEICA DIGILUX 2;
++        # 34828 (Panasonic RAW 3): LEICA D-LUX 3; LEICA V-LUX 1; Panasonic DMC-LX1; Panasonic DMC-LX2; Panasonic DMC-FZ30; Panasonic DMC-FZ50;
++        # 34830 (not in exiftool): LEICA DIGILUX 3; Panasonic DMC-L1;
++        # 34316 (Panasonic RAW 1): others (LEICA, Panasonic, YUNEEC);
++        ('Compression', c_ushort),
++        ('BlackLevelDim', c_ushort),
++        ('BlackLevel', c_float * 8),
++    ]
++
++
++class libraw_pentax_makernotes_t(Structure):
++
++    _fields_ = [
++        ('FocusMode', c_ushort),
++        ('AFPointSelected', c_ushort),
++        ('AFPointsInFocus', c_uint),
++        ('FocusPosition', c_ushort),
++        ('DriveMode', c_ubyte * 4),
++        ('AFAdjustment', c_short),
++    ]
++
++
++class libraw_kodak_makernotes_t(Structure):
++
++    _fields_ = [
++        ('BlackLevelTop', c_ushort),
++        ('BlackLevelBottom', c_ushort),
++        ('offset_left', c_short),  # KDC files, negative values or zeros
++        ('offset_top', c_short),  # KDC files, negative values or zeros
++        ('clipBlack', c_ushort),  # valid for P712, P850, P880
++        ('clipWhite', c_ushort),  # valid for P712, P850, P880
++        ('romm_camDaylight', c_float * 3 * 3),
++        ('romm_camTungsten', c_float * 3 * 3),
++        ('romm_camFlourescent', c_float * 3 * 3),
++        ('romm_camFlash', c_float * 3 * 3),
++        ('romm_camCustom', c_float * 3 * 3),
++        ('romm_camAuto', c_float * 3 * 3),
++    ]
++
++
++class libraw_sony_info_t(Structure):
++
++    _fields_ = [
++        ('SonyCameraType', c_ushort),
++        # 0 if not found/deciphered, 0xa, 0xb, 0xc following exiftool convention
++        ('Sony0x9400_version', c_ubyte),
++        ('Sony0x9400_ReleaseMode2', c_ubyte),
++        ('Sony0x9400_SequenceImageNumber', c_uint),
++        ('Sony0x9400_SequenceLength1', c_ubyte),
++        ('Sony0x9400_SequenceFileNumber', c_uint),
++        ('Sony0x9400_SequenceLength2', c_ubyte),
++        ('raw_crop', libraw_raw_crop_t),
++        ('AFMicroAdjValue', c_int8),
++        ('AFMicroAdjOn', c_int8),
++        ('AFMicroAdjRegisteredLenses;', c_ubyte),
++        ('group2010', c_ushort),
++        ('real_iso_offset', c_ushort),
++        ('firmware', c_float),
++        ('ImageCount3_offset', c_ushort),
++        ('ImageCount3', c_uint),
++        ('ElectronicFrontCurtainShutter', c_uint),
++        ('MeteringMode2', c_ushort),
++        ('SonyDateTime', c_char * 20),
++        ('TimeStamp', c_ubyte * 6),
++        ('ShotNumberSincePowerUp', c_uint),
++    ]
++
++
++class libraw_makernotes_t(Structure):
++
++    _fields_ = [
++        ('canon', libraw_canon_makernotes_t),
++        ('nikon', libraw_nikon_makernotes_t),
++        ('hasselblad', libraw_hasselblad_makernotes_t),
++        ('fuji', libraw_fuji_info_t),
++        ('olympus', libraw_olympus_makernotes_t),
++        ('sony', libraw_sony_info_t),
++        ('kodak', libraw_kodak_makernotes_t),
++        ('panasonic', libraw_panasonic_makernotes_t),
++        ('pentax', libraw_pentax_makernotes_t),
++    ]
++
++
++class libraw_shootinginfo_t(Structure):
++
++    _fields_ = [
++        ('DriveMode', c_short),
++        ('FocusMode', c_short),
++        ('MeteringMode', c_short),
++        ('AFPoint', c_short),
++        ('ExposureMode', c_short),
++        ('ImageStabilization', c_short),
++        ('BodySerial', c_char * 64),
++        ('InternalBodySerial', c_char * 64),
++    ]
++
++
++class libraw_custom_camera_t(Structure):
++
++    _fields_ = [
++        ('fsize', c_uint),
++        ('rw', c_ushort),
++        ('rh', c_ushort),
++        ('lm', c_ubyte),
++        ('tm', c_ubyte),
++        ('rm', c_ubyte),
++        ('bm', c_ubyte),
++        ('lf', c_ubyte),
++        ('cf', c_ubyte),
++        ('max', c_ubyte),
++        ('flags', c_ubyte),
++        ('t_make', c_char * 10),
++        ('t_model', c_char * 20),
++        ('offset', c_ushort)
++    ]
++
++
++class libraw_data_t(Structure):
++
++    """
++    A container which comprises the data structures that make up libraw's
++    representation of a raw file.
++    """
++    _fields_ = [
++        ('image', POINTER(c_ushort * 4)),
++        ('sizes', libraw_image_sizes_t),
++        ('idata', libraw_iparams_t),
++        ('lens', libraw_lensinfo_t),
++        ('makernotes', libraw_makernotes_t),
++        ('shootinginfo', libraw_shootinginfo_t),
++        ('params', libraw_output_params_t),
++        ('progress_flags', c_uint),
++        ('process_warnings', c_uint),
++        ('color', libraw_colordata_t),
++        ('other', libraw_imgother_t),
++        ('thumbnail', libraw_thumbnail_t),
++        ('rawdata', libraw_rawdata_t),
++        ('parent_class', c_void_p),
++    ]
++
++
++class fuji_compressed_params(Structure):
++
++    _fields_ = [
++        ('q_table', POINTER(c_int8)),  # quantization table
++        ('q_points', c_int * 5),      # quantization points
++        ('max_bits', c_int),
++        ('min_value', c_int),
++        ('raw_bits', c_int),
++        ('total_values', c_int),
++        ('maxDiff', c_int),
++        ('line_width', c_ushort),
++    ]



More information about the arch-commits mailing list