Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - argv[0]

#1
As I see this algorithm has implemented by match_exposures function. It's right?
#2
I have got the strange result processing Dual-ISO RAW with cr2hdr: shadows in the DNG contains zebras looks like remains of recovery ISO lines from the original RAW.
Please take a look this two RAW(s): 1, 2.
The first one shows this effect in the shadow on top, but the second has no zebras in the same place.
What is it? How to fix it?

BTW, an old 16-bit cr2hdr provides no zebras.
#3
General Development / Re: Font used for the icons?
April 14, 2016, 03:00:02 PM
Also. May be it will be useful for somebody.
mkicon-canon.gz
It's perl script to recreate bitmap for the icon using it textual representation in the comments of the ico.c file.
For example, you may edit "comment" part of any icon directly inside ico.c file using vim editor, then select lines of changed icon using "visual line selection", type ':', append "!perl /path/to/mkicon-canon -o" into vim command line and press <ENTER>. When command was executed, vim replaces selected lines with script output. The "code" part of the replaced lines will contain recreated bitmap.
Optionally script saves bitmap as an image file (append "-i /path/to/image.png" into command line to do it).
#4
General Development / Re: Font used for the icons?
April 14, 2016, 09:48:36 AM
"Let me put my two cents"  :)
#if defined(CONFIG_5D2) || defined(CONFIG_50D)
{
// 'm'
.width = 40,
.height = 34,
.yoff = 3,
.display_width = 40,
.bitmap = {
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0xc0, 0x00, //                         ##
0x0f, 0xe6, 0x30, 0xe0, 0x00, //     #######  ##   ##    ###
0x0c, 0x06, 0x30, 0xf0, 0x00, //     ##       ##   ##    ####
0x0c, 0x06, 0x30, 0xf8, 0x00, //     ##       ##   ##    #####
0x0f, 0x86, 0x30, 0xfc, 0x00, //     #####    ##   ##    ######
0x0c, 0x06, 0x30, 0xfe, 0x00, //     ##       ##   ##    #######
0x0c, 0x06, 0x30, 0xff, 0x00, //     ##       ##   ##    ########
0x0c, 0x03, 0xe0, 0xff, 0x80, //     ##        #####     #########
0x00, 0x00, 0x00, 0xff, 0xc0, //                         ##########
0x0c, 0x61, 0xe0, 0xff, 0x80, //     ##   ##    ####     #########
0x0c, 0x63, 0x30, 0xff, 0x00, //     ##   ##   ##  ##    ########
0x0e, 0x66, 0x00, 0xfe, 0x00, //     ###  ##  ##         #######
0x0d, 0x66, 0x00, 0xfc, 0x00, //     ## # ##  ##         ######
0x0c, 0xe6, 0x00, 0xf8, 0x00, //     ##  ###  ##         #####
0x0c, 0x63, 0x30, 0xf0, 0x00, //     ##   ##   ##  ##    ####
0x0c, 0x61, 0xe0, 0xe0, 0x00, //     ##   ##    ####     ###
0x00, 0x00, 0x00, 0xc0, 0x00, //                         ##
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //

},
},
{
// 'n'
.width = 40,
.height = 34,
.yoff = 3,
.display_width = 40,
.bitmap = {
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x01, 0x80, 0x00, 0x00, //                ##
0x00, 0x03, 0x87, 0xf3, 0x18, //               ###    #######  ##   ##
0x00, 0x07, 0x86, 0x03, 0x18, //              ####    ##       ##   ##
0x00, 0x0f, 0x86, 0x03, 0x18, //             #####    ##       ##   ##
0x00, 0x1f, 0x87, 0xc3, 0x18, //            ######    #####    ##   ##
0x00, 0x3f, 0x86, 0x03, 0x18, //           #######    ##       ##   ##
0x00, 0x7f, 0x86, 0x03, 0x18, //          ########    ##       ##   ##
0x00, 0xff, 0x86, 0x01, 0xf0, //         #########    ##        #####
0x01, 0xff, 0x80, 0x00, 0x00, //        ##########                   
0x00, 0xff, 0x86, 0x30, 0xf0, //         #########    ##   ##    ####
0x00, 0x7f, 0x86, 0x31, 0x98, //          ########    ##   ##   ##  ##
0x00, 0x3f, 0x87, 0x33, 0x00, //           #######    ###  ##  ##     
0x00, 0x1f, 0x86, 0xb3, 0x00, //            ######    ## # ##  ##     
0x00, 0x0f, 0x86, 0x73, 0x00, //             #####    ##  ###  ##     
0x00, 0x07, 0x86, 0x31, 0x98, //              ####    ##   ##   ##  ##
0x00, 0x03, 0x86, 0x30, 0xf0, //               ###    ##   ##    ####
0x00, 0x01, 0x80, 0x00, 0x00, //                ##
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //
0x00, 0x00, 0x00, 0x00, 0x00, //

},
},
#else //defined(CONFIG_5D2) || defined(CONFIG_50D)

'm' 'n'
#5
a1ex, I have built and tested the ML with the following patch:
--- a/src/shoot.c Thu Jan 14 00:52:20 2016 +0200
+++ b/src/shoot.c Thu Jan 28 12:49:16 2016 +0300
@@ -4794,7 +4794,12 @@

#ifdef CONFIG_BULB
         // then choose the best option (bulb for long exposures, regular for short exposures)
-        if (msc >= 20000 || is_bulb_mode())
+        //if (msc >= 20000 || is_bulb_mode())
+        if (msc >= 20000
+        #ifdef CONFIG_SEPARATE_BULB_MODE
+            || shooting_mode == SHOOTMODE_BULB
+        #endif
+            )
         {
             bulb_take_pic(msc);
         }

All advanced bracketing sequences works as expected on my 50D.

During the build process I have found some issues in makefiles:
1. MAKE macro defined unconditionally in the Makefile.top. As far as I know, we are shouldn't set MAKE macro, make do this itself.
2. In the modules/Makefile and modules/Makefile.modules MAKE macro not used to run subsequent make commands.
As a result, on the FreeBSD host build was broken because of make from base system (derived from pmake) is incompatible from GNU makefile syntax extensions (which ML makefiles uses). But GNU make from ports is named as gmake to avoid naming conflicts with base system make.
The following patches are fixed this:
--- a/Makefile.top Thu Jan 14 00:52:20 2016 +0200
+++ b/Makefile.top Thu Jan 28 12:49:16 2016 +0300
@@ -1,4 +1,4 @@
-MAKE=make
+MAKE?=make
RM=rm
MV=mv
MKDIR=mkdir
--- a/modules/Makefile Thu Jan 14 00:52:20 2016 +0200
+++ b/modules/Makefile Thu Jan 28 12:49:16 2016 +0300
@@ -13,7 +13,7 @@
MODULES_ALL_TARGETS_DELETE_IF_FAILED = $(call targets_rules, $(MODULES_ALL_TARGETS), delete_if_failed)

all:
- @make --silent all_silent
+ @$(MAKE) --silent all_silent

all_silent: $(MODULES_ALL_TARGETS_DELETE_IF_FAILED)

--- a/modules/Makefile.modules Thu Jan 14 00:52:20 2016 +0200
+++ b/modules/Makefile.modules Thu Jan 28 12:49:16 2016 +0300
@@ -21,13 +21,13 @@
delete_if_failed:
@echo ""
@echo "Building module $(MODULE_NAME)..."
- @make all --no-print-directory || { \
+ @$(MAKE) all --no-print-directory || { \
echo ""; \
echo "********************************************************"; \
echo "WARNING: module $(MODULE_NAME) failed to build, deleting"; \
echo "********************************************************"; \
echo ""; \
- make clean; \
+ $(MAKE) clean; \
}

-include $(MODULE_DEPS)
#6
garry23, Thank you for suggestion. But... Where can I find the "ML RAW Spotmeter"?
#7
Some time ago I tried to shoot a wide dynamic range scene (about 21 EV as it was estimated) - deep shadow at foreground and middle distance, bright lights at background. So advanced bracketing was set to 5x3EV. Also there is many people and cars has passing thru a street at foreground. So an ND filter was used to increase exposure. Historically I use "0 - --" sequences because of long exposure can be easily estimated by shadows. As a result, bulb timer was set to 2m expecting the following sequence: 120,15,2,1/4,1/30. But really 120,15,2,1,1 sequence was gotten. I was confused. I tried to switch sequence type to "0 + ++", turn off bulb timer and set shutter speed to 1/30. The sequence was complete as expected: 1/30,1/4,2,16,128. I was confused again and have going a look at code. :)
#8
OK. As I understand it, there are two ways to get the bulb timer operation. The first one is set the camera to "BULB" shooting mode. And the second is set the "M" mode and select a BULB shutter speed. It's right?
I have a 50D body. As far as I know, this camera does not have a dedicated "BULB" mode. I'm using the "M" mode to shoot long exposures. And this case, as I understand, advanced HDR bracketing is working properly using the bulb timer.
So, may be better to change the condition switching between regular and bulb shooting modes:
--- a/src/shoot.c
+++ b/src/shoot.c
@@ -5055,7 +5055,7 @@

#ifdef CONFIG_BULB
         // then choose the best option (bulb for long exposures, regular for sh
-        if (msc >= 20000 || is_bulb_mode())
+        if (msc >= 20000 || shooting_mode == SHOOTMODE_BULB)
         {
             bulb_take_pic(msc);
         }


Or even:
--- a/src/shoot.c
+++ b/src/shoot.c
@@ -5055,7 +5055,11 @@

#ifdef CONFIG_BULB
         // then choose the best option (bulb for long exposures, regular for sh
-        if (msc >= 20000 || is_bulb_mode())
+#ifdef CONFIG_SEPARATE_BULB_MODE
+        if (msc >= 20000 || shooting_mode == SHOOTMODE_BULB)
+#else
+        if (msc >= 20000)
+#endif
         {
             bulb_take_pic(msc);
         }
#9
I has confused with the following changeset:
$ hg log -v -r 3225af1b94b5
changeset:   9368:3225af1b94b5
branch:      unified
user:        a1ex <[email protected]>
date:        Fri Jan 17 14:01:30 2014 +0000
files:       src/shoot.c
description:
minor fix for bulb bracketing at short exposure times

$ hg diff -r 466490e467b9 -r 3225af1b94b5 src/shoot.c
diff -r 466490e467b9 -r 3225af1b94b5 src/shoot.c
--- a/src/shoot.c       Fri Jan 17 15:32:04 2014 +0200
+++ b/src/shoot.c       Fri Jan 17 14:01:30 2014 +0000
@@ -5055,7 +5055,7 @@

#ifdef CONFIG_BULB
         // then choose the best option (bulb for long exposures, regular for sh
-        if (msc >= 20000)
+        if (msc >= 20000 || is_bulb_mode())
         {
             bulb_take_pic(msc);
         }


The current code looks like:
#ifdef CONFIG_BULB
        // then choose the best option (bulb for long exposures, regular for short exposures)
        if (msc >= 20000 || is_bulb_mode())
        {
            bulb_take_pic(msc);
        }
        else
#endif
        {
            #if defined(CONFIG_5D2) || defined(CONFIG_50D)
            if (get_expsim() == 2) { set_expsim(1); msleep(300); } // can't set shutter slower than 1/30 in movie mode
            #endif
            ans = MIN(ans, hdr_set_rawshutter(rc));
            take_a_pic(AF_DONT_CHANGE);
        }

So, when the exposure bracketing sequence starts from regular shutter speed and some shoots in this sequence requires the exposure time longer than 20 s. (true for the "0 - + -- ++" or "0 + ++" sequence types), the bulb shutter speed will be available. But when the sequence starts from bulb shutter speed (exposure time is bulb and bulb timer is on), pictures may be taken only by bulb exposure time and never by regular. As a result, bulb and regular exposure times can't be used together for the "0 - --" sequence type in the same sequence. It's strange.

Which issue this patch fixes?
Just IMHO, " || is_bulb_mode()" is needlessly here.