Multiple Bug's (Live View / Zoom / Shoot) - page 10 - General Discussion and Assistance - CHDK Forum

Multiple Bug's (Live View / Zoom / Shoot)

  • 105 Replies
  • 27548 Views
*

Offline srsa_4c

  • ******
  • 4451
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #90 on: 07 / December / 2019, 16:22:05 »
Advertisements
One catch, we don't actually identify cameras by Digic version anywhere.
IIRC the uncached bit is 0x40000000 on D4 and later cams, DIGIC II-III uses 0x10000000.

*

Offline Caefix

  • *****
  • 945
  • Sorry, busy deleting test shots...
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #91 on: 27 / March / 2020, 14:09:40 »
 :D Any drums near?   8)
     I smell the Ork sweating fear...
I wonder if we should set all D4 and newer cams to use CAM_USE_ALT_PT_MoveOpticalZoomAt...
All lifetime is a loan from eternity.

*

Offline reyalp

  • ******
  • 14080
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #92 on: 17 / May / 2020, 23:25:30 »
:D Any drums near?   8)
     I smell the Ork sweating fear...
I wonder if we should set all D4 and newer cams to use CAM_USE_ALT_PT_MoveOpticalZoomAt...
Finally worked on this. Attached is a csv of the current define values and proposed patch.

Two cameras (g10 and g12) use CAM_USE_ALT_SET_ZOOM_POINT without CAM_USE_ALT_PT_MoveOpticalZoomAt
The patch adds an undef to maintain the current behavior.
If @philmoz and @waterwingz can verify they work with CAM_USE_ALT_PT_MoveOpticalZoomAt, we could eliminate some of the #ifdef rats nest.
D10 was previously like this, switching didn't seem to impact zoom functionality. I verified that clicking the zoom button and set_zoom produced the same distortion correction in jpegs at various zoom levels.

There appear to be 29 remaining digic >=4, non-ILC cameras which don't currently use CAM_USE_ALT_PT_MoveOpticalZoomAt
They are:
Code: [Select]
sx10
ixus980_sd990
sx1
ixus870_sd880
ixus110_sd960
a2100
sx200is
ixus990_sd970
ixus100_sd780
a1100
ixus95_sd1200
g11
sx120is
s90
sx20
ixus200_sd980
ixus120_sd940
ixus130_sd1400
sx210is
ixus1000_sd4500
s95
a3200
ixus310_elph500hs
ixus230_elph310hs
sx40hs
ixus240_elph320hs
ixus125_elph110hs
g15
s110

That's kind of a lot to change blindly, but I feel like it's probably the right thing to do. Arguments either way are welcome.

Additional things:
Cleaned up the usage of CAM_USE_OPTICAL_MAX_ZOOM_STATUS - This only has effect where CHDK unlocked optical zoom in video. I removed it for the ones that don't in r5500. For modern cameras, the Canon firmware usually (always?) allows zoom in video.

I added CAM_ILC so the ILC cameras don't have set_zoom code, and error if any of the defines are used.

Three digic 3 cameras (a490, a495, a800) currently use CAM_USE_ALT_PT_MoveOpticalZoomAt
From the commit logs, these were set based on testing not c&p in the initial port. They aren't impacted by the patch, but it suggests other cams might benefit from the refocus behavior.

edit:
updated patch, some #error logic was wrong in -1  :-[
« Last Edit: 18 / May / 2020, 00:25:07 by reyalp »
Don't forget what the H stands for.

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #93 on: 18 / May / 2020, 04:45:07 »
If @philmoz and @waterwingz can verify they work with CAM_USE_ALT_PT_MoveOpticalZoomAt, we could eliminate some of the #ifdef rats nest.


To save wading through 10 pages of the thread, can you summarise what needs to be tested please.


Phil.

CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


*

Offline reyalp

  • ******
  • 14080
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #94 on: 18 / May / 2020, 13:40:28 »
To save wading through 10 pages of the thread, can you summarise what needs to be tested please.
define CAM_USE_ALT_PT_MoveOpticalZoomAt in platform_camera.h (in addition to CAM_USE_ALT_SET_ZOOM_POINT)
check that set_zoom still works and doesn't crash

check that equivalent distortion correction is applied to canon jpegs when using key presses or set_zoom. My approach to testing this in chdkptp was
=click"zoom_in"
a few times
=return get_zoom()
note the zoom level
shoot

=click"zoom_out"
to full wide again

=set_zoom()
to the value noted above
shoot
compare the images
Don't forget what the H stands for.

Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #95 on: 19 / May / 2020, 12:36:07 »
I think @srsa_4c has, or at least had, a G10 as well.  I will dig mine out - it's been a while - if he can't check this more quickly for you.
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline srsa_4c

  • ******
  • 4451
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #96 on: 19 / May / 2020, 17:20:37 »
Two cameras (g10 and g12) use CAM_USE_ALT_SET_ZOOM_POINT without CAM_USE_ALT_PT_MoveOpticalZoomAt
The patch adds an undef to maintain the current behavior.
If @philmoz and @waterwingz can verify they work with CAM_USE_ALT_PT_MoveOpticalZoomAt, we could eliminate some of the #ifdef rats nest.
Tried on my g10, tested using your patch and again without the new #undef in platform_camera.h . Could not observe any visible difference (no distortion on jpegs before/after) and neither crashed while set_zoom'ing.

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #97 on: 21 / May / 2020, 19:11:08 »
Sorry for the delay.
I tried the same tests as srsa_4c did on the G10 with the G12 and I can see no differences in the images.


Looks like it is safe to remove the #undef from the G12.


Phil.

CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


*

Offline reyalp

  • ******
  • 14080
Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #98 on: 22 / May / 2020, 22:12:36 »
I tried the same tests as srsa_4c did on the G10 with the G12 and I can see no differences in the images.
Thanks :)

I made the following changes:
r5507 - made CAM_USE_ALT_SET_ZOOM_POINT always use the CAM_USE_ALT_PT_MoveOpticalZoomAt case, and removed the CAM_USE_ALT_PT_MoveOpticalZoomAt define.
Previously, a platform could either define CAM_USE_ALT_SET_ZOOM_POINT alone, or in addition to CAM_USE_ALT_PT_MoveOpticalZoomAt. With g10 and g12 verified, all cameras use the same logic, enabled with the CAM_USE_ALT_SET_ZOOM_POINT define alone.

r5508 - make all digic 4 and above cameras use CAM_USE_ALT_SET_ZOOM_POINT by default. This changes the behavior of a bunch of cameras without testing, which is a bit sporty  :-[ but I suspect mostly an improvement.
Affected cameras are:
Code: [Select]
a1100
a2100
a3200
g11
g15
ixus100_sd780
ixus1000_sd4500
ixus110_sd960
ixus120_sd940
ixus125_elph110hs
ixus130_sd1400
ixus200_sd980
ixus230_elph310hs
ixus240_elph320hs
ixus310_elph500hs
ixus870_sd880
ixus95_sd1200
ixus980_sd990
ixus990_sd970
s110
s90
s95
sx1
sx10
sx120is
sx20
sx200is
sx210is
sx40hs

r5510 - remove CAM_USE_ALT_SET_ZOOM_POINT from the digic 4 platform_camera.h files. Three digic 3 cameras (a490, a495, a800) still explicitly define it.
Don't forget what the H stands for.

Re: Multiple Bug's (Live View / Zoom / Shoot)
« Reply #99 on: 22 / May / 2020, 23:37:03 »
This changes the behavior of a bunch of cameras without testing, which is a bit sporty  :-[ but I suspect mostly an improvement.
Well, my ixus120_sd940  (my first port) is still kicking around so I could remove one from the list when I get a moment.
Ported :   A1200    SD940   G10    Powershot N    G16

 

Related Topics