This page is work in progress - your feedback is welcome.


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.

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-03-27 23:39)

bd2ab52: mlv_lite: in "pre only" trigger mode, use all available RAM for pre-recording

0a0b21d: mlv_lite: fix max pre-recording frame count in low memory conditions

bd84e2c: mlv_lite: fix roundoff error in pre-recorded buffer size and indicators

6c164bb: mlv_lite: display fractions of seconds when the pre-recording buffer becomes full;
change rounding seconds to show fully completed seconds

fc4f20b: mlv_lite: fix 1-frame trigger (was actually recording 2 frames);
Renamed this option to "pre only" (as the saved frame(s) are always pre-recorded) and updated help

Build Log

Latest Lua updates

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 (2017-03-25 23:13)

313e71d: Lua: minor doc updates

c4b723d: Lua: tag all backend messages with [SCRIPT.LUA] where possible

7eae4b4: recdelay.lua: misc fixes

49607a9: Lua: disable auto-autorun (any script that should autorun must be configured manually by user)

b629043: Lua: test script for unloading behavior (unload.lua)

670aa81: Lua: tag all backend messages with [Lua]; minor fine-tunings

9b6ed8f: Lua: allow task unloading if all user tasks are stopped before the main task
(this makes api_test.lua a "simple" script, as it was before f249ba4)

fee0ea8: Fix compiling on cameras without Q button
(broken in 459da11)

89afbc9: selftest: fix false warning in half-shutter test

cdf3baf: Memory backend: allow breaking minimum_free_space limit for small blocks
(it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)

Build Log

Crop mode recording (crop_rec)

5D3 and EOSM build with crop_rec module.

Includes 10/12-bit raw recording and pre-recording.

Forum discussion

Branch: crop_rec

Latest Build (2017-03-21 00:22)

af185a0: Merged rec-trigger into crop_rec

edf3455: mlv_lite: fix some issues related to changing resolution
(crash on submenu open while recording; message about max resolution not displayed)

df416b0: mlv_rec, mlv_lite: save RAWC (raw_capture_info)

7c04f88: mlv_dump: print RAWC (raw_capture_info)

1a842f9: mlv.h: RAWC block (struct raw_capture_info)

16ee26e: crop_rec: hook to update raw_capture_info with modified pixel binning / line skipping factors

2ff9f53: Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE)

043d0b7: Raw backend: new structure about image capture parameters (resolution, pixel binning modes)
(also updated mlv_lite and mlv_rec)
(can you suggest a better name?)

59f8086: Merged raw_video_10bit_12bit into crop_rec

a89e1b9: raw.c: fix bad merge
(duplicate DEFAULT_RAW_BUFFER entries)

f008d3c: mlv_lite: show pre-recording buffer size in menu
(requires recording a test clip first)

6b06a99: mlv_lite: allow pre-record duration in 1-second increments

0510ed3: mlv_lite: allow frame skipping during pre-recording, between half-shutter triggers
This will avoid recording stopping between (half-shutter) triggers, as these skipped frames would probably be dropped anyway.
The pre-recording buffer is now maxed out in the 1-frame trigger mode.

45bc411: mlv_lite: dynamic buffer allocation for pre-recording
(reserve at least 50% of RAM for pre-recording, or more -- as long as it can record 500+ frames with 90% of measured write speed)

0e88cb3: mlv_lite: fix pre-recording buffer size rounding (minor)

d092796: mlv-lite: experimental half-shutter trigger (compatible with pre-recording)

ca58382: mlv_lite: prepare to allow multiple triggers with pre-recording

0bda496: mlv_lite: refactor with INC_MOD (minor optimization in vsync hook)

89fdf0a: imath.h: macro for incrementing a variable modulo N

86ec8e3: mlv_lite: fix chunk frame count (to be tested)

88b2139: Merged raw-h264-proxy into raw_video_10bit_12bit

af30150: Merged unified into raw_video_10bit_12bit

Build Log

10/12-bit RAW video

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

Forum discussion

Branch: raw_video_10bit_12bit

Latest Build (2017-03-21 23:47)

a89e1b9: raw.c: fix bad merge
(duplicate DEFAULT_RAW_BUFFER entries)

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 (2017-01-25 23:27)

Build Log

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.