@ -0,0 +1,15 @@ | |||
--- a/magic-lantern/tcc/Makefile | |||
+++ b/magic-lantern/tcc/Makefile | |||
@@ -137,6 +137,12 @@ | |||
TCCLIBS+=$(LIBTCC1_CROSS) | |||
endif | |||
+#Very bad workaround for solving compilation issues | |||
+CC=../gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-gcc-4.8.3 | |||
+LD=../gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-ld | |||
+READELF=../gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-readelf | |||
+OBJCOPY=../gcc-arm-none-eabi-4_8-2013q4/bin/arm-none-eabi-objcopy | |||
+ | |||
#all: $(PROGS) $(TCCLIBS) $(TCCDOCS) | |||
all: libtccx.o |
@ -0,0 +1,71 @@ | |||
--- a/magic-lantern/modules/dual_iso/cr2hdr.c | |||
+++ b/magic-lantern/modules/dual_iso/cr2hdr.c | |||
@@ -60,6 +60,7 @@ | |||
/** Command-line interface */ | |||
+int process_method = 0; | |||
int interp_method = 0; /* 0:amaze-edge, 1:mean23 */ | |||
int chroma_smooth_method = 2; | |||
int fix_pink_dots = 0; | |||
@@ -98,7 +99,13 @@ | |||
void check_shortcuts() | |||
{ | |||
- if (shortcut_fast) | |||
+ if (process_method == 1) | |||
+ { | |||
+ interp_method = 2; | |||
+ chroma_smooth_method = 1; | |||
+ gray_wb = 5; | |||
+ } | |||
+ else if (shortcut_fast) | |||
{ | |||
interp_method = 1; | |||
chroma_smooth_method = 0; | |||
@@ -129,6 +136,13 @@ | |||
struct cmd_group options[] = { | |||
{ | |||
+ "Processing methods", (struct cmd_option[]) { | |||
+ { &process_method, 0, "--process", "Process Dual ISO compatible file (default)" }, | |||
+ { &process_method, 1, "--dry-run", "Only check file for Dual ISO presence" }, | |||
+ OPTION_EOL | |||
+ }, | |||
+ }, | |||
+ { | |||
"Shortcuts", (struct cmd_option []) { | |||
{ &shortcut_fast, 1, "--fast", "disable most postprocessing steps (fast, but low quality)\n" | |||
" (--mean23, --no-cs, --no-fullres, --no-alias-map, --no-stripe-fix, --no-bad-pix)" }, | |||
@@ -870,12 +884,12 @@ | |||
whites[num_files] = raw_info.white_level; | |||
num_files++; | |||
} | |||
- else | |||
+ else if (process_method != 1) | |||
{ | |||
printf("ISO blending didn't work\n"); | |||
} | |||
} | |||
- else | |||
+ else if (process_method != 1) | |||
{ | |||
printf("Doesn't look like interlaced ISO\n"); | |||
} | |||
@@ -2206,7 +2220,15 @@ | |||
double corr_ev = 0; | |||
int white_darkened = white_bright; | |||
int ok = match_exposures(&corr_ev, &white_darkened); | |||
- if (!ok) goto err; | |||
+ if (!ok) | |||
+ { | |||
+ goto err; | |||
+ } | |||
+ else if (ok && process_method == 1) | |||
+ { | |||
+ printf("Interlaced ISO detected\n"); /*. File: %s\n", filename);*/ | |||
+ return 0; | |||
+ } | |||
/* run a second black subtract pass, to fix whatever our funky processing may do to blacks */ | |||
black_subtract_simple(raw_info.active_area.x1, raw_info.active_area.y1); |
@ -0,0 +1,11 @@ | |||
--- a/magic-lantern/modules/dual_iso/exiftool-bridge.c | |||
+++ a/magic-lantern/modules/dual_iso/exiftool-bridge.c | |||
@@ -10,7 +10,7 @@ | |||
{ | |||
char exif_cmd[1000]; | |||
printf("%-16s: copying EXIF from %s\n", dest, source); | |||
- snprintf(exif_cmd, sizeof(exif_cmd), "exiftool -tagsFromFile \"%s\" -all:all \"-xmp:subject=Dual-ISO\" \"-UniqueCameraModel<Model\" \"%s\" -overwrite_original -q", source, dest); | |||
+ snprintf(exif_cmd, sizeof(exif_cmd), "exiftool -tagsFromFile \"%s\" -all:all \"-xmp:subject=Dual ISO DNG\" \"-UniqueCameraModel<Model\" \"-BaselineExposure=0.25\" \"-BaselineNoise=0.8\" \"-BaselineSharpness=1.2\" \"-BayerGreenSplit=100\" \"%s\" -overwrite_original -q", source, dest); | |||
int r = system(exif_cmd); | |||
if(r!=0) | |||
{ |
@ -0,0 +1,32 @@ | |||
--- a/magic-lantern/modules/dual_iso/cr2hdr.c | |||
+++ b/magic-lantern/modules/dual_iso/cr2hdr.c | |||
@@ -53,10 +53,10 @@ | |||
#include "timing.h" | |||
#include "kelvin.h" | |||
-#define MODULE_STRINGS_PREFIX dual_iso_strings | |||
+/* #define MODULE_STRINGS_PREFIX dual_iso_strings | |||
#include "../module_strings_wrapper.h" | |||
#include "module_strings.h" | |||
-MODULE_STRINGS() | |||
+MODULE_STRINGS() */ | |||
/** Command-line interface */ | |||
@@ -570,14 +570,14 @@ | |||
int main(int argc, char** argv) | |||
{ | |||
printf("cr2hdr: a post processing tool for Dual ISO images\n\n"); | |||
- printf("Last update: %s\n", module_get_string(dual_iso_strings, "Last update")); | |||
+ /* printf("Last update: %s\n", module_get_string(dual_iso_strings, "Last update")); */ | |||
fast_randn_init(); | |||
if (argc == 1) | |||
{ | |||
printf("No input files.\n\n"); | |||
- printf("GUI usage: drag some CR2 or DNG files over cr2hdr.exe.\n\n"); | |||
+ /* printf("GUI usage: drag some CR2 or DNG files over cr2hdr.exe.\n\n"); */ | |||
show_commandline_help(argv[0]); | |||
return 0; | |||
} |
@ -0,0 +1,11 @@ | |||
--- a/magic-lantern/modules/Makefile.modules | |||
+++ b/magic-lantern/modules/Makefile.modules | |||
@@ -14,7 +14,7 @@ | |||
MODULE_DEP = $(MODULE_NAME).dep | |||
MODULE_DEPS = $(MODULE_NAME).d | |||
-MODULE_STRINGS = module_strings.h | |||
+MODULE_STRINGS = | |||
HGDIFF_OBJS = hgdiff.tmp | |||
@ -0,0 +1 @@ | |||
ARM_PATH=$(TOP_DIR)/gcc-arm-none-eabi-4_8-2013q4 |
@ -0,0 +1,103 @@ | |||
# Maintainer: Pekka Helenius < fincer89 [at] hotmail [dot] com > | |||
pkgname=magiclantern-tools | |||
pkgver=1 | |||
pkgrel=1 | |||
pkgdesc="Magic Lantern Linux-compatible image processing tools for pictures taken with Canon DSLR's with Magic Lantern firmware." | |||
arch=('any') | |||
url='https://bitbucket.org/hudson/magic-lantern' | |||
license=("GPL") | |||
depends=('perl-image-exiftool' 'dcraw') | |||
optdepends=('octave') | |||
makedepends=('mercurial') | |||
#REQUIRED BY MODULES | |||
#Use these dependencies only if you try compile more modules. They rely partially on rst2html5 package. | |||
#makedepends=('rst2html5' 'python-docutils') | |||
arm_compiler=gcc-arm-none-eabi-4_8-2013q4 | |||
source=( | |||
"https://launchpad.net/gcc-arm-embedded/4.8/4.8-2013-q4-major/+download/$arm_compiler-20131204-linux.tar.bz2" | |||
"Makefile.user" | |||
"01-patch_tcc_makefile-fix.patch" | |||
"02_patch_cr2hdr-source_add-dryrun.patch" | |||
"03_patch_add_baseline-exif.patch" | |||
"04_patch_cr2hdr_disable-strings.patch" | |||
"05_patch_modules-makefile_disable-strings.patch" | |||
) | |||
md5sums=('4869e6a6e1dc11ea0835e8b8213bb194' | |||
'035e3049e5f3205680566ffc6c6e9023' | |||
'd2f975ad4896c3b82a5076bd396ceec6' | |||
'2a921d40e65004bb0f9f4d274b83ff04' | |||
'317c4ce8317182a98700b57b285ef184' | |||
'd2e57664cbc7310521eee4b0b13a3f41' | |||
'25281350b6a5a9f40a1b40933f0de829') | |||
prepare() { | |||
cd "$srcdir"/ | |||
##### | |||
#Download Magic Lantern latest source files | |||
msg2 "Downloading Magic Lantern source code" | |||
hg clone -r unified https://bitbucket.org/hudson/magic-lantern | |||
##### | |||
#This is an ugly hack, I know. Make sure you update the patch file if you change ARM compiler | |||
patch -Np1 -i "$srcdir"/01-patch_tcc_makefile-fix.patch | |||
#Implement Dry Run feature in CR2HDR | |||
patch -Np1 -i "$srcdir"/02_patch_cr2hdr-source_add-dryrun.patch | |||
#Write Baseline Exposure values to EXIF tags: | |||
patch -Np1 -i "$srcdir"/03_patch_add_baseline-exif.patch | |||
#All modules have python issues (outdated code?) so they don't compile. The problem is related to version etc. strings. Just disable them and compile the code. Only used for cr2hdr (as we need it, not other modules) | |||
patch -Np1 -i "$srcdir"/04_patch_cr2hdr_disable-strings.patch | |||
patch -Np1 -i "$srcdir"/05_patch_modules-makefile_disable-strings.patch | |||
#Custom compilation settings for Magic Lantern (Mainly ARM compiler path redefinition) | |||
ln -fs "$srcdir"/Makefile.user "$srcdir"/magic-lantern/Makefile.user | |||
#Link downloaded ARM compiler files to Magic Lantern directory | |||
ln -fs "$srcdir"/$arm_compiler "$srcdir"/magic-lantern/$arm_compiler | |||
} | |||
build() { | |||
cd ${srcdir} | |||
export PATH=$PATH:${PWD}/${arm_compiler}/bin | |||
cd "$srcdir"/magic-lantern #/modules/dual_iso | |||
####################################### | |||
# FIRMWARE - MODULES FAIL TO BUILD DUE TO PYTHON ISSUES | |||
##make 5D3 #5D Mark 3 - Both firmwares - DOESN'T INCLUDE MODULES YET | |||
##make 5D3.113 #5D Mark 3 - Firmware 1.1.3 - DOESN'T INCLUDE MODULES YET | |||
#make 5D3.123 #5D Mark 3 - Firmware 1.2.3 - DOESN'T INCLUDE MODULES YET | |||
#mkdir -p "$startdir"/5dmark3_firmware_123/ | |||
#cp "$srcdir"/magic-lantern/platform/5D3.123/{autoexec.bin,ML-SETUP.FIR} "$startdir"/5dmark3_firmware_123/ #magiclantern.bin,version.bin | |||
####################################### | |||
# MODULES | |||
#make all_modules #All modules - FAIL TO BUILD DUE TO PYTHON ISSUES | |||
#CR2HDR application for host computer | |||
cd "$srcdir"/magic-lantern/modules/dual_iso | |||
make cr2hdr | |||
cd .. | |||
#MLV_DUMP application for host computer | |||
cd "$srcdir"/magic-lantern/modules/mlv_rec | |||
make mlv_dump | |||
cd .. | |||
} | |||
package() | |||
{ | |||
mkdir -p "$pkgdir"/usr/bin | |||
cp "$srcdir"/magic-lantern/modules/dual_iso/cr2hdr "$pkgdir"/usr/bin | |||
cp "$srcdir"/magic-lantern/modules/mlv_rec/mlv_dump "$pkgdir"/usr/bin/mlvdump | |||
} |