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.

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
  • mlv_dump for Mac

Forum discussion

Branch: crop_rec_4k

Latest Build (2017-04-23 00:23)

mlv_dump.exe

magiclantern-crop_rec_4k.2017Apr23.5D3113.zip

magiclantern-crop_rec_4k.2017Apr23.5D3123.zip

a5201c4: mlv_lite: fix frame corruption bug in lossless mode
http://www.magiclantern.fm/forum/index.php?topic=19300.msg183553#msg183553

195fe74: mlv_lite: only use single-buffering for uncompressed output or if there's no other way to allocate memory;
reworked memory allocation for full-res buffer, to be able to use the SRM memory for both full-res buffer and frame slots

30af17a: crop_rec: 4096x3072 at 12 and 12.5 FPS

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

mlv_lite.mo

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

All changes on BitBucket

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-04-04 21:29)

magiclantern-lua_fix.2017Apr04.1100D105.zip

magiclantern-lua_fix.2017Apr04.500D111.zip

magiclantern-lua_fix.2017Apr04.50D109.zip

magiclantern-lua_fix.2017Apr04.550D109.zip

magiclantern-lua_fix.2017Apr04.5D2212.zip

magiclantern-lua_fix.2017Apr04.5D3113.zip

magiclantern-lua_fix.2017Apr04.5D3123.zip

magiclantern-lua_fix.2017Apr04.600D102.zip

magiclantern-lua_fix.2017Apr04.60D111.zip

magiclantern-lua_fix.2017Apr04.650D104.zip

magiclantern-lua_fix.2017Apr04.6D116.zip

magiclantern-lua_fix.2017Apr04.700D114.zip

magiclantern-lua_fix.2017Apr04.7D203.zip

magiclantern-lua_fix.2017Apr04.EOSM202.zip

34c6cbd: Merged unified into lua_fix

8cd7485: lens.h: fix bad merge

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)

579a2fd: Makefile: summarize CONFIG options and GCC version from Makefile.user (if any) in the build log; minor fixes

722c851: Makefile: don't try to build the FIR on make install/zip

cdeb914: Modules: removed some unused definitions

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-04-01 22:47)

magiclantern-raw_video_10bit_12bit.2017Apr02.1100D105.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.5D3113.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.5D3123.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.600D102.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.60D111.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.650D104.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.6D116.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.700D114.zip

magiclantern-raw_video_10bit_12bit.2017Apr02.EOSM202.zip

4477e4e: Merged unified into raw_video_10bit_12bit

4813dfa: Merged rec-trigger into raw_video_10bit_12bit

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)

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)

579a2fd: Makefile: summarize CONFIG options and GCC version from Makefile.user (if any) in the build log; minor fixes

722c851: Makefile: don't try to build the FIR on make install/zip

cdeb914: Modules: removed some unused definitions

30115e9: Debug -> Unmount SD: minor UI tweak (turn on the LED after unmounting)

4640f62: Merged in lens_info_fix (pull request #775)
Lens info fix
Approved-by: Daniel Fort
Approved-by: Licaon Kter
Approved-by: DeafEyeJedi
Approved-by: Lars Steenhoff
Approved-by: g3gg0 <[email protected]>
Approved-by: Alex

7692604: Close branch lens_info_fix

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.