Canon 650D / T4i

Started by nanomad, August 03, 2013, 07:27:52 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

saulbass

lua_fix.2018Apr27.650D104

I didn't try the earlier version as Mr. Schulz had reported issues.



dfort

Strange, only difference should be the one fixed stub.

Try pulling the battery and restarting camera without the SD card then try the April 27 build again. You might also need to clear the Canon settings. Improper stubs sometimes do strange things and we've been working that stub with the lua tests.

saulbass

I've already done that.

dfort

Ok--made a new test build. lua_fix-stub_fix for the 650D.104

dfort

Darn it, looks like that "fix" I made "unfixed" it. Check out this commit.

-//NSTUB(0xFF542BA0, PlayMovieGuideApp_handler) // Maybe used when touch disabled??
+//NSTUB(0xFF542BA0, PlayMovieGuideApp_handler_bad) // Maybe used when touch disabled??
NSTUB(0xFF666C4C,  PlayMovieGuideApp_handler)


Still, isn't there something going on here that is causing the lua API test to fail when playing back a movie?

Walter Schulz

Status unclear (at least for me). Please explain how to help you with these issues.

dfort

Please run the latest test build. It still shows 0 downloads so I know it hasn't been tried yet.

Before I kill this pull request I'd like it checked out on real hardware. The code change I posted in Reply #2104 was made on an old code base so maybe this can be changed back to what the other cameras are using?

Another thing to try is to run the test with touchscreen enabled and disabled. Do you get different results?

It appears that we've got everything working except for this one line in the movie tests:

assert(camera.gui.play_movie == true)

Walter Schulz

Only movie mode tested, touch on.


===============================================================================
ML/SCRIPTS/api_test.lua - 2018-4-28 17:07:37
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "api_test.lua"
camera = table:
  shutter = table:
    raw = 75
    apex = 2.375
    ms = 193
    value = 0.192776
  aperture = table:
    raw = 48
    apex = 5.
    value = 5.6
    min = table:
      raw = 43
      apex = 4.375
      value = 4.5
    max = table:
      raw = 86
      apex = 9.75
      value = 29.300001
  iso = table:
    raw = 104
    apex = 9.
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash = true
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 650D"
  model_short = "650D"
  firmware = "1.0.4"
  temperature = 166
  gui = table:
    menu = false
    play = false
    play_photo = false
    play_movie = false
    qr = false
    idle = true
  reboot = function: p
  burst = function: p
  shoot = function: p
  bulb = function: p
  wait = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  hide = function: p
  clear = function: p
  write = function: p
  show = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  overlays = false
  info = function: p
  pause = function: p
  resume = function: p
  stop = function: p
  wait = function: p
  start = function: p
lens = table:
  name = "EF-S18-55mm f/3.5-5.6 IS II"
  focal_length = 34
  focus_distance = 1820
  hyperfocal = 10932
  dof_near = 1576
  dof_far = 2156
  af = true
  af_mode = 0
  autofocus = function: p
  focus = function: p
display = table:
  idle = nil
  height = 480
  width = 720
  pixel = function: p
  clear = function: p
  notify_box = function: p
  draw = function: p
  print = function: p
  screenshot = function: p
  circle = function: p
  line = function: p
  load = function: p
  on = function: p
  rect = function: p
  off = function: p
key = table:
  last = 10
  wait = function: p
  press = function: p
menu = table:
  visible = false
  select = function: p
  set = function: p
  close = function: p
  new = function: p
  get = function: p
  block = function: p
  open = function: p
movie = table:
  recording = false
  stop = function: p
  start = function: p
dryos = table:
  clock = 13
  ms_clock = 13750
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/101CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 175
    folder_number = 101
    free_space = 6631552
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 175
    folder_number = 101
    free_space = 6631552
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    day = 28
    sec = 38
    month = 4
    yday = 118
    year = 2018
    wday = 7
    min = 7
    isdst = false
    hour = 17
  remove = function: p
  call = function: p
  rename = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/api_test.lua:36: in function <ML/SCRIPTS/api_test.lua:35>
[C]: in function 'globals.xpcall'
ML/SCRIPTS/api_test.lua:35: in function 'globals.print_table'
ML/SCRIPTS/api_test.lua:81: in function 'globals.generic_tests'
ML/SCRIPTS/api_test.lua:1338: in function 'globals.api_tests'
ML/SCRIPTS/api_test.lua:1364: in main chunktask = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...

Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.

Done!



Movie mode tested, touch off:


===============================================================================
ML/SCRIPTS/api_test.lua - 2018-4-28 17:11:55
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "api_test.lua"
camera = table:
  shutter = table:
    raw = 96
    apex = 5.
    ms = 31
    value = 0.03125
  aperture = table:
    raw = 48
    apex = 5.
    value = 5.6
    min = table:
      raw = 43
      apex = 4.375
      value = 4.5
    max = table:
      raw = 86
      apex = 9.75
      value = 29.300001
  iso = table:
    raw = 104
    apex = 9.
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash = true
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 650D"
  model_short = "650D"
  firmware = "1.0.4"
  temperature = 164
  gui = table:
    menu = false
    play = false
    play_photo = false
    play_movie = false
    qr = false
    idle = true
  burst = function: p
  reboot = function: p
  wait = function: p
  bulb = function: p
  shoot = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  clear = function: p
  show = function: p
  hide = function: p
  write = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  overlays = false
  wait = function: p
  pause = function: p
  start = function: p
  resume = function: p
  info = function: p
  stop = function: p
lens = table:
  name = "EF-S18-55mm f/3.5-5.6 IS II"
  focal_length = 34
  focus_distance = 1820
  hyperfocal = 10932
  dof_near = 1576
  dof_far = 2156
  af = true
  af_mode = 0
  focus = function: p
  autofocus = function: p
display = table:
  idle = nil
  height = 480
  width = 720
  print = function: p
  notify_box = function: p
  draw = function: p
  on = function: p
  screenshot = function: p
  circle = function: p
  off = function: p
  load = function: p
  pixel = function: p
  clear = function: p
  rect = function: p
  line = function: p
key = table:
  last = 10
  wait = function: p
  press = function: p
menu = table:
  visible = false
  set = function: p
  block = function: p
  open = function: p
  get = function: p
  select = function: p
  close = function: p
  new = function: p
movie = table:
  recording = false
  start = function: p
  stop = function: p
dryos = table:
  clock = 8
  ms_clock = 8752
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/101CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 176
    folder_number = 101
    free_space = 6621568
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 176
    folder_number = 101
    free_space = 6621568
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    hour = 17
    min = 11
    day = 28
    yday = 118
    month = 4
    isdst = false
    year = 2018
    sec = 56
    wday = 7
  remove = function: p
  call = function: p
  rename = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/api_test.lua:36: in function <ML/SCRIPTS/api_test.lua:35>
[C]: in function 'globals.xpcall'
ML/SCRIPTS/api_test.lua:35: in function 'globals.print_table'
ML/SCRIPTS/api_test.lua:81: in function 'globals.generic_tests'
ML/SCRIPTS/api_test.lua:1338: in function 'globals.api_tests'
ML/SCRIPTS/api_test.lua:1364: in main chunktask = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...

Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.

Done!

dfort

Yay!

So--is this with the latest test build with the PlayMovieGuideApp_handler stub changed? If so could you do one more run of the movie test with the lua_fix build that is posted on the experiments download page? I'd like to verify if that stub is causing the problem we're trying to chase down.

[EDIT] BTW--are you noticing any weirdness with that test build that has the stub changed? I've been going through the source code history but can't find the reason that stub was changed.

a1ex

Quote from: dfort on April 28, 2018, 07:44:23 AM
Darn it, looks like that "fix" I made "unfixed" it. Check out this commit.

You meant 64b003d? My commit renamed a stub that was commented out, but had the same name as a valid one. I did not change anything in functionality regarding this stub, nor I could check it.

dfort

Ah--now it is starting to make sense.

On all the Digic 5 cameras that I checked the address used for PlayMovieGuideApp_handler is near an area in the disassembly that shows the string, "***** GuiOpenMoviePlay (%#x)": but the address that the 650D.104 is using is different. It is near a string named, "...}DlgGuidanceActive.c CONNECT_VIDEO/HDMI(%#x)": which to me didn't look right.

Also in commit  64b003d there's a similar issue with PlayMain_handler but the address that is being used in the current 650D.104 stubs.S file does match the other Digic 5 cameras.

So maybe my pull request is valid?

a1ex

You could check manually: print the value returned by get_current_dialog_handler() in a loop, and navigate various Canon menus. You'll get different values in PLAY mode, depending on whether you are reviewing a photo or a movie. You'll also get some other values in LiveView, for example. That's how these stubs are used (they are not called; they are used to identify various GUI states).

I may be able to check this one at some point in QEMU (got a half-working PoC for image review a while ago).

Walter Schulz

Quote from: dfort on April 28, 2018, 06:29:55 PM
If so could you do one more run of the movie test with the lua_fix build that is posted on the experiments download page? I'd like to verify if that stub is causing the problem we're trying to chase down.

Verified. Can't complete movie test.

Quote from: dfort on April 28, 2018, 06:29:55 PM
[EDIT] BTW--are you noticing any weirdness with that test build that has the stub changed?

Not doing RL camera work anytime soon.

dfort

Quote from: a1ex on April 28, 2018, 07:26:20 PM
You could check manually: print the value returned by get_current_dialog_handler() in a loop, and navigate various Canon menus...

Sounds interesting but what I really want to do is figure out why the 650D is failing the lua movie playback test. The 700D is very similar to the 650D so I changed the PlayMovieGuideApp_handler on the 700D to the one used on the 650D and I was able to reproduce the issue.

This is how the movie test completed.



Changing the stub to the "correct" PlayMovieGuideApp_handler it completed the test successfully.



Note that I used the same test saulbass used. Here's what the log looked like:

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-4-28 18:54:52
===============================================================================

Module tests...

Testing movie recording...
Please switch to Movie mode.
A
B
C
D
E
F
G
H
I
Movie recording tests completed.
J

K
Done!


With this test and the successful lua test Walter ran that used the PlayMovieGuideApp_handler stub fix I'm pretty certain that my pull request is the "fix" we're looking for.

Ok--back to my original project to do a firmware update on the 650D, I posted a new lua_fix test build on my downloads page for the 650D.105. Please test and report back.

Walter Schulz

Quote from: dfort on April 29, 2018, 04:21:15 AM
Ok--back to my original project to do a firmware update on the 650D, I posted a new lua_fix test build on my downloads page for the 650D.105. Please test and report back.


===============================================================================
ML/SCRIPTS/api_test.lua - 2018-4-29 07:15:17
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "api_test.lua"
camera = table:
  shutter = table:
    raw = 96
    apex = 5.
    ms = 31
    value = 0.03125
  aperture = table:
    raw = 48
    apex = 5.
    value = 5.6
    min = table:
      raw = 43
      apex = 4.375
      value = 4.5
    max = table:
      raw = 86
      apex = 9.75
      value = 29.300001
  iso = table:
    raw = 104
    apex = 9.
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash = true
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 650D"
  model_short = "650D"
  firmware = "1.0.5"
  temperature = 154
  gui = table:
    menu = false
    play = false
    play_photo = false
    play_movie = false
    qr = false
    idle = true
  reboot = function: p
  bulb = function: p
  shoot = function: p
  wait = function: p
  burst = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  write = function: p
  clear = function: p
  hide = function: p
  show = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  overlays = false
  stop = function: p
  wait = function: p
  start = function: p
  resume = function: p
  pause = function: p
  info = function: p
lens = table:
  name = "EF-S18-55mm f/3.5-5.6 IS II"
  focal_length = 34
  focus_distance = 5270
  hyperfocal = 10932
  dof_near = 3585
  dof_far = 10049
  af = true
  af_mode = 0
  focus = function: p
  autofocus = function: p
display = table:
  idle = nil
  height = 480
  width = 720
  rect = function: p
  clear = function: p
  print = function: p
  circle = function: p
  draw = function: p
  line = function: p
  pixel = function: p
  on = function: p
  notify_box = function: p
  load = function: p
  off = function: p
  screenshot = function: p
key = table:
  last = 10
  press = function: p
  wait = function: p
menu = table:
  visible = false
  open = function: p
  block = function: p
  get = function: p
  new = function: p
  close = function: p
  select = function: p
  set = function: p
movie = table:
  recording = false
  start = function: p
  stop = function: p
dryos = table:
  clock = 19
  ms_clock = 19442
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/101CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 181
    folder_number = 101
    free_space = 6551552
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 181
    folder_number = 101
    free_space = 6551552
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    hour = 7
    wday = 1
    sec = 18
    month = 4
    day = 29
    year = 2018
    min = 15
    isdst = false
    yday = 119
  rename = function: p
  call = function: p
  remove = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/api_test.lua:36: in function <ML/SCRIPTS/api_test.lua:35>
[C]: in function 'xpcall'
ML/SCRIPTS/api_test.lua:35: in function 'print_table'
ML/SCRIPTS/api_test.lua:81: in function 'generic_tests'
ML/SCRIPTS/api_test.lua:1338: in function 'api_tests'
ML/SCRIPTS/api_test.lua:1364: in main chunktask = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.

Testing Canon GUI functions...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Resume LiveView...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Resume LiveView...
Pause LiveView...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Resume LiveView...
Stop LiveView...
Start LiveView...
Pause LiveView...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Resume LiveView...
Pause LiveView...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Canon GUI tests completed.

Testing ML menu API...
Menu tests completed.

Testing picture taking functions...
Snap simulation test...
Single picture...
B:/DCIM/101CANON/IMG_0182.CR2: 22018522
B:/DCIM/101CANON/IMG_0182.JPG not found.
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
B:/DCIM/101CANON/ABC_0183.CR2: 23851016
B:/DCIM/101CANON/ABC_0183.JPG not found.
B:/DCIM/101CANON/ABC_0184.CR2: 28273487
B:/DCIM/101CANON/ABC_0184.JPG not found.
Bracketed pictures...
B:/DCIM/101CANON/IMG_0185.CR2: 26355705
B:/DCIM/101CANON/IMG_0185.JPG not found.
B:/DCIM/101CANON/IMG_0186.CR2: 24156679
B:/DCIM/101CANON/IMG_0186.JPG not found.
B:/DCIM/101CANON/IMG_0187.CR2: 14119633
B:/DCIM/101CANON/IMG_0187.JPG not found.
Bulb picture...
Elapsed time: 11707
B:/DCIM/101CANON/IMG_0188.CR2: 14105878
B:/DCIM/101CANON/IMG_0188.JPG not found.
Picture taking tests completed.

Testing multitasking...
Only one task allowed to interrupt...
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Multitasking tests completed.

Testing half-shutter...
Half-shutter test OK.

Testing module 'lv'...
Starting LiveView...
Overlays: Canon
Overlays: Canon
Overlays: ML
Overlays: ML
Overlays: disabled
Overlays: Canon
Overlays: Canon
Overlays: Canon
Overlays: disabled
Overlays: ML
Overlays: disabled
Overlays: Canon
Overlays: Canon
Overlays: Canon
Overlays: Canon
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.


Testing lens focus functionality...
Autofocus outside LiveView...
Focus distance: 1820
Autofocus in LiveView...
Please trigger autofocus (half-shutter / AF-ON / * ).
Autofocus triggered.
Autofocus completed.
Focus distance: 655350
Focusing backward...
Focus distance: 1130
Focus motor position: 0
Focusing forward with step size 3, wait=true...
......................
Focus distance: 250
Focus motor position: 0
Focusing backward with step size 3, wait=true...
..................
Focus distance: 655350
Focus motor position: 0
Focus range: 22 steps forward, 18 steps backward.
Motor steps: 0 forward, 0 backward, 0 lost.
Focusing forward with step size 3, wait=false...
.....................
Focus distance: 250
Focus motor position: 0
Focusing backward with step size 3, wait=false...
....................
Focus distance: 655350
Focus motor position: 0
Focus range: 21 steps forward, 20 steps backward.
Motor steps: 0 forward, 0 backward, 0 lost.
Focusing forward with step size 2, wait=true...
...
Focus distance: 250
Focus motor position: 0
Focusing backward with step size 2, wait=true...
...
Focus distance: 655350
Focus motor position: 0
Focus range: 108 steps forward, 105 steps backward.
Motor steps: 0 forward, 0 backward, 0 lost.
Focusing forward with step size 2, wait=false...
...
Focus distance: 250
Focus motor position: 0
Focusing backward with step size 2, wait=false...
...
Focus distance: 1130
Focus motor position: 0
Focus range: 117 steps forward, 276 steps backward.
Motor steps: 0 forward, 0 backward, 0 lost.
Focusing forward with step size 1, wait=true...
...
Focus distance: 1130
Focus motor position: 0
Focusing backward with step size 1, wait=true...
.........................................................
Focus distance: 1130
Focus motor position: 0
Focus range: 310 steps forward, 57 steps backward.
Motor steps: 0 forward, 0 backward, 0 lost.
Focusing forward with step size 1, wait=false...
...
Focus distance: 1130
Focus motor position: 0
Focusing backward with step size 1, wait=false...
.....................
Focus distance: 1130
Focus motor position: 0
Focus range: 176 steps forward, 21 steps backward.
Motor steps: 0 forward, 0 backward, 0 lost.

Focus test completed.

Testing exposure settings...
Camera    : Canon EOS 650D (650D) 1.0.5
Lens      : EF-S18-55mm f/3.5-5.6 IS II
Shoot mode: 3
Shutter   : ,5 (raw 75, 0.192776s, 193ms, apex 2.375)
Aperture  : 5.6 (raw 48, f/5.6, apex 5.)
Av range  : 4.5..29 (raw 43..86, f/4.5..f/29.300001, apex 4.375..9.75)
ISO       : €1600 (raw 104, 1600, apex 9.)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.


Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.

Done!

dfort

Thanks Walter -- looks like a perfect score. Reviewing the previous tests it looks like we had issues with some of the lenses that were tested. This is also a problem on the other cameras that we're running through these lua tests. It would be great to check various lenses, especially lenses that failed our earlier tests. You can comment out all the other tests to speed things up.

Quote from: a1ex on December 16, 2017, 01:36:42 AM
For every single camera model available on the Experiments page (lua_fix build), please run:

- api_test.lua (upload the log)
- selftest.mo -> stubs tests (upload the log)
- bench.mo -> memory benchmarks (upload the screenshot)
- overall sanity check (for example, if you decide to take this build out and use it for a couple of hours, please report back)



- 650D (walter, esas); autofocus issues; please re-run api_test.lua

We can check off the lua API test. It would be good to verify that the selftest stubs test and memory benchmarks (on the latest lua_fix build) are still good on 1.0.5. If it passes those tests let's kick it up to the next level and start testing some of the bleeding edge stuff. Just let me know what you want to try out, like maybe sd_uhs?

Walter Schulz

Stub test:
[Pass] is_play_mode() => 0x1
[INFO] Camera model: Canon EOS 650D 1.0.5 (0x80000301 650D)
[Pass] is_camera("DIGIC", "*") => 0x1
[Pass] is_camera(__camera_model_short, firmware_version) => 0x1
[Pass] src = fio_malloc(size) => 0x4a104084
[Pass] dst = fio_malloc(size) => 0x4a908090
[Pass] memcmp(dst, src, 4097) => 0x90
[Pass] edmac_memcpy(dst, src, 4097) => 0x4a908090
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x4a908090
[Pass] memcmp(dst, src, size) => 0xffffffde
[Pass] edmac_memcpy(dst, src, size) => 0x4a908090
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffffd8
[Pass] edmac_memcpy_start(dst, src, size) => 0x4a908090
       dt => 0x2914
[Pass] copied => 0x400570
[Pass] copied => 0x400570
[Pass] copied => 0x400570
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0x48
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x7fcb90
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x9b0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xf8
[Pass] tries[1] => 0xf6
[Pass] tries[2] => 0xf8
[Pass] tries[3] => 0x102
[Pass] failr[0] => 0x79
[Pass] failw[0] => 0xdc
[Pass] failr[1] => 0x64
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xe0
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x15
       times[1] / tries[1] => 0x16
       times[2] / tries[2] => 0x17
       times[3] / tries[3] => 0x16
Cache tests finished.

[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x407fe908
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x4a104084
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x9438
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x9
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x94a8
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x1e870
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x114
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xfa
[Pass] ABS((get_us_clock() - t0) - 110000) => 0x32c
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x1e872
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x3b1
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x39a
[Pass] ABS((get_us_clock() - t0) - 310000) => 0x1e6
       t0 = GET_DIGIC_TIMER() => 0x79b99
       msleep(250)
       t1 = GET_DIGIC_TIMER() => 0xb653b
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x2
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x21
       Date/time: 2018/04/29 16:16:33
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x23
[Pass] MOD(s1-s0, 60) => 0x2
[Pass] MOD(s1-s0, 60) => 0x2
       m0 = MALLOC_FREE_MEMORY => 0x26600
[Pass] p = (void*)_malloc(50*1024) => 0x119240
[Pass] CACHEABLE(p) => 0x119240
       m1 = MALLOC_FREE_MEMORY => 0x19df0
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x26600
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x2f8e6c
[Pass] p = (void*)_AllocateMemory(128*1024) => 0x7fe8c8
[Pass] CACHEABLE(p) => 0x7fe8c8
       m1 = GetFreeMemForAllocateMemory() => 0x2d8e60
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x2f8e6c
[Pass] ABS((m0-m1) - 128*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x26600
       m02 = GetFreeMemForAllocateMemory() => 0x2f8e6c
[Pass] p = (void*)_alloc_dma_memory(128*1024) => 0x407fe908
[Pass] UNCACHEABLE(p) => 0x407fe908
[Pass] CACHEABLE(p) => 0x7fe908
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x407fe908
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(16*1024*1024) => 0x4a104074
[Pass] UNCACHEABLE(p) => 0x4a104074
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x26600
       m12 = GetFreeMemForAllocateMemory() => 0x2f8e6c
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(16*1024*1024) => 0x119198
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x119240
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a104070
[Pass] UNCACHEABLE(p) => 0x4a104070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x119198
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x21c4000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x119240
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x21c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ddc0064
[Pass] UNCACHEABLE(p) => 0x4ddc0064
       largest_shoot_block = suite->size => 0x21c4000
[INFO] largest_shoot_block: 34MB
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(largest_shoot_block + 1024*1024) => 0x119198
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x2
[Pass] suite->size => 0x22c4000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x119240
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x18b8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a104070
[Pass] UNCACHEABLE(p) => 0x4a104070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x119278
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x22c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42200064
[Pass] UNCACHEABLE(p) => 0x42200064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x22c4000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x119198
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x7
[Pass] suite->size => 0x5b00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x119240
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x18b8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a104070
[Pass] UNCACHEABLE(p) => 0x4a104070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x119278
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x36b4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42200064
[Pass] UNCACHEABLE(p) => 0x42200064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1192b0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3ab4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x419ff0a4
[Pass] UNCACHEABLE(p) => 0x419ff0a4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1192e8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3b8c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49f240e4
[Pass] UNCACHEABLE(p) => 0x49f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x119320
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3c64000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x47f240e4
[Pass] UNCACHEABLE(p) => 0x47f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x119358
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3d3c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x45f240e4
[Pass] UNCACHEABLE(p) => 0x45f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x119390
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5b00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ddc0064
[Pass] UNCACHEABLE(p) => 0x4ddc0064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x5b00000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x1b4094
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x1b4060
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1b4040
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0xc24c00ae
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] get_task_name_from_id(current_task->taskId) => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xc24e00b2
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0xc25002fe
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0xc25200a0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
=========================================================
Test complete, 11782 passed, 0 failed.
.

dfort

Perfect!

Let me know what you want to try out and I'll make a special 650D.105 test build.

Please give the pull request a thumbs up, wink, like or whatever we do there. (Approve? How boring.)

[EDIT] Oh yeah, and don't forget this pull request to fix the PlayMovieGuideApp_handler stub.

Running bench.mo -> memory benchmarks and uploading the screenshot would be icing on the cake.

Walter Schulz

Ice, ice, baby!


Quote from: dfort on April 29, 2018, 06:18:37 PM
[EDIT] Oh yeah, and don't forget this pull request to fix the PlayMovieGuideApp_handler stub.

I'm not a reviewer ...

Wish list: Cornering ISOless error with Dual-ISO.

dfort

Quote from: Walter Schulz on April 29, 2018, 06:44:14 PM
I'm not a reviewer ...

Yes you are:



Quote from: Walter Schulz on April 29, 2018, 06:44:14 PM
Wish list: Cornering ISOless error with Dual-ISO.

Of course you picked the most complicated and it doesn't really have to do with the 1.0.5 firmware update but let's bookmark these posts:

https://www.magiclantern.fm/forum/index.php?topic=7139.msg197612#msg197612
https://www.magiclantern.fm/forum/index.php?topic=7139.msg200436#msg200436

Read that first one about a hundred times maybe run it through Google translate and hope that eventually we can figure it out. Or--seems that a1ex is very close to a fix for it.

saulbass


looks like you guys had a productive weekend... :)

to confirm - 650D.105 with 18/55 kit lens runs - lua_fix.2018Apr28.650D105 - all the way to the end.
Done!

Also I notice that the annoying live-view window overlay that has been there forever on the 650D has magically disappeared - display now much clearer. see previous post -

https://www.magiclantern.fm/forum/index.php?topic=7473.msg198464#msg198464


dfort

Yes, it was like Magic!

I believe what you are experiencing might be the new code base in the lua_fix branch.

a1ex

Quote from: saulbass on April 29, 2018, 10:02:09 PM
Also I notice that the annoying live-view window overlay that has been there forever on the 650D has magically disappeared - display now much clearer. see previous post -

https://www.magiclantern.fm/forum/index.php?topic=7473.msg198464#msg198464

Still appears in QEMU (with lua_fix.2018Apr28.650D105.zip). Same test conditions for both versions?

saulbass

@a1ex

Yes - the 650D.104 & 650D.105 has had this issue, well since the first time I installed ML years ago - its never changed. I've tried all sorts of builds since then and a range of lenses - kit, old glass and others and it only 'magically' disappeared with dforts latest lua_fix.2018Apr28.650D105.zip.


saulbass

unfortunately after further testing it appears that there are problems with lua_fix.2018Apr28.650D105.
it works fine with kit lens 18/55 - tests complete as previously reported.
fails to complete with 50.18 EF and 10/18EFS.

The latter presents the following screens before the script switches the camera off.

each time battery out reset all fresh install of ML.

Each of the behaviours is consistent and repeatable.

photo of screen before camera switches off 10-18EFS