Przeglądaj źródła

Add meson option for the tiff cfa pattern bug

Martijn Braam 3 lat temu
rodzic
commit
edd1de7a9e
3 zmienionych plików z 9 dodań i 1 usunięć
  1. 5 0
      meson.build
  2. 2 0
      meson_options.txt
  3. 2 1
      process_pipeline.c

+ 5 - 0
meson.build

@@ -21,6 +21,11 @@ if get_option('buildtype') == 'debug'
   add_global_arguments('-DDEBUG', language: 'c')
 endif
 
+# Workaround for libtiff having ABI changes but not changing the internal version number
+if get_option('tiffcfapattern')
+  add_global_arguments('-DLIBTIFF_CFA_PATTERN', language: 'c')
+endif
+
 executable('megapixels', 'main.c', 'ini.c', 'quickpreview.c', 'camera.c', 'device.c', 'pipeline.c', 'camera_config.c', 'io_pipeline.c', 'process_pipeline.c', 'matrix.c', resources, dependencies : [gtkdep, libm, tiff, threads], install : true)
 
 install_data(['data/org.postmarketos.Megapixels.desktop'],

+ 2 - 0
meson_options.txt

@@ -0,0 +1,2 @@
+option('tiffcfapattern', type: 'boolean', value: false)
+

+ 2 - 1
process_pipeline.c

@@ -236,11 +236,12 @@ process_image_for_capture(const MPImage *image, int count)
 	TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
 	static const short cfapatterndim[] = { 2, 2 };
 	TIFFSetField(tif, TIFFTAG_CFAREPEATPATTERNDIM, cfapatterndim);
-#if (TIFFLIB_VERSION < 20201219)
+#if (TIFFLIB_VERSION < 20201219) && !LIBTIFF_CFA_PATTERN
 	TIFFSetField(tif, TIFFTAG_CFAPATTERN, "\002\001\001\000"); // BGGR
 #else
 	TIFFSetField(tif, TIFFTAG_CFAPATTERN, 4, "\002\001\001\000"); // BGGR
 #endif
+	printf("TIFF version %d\n", TIFFLIB_VERSION);
 	if (camera->whitelevel) {
 		TIFFSetField(tif, TIFFTAG_WHITELEVEL, 1, &camera->whitelevel);
 	}