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

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 (2017-05-01 16:10)

magiclantern-lua_fix.2017May01.100D101.zip

magiclantern-lua_fix.2017May01.1100D105.zip

magiclantern-lua_fix.2017May01.500D111.zip

magiclantern-lua_fix.2017May01.50D109.zip

magiclantern-lua_fix.2017May01.550D109.zip

magiclantern-lua_fix.2017May01.5D2212.zip

magiclantern-lua_fix.2017May01.5D3113.zip

magiclantern-lua_fix.2017May01.5D3123.zip

magiclantern-lua_fix.2017May01.600D102.zip

magiclantern-lua_fix.2017May01.60D111.zip

magiclantern-lua_fix.2017May01.650D104.zip

magiclantern-lua_fix.2017May01.6D116.zip

magiclantern-lua_fix.2017May01.700D114.zip

magiclantern-lua_fix.2017May01.7D203.zip

magiclantern-lua_fix.2017May01.EOSM202.zip

ea6d752: Merged memcheck-fixes into lua_fix

3b006b3: mem.c: disabled double free assert (it still gets overwritten by some deallocators)

fb21080: mem.c: option to disable heap poisoning
(useful when running in QEMU with -d memcheck - with this, overflowing reads will be caught as well)

6b9873d: menu.c: fixed some more null pointer reads
(found in QEMU with -d memchk)

e64c9a5: menu.c: fix a thread safety issue in menu_remove
(to reproduce: file manager crashed after navigating the menu back and forth a few times)

b4f1593: menu.c: fix incomplete initialization when creating menus
(this time the memory warning was correct)

f738018: menu.h: disabled bit fields in struct menu
(they caused false warnings in the memory checking tool)

16ceccb: Merged memcheck-fixes into lua_fix

59963c5: tskmon: fix read from null pointer

fbb3b4f: module.c: fix reading after the input buffer when parsing module symbols
(found in QEMU)

0abdbe0: memcheck: fix detection of double-free calls
(our marker was overwritten by Canon's deallocator, so the check was useless)
(bug found in QEMU)

56343c7: get_current_dialog_handler: fix read from null pointer
(found in QEMU)

4c8d3f7: bmp.c: fix dereferencing random (uninitialized) pointer
(found in QEMU)

00ef896: lens.h: fix APEX for Auto ISO (return 0)

All changes on BitBucket

Build Log


4K raw video recording

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

  • 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).

Notes:

  • It's quite bleeding edge (expect bugs)
  • Includes compressed_raw (see below)
  • 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 preview only the top of the frame.
  • Modes with higher horizontal resolution will have the preview completely broken.
  • mlv_lite only for now
  • alternative mlv_dump for Mac

Forum discussion

Branch: crop_rec_4k

Latest Build (2017-06-19 20:27)

mlv_dump.exe

mlv_dump.linux

mlv_dump.osx

magiclantern-crop_rec_4k.2017Jun19.5D3113.zip

magiclantern-crop_rec_4k.2017Jun19.5D3123.zip

d38bc54: mlv_dump: added bug fix for invalid NULL block sizes

883e7b8: 5D3 1.2.3: fix CARD_A_MAKER (off by one)

8369b3b: mlv_lite: fix speed regression introduced in e67faca
http://www.magiclantern.fm/forum/index.php?topic=19300.msg184290#msg184290

cb31e4d: crop_rec: fix pink highlight issue in 3x3 modes
http://www.magiclantern.fm/forum/index.php?topic=19300.msg185903#msg185903

3f90c43: mlv_play: finally fix the black screen issue happening after playing back a few files

14c3606: mlv_play: show bit depth and compression in top bar

72345e3: mlv_play: fix playback of normal mlv_lite 14 bit files

c162b5b: mlv_play: add lossless playback support

1b775ac: mlv_play: display message when video format is not supported

All changes on BitBucket

Build Log


Compressed raw recording

Experimental raw video recording with lossless compression.

  • Includes 10/12-bit recording and pre-recording.
  • mlv_lite only for now (mlv_rec works as before)
  • Custom mlv_dump required for decoding.
  • Playback not working.
  • mlv_dump for Mac

Forum discussion

Branch: compressed_raw

Latest Build (2017-04-03 14:32)

mlv_dump.exe

magiclantern-compressed_raw.2017Apr03.5D3113.zip

magiclantern-compressed_raw.2017Apr03.5D3123.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-04-29 22:29)

mlv_lite.mo

452564b: mlv_lite: fix time indicator when pre-recording is not used

1b9373c: mlv_lite: detailed pre-recording indicator: mm:ss.f + ss.f
(experiment - lvinfo only)

b9d0f42: mlv_lite: rec trigger shows either "1-frame" or "pre only", based on pre-recording settings

All changes on BitBucket

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)

magiclantern-crop3x.2017Mar21.5D3113.zip

magiclantern-crop3x.2017Mar21.5D3123.zip

magiclantern-crop3x.2017Mar21.EOSM202.zip

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

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 are compiled.

Forum discussion

Branch: raw_video_10bit_12bit

Latest Build (2017-05-26 22:11)

magiclantern-raw_video_10bit_12bit.2017May27.1100D105.zip

magiclantern-raw_video_10bit_12bit.2017May27.5D3113.zip

magiclantern-raw_video_10bit_12bit.2017May27.5D3123.zip

magiclantern-raw_video_10bit_12bit.2017May27.600D102.zip

magiclantern-raw_video_10bit_12bit.2017May27.60D111.zip

magiclantern-raw_video_10bit_12bit.2017May27.650D104.zip

magiclantern-raw_video_10bit_12bit.2017May27.6D116.zip

magiclantern-raw_video_10bit_12bit.2017May27.700D114.zip

magiclantern-raw_video_10bit_12bit.2017May27.EOSM202.zip

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 (2017-04-04 21:38)

magiclantern-manual_lens_info.2017Apr04.1100D105.zip

magiclantern-manual_lens_info.2017Apr04.500D111.zip

magiclantern-manual_lens_info.2017Apr04.50D109.zip

magiclantern-manual_lens_info.2017Apr04.550D109.zip

magiclantern-manual_lens_info.2017Apr04.5D2212.zip

magiclantern-manual_lens_info.2017Apr04.5D3113.zip

magiclantern-manual_lens_info.2017Apr04.5D3123.zip

magiclantern-manual_lens_info.2017Apr04.600D102.zip

magiclantern-manual_lens_info.2017Apr04.60D111.zip

magiclantern-manual_lens_info.2017Apr04.650D104.zip

magiclantern-manual_lens_info.2017Apr04.6D116.zip

magiclantern-manual_lens_info.2017Apr04.700D114.zip

magiclantern-manual_lens_info.2017Apr04.7D203.zip

magiclantern-manual_lens_info.2017Apr04.EOSM202.zip

0b173c1: ui.lua: ported 9f71744 (not tested)

8651458: Merged lua_fix into manual_lens_info
(not tested; todo: port editor fixes into ui.lua)

34c6cbd: Merged unified into lua_fix

8cd7485: lens.h: fix bad merge

546bbc7: Merged unified into manual_lens_info

d5915d6: Backout 722c851 (fix FIR not included in the zip)

fc3ec35: Merged in raw_fixes (pull request #820)
Raw fixes part 4
Approved-by: Alex

c95ec19: Silent pictures: minor error handling fix

e26684f: Silent pics: only show the slit-scan mode option when you actually select slit-scan

a881f05: Silent pictures: fix allocating memory for a single picture
(frame size not known in advance and might be larger than max shoot block size)

eff649f: Silent pictures: fix overflow when allocating memory for burst mode

97cc437: Merged in task_name (pull request #796)
New method for getting current task names (refactor)
Approved-by: Alex

3664a5a: Close branch task_name

d014368: Raw backend: fix black border on raw previews (completes 23d1f0e)

ad8ae4c: Lua: fix error checking in menu.get (also API test)

b63c905: Lua: unify menu.get and menu.gets (using an optional argument for menu.get)

7d5284a: Merged unified into lua_fix

ce4b49b: Merged cleanup into unified

016a0e5: Removed april fools prank

8a6e123: debug.c: removed unused code

82d9b13: Zip comment: removed old links

732bdb3: fio-ml: fix possible buffer overflow with PROP_CARD_SELECT
(might happen on unusual settings or new models)

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.