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 - esas

#1
Camera-specific Development / Re: Canon 650D / T4i
January 29, 2018, 07:53:49 PM
I've been trying to build the dm-spy-experiments branch for the 650D but it fails. Any hints? Also I'm not really sure how to use it wen it finally builds. I've been searching the forum but haven't really found a thread explaining all its functions. (Also, any reason 70D is not included in this branch?)
#2
Quote from: dfort on January 17, 2018, 06:22:16 AM
[EDIT] Oh yeah, don't forget this:

export DISPLAY=:0

And maybe hint on putting this in the $HOME/.bashrc so you don't have to type it every time you launch WSL.
#3
Camera-specific Development / Re: Canon EOS M6
January 12, 2018, 08:03:03 AM
I'm pretty sure it runs powershot firmware. Check out CHDK.
#4
Camera-specific Development / Re: Canon 70D
January 11, 2018, 07:42:35 PM
New build here.

Only minor tweak since last build. Looks like 14 bit lossless works, but the black level is wrong (green picture). Didn't have any luck trying to change it with mlv_dump. Maybe someone else can manage?
#5
Quote from: a1ex on November 12, 2017, 08:46:39 PM
The README was linked a few times, including first post (also asked for some proof-reading).

Think I found a small error. Under headline "Running Canon firmware" shouldn't there be a "-x" in there like this:
./run_canon_fw.sh EOSM,firmware="boot=0" -s -S & arm-none-eabi-gdb -x EOSM/patches.gdb

At least I couldn't get it to work before I found that comment inside the patches.gdb.
#6
Reverse Engineering / Re: ProcessTwoInTwoOutLosslessPath
December 31, 2017, 05:05:15 PM
I've tried to confirm the stubs for 70D by pattern matching with the EOSM, but that camera uses TTJ instead of lossless. Could someone please PM me a ROM1.bin from a 5D3, or at least a disassembly showing the relevant stubs.

Have also been trying to confirm the stubs on 650D. I hoped they would match the EOSM one, but they don't. Since the lossless videos from both the 650D and 70D looks very similar (same faults in both) I was hoping that if I managed to get one working I would know how to fix the other.
#7
Camera-specific Development / Re: Canon 70D
December 28, 2017, 08:55:23 AM
I merged in Nikfreaks work. New test build here.

I did a very fast test on my own camera. Now able to start lossless recording, but the result is not good:





Normal 14,12,10 bit recording looks OK.

Please test it and report back your findings.

Known issues:
*crop_rec doesn't work
*lossless FRSP doesn't work
*lossless recording starts, but result is not good

EDIT:Did some more test. Added comments above
#8
Scripting Corner / Re: Lua Scripting (lua.mo)
December 24, 2017, 05:22:06 PM
Have beent testing on 70D and 650D. Unfortunately battery died on 70D and can't charge before christmas is over.

On both 70D and 650D it fails focus tests. Best case has been 3 fails on 70D, normally 10-15 fails on both 650D or 70D.

On luatest it fails at 424 on both cameraes. On 650D it also failed once  on 270 (on first attempt, second failed at 424).

Results from 650D:




.



===============================================================================
ML/SCRIPTS/api_test.lua - 2017-12-24 16:43:30
===============================================================================

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 = 40
    apex = 4
    value = 4
    min = table:
      raw = 31
      apex = 2.875
      value = 2.7
    max = table:
      raw = 87
      apex = 9.874999
      value = 30.6
  iso = table:
    raw = 104
    apex = 9
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 4
  drive_mode = 0
  model = "Canon EOS 650D"
  model_short = "650D"
  firmware = "1.0.4"
  temperature = 151
  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
  burst = 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
  write = function: p
  clear = function: p
  show = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  overlays = false
  pause = function: p
  start = function: p
  resume = function: p
  stop = function: p
  info = function: p
  wait = function: p
lens = table:
  name = "17-50mm"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  autofocus = function: p
  focus = function: p
display = table:
  idle = nil
  height = 480
  width = 720
  rect = function: p
  clear = function: p
  screenshot = function: p
  off = function: p
  line = function: p
  draw = function: p
  pixel = function: p
  print = function: p
  on = function: p
  load = function: p
  notify_box = function: p
  circle = function: p
key = table:
  last = 10
  press = function: p
  wait = function: p
menu = table:
  visible = false
  open = function: p
  get = function: p
  block = function: p
  new = function: p
  close = function: p
  set = function: p
  select = function: p
movie = table:
  recording = false
  start = function: p
  stop = function: p
dryos = table:
  clock = 11
  ms_clock = 11384
  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/100CANON/"
  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 = 1854
    folder_number = 100
    free_space = 123521024
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 1854
    folder_number = 100
    free_space = 123521024
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    yday = 358
    isdst = false
    sec = 31
    min = 43
    day = 24
    wday = 1
    month = 12
    hour = 16
    year = 2017
  directory = function: p
  call = function: p
  rename = function: p
  remove = 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:
  yield = function: p
  create = 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...
Pause LiveView...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Resume LiveView...
Pause LiveView...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Enter PLAY mode...
Enter MENU mode...

===============================================================================
ML/SCRIPTS/api_test.lua - 2017-12-24 16:47:19
===============================================================================

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 = 40
    apex = 4
    value = 4
    min = table:
      raw = 31
      apex = 2.875
      value = 2.7
    max = table:
      raw = 87
      apex = 9.874999
      value = 30.6
  iso = table:
    raw = 104
    apex = 9
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 4
  drive_mode = 0
  model = "Canon EOS 650D"
  model_short = "650D"
  firmware = "1.0.4"
  temperature = 154
  gui = table:
    menu = false
    play = false
    play_photo = false
    play_movie = false
    qr = false
    idle = true
  bulb = function: p
  reboot = function: p
  burst = function: p
  wait = 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
  write = function: p
  show = function: p
  hide = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  overlays = false
  resume = function: p
  pause = function: p
  info = function: p
  start = function: p
  wait = function: p
  stop = function: p
lens = table:
  name = "17-50mm"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  autofocus = function: p
  focus = function: p
display = table:
  idle = nil
  height = 480
  width = 720
  load = function: p
  rect = function: p
  circle = function: p
  draw = function: p
  clear = function: p
  notify_box = function: p
  off = function: p
  line = function: p
  pixel = function: p
  on = function: p
  screenshot = function: p
  print = function: p
key = table:
  last = 10
  press = function: p
  wait = function: p
menu = table:
  visible = false
  block = function: p
  set = function: p
  new = function: p
  close = function: p
  select = function: p
  get = function: p
  open = function: p
movie = table:
  recording = false
  stop = function: p
  start = function: p
dryos = table:
  clock = 15
  ms_clock = 15208
  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/100CANON/"
  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 = 1854
    folder_number = 100
    free_space = 123519872
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 1854
    folder_number = 100
    free_space = 123519872
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    day = 24
    month = 12
    sec = 20
    isdst = false
    hour = 16
    wday = 1
    yday = 358
    year = 2017
    min = 47
  directory = function: p
  rename = function: p
  remove = function: p
  call = 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:
  yield = function: p
  create = 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...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Pause LiveView...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Start LiveView...
Enter PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Start LiveView...
Pause LiveView...
Resume LiveView...
Enter MENU mode...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Pause LiveView...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Enter PLAY mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Exit MENU mode...
Stop LiveView...
Start LiveView...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter PLAY mode...
Enter MENU mode...
Exit MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter PLAY mode...
Exit PLAY mode...
Pause LiveView...
Enter PLAY mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Enter MENU mode...
Canon GUI tests completed.

Testing ML menu API...




[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x4a28409c
[Pass] dst = fio_malloc(size) => 0x4aa880a8
[Pass] memcmp(dst, src, 4097) => 0xffffffc2
[Pass] edmac_memcpy(dst, src, 4097) => 0x4aa880a8
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x4aa880a8
[Pass] memcmp(dst, src, size) => 0xffffffee
[Pass] edmac_memcpy(dst, src, size) => 0x4aa880a8
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x6a
[Pass] edmac_memcpy_start(dst, src, size) => 0x4aa880a8
       dt => 0x2949
[Pass] copied => 0x4010d8
[Pass] copied => 0x4010d8
[Pass] copied => 0x4010d8
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0x84
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x7a0274
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x7af
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0x105
[Pass] tries[1] => 0xef
[Pass] tries[2] => 0x115
[Pass] tries[3] => 0xdf
[Pass] failr[0] => 0x94
[Pass] failw[0] => 0xdd
[Pass] failr[1] => 0x63
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xf1
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x14
       times[1] / tries[1] => 0x14
       times[2] / tries[2] => 0x16
       times[3] / tries[3] => 0x16
Cache tests finished.

[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[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
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[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
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[FAIL] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[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
[FAIL] wait_focus_status(1000, 3) => 0x0
[FAIL] lv_focus_status => 0x1
[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) => 0x407f9bfc
[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) => 0x4a28409c
[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) => 0xaa1c
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x3
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0xaa8e
       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) => 0x1eeae
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x129
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xff
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0x1d0
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x1eeb0
       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) => 0x25c
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x23b
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0x32d
       t0 = *(uint32_t*)0xC0242014 => 0x1ee
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x3bc41
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x6
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x1d
       Date/time: 2017/12/24 16:41:29
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x1f
[Pass] MOD(s1-s0, 60) => 0x2
[Pass] MOD(s1-s0, 60) => 0x2
       m0 = MALLOC_FREE_MEMORY => 0x20198
[Pass] p = (void*)_malloc(50*1024) => 0x11f668
[Pass] CACHEABLE(p) => 0x11f668
       m1 = MALLOC_FREE_MEMORY => 0x13988
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x20198
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x2f9634
[Pass] p = (void*)_AllocateMemory(256*1024) => 0x7f9bbc
[Pass] CACHEABLE(p) => 0x7f9bbc
       m1 = GetFreeMemForAllocateMemory() => 0x2b9628
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x2f9634
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x20198
       m02 = GetFreeMemForAllocateMemory() => 0x2f9634
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x407f9bfc
[Pass] UNCACHEABLE(p) => 0x407f9bfc
[Pass] CACHEABLE(p) => 0x7f9bfc
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x407f9bfc
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x42200068
[Pass] UNCACHEABLE(p) => 0x42200068
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x20198
       m12 = GetFreeMemForAllocateMemory() => 0x2f9634
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0x11f668
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x11f690
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42200064
[Pass] UNCACHEABLE(p) => 0x42200064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x11f668
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1f44000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x11f690
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1f44000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ddc0064
[Pass] UNCACHEABLE(p) => 0x4ddc0064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0x11f668
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x7
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x11f690
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1738000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a284088
[Pass] UNCACHEABLE(p) => 0x4a284088
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f6f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3534000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42200064
[Pass] UNCACHEABLE(p) => 0x42200064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f728
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3934000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x419ff0a4
[Pass] UNCACHEABLE(p) => 0x419ff0a4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f760
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3a0c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49f240e4
[Pass] UNCACHEABLE(p) => 0x49f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f798
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3ae4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x47f240e4
[Pass] UNCACHEABLE(p) => 0x47f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f7d0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3bbc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x45f240e4
[Pass] UNCACHEABLE(p) => 0x45f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f808
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ddc0064
[Pass] UNCACHEABLE(p) => 0x4ddc0064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x11f668
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x7
[Pass] suite->size => 0x5b00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x11f690
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1738000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a284088
[Pass] UNCACHEABLE(p) => 0x4a284088
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f6f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3534000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42200064
[Pass] UNCACHEABLE(p) => 0x42200064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f728
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3934000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x419ff0a4
[Pass] UNCACHEABLE(p) => 0x419ff0a4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f760
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3a0c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49f240e4
[Pass] UNCACHEABLE(p) => 0x49f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f798
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3ae4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x47f240e4
[Pass] UNCACHEABLE(p) => 0x47f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f7d0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3bbc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x45f240e4
[Pass] UNCACHEABLE(p) => 0x45f240e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x11f808
[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") => 0x1b3c9c
[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) => 0x1b3c80
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1b3c60
[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) => 0xc00600ac
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xc00800b2
[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) => 0xc00a024e
[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) => 0xc00c00c2
[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
[FAIL] 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
=========================================================
Test complete, 12167 passed, 12 failed.
.

#9
Camera-specific Development / Re: Canon 70D
December 23, 2017, 06:54:29 PM
Quote from: Stathman on December 23, 2017, 03:12:08 AM
I can't get crop_rec to work.

Quote from: andy kh on December 23, 2017, 08:02:14 AM
this is what i get while trying to record 14bit lossless

Quote from: Stathman on December 23, 2017, 03:38:15 PM
Same here, lossless not working.

There's a lot of work to be done before all the new cool stuff works on the 70D, but it looks like nikfreak has allready done a good amount of work on it some moths ago. What happened nikfreak? Got rid of your 70D?

To be honest I think the best thing we can do is to do what we can to get the 70D into unified branch first. Anyone have the insight to tell what needed to get there?
#10
Camera-specific Development / Re: Canon 70D
December 22, 2017, 03:56:15 PM
Added temperature in this PR (my first ever:).

Confirmed  SRM_BUFFER_SIZE 0x2314000 using this method.

I used this as well, since it was the same for every model: DEFAULT_RAW_BUFFER_SIZE (0x4ee00000 - 0x4d600100).

I'm now able to compile crop_rec_4k. I have only loaded on camera and checked that relevant modules load. Checked very fast lossless recording (doesn't work) and 10 bit recording (seemsto work, but haven't checked output files).

For anyone willing to test, here's a compiled version.

#11
Looking at the previous results for 70D I think it's wrong to include several plots with the same values. This will bias the results. If you exclude the duplicates in DeafEyeJedi's test the result from my measurements and DeafEyeJedi's are not that far apart.



#12
Camera-specific Development / Re: Canon 70D
December 21, 2017, 09:46:17 PM
Hi!

Bought a 70D a few days ago and have started looking at the code, but I'm unsure what branch I should be working with.

The 70D_merge_fw112 is falling way behind.
70D isn't included in raw_video_10bit_12bit  any longer.

crop_rec_4k doesn't compile for the 70D. This has been discussed before, and seems to have been fixed here: https://bitbucket.org/nikfreak/magic-lantern/branch/70D_merge_fw112, but not merged into crop_rec_4k.

Am I missing something? I'm not very experienced with mercurial so proberly I am.
#13
Just bought a 70D, coming from a 650D and noticed that temperature was missing in latest nightly.

Here are the results from my test:


133 6
138 13
141 15
146 16
151 18
156 20
158 22
161 23
162 24
170 25
172 27
175 28
173 29
181 29
183 32
185 34
188 34
189 36
194 37
191 38
194 39
192 39
197 40
196 41
201 42
202 44
206 45
209 47
207 47
210 48
211 50
217 51


I exluded some readings where the raw units changed before/after picture was taken.




#14
Camera-specific Development / Re: Canon 650D / T4i
November 02, 2017, 08:11:06 AM
Quote from: dfort on November 02, 2017, 01:55:25 AM
Which build did you use? There's a test build for shooting a regular and a lossless DNG at the same time, is that what you used or is this the "normal" version that is in the crop_rec_4k branch? Obviously there shouldn't be any visible splits, horizontal or vertical.

I used the crop_rec_4k_FRSP_hack_a1ex_test from your download page.
#15
Camera-specific Development / Re: Canon 650D / T4i
November 01, 2017, 01:32:36 PM
Just a short update.

I'm able to compile now, and I've tried a few different builds on my camera successfully. I've been navigating around in the code, the wiki and the forum to get a grip on everything, but I find it hard.

To comment on my previous post I found that using "dcraw - 4- D" instead of "dcraw -4 -E" would give me images with the same resolution.

My FRSPs are a bit odd (download this DNG ). They seem to consist of two vertically split halfs (atleast the two halfs have differnt "faults" compared to the uncomressed DNG). I would expect them to be two horizontaly splits looking at this code from lossless.c:


    /* trick the encoder so it configures slice width = image width */
    /* we'll have two slices on top of each other; this will give
     * valid lossless DNG as well, if we prepend a header :)
     */
    TTL_Args.xRes = width;
    TTL_Args.yRes = height;
.
.
.
    /* need to read the image data in 2 slices
     * default configuration is 2 vertical slices;
     * however, using 2 horizontal slices makes it easy
     * to just slap a DNG header, resulting in valid output.
     *
     * => the input EDMAC will simply read the image as usual.
     */
    struct edmac_info RD1_info = {
        .xb     = width * 14/8,
        .yb     = height - 1,
        .off1b  = src_width * 14/8 - width * 14/8,


Could someone explain this part?

if (is_camera("5D3", "*"))
    {
        /* resolution is hardcoded in some places; patch them */
        EngDrvOut(0xC0F375B4, PACK32(width    - 1,  height/2  - 1));  /* 0xF6D0B8F */
        EngDrvOut(0xC0F13068, PACK32(width*2  - 1,  height/2  - 1));  /* 0xF6D171F */
        EngDrvOut(0xC0F12010,        width    - 1                 );  /* 0xB8F     */
        EngDrvOut(0xC0F12014, PACK32(width    - 1,  height/2  - 1));  /* 0xF6D0B8F */
        EngDrvOut(0xC0F1201C,        width/10 - 1                 );  /* 0x127     */
        EngDrvOut(0xC0F12020, PACK32(width/10 - 1,  height/20 - 1));  /* 0x18A0127 */
    }


What's going on here, and why don't we have to do this for any other cameras?

#16
Camera-specific Development / Re: Canon 650D / T4i
October 27, 2017, 02:39:17 PM
Quote from: dfort on October 27, 2017, 12:42:14 AM
How's the octave installation working?
It's installed and I've played around a bit. This is all new to me so everything takes a lot of time. It was octave that warned me about the different resolutions. It wouldn't let me do "imshow(a - b, [])" because of this.

Quote from: dfort on October 27, 2017, 12:42:14 AM
Are you able to compile? It would help if you are willing to play around with lossless.c:

I haven't tried it yet, but I plan to give it a try. Problem is playing around with lossless.c. I have no idea where to startt.
#17
Camera-specific Development / Re: Canon 650D / T4i
October 26, 2017, 11:50:47 PM
Quote from: dfort on October 26, 2017, 11:01:31 PM
So let's try it again. Assuming that the hack works for the 650D try the test build named crop_rec_4k_FRSP_hack_a1ex_test from my downloads page.

Tried. I can now save FRSP again. Found  a difference that might mean something (?). The resolution are not the same (Full size):
$ dcraw -i -v 17350000.DNG 17350001.DNG

Filename: 17350000.DNG
Timestamp: Thu Jan  1 00:00:00 1970
Camera: Canon EOS 650D
DNG Version: 1.3.0.0
ISO speed: 400
Shutter: 1/1.5 sec
Aperture: f/2.9
Focal length: 24.0 mm
Embedded ICC profile: no
Number of raw images: 1
Thumb size:   128 x 84
Full size:   5280 x 3529
Image size:  5208 x 3477
Output size: 5208 x 3477
Raw colors: 3
Filter pattern: RGGBRGGBRGGBRGGB
Daylight multipliers: 2.266767 0.938615 1.281072
Camera multipliers: 2.111331 1.000000 1.602564 0.000000

Filename: 17350001.DNG
Timestamp: Thu Jan  1 00:00:00 1970
Camera: Canon EOS 650D
DNG Version: 1.3.0.0
ISO speed: 400
Shutter: 1/1.5 sec
Aperture: f/2.9
Focal length: 24.0 mm
Embedded ICC profile: no
Number of raw images: 1
Thumb size:   128 x 84
Full size:   5280 x 3477
Image size:  5208 x 3477
Output size: 5208 x 3477
Raw colors: 3
Filter pattern: RGGBRGGBRGGBRGGB
Daylight multipliers: 2.266767 0.938615 1.281072
Camera multipliers: 2.111331 1.000000 1.602564 0.000000


https://1drv.ms/f/s!AhnvH_WJbJIold58JjV61azIDvNl3g

#18
Camera-specific Development / Re: Canon 650D / T4i
October 26, 2017, 10:12:09 PM
Installed octave, but I really have a lot of reading to do before I'm able to troubleshoot further. Starting with the RAWguide A1ex posted..
#19
Camera-specific Development / Re: Canon 650D / T4i
October 26, 2017, 09:40:04 PM
Quote from: Walter Schulz on October 26, 2017, 08:46:54 PM
Build used: a1ex_test.2017Oct18.650D104.zip
The one you and a1ex asked to be tested.
Where to go from here?

Same here. FRSP not working corectly. Tried Simple, and that works -> saving both a DNG and a L-DNG.

$ dcraw -4 -E 17350000.DNG 17350001.DNG
$ md5sum 17350000.pgm 17350001.pgm
722b5f8d4c5a8b78f44c2c6dcc69444c  17350000.pgm
6dffb7230f910ee6d16287edda191134  17350001.pgm


https://1drv.ms/f/s!AhnvH_WJbJIold559uSjdgZbedKjlg

#20
Camera-specific Development / Re: Canon 650D / T4i
October 24, 2017, 07:04:56 PM
Quote from: dfort on October 18, 2017, 01:28:58 PM
I made a special build for testers with a1ex's patch:

https://bitbucket.org/daniel_fort/magic-lantern/downloads/a1ex_test.2017Oct18.650D104.zip

(Though if you really want to have some fun learn to compile ML, it is very easy to set up a development environment these days.)
Quote from: dfort on October 18, 2017, 05:06:54 PM
Hey 650D users. Check out the progress with a1ex's test on the 6D.
OK, back home again. It's been a few days. Is this still relevant, or do you have other builds/test you want us to do? I see there's 6 downloads of the build, but no results posted.
#21
Camera-specific Development / Re: Canon 650D / T4i
October 19, 2017, 02:04:16 PM
Out traveling at the moment (and only bringing my eos m). Will look at this when I get back home this weekend.
#22
Camera-specific Development / Re: Canon 650D / T4i
October 17, 2017, 04:11:28 PM
Downloaded crop_rec_4k_with_lossless_FRSP.2017Oct16.650D104

Went trough a1ex' routine from the post here .

Also tried capturing FRSP With normal and L-DNG.

Files here:
https://onedrive.live.com/embed?cid=28926C89F51FEF19&resid=28926C89F51FEF19%21354191&authkey=AJ8IRxGVY3XyJGw