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-09-17 16:39)

magiclantern-lua_fix.2018Sep17.100D101.zip

magiclantern-lua_fix.2018Sep17.1100D105.zip

magiclantern-lua_fix.2018Sep17.50D109.zip

magiclantern-lua_fix.2018Sep17.550D109.zip

magiclantern-lua_fix.2018Sep17.5D2212.zip

magiclantern-lua_fix.2018Sep17.5D3113.zip

magiclantern-lua_fix.2018Sep17.5D3123.zip

magiclantern-lua_fix.2018Sep17.600D102.zip

magiclantern-lua_fix.2018Sep17.60D111.zip

magiclantern-lua_fix.2018Sep17.650D104.zip

magiclantern-lua_fix.2018Sep17.6D116.zip

magiclantern-lua_fix.2018Sep17.700D115.zip

magiclantern-lua_fix.2018Sep17.70D112.zip

magiclantern-lua_fix.2018Sep17.7D203.zip

magiclantern-lua_fix.2018Sep17.EOSM202.zip

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

7d08956: Lua: stack dump function for debugging
http://www.lua.org/pil/24.2.3.html

6cb0b5f: Lua: dryos.directory.__tostring()

61b7286: Lua dryos: removed card.cluster_size
(too low-level to be useful for Lua)

4521fef: Lua dryos: refactored card functions for consistency with directory functions

8b34a1a: Lua: moved dryos.dcim_dir to dryos.shooting_card:dcim_dir
(or dryos..dcim_dir)

e6ff287: Lua dryos: fix card free_space field
(never worked)

e4e0ea7: Lua: added dryos.cf_card and dryos.sd_card
(just for consistency)

a6e51b7: 6D DEFAULT_RAW_BUFFER_SIZE
https://www.magiclantern.fm/forum/index.php?topic=5601.msg196632#msg196632

9d642c6: 650D DEFAULT_RAW_BUFFER_SIZE is the same as on the 700D
https://www.magiclantern.fm/forum/index.php?topic=5601.msg196632#msg196632

3d08648: Lua: added dryos.shooting_card.get_image_path to fix edge cases
from api_test.lua when image number wrapped around at 9999->0001
(this replaced the hardcoded logic from api_test.lua for getting previous/future still image paths)

832ae7f: Merged img_name into lua_fix
(required to test the file number updates, i.e. wrapping around at 9999->0001)

c7e5427: shoot.c: Canon wraps around from IMG_9999 to IMG_0001, not 0000
(affected: fast pictures, intervalometer/bracketing scripts)

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-09-13 23:06)

magiclantern-manual_lens_info.2018Sep14.100D101.zip

magiclantern-manual_lens_info.2018Sep14.1100D105.zip

magiclantern-manual_lens_info.2018Sep14.500D111.zip

magiclantern-manual_lens_info.2018Sep14.50D109.zip

magiclantern-manual_lens_info.2018Sep14.550D109.zip

magiclantern-manual_lens_info.2018Sep14.5D2212.zip

magiclantern-manual_lens_info.2018Sep14.5D3113.zip

magiclantern-manual_lens_info.2018Sep14.5D3123.zip

magiclantern-manual_lens_info.2018Sep14.600D102.zip

magiclantern-manual_lens_info.2018Sep14.60D111.zip

magiclantern-manual_lens_info.2018Sep14.650D104.zip

magiclantern-manual_lens_info.2018Sep14.6D116.zip

magiclantern-manual_lens_info.2017Apr04.700D114.zip

magiclantern-manual_lens_info.2018Sep14.700D115.zip

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

magiclantern-manual_lens_info.2018Sep14.7D203.zip

magiclantern-manual_lens_info.2018Sep14.7D_MASTER203.zip

magiclantern-manual_lens_info.2018Sep14.EOSM202.zip

149418d: selftest: missing * causes compile error
https://bitbucket.org/hudson/magic-lantern/commits/065ceae1247d909e9952a2bc9eb35f3924267719#comment-6590387

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-2017 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.