Experiments

The following builds are works in progress, known to have rough edges.
Please test thoroughly before considering them for serious work.
The functionality from this page will be integrated in the main builds as soon as all major issues will be ironed out.
However, we need your help. If you use any of these builds, please report your experience.
Still confused? Each experimental build has a link to the relevant forum thread, where you can discuss the new features.
You may also check this page for ideas on how to help, and this page for how to suggest changes with a pull request, from your web browser.

Latest Lua updates + fixes (please review)

Latest Lua updates (details).

Includes many other backend changes, e.g. focus, menu, Q button handling, fonts etc.

Therefore, it's important to give it a good try on all functions, not just Lua, so we can include it in the nightly builds.

Also includes lens.focus_pos and dynamic-my-menu.

Forum discussion

Branch: lua_fix

Latest Build (2018-12-23 21:55)

magiclantern-lua_fix.2018Dec23.100D101.zip

magiclantern-lua_fix.2018Dec23.1100D105.zip

magiclantern-lua_fix.2018Dec23.50D109.zip

magiclantern-lua_fix.2018Dec23.550D109.zip

magiclantern-lua_fix.2018Dec23.5D2212.zip

magiclantern-lua_fix.2018Dec23.5D3113.zip

magiclantern-lua_fix.2018Dec23.5D3123.zip

magiclantern-lua_fix.2018Dec23.600D102.zip

magiclantern-lua_fix.2018Dec23.60D111.zip

magiclantern-lua_fix.2018Dec23.650D104.zip

magiclantern-lua_fix.2018Dec23.6D116.zip

magiclantern-lua_fix.2018Dec23.700D115.zip

magiclantern-lua_fix.2018Dec23.70D112.zip

magiclantern-lua_fix.2018Dec23.7D203.zip

magiclantern-lua_fix.2018Dec23.EOSM202.zip

2451574: printf: limit buffer size only when running from init_task
(fixes memory backend messages truncated during startup)

754d731: Memory backend: some models use AllocateMemory rather than malloc for RscMgr data structures
Fixes small memory test on 50D and 5D2.
Thanks aprofiti, https://www.magiclantern.fm/forum/index.php?topic=18083.msg207261#msg207261

1f60366: 1100D: enabled FEATURE_BEEP
(beeps were enabled by default, with no way to turn them off; no crashes reported yet)

6ca36c4: api_test.lua: moved log file into ML/LOGS

b54cb4b: api_test.lua: skip FPS override test on cameras without this feature
(currently 70D)

388e84b: api_test.lua: 50D has no video playback functionality; skipping this test
https://www.magiclantern.fm/forum/index.php?topic=14828.msg206376#msg206376

9170a21: 600D, 1100D: these models are using two button codes for Q
(one in photo mode, another in LiveView)

7212b6e: NotifyBox: minor fixes/cleanups

75fab56: Lua dryos.directory.children: exclude "." and ".." from directory listings.
Added API test for recursively listing directory contents.

bb02391: lua_dryos: minor doc updates

9c3a93e: gui_common: allow simulated key events when half-shutter is UI-locked
(fixes movie.stop on 50D: https://www.magiclantern.fm/forum/index.php?topic=14828.msg206343#msg206343)

All changes on BitBucket

Build Log


4K raw video recording; lossless compression

crop_rec module with higher resolutions (4K, 1080p48 etc):

5D3:

  • 1920x960 @ 50p (both 1:1 crop and full-frame - 3x3 pixel binning)
  • 1920x800 @ 60p (same as above)
  • 1920x1080 @ 45p and 48p (3x3 binning)
  • 1920x1920 @ 24p (1:1 square crop)
  • 3072x1920 @ 24p (1:1 crop)
  • 3840x1600 @ 24p (1:1 crop)
  • 4096x2560 @ 12.5p (1:1 crop)
  • 4096x1440 @ 25p (1:1 crop)
  • Full-resolution LiveView: 5796x3870 at 7.4 fps (128ms rolling shutter).
  • Continuous: 3072x1308 @ 24p, 1920x1080 @ 45p, 1920x960 @ 50p, 1920x800 @ 60p, 4096x2560 @ 8p, 5796x3870 @ 5p.

EOSM, 650D, 700D, 100D:

  • 1736x696 @ 50/60p with 3x3 pixel binning (actually column binning / line skipping)
  • Lossless compression: 1736x976 @ 24p continuous (this is the maximum 16:9 resolution with 3x3 sampling)

6D:

  • 1824x634 @ 50/60p with 3x3 pixel binning (actually column binning / line skipping)
  • Lossless compression: 1824x1026 @ 24p [continuous?] (this is the maximum 16:9 resolution with 3x3 sampling)

Notes:

  • It's quite bleeding edge (expect bugs)
  • Includes lossless compression for MLV (mlv_lite/mlv_play) and DNG (silent/pic_view)
  • Includes lua_fix and dynamic-my-menu
  • You will generally need to use the (non-realtime) preview from the raw recording module.
  • Setting the preview to Frozen LV will give sligthly better recording times.
  • Modes with higher vertical resolution will have real-time preview only for the top of the frame.
  • Modes with higher horizontal resolution will have the preview completely broken.
  • Centered x5 zoom will show either a cropped real-time preview, or a slow preview with correct framing (half-shutter to toggle).
  • mlv_lite has lossless compression, H.264 proxy and experimental sound recording via mlv_snd
  • mlv_rec works too, but without lossless compression

This is also the "de facto" bleeding edge branch, with other experimental stuff being tested here.

Forum discussion

Branch: crop_rec_4k_mlv_snd

Latest Build (2018-07-22 13:09)

mlv_dump.exe

mlv_dump.linux

mlv_dump.osx

magiclantern-crop_rec_4k.2018Jul22.100D101.zip

magiclantern-crop_rec_4k.2018Jul22.5D3113.zip

magiclantern-crop_rec_4k.2018Jul22.5D3123.zip

magiclantern-crop_rec_4k.2018Jul22.650D104.zip

magiclantern-crop_rec_4k.2018Jul22.6D116.zip

magiclantern-crop_rec_4k.2018Jul22.700D115.zip

magiclantern-crop_rec_4k.2018Jul22.EOSM202.zip

c1e44b8: mlv_dump: pass INFO blocks as image description

7883869: mlv_dump: fix compile warnings / empty lines

e6d5795: mlv_dump: change DNG code to pass through RAWI color matrix if the camera model could not be determined

2c126b5: mlv_dump: harden string length handling for DEBG and VERS against inconsistent field sizes

d1bd7bb: mlv_dump: fix incorrectly placed null byte for text blocks line DEBG and VERS

All changes on BitBucket

Build Log


10/12-bit RAW video

Experimental raw video recording at lower bit depths. Only models with CONFIG_EDMAC_RAW_SLURP/CONFIG_EDMAC_RAW_PATCH are compiled.

Forum discussion

Branch: raw_video_10bit_12bit_LVState

Latest Build (2018-10-10 14:11)

magiclantern-raw_video_10bit_12bit.2018Oct10.1100D105.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.50D109.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.5D2212.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.5D3113.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.5D3123.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.600D102.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.60D111.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.650D104.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.6D116.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.700D115.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.70D112.zip

magiclantern-raw_video_10bit_12bit.2018Oct10.EOSM202.zip

All changes on BitBucket

Build Log


Pre-recording with half-shutter triggers

Pre-recording with half-shutter triggers (details).

Should work on top of latest nightly build.

Forum discussion

Branch: rec-trigger

Latest Build (2017-08-17 22:29)

mlv_lite.mo

7441ed4: mlv_lite: fix compilation

9e60bc5: mlv_lite: prevent recording in x10 zoom
(to be used for focusing)

All changes on BitBucket

Build Log


Non-CPU lens info

Set lens name, focal length and aperture for manual lenses. Lua script.

Forum discussion

Branch: manual_lens_info

Latest Build (2018-12-23 22:29)

magiclantern-manual_lens_info.2018Dec23.100D101.zip

magiclantern-manual_lens_info.2018Dec23.1100D105.zip

magiclantern-manual_lens_info.2018Dec23.50D109.zip

magiclantern-manual_lens_info.2018Dec23.550D109.zip

magiclantern-manual_lens_info.2018Dec23.5D2212.zip

magiclantern-manual_lens_info.2018Dec23.5D3113.zip

magiclantern-manual_lens_info.2018Dec23.5D3123.zip

magiclantern-manual_lens_info.2018Dec23.600D102.zip

magiclantern-manual_lens_info.2018Dec23.60D111.zip

magiclantern-manual_lens_info.2018Dec23.650D104.zip

magiclantern-manual_lens_info.2018Dec23.6D116.zip

magiclantern-manual_lens_info.2017Apr04.700D114.zip

magiclantern-manual_lens_info.2018Dec23.700D115.zip

magiclantern-manual_lens_info-crop_rec_4k.2018Feb02.70D112.zip

magiclantern-manual_lens_info.2018Dec23.7D203.zip

magiclantern-manual_lens_info.2018Dec23.EOSM202.zip

0de7b67: Merged lua_fix into manual_lens_info

b0a2f95: Memory backend: backout 065ceae (checking whether it's still needed after latest Lua changes)

2451574: printf: limit buffer size only when running from init_task
(fixes memory backend messages truncated during startup)

754d731: Memory backend: some models use AllocateMemory rather than malloc for RscMgr data structures
Fixes small memory test on 50D and 5D2.
Thanks aprofiti, https://www.magiclantern.fm/forum/index.php?topic=18083.msg207261#msg207261

1f60366: 1100D: enabled FEATURE_BEEP
(beeps were enabled by default, with no way to turn them off; no crashes reported yet)

6ca36c4: api_test.lua: moved log file into ML/LOGS

b54cb4b: api_test.lua: skip FPS override test on cameras without this feature
(currently 70D)

388e84b: api_test.lua: 50D has no video playback functionality; skipping this test
https://www.magiclantern.fm/forum/index.php?topic=14828.msg206376#msg206376

9170a21: 600D, 1100D: these models are using two button codes for Q
(one in photo mode, another in LiveView)

7212b6e: NotifyBox: minor fixes/cleanups

75fab56: Lua dryos.directory.children: exclude "." and ".." from directory listings.
Added API test for recursively listing directory contents.

bb02391: lua_dryos: minor doc updates

9c3a93e: gui_common: allow simulated key events when half-shutter is UI-locked
(fixes movie.stop on 50D: https://www.magiclantern.fm/forum/index.php?topic=14828.msg206343#msg206343)

0040e6c: Merged allocate-raw-lv-buffer into lua_fix

7ca7753: Merged qemu into lua_fix

238b57a: Merged 100D_merge_fw101 into lua_fix

1cf3de0: 500D: experimental workaround for ERR70, issue #1468
(only enabled when recording H.264 with sound)

24b5439: 500D: removed old workarounds for ERR70
(still experimenting)

8bd8bb7: VRAM: recompute LUTs only when display parameters actually change
(appears to help with 500D's ERR70 while recording; to be tested with external monitors)

4eb1a1e: selftest: info screen toggling test
(crashes 500D)

b951e43: Lua: fix printing pointer values
(no %p in Canon's vsnprintf)

2703bfb: Lua: minor stack fix
(apparently never triggered)

All changes on BitBucket

Build Log


ISO experiments (iso-research)

CMOS/ADTG/Digic register investigation on ISO

Forum discussion

Branch: iso-research

Latest Build (2018-12-23 22:12)

magiclantern-iso-research.2018Dec23.100D101.zip

magiclantern-iso-research.2018Dec23.1100D105.zip

magiclantern-iso-research.2018Dec23.50D109.zip

magiclantern-iso-research.2018Dec23.550D109.zip

magiclantern-iso-research.2018Dec23.5D2212.zip

magiclantern-iso-research.2018Dec23.5D3113.zip

magiclantern-iso-research.2018Dec23.5D3123.zip

magiclantern-iso-research.2018Dec23.600D102.zip

magiclantern-iso-research.2018Dec23.60D111.zip

magiclantern-iso-research.2018Dec23.650D104.zip

magiclantern-iso-research.2018Dec23.6D116.zip

magiclantern-iso-research.2018Dec23.700D115.zip

magiclantern-iso-research.2018Dec23.7D203.zip

magiclantern-iso-research.2018Dec23.EOSM202.zip

6958065: Merged lua_fix into iso-research

2451574: printf: limit buffer size only when running from init_task
(fixes memory backend messages truncated during startup)

754d731: Memory backend: some models use AllocateMemory rather than malloc for RscMgr data structures
Fixes small memory test on 50D and 5D2.
Thanks aprofiti, https://www.magiclantern.fm/forum/index.php?topic=18083.msg207261#msg207261

1f60366: 1100D: enabled FEATURE_BEEP
(beeps were enabled by default, with no way to turn them off; no crashes reported yet)

6ca36c4: api_test.lua: moved log file into ML/LOGS

b54cb4b: api_test.lua: skip FPS override test on cameras without this feature
(currently 70D)

388e84b: api_test.lua: 50D has no video playback functionality; skipping this test
https://www.magiclantern.fm/forum/index.php?topic=14828.msg206376#msg206376

9170a21: 600D, 1100D: these models are using two button codes for Q
(one in photo mode, another in LiveView)

7212b6e: NotifyBox: minor fixes/cleanups

75fab56: Lua dryos.directory.children: exclude "." and ".." from directory listings.
Added API test for recursively listing directory contents.

bb02391: lua_dryos: minor doc updates

9c3a93e: gui_common: allow simulated key events when half-shutter is UI-locked
(fixes movie.stop on 50D: https://www.magiclantern.fm/forum/index.php?topic=14828.msg206343#msg206343)

0040e6c: Merged allocate-raw-lv-buffer into lua_fix

7ca7753: Merged qemu into lua_fix

238b57a: Merged 100D_merge_fw101 into lua_fix

1cf3de0: 500D: experimental workaround for ERR70, issue #1468
(only enabled when recording H.264 with sound)

24b5439: 500D: removed old workarounds for ERR70
(still experimenting)

8bd8bb7: VRAM: recompute LUTs only when display parameters actually change
(appears to help with 500D's ERR70 while recording; to be tested with external monitors)

4eb1a1e: selftest: info screen toggling test
(crashes 500D)

b951e43: Lua: fix printing pointer values
(no %p in Canon's vsnprintf)

2703bfb: Lua: minor stack fix
(apparently never triggered)

1265adf: Lua: simple stack checking when yielding to other tasks

All changes on BitBucket

Build Log


Warning!
Magic Lantern is not approved nor endorsed by Canon in any way, and using it will probably void your warranty.
We are not responsible for any damages to your camera.

Copyright (C) 2009-2018 Magic Lantern Development Team

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.