Bug in gui_tv_override_value_enum - already fixed - General Discussion and Assistance - CHDK Forum
supplierdeeply

Bug in gui_tv_override_value_enum - already fixed

  • 12 Replies
  • 3804 Views
*

Offline PhyrePhoX

  • *****
  • 2254
  • make RAW not WAR
    • PhyreWorX
Bug in gui_tv_override_value_enum - already fixed
« on: 20 / March / 2008, 16:34:45 »
Advertisements
Hi,

today i noticed a small, yet annoying bug in chdk, you can reproduce it like this:
set "shutter speed enum type" to "Ev step" and then the "Shutter speed override value" to "64" (of course set the value factor to 1). then take picture. the shutter speed isnt overridden at all, meaning that the camera will either use it's auto shutter speed or the speed you set in manual or tv mode (50.8 seconds works though).
took a short look @ the code, couldnt find the bug.
i can take 64 second images if i set the enum type to "factor" and set the value to 100.

tested on a620, shouldnt matter which model though (i think).

should be small fix imo.

thanks in advance, PhoX
« Last Edit: 23 / March / 2008, 23:14:13 by PhyrePhoX »

*

Offline yvesson

  • ***
  • 207
  • A540 SX10IS
    • poll about some pics (not much serious) ^^
Hej,
I noticed the same with A540 0.5.

*

Offline GrAnd

  • ****
  • 916
  • [A610, S3IS]
    • CHDK
I suspect that the bug is here:
platform/generic/shooting.c
Code: (c) [Select]
void shooting_expo_param_override(void){
...
 else if ((conf.tv_override_value) && (conf.tv_override_koef))
...

That condition is false for 64 because in "Ev step" mode the conf.tv_override_value behaves as index of an array and contains 0.


Should be something like this:
else if ((conf.tv_enum_type) || ((conf.tv_override_value) && (conf.tv_override_koef)))
« Last Edit: 20 / March / 2008, 16:54:21 by GrAnd »
CHDK Developer.

*

Offline PhyrePhoX

  • *****
  • 2254
  • make RAW not WAR
    • PhyreWorX
this works, thanks. unfortunately i cannot test if this has any sideeffects, as the exif isnt updated with the chdk value. somewhere i read chdk writes some info into the makernotes, is that true? under what conditions?
other then that, please include that code fix into your next commit, so that everyone can use it :)
* PhyrePhoX applauses GrAnd


*

Offline PhyrePhoX

  • *****
  • 2254
  • make RAW not WAR
    • PhyreWorX
okay, i found out the sideeffect: shutter speed override is ALWAYS in effect, no matter if you set value factor to OFF (this only happens in Ev step mode). sorry to bother you again ;)

*

Offline GrAnd

  • ****
  • 916
  • [A610, S3IS]
    • CHDK
Maybe this:
else if (((conf.tv_enum_type) || (conf.tv_override_value)) && (conf.tv_override_koef))

I did not check it as usual :)
CHDK Developer.

*

Offline PhyrePhoX

  • *****
  • 2254
  • make RAW not WAR
    • PhyreWorX
okay, tested it, seems to work now!
one other thing i noticed though: tv override is shown in OSD (e.g. TV: 100.000) only in factor mode, not in ev step mode. dont know where to handle that thoug, but i'm sure i will find out (added it to my internal todo list) :)
« Last Edit: 21 / March / 2008, 19:16:12 by PhyrePhoX »

*

Offline Jucifer

  • *****
  • 251
  • [A710IS]
No osd-problem here.  ???


*

Offline PhyrePhoX

  • *****
  • 2254
  • make RAW not WAR
    • PhyreWorX
okay, only occurs when you set tv to 64 seconds :)

*

Offline Jucifer

  • *****
  • 251
  • [A710IS]
in gui_osd.c, gui_osd_draw_state():
replace
    if (((conf.tv_override_value) && (conf.tv_override_koef)) || gui_mode==GUI_MODE_OSD){
with
    if ((((conf.tv_enum_type) || (conf.tv_override_value)) && (conf.tv_override_koef)) || gui_mode==GUI_MODE_OSD){

 

Related Topics