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

Main Builds » 700D / Rebel T5i 1.1.4

Latest Build (2017-09-12 01:02)

226838b: Merged in daniel_fort/magic-lantern/unified_silent_module_fix (pull request #854)
modify silent.c to work with commit f404e5f

0e9da39: TCC Makefile: fix minor typo

b6df56d: silent.c: there are no info bars in paused LiveView mode

d8d44a7: modify silent.c to work with commit f404e5f
Raw backend: allow displaying raw previews without conflicting with LiveView info bars

Build Log

User Guide

Forum - 700D/T5i 1.1.4

Forum - General Help Q&A

Bug Tracker - 700D/T5i

Download stats (WIP)

Older Builds (hide) (hide details)

0752dd8: Merged in raw_fixes (pull request #828)
Raw fixes part 5

f3f6916: fio-ml: added get_dcim_dir_suffix(); moved get_dcim_dir() from dryos.h

17ceddd: mlv_rec/mlv_lite: moved write_mlv_vers_blocks to mlv.c/h
(avoids duplicate code)

6c580fd: 5D3 1.2.3: fix CARD_A_MAKER (off by one)

bbe2c5c: mlv_lite: always override (toggle) the preview mode on *long* half-shutter press, when not autofocusing
(avoids transient screen changes on quick half-shutter presses)

8e0c516: mlv_lite: preview both full-size buffers while recording
(to catch future bugs that might cause the raw buffer to update every other frame)

29d86cc: Raw backend: exact height autodetection for 5D3
(lossless 8-12 bit compression works!)

fd07490: mlv_lite: fix shutter button remaining locked after recording with Frozen LV
(problem from exmem backend; not sure how to do a proper fix)

692ab1a: mlv_lite: slow down color preview to let lower-priority tasks run (such as histogram)

0554bca: FPS override: disable in x10 mode when half-shutter is pressed, to help with focusing
(example setup: full-res LiveView, FPS override at 4 FPS for continuous recording, zoom on half-shutter)

aeacbba: FPS override: display rolling shutter in the main menu when available
(either when raw recording is enabled or while recording H.264)
(useful for diagnosing the new crop modes)

04e8139: FPS override: also display rolling shutter as percentage of frame duration

432fa63: mlv_lite: do not print debug info when freezing LiveView
(seems to help with corrupted frames in modes with resolution pushed to limit, e.g. 1080p48)

39761ea: Include strstr in ML core

fdbbc55: mlv_lite: fix squeeze info in menu for 50/60p modes

3575b28: mlv_lite: display actual aspect ratio in menu, if different from selection

01c5b91: raw_rec: fix some resolution inconsistencies

1d35774: mlv_lite: fine-tuned menu for Frozen LV mode
(previously known as Hacked Preview)

6209ed2: mlv_lite: reworked preview options with (hopefully) a lot more reasonable defaults
- color preview with correct framing whenever plain LiveView is not accurate (crop/zoom modes etc)
- only use grayscale preview when recording speed is critical
- renamed the preview options
- half-shutter to override the automatic preview choice
(note: slot_count is valid_slot_count in compressed_raw)

f404e5f: Raw backend: allow displaying raw previews without conflicting with LiveView info bars;
updated mlv_rec and mlv_lite to use this capability

Build Log

02f01f0: mlv_play: fix a fio_malloc issue (not tested, might fix issue #2766)

e5d9110: Merged in raw_capture_info (pull request #827)

a9f41d0: mlv_dump: fix compilation after rawc header update

fb6910a: mlv_rec, mlv_lite: fix rawc saving after structure update in mlv.h

b3ed8b4: Fix c6f92ee

fa1b3cc: mlv_rec, mlv_lite: save RAWC (raw_capture_info)

0356223: Raw backend: fix raw_capture_info.skipping_y for EOS M
(720p unless recording H.264)

7d289a4: mlv.h: replaced struct raw_capture_info with individual fields
(binary compatible with previous version)

97678b1: raw_capture_info: redefined offset_x and offset_y to refer to first (top-left) *active* pixel
that way, optical black variations between formats (e.g. CR2 vs FRSP) are no longer relevant

bd661a2: mlv_dump: show the meaning of sensor crop factor

c0563f8: mlv_rec, mlv_lite: fix minor crop factor display issue
(division by 0 in photo mode)

c6f92ee: mlv_rec, mlv_lite: save RAWC (raw_capture_info)

33e3509: mlv_dump: print RAWC (raw_capture_info)

a2bbf26: mlv.h: RAWC block (struct raw_capture_info)

7674853: Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE)

443884d: 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?)

Build Log

ff6f36e: get_current_dialog_handler: fix return value when no dialogs are present

afcf332: fix rules to allow "make -j"

Build Log

07d376a: Merged in edmac (pull request #811)
EDMAC module + fixes

b50b476: edmac-memcpy: fix compilation

50ca62d: Merged unified into edmac

07c1020: fine-tuned transfer size info

10e3346: selftest: AbortEDmac test

bc529a0: selftest: edmac_memcpy test

a57c840: transfer size test

7ab594e: edmac-memcpy: use and decode transfer size from flags (to be tested)

1168658: edmac_test: proper memory allocation

7b09278: edmac-memcpy: updated edmac_find_divider for latest hypothesis

a26f5e7: edmac_memcpy: looks like we can use widths that are not modulo 8 bytes

9e441b2: edmac-memcpy: refactored edmac_memcpy to avoid duplicate code

206683a: AbortEDmac stub for 500D, 550D, 5D2, 50D, 7D (not tested)

117ef8a: fix model-specific differences

b7909c3: in EDMAC model tests, print a summary of copying activity
(how many bytes were copied, how many were skipped and so on)
(this test outputs the raw logs used to find the EDMAC model - )

f3aeb38: tests for EDMAC model (to be included in QEMU)

01db741: AbortEDmac stub for 5D3 1.2.3

6b048b2: edmac.c: fix typo

822919a: Merged unified into edmac

41b17cb: EDMAC: fix signed off2 on DIGIC 4

1783016: experiment - log all EDMAC channels every 0.1ms

8e458d0: show offset 0x40 on the info screen

25b8f83: edmac: edmac_get_channel

e705282: edmac: there are more than 48 connections (not sure how many)

b0574dd: Modules: allow including module.h in multiple source files
(fixes compilation of

e9087c0: Modules: removed some unused definitions

3744ed4: edmac.h: allow edmac_format_size to be called from core (of course, if the edmac module is loaded)

41bdf15: use microsecond timer for memory benchmarks

eda6473: verify memcpy-like functions when running memory benchmark

98f4031: edmac-memcpy.c: refactored to avoid static struct edmac_info

5b01490: Rewritten find_free_edmac_channels so it no longer requires user input

1248dea: Moved find_free_edmac_channels to the edmac module

d7b788b: Moved EDMAC info screen and pretty-printing function to a module

1de48c7: edmac: pretty-printing function for size configuration (edmac_format_size)
auxiliary functions: edmac_get_info, edmac_fix_off1
also updated debug edmac info with the new function

657aa39: edmac: edmac_get_pointer; comments

38a1409: edmac: experimental model for total data transfer size

d345c2a: Enabled AbortEDmac stub (most models; not tested)

dd6cffd: support for uncommenting unused stubs; minor refactors

866cd22: Stubs format

Build Log

3f5322a: Merged in backtrace (pull request #849)
Stack trace (aka backtrace) in crash logs

2804bee: Close branch backtrace

8551a9c: selftest: fix incorrect strings (AllocateMemory != system memory)

a90ddf6: Makefile: minor fine-tuning; updated comments

e9c4d71: Makefile: fix compiling backtrace on fresh clone

2665fb0: selftest: fine-tuned comments and strings

f3f43d4: selftest: re-enabled fault emulations
(some of them are useful for testing the stack trace, as they will trigger ERR70)

2aaafcd: backtrace: sync with qemu (e4376a1)

3d94d84: Makefile: mark $(QEMU_INSTALLED_DBI_DIR)/backtrace.% as optional dependency
todo: any way to do the same without .SECONDEXPANSION ?

e6632e3: Makefile: moved backtrace.o at the top to fix first-time compilation
this makes sure backtrace.h is created before any other files that may use it (currently boot-hack.c)
also remove the symlinks on "make clean"

b5a5a3b: backtrace: sync with qemu (3db5423, fbb532b, ab6d33c, 115fe25)

85bf3db: Stack traces for crash and assert logs, using the backtrace backend

bd2144b: Updated backtrace.c to work on the camera as well
(same source file for both QEMU and ML)

bf97ab3: arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp

89ef642: Imported backtrace code from 29f6edc

Build Log

2211521: Makefile: workaround to unbreak the builds
(how to fix it properly?)

Build Log

2017-09-12 01:02 - Build failed!

e0c1b48: Ghost image: fixed issue #2749

412ae1e: Merged in daniel_fort/magic-lantern/ (pull request #844) update

bd7c2cb: Added suggestion by @a1ex to guess the ROM[0,1] load address.

d3ef70e: Changed "base" to the address used when dumping the ROM

184e58a: Merged in daniel_fort/magic-lantern/unified-multiple-FW_VERSION-minimal-ML (pull request #846)
Multiple firmware versions for minimal ML

a934b32: Makefile.platform.base error trap for multiple firmware versions

Build Log

1718d64: dual_iso: change cr2hdr to use the same wrapper for module_strings like mlv_dump, also fixes compile error caused by a module.h change from static to global
(module_strings_wrapper.h from 0c1c8b3)

3887ff2: Modules: allow including module.h in multiple source files

77651fe: Undo 4126b56 (to allow merging with crop_rec_4k)

d14d945: Update to latest exiftool

fcd5c99: mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback)

9ee8258: mlv_rec: insert alignment NULL block before writers start to write aligned sizes

2c7e576: mlv_rec: ensure 32 bit alignment for VERS block sizes. just because.

7cafff4: Merged in daniel_fort/magic-lantern/700D_AE_fix (pull request #842)
Fixed 700D AE constants (for
Approved-by: Daniel Fort

b96072d: Fixed AE constants

Build Log

ffbd722: fio-ml: workaround for existing code using FIO_ReadFile incorrectly (such as mlv_play)
selftest included

fed76e8: Merged in cache-fixes (pull request #838)
Cache coherence fixes (clean_d_cache, FIO, EDMAC)
Approved-by: Alex
Approved-by: g3gg0

2059650: Close branch cache-fixes

94950d5: fio-ml: updated comment on FIO_WriteFile

b97315b: selftest: check whether cache cleaning causes any performance regressions
(result: no significant difference on file I/O)

a6320b7: my_fprintf: fix warning

d35e1ec: edmac-memcpy: use cache handling similar to FIO;
updated selftest and bench modules for the new restriction

f238674: selftest: make sure the FIO cache coherence test fails without the FIO_WriteFile wrapper

5bf36e6: selftest: test for FIO_WriteFile with cacheable buffer
if you comment out clean_d_cache() from the FIO_WriteFile wrapper, this test will fail

ffe14a3: selftest: save log after each sub-test
(so one can interrupt the test suite and still see the log for the tests completed so far)

21b9cbc: selftest: fine-tuned DMA cacheable buffer test

55ab244: fio-ml: FIO_ReadFile wrapper to warn about caching issues
not sure how to handle it automatically - clean_d_cache before is not enough
adding another clean_d_cache afterwards appears to fix it, but it's risky
sed -i.bak '/ FIO_ReadFile/_FIO_ReadFile/' */stubs.S

442adb7: Refactored without fio_malloc in a few places
(todo: find a way to reproduce caching issues on file I/O and add it to

5d60636: fio-ml: FIO_WriteFile wrapper to handle caching issues automatically
sed -i.bak '/ FIO_WriteFile/_FIO_WriteFile/' */stubs.S

91c1213: selftest: test for clean_d_cache
interrupts disabled, using edmac_memcpy to copy between display buffers
this test will fail without previous commit

8e1d43d: fix index size in clean_d_cache
(todo: test in

Build Log

f1ff88d: Merged in daniel_fort/magic-lantern/EOSM_stubs_tweaks (pull request #839)
Display filters working (anamorphic preview, fisheye correction, raw video preview and others)
EOSM stubs tweaks
Approved-by: Alex

f9ebbc2: Corrected YUV422_LV_BUFFER_DISPLAY_ADDR value and enabled display filters:

590a5b7: Updated post_isr_hook/pre_isr_hook stubs

666ceda: Changed for consistency of stubs across all models.

Build Log

b5f7474: removed unnecessary declaration of mlv_snd_is_enabled

Build Log

61dc93d: mlv_snd: report back using ml-cbr when recording audio

543f545: added ml-cbr to modules using MODULE_NAMED_CBR()

7b9b8d8: audio uses ml-cbr to ask for recording

46d2ca7: ml-cbr: use strcmp to stay on safe side (caller might pass arbitrary length)

6fb1bf6: ml-cbr: update header with more information

Build Log

9529184: fix ml-cbr locking issues

Build Log

4126b56: dual_iso: temporary patch for module_get_string API change - probably needs a revert before merging crop_rec_4k into unified

Build Log

d89d1f3: Deal with Windows line ending in grep 3.0, changed multi-line grep command to single line extended regular expression and remove localsyms file with make clean.

Build Log

2e4c4c2: mlv_rec: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording

7319f07: mlv_lite: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording

6a6b2af: mlv_lite: use FIO_SeekSkipFile to determine file header size

b2102c2: mlv_dump: handle VERS blocks

7a83bf6: mlv_rec: added code and structures to helper routines to get version information embedded into the MLV file

a98c6c6: added routines and made a module loader routine non-static to allow other code to fetch e.g. strings from modules

Build Log

4d90259: Merged in memcheck-fixes (pull request #829)
Fixes for various null pointer and uninitialized memory bugs

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

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

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)

Build Log

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

Build Log

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
Approved-by: Alex

7692604: Close branch lens_info_fix

da7884e: Lens info: serial number (to be tested)

4784c38: Lens info: minor menu updates (mostly help text)

85b4128: Lens info: minor menu layout changes

7db9475: Lens info: moved to Debug menu (to keep the Prefs menu for... preferences)

3a47d96: 50D, 6D, 7D, 650D: current_task and current_interrupt stubs (tested in QEMU)

ecaa37f: 5D3 1.2.3: current_task and current_interrupt stubs

3af9e85: Merged unified into task_name

5114d3d: 500D: current_task and current_interrupt stubs

9d7eea4: srm_malloc_suite: extra wait after locking the GUI
(to be checked on cameras that don't pass the SRM memory test from

54c60ed: srm_malloc_suite: minor fix
(no effects with current usage)

23d1f0e: Raw backend: fix black borders on raw previews

836de74: Merge with unified

9179d30: Tasks: undo changes to get_task_name_from_id (no longer needed)

3fb9408: Moved CURRENT_INTERRUPT_ADDR to stubs; added some more models (copied from QEMU)

9a892ac: dm-spy-experiments: current_task stub for EOSM

08262be: 5D2, 5D3, 550D, 600D, 700D: current_task stub

0fa1248: tasks.c, stubs: removed unused GetTaskName and get_current_task
sed -i.bak '/GetTaskName/d' */stubs.S
sed -i.bak '/get_current_task/d' */stubs.S

e160e2a: tasks.c, stubs: removed unused get_obj_attr
sed -i.bak '/get_obj_attr/d' */stubs.S

ba60e42: Refactored get_task_name_from_id(get_current_task()) with get_current_task_name() (to be made generic)

6ea56af: Ported get_current_task_name from dm-spy-experiments branch
(much faster, new stub required)

ca0aa82: check for property length and decide if this feature is available

11c5d04: fixed lens ID reading, added version etc. to be tested

Build Log

c46ffb2: Silent pictures: always reset powersave timer when taking a picture

800e1f4: Merged in pre-record (pull request #728)
Pre-recording feature (mlv_lite)
Approved-by: DeafEyeJedi
Approved-by: David Milligan
Approved-by: Maqs
Approved-by: g3gg0
Approved-by: Mathew Kelly
Approved-by: Alex

081f36a: Close branch pre-record

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

9b9b87f: mlv_lite: fix MLV frame count when using pre-recording

273a758: Merged unified into pre-record

529f0b4: raw_rec: pre-recording feature (experimental)

ab8e604: Merge raw_fixes into pre-record

Build Log

76c83eb: mlv_lite: fix invalid header under certain conditions involving very fast button presses
example: select a resolution higher than maximum, zoom in, return from zoom and press record very quickly

Build Log

eb960b6: mlv_lite: also renamed in Makefile.modules.default

7a9d6b9: Merged in new_raw_format (mlv_lite) (pull request #685)
Completely replace the old raw format with a lite implementation of MLV.
Recording performance should be identical to the old raw_rec v1.0; however, the additional features from mlv_rec are not present.
Note: was renamed to

e3ea6c2: Close branch new_raw_format

bd9565c: mlv_lite: updated README

432d8f2: Renamed raw_rec to mlv_lite

4921a15: Merged unified into new_raw_format

aac872e: raw_rec: use async EDMAC transfers, similar to mlv_rec (to be tested)

2dc3265: raw_rec: fix recording speed not measured with lvinfo indicator

9d10a7d: raw_rec: refactor with wait_lv_frames

451d70a: raw_rec: minor resolution control refactor

679e051: raw_rec: minor resolution control improvements
- prevent resolution_index_x overflow
- help regarding fine-tuning
- refactors

befa651: Merged in daniel_fort/magic-lantern/raw_rec_x_res_fix (pull request #772)
Fix for pull request #768 - x-resolution control for MLV Lite

8d70541: Fix for pull request #768 - x-resolution control for MLV Lite

bccda07: Merged in daniel_fort/magic-lantern/raw_rec_x_resolution (pull request #768)
x-resolution control for MLV Lite

1e1bb54: raw_rec MLV Lite added fine control on top of x-resolution presets and display of effective crop factor

2cb9b55: Merge

47e2c4e: MLV Lite: update videoFrameCount when recording is finished

2ab79de: MLV Lite: fix a check regarding the 4GB limit

56e7534: MLV Lite: verbose messages when reaching the 4GB limit

4be57c1: MLV Lite: backup file no longer needed (no footer)

40bdd39: MLV Lite: fine-tuned error messages

15af46a: MLV Lite: refactored file writing, attempting to fix some edge cases when reaching the 4GB limit

9f19bf2: MLV Lite: use 64 bits for total bytes written

e32e7cd: MLV Lite: attempt to fix file spanning (not tested)

b902cbe: raw_rec: removed unused writing_task_busy

b658401: MLV Lite: make sure MLV header size is multiple of 512 bytes (seems to fix speed regression)

30bb06a: Merged raw_fixes into mlv_lite

c11891c: mlv_lite: experiment - EDMAC alignment at 64 bytes

fa351d4: raw_rec/mlv_rec: changed names in README from "Raw recording" to "Raw video" (to fit nicely in the module menu)

7d62e1d: Modules: allow a little extra spacing for module names

0860e07: mlv_lite: updated README and main menu entry

a3a3319: Merged raw_fixes into new_raw_format (aka mlv_lite)

ea3eed8: mlv_lite: fix handling of 4GB limit and card full

86c8d1b: mlv_lite: also update the skip offsets every frame

e78ef72: mlv_lite: fix 4GB limit chunk handling

3d2fbe2: mlv_lite: vidf timestamps

70d3861: mlv_lite: update to output valid mlv files without extra overhead of all the mlv_rec features

1c9938c: new raw format: fix wrong file handle for new chunk

c7321d4: new file format for raw_rec based on a simplified version of mlv

Build Log

820f547: Always disable overlays in x10 zoom, see pull request 806
and also in the special x1 zoom from some recent models

ff51c7a: Merged in daniel_fort/magic-lantern/700D_isr_stubs (pull request #797)
700D pre_isr_hook/post_isr_hook stubs for LOG_INTERRUPTS
Approved-by: Alex

67af227: 700D: fix pre/post_isr_hook stubs

79b3619: 700D pre_isr_hook/post_isr_hook stubs for LOG_INTERRUPTS

8de5f36: Info bars: fix positions for various screen layouts + refactor

6ef37cd: Cropmarks: fix alignment on external monitors

677caa0: Focus peaking: removed the option to use HD buffer (simpler code)

57b56c6: Focus peaking: fix alignment with anamorphic preview (issue #2446?)

Build Log

70b8a99: Fix REC PicStyle on first clip (issue #2379, all models)

8e0d34d: raw2dng, Makefile: switching to -c99 introduced 2 warnings and fseeko not able to address long files under linux. Fixed

Build Log

4ea94f5: 1100D: fix FPS override (nightly compiles again, thanks to all testers)

917d34a: 500D: fix PlayMovieGuideApp_handler stub

28ef88d: Merged in bouncyball/magic-lantern/unified-camname-patch (pull request #801)
make mlv_dump write unique camera name tag to dng files

4f8ae16: mlv_dump: changed unique_camname initial value from NULL to (unknown). Got rid of the unnecessary check. There should be only one IDNT block in a valid MLV

323f635: Merged unified into unified-camname-patch

4d14e6b: mlv_dump.c, camera_id.h: some suggested polishing

bfae71c: mlv_dump: typo correction

35b9bde: mlv_dump: use NULL instead of Unknown Model string

43ecbc1: camera_id.h: func now returns NULL if camera model not matched

e5ab3ce: camera_id.h: fallback to unique/default name in case of the model w/o localized name

c56fb28: camera_id.h: remove Canon EOS 400D from the model list

86efbb8: camera_id.h: make get_camera_name_by_id func static

0e09783: mlv_dump: write unique camera name tag to dng files

453983d: mlv_dump: added camera_id.h to the mlv_rec dir

5089e83: Created new branch unified-camname-patch

Build Log

1d8c97a: Merged in 5D3-113-and-123 (pull request #611)
Support for 5D3 firmwares 1.2.3 and 1.1.3 in the same source tree

466ed3c: Close branch 5D3-113-and-123

951e543: 5D3: sync platform files between 1.1.3 and 1.2.3

8e4bb25: Merged unified into 5D3-113-and-123

dc3e1d0: 5D3: stubs format

654c4f7: Stubs format

68b14fd: Merged unified into 5D3-113-and-123

0839827: Merged 5D3-123 into 5D3-113-and-123 (to be tested)

0e574b2: Merged unified into 5D3-113-and-123 (not working yet)

ce8e1f7: 5D3-123: FSUunMountDevice stub

020f3ad: Apply 5D3 113 changes from unified to 123

b414dd2: Merged unified into 5D3-123

32abe65: Merged unified into 5D3-123

410832b: Merged unified into 5D3-123

88228d4: Merged unified into 5D3-123

70026a5: 5D3-123: updated installer binary

fb966fd: Installer: updated for 5D3 1.2.3

fa5a10f: 5D3-123: consts update

d430168: Merged unified into 5D3-123

0d12e78: Don't display the pitch line on cameras that always report zero for the pitch (eg 60D)

b1f5bd9: Add support for displaying the pitch with electronic level

a7e0753: mlv_rec: fix compilation

3eead01: Merged unified into 5D3-123

db81e10: features.html: allow one camera with two or more firmware versions

295ee9c: 5D3: fix top-level Makefile to work on 1.2.3 and 1.1.3

604848f: 5D3: fix Makefiles to work on 1.2.3 and 1.1.3

364b931: 5D3: fix raw_rec and mlv_rec to work on 1.2.3 and 1.1.3

ba61642: 5D3: fix VRAM buffer choice for both 1.2.3 and 1.1.3 (workaround, need to finish the new-lv-buffer-detection branch)

09001ed: 5D3: fix raw backend to work on both 1.2.3 and 1.1.3

4da2e9d: 5D3: fix prop_lv_lens to work on both 1.2.3 and 1.1.3

09ad46f: 5D3: fix bottom bar hack to work on both 1.2.3 and 1.1.3

a11979f: 5D3: re-added firmware signature for 1.1.3

0f0d761: 5D3: fix FPS override to work on both 1.2.3 and 1.1.3

ef2a303: 5D3-123: preparing to support both 1.2.3 and 1.1.3 in the same source tree

c7655e9: 5D3 123: updated format consts

0daee2e: Merged unified into 5D3-123

ca55600: Minor tweak in bootflags.c

ffd1d53: Merged unified into 5D3-123

fa3d4cb: mlv_play: fix issue 1771 (borders in HDMI mode)

8e9dbb7: Merged external-monitor into 5D3-123

b3b4b10: Fix merge conflict

a2a3182: 5D3-123: changes from cleanup branch

3528f67: Merged unified into 5D3-123

eb1f5ad: Revert debug code

3f20640: External monitors: fix LV buffer display address for 5D3 1.2.3 in HDMI 1080i

495f855: External monitors: recognize hdmi_code == 20 as HDMI 1080i (for 5D3 123)

3d11781: Raw backend: fix raw2lv translation component (tested on 5D2)

2d113cb: Raw backend: fix raw2lv test

531f047: vram: after updating display parameters, force a refresh of RAW backend parameters

0017f48: update_vram_params should be private

86d6d16: Cropmarks: fix redraw on external monitors

20af0cd: Merged unified into 5D3-123

3f1f15a: Merged unified into 5D3-123

0a5e097: 5D3-123: stubs reformat

134ce91: Merged unified into 5D3-123

e0a1e77: Merged unified into 5D3-123

a47de7e: 5D3.123: stubs for CreateMemoryChunk/AddMemoryChunk

3ba402c: Merged unified into 5D3-123

4e8de6b: 5D3-123: HDMI mirroring is not identified by hdmi_code

3f39a7f: 5D3-123: when external monitor is used with mirroring enabled, ML should behave just as with built-in LCD; not tested
Based on the observations from Marekk and , and LRF
Code should be portable (no side effects expected on other cameras)

a0789cc: External monitors: check the size of PROP_HDMI_CHANGE_CODE

60c6fa5: Merged unified into 5D3-123

81fb497: Merged unified into 5D3-123

8a637f5: Merged unified into 5D3-123

86d6f44: Merged unified into 5D3-123

8609d18: Merged unified into 5D3-123

b17c87b: 5D3-123: updated SENSOR_TIMING_TABLE address

67bed67: Merged unified into 5D3-123

1170695: Merged unified into 5D3-123

b408191: 5D3-123: do not apply the palette workaround in LiveView (fixes conflict with display filters)

c614dda: 5D3-123: GetTaskName stub

3f646c7: 5D3 123: stubs for SetTimerAfter and CancelTimer; deleted SetHPTimerAfterTimeout

e422f9d: Timer and file IO stubs for 5D3.123

30bb136: 5D3-123: CANON_SHUTTER_RATING constant

3be65f8: 5D3-123: CancelDateTimer stub

a12d536: Merged unified into 5D3-123

03c5f43: 5D3-123: another workaround for uninitialized LV VRAM (this one makes Arkanoid playable again :P )

fadde9f: 5D3-123: undo 2d0fb63

72846f0: Merged unified into 5D3-123

17aa99e: Merged unified into 5D3-123

8e2f732: Merged in chris_miller/magic-lantern-1/chris_miller/added-stub-for-stopasifdmaadc-1397488668705 (pull request #471)
Added stub for StopASIFDMAADC

c3c7469: Added stub for StopASIFDMAADC

622f3c2: Merged unified into 5D3-123

9765bab: Un petit poisson d'avril

fc22557: Zoom on half-shutter: let's try a larger delay (the old one was causing too many missed shots)

6924233: Merged in chris_miller/magic-lantern/5D3-123 (pull request #459)
Liveview fixes for magic zoom and electronic level

2f597fb: A better fix for the electronic level. Now always offsets the white line in the most appropriate direction.

94600b6: Merged hudson/magic-lantern into unified

4798778: Backed out this change. It's better to have the misalignment as it was since the level collapses to a single line while at 45 degrees rather than when level in portrait mode.

cd65642: Fix alignment of green bars for magic zoom and make them easier to see.

22b848a: - Incorrect values were being written to memory.
- Fixed out-by-one error when dest was aligned.
- Prevent memory being written beyond end of range when dest isn't aligned.

5cfa55d: Electronic level lines were slightly misaligned

199048d: Merged unified into 5D3-123

48e7dde: Installer: updated 5D3-123 FIR binary

db81d97: 5D3-123: installer requires 8.3 FIR name in order to work on 64GB EXFAT cards (credits 1% for hint)

a2fe8ee: 5D3-123: fix installer after clrscr workaround

2ae8eaa: Merged unified into 5D3-123

a9dced4: Merged unified into 5D3.123

2d0fb63: 5D3-123: workaround for uninitialized LV VRAM in photo mode (clrscr will fill with black instead of transparent when there's no YUV data to show)

82b0b32: 5D3-123: switched REC indicator to elapsed time by default (remaining time takes a while to settle)

c24d8fb: 5D3-123: cleaned up obsolete zoom tweaks

94b6580: 5D3-123: looks like "make zip" expects the FIR in the platform directory

135f0d6: 5D3-123: experimental installation FIR binary

6284f44: Merged unbroken-installer into 5D3-123

49fe1a1: 5D3-123: removed obsolete reboot-ins.c (todo: the same on all platforms)

c8a0bdb: Renamed installer/5D3.112 to installer/5D3.123

fb48c9c: Merged unbroken-installer into 5D3-123

3add1a9: raw_rec: fix bad merge

0391ff8: 5D3-123: formatted stubs

817505a: 5D3-123: cleaned up card bootflag code

b1296f0: 5D3 123: ML is now restored after formatting the card!

ac386dd: 5D3 123: undo 9315c07 (don't works)

ae2328c: 5D3-123: rename FIO_Open to FIO_OpenFile

568e6ff: Merged unified into 5D3-123

e8746c8: 5D3: preferred card = CF by default (somehow disappeared during merging)

7246960: 5D3-123: merge from unified

08fe96a: 5D3 123: updated for new FIO backend

d1be7e7: Updated modules to check for firmware 1.2.3 (also kept compatibility with 1.1.3 for some of them)

ceeb5b6: Merge from unified (reverted io_crypt to 113)

adcc064: Fixup movie restart

7f0f4be: 5D3: preferred card = CF by default

716df71: Updated adtg_gui

d0d62ae: Updated for 1.2.3

2cce8a9: 5D3 123: update raw buffer address

1e8b20f: Found some more addresses that needed updating for 1.2.3

9315c07: 5D3 123: let's try Zoom on Half-Shutter without CONFIG_ZOOM_HALFSHUTTER_UILOCK (did Canon fix this or not?)

7641974: Wrong buffer macro was being tested, would have failed to compile on non quad-buffered cameras.

edf17e7: 5D3 123: disabled some features no longer working after upgrade (fast zebras, full-screen magic zoom, brightness/contrast/saturation, crazy colors)

cf5963f: 5D3 123: fixed LVAE_STRUCT, expo override working again

e114c9d: Quad-buffered Magic Zoom (for 5D3 123). Compile warning for busy vsync.

2fb9392: Quad-buffered display filters (for 5D3 123)

9b2b2ef: 5D3 123: PROP_LV_LENS seems to be like 6D now

3ceb715: 5D3 123: fixed FRAME_ISO & friends; ETTR working

315fc86: 5D3 123: updated DLG_SIGNATURE. All stub test passed :)

41565df: 5D3 123: new YUV422 image buffers (things changed a lot here for dual monitor support, and now LiveView is quad-buffered!)

8733a40: 5D3 123: enable hexdump (Debug -> Memory browser)

2eea728: 5D3 123: GetSizeOfMaxRegion

6311b23: Fixed stateobj_disp[1] offset


6fb14c0: Removed obsolete EDMAC_RegisterCompleteCBR definition

7fed8cd: Ported ML over to 5D3 firmware 1.2.3.

5b4d70c: Undo some stub changes to help transplanting old changesets

aaf3b8c: Copied 5D3.113 to 5D3.123 in preparation for supporting firmware 1.2.3

aaae504: Renamed 5D3.113 to 5D3.123 in preparation for supporting firmware 1.2.3

Build Log

6ebf424: Merged in bouncyball/raw2dng_dng_set_camname_patch (pull request #791)

f86235e: raw2dng: write correct camera name tag to DNG files

e253271: raw2dng: Makefile: add C99 standard for linux

3008636: Merged in escho/escho-magiclantern/escho-dev (pull request #783)
change helptext for mlv_dump

0be9fb7: mlv_dump -f helptext

7d04711: Created new branch escho-dev

8fe6dcc: Merged in ettr-bulb (pull request #674)
Bulb mode support for Auto ETTR (for very long exposures)

a4f4605: Close branch ettr-bulb

c2917ff: Merged in serialflash (pull request #793)
Serial flash dumper

69e5d54: Close branch serialflash

bf8e065: Merged in Licaon_Kter/magic-lantern/Licaon_Kter/save-sticky-halfshutter-in-config-fix-ht-1482105766431 (pull request #784)
Save sticky halfshutter in config

617110e: Save sticky half-shutter in config

14634a2: Created new branch stick_sticky

670a2ea: Merged in raw_fixes (pull request #778)
Raw fixes part 3

db65e74: Raw backend: back to EDMAC channel 4 for 5D3 RAW_SLURP
(corrupted frames on 1.2.3 with 0x12)

36c5322: Raw backend: no more white level exceptions

fa05e5e: tskmon: attempt to fix remaining null ptr issues (not tested; might have a minor impact over recording speed)
Should fix #2488, #2140, #2537, #2376, #1906, #1913

9cc6c13: Merged in daniel_fort/magic-lantern/raw_fixes_eosm_fix (pull request #795)
raw fixes eosm fix

0de438b: Removed false condition that affected non-cropped video mode on EOSM.

38e78de: Raw backend: attempt to autodetect resolution on all cameras using EDMAC_RAW_SLURP (to be tested)
fixme: height is not always detected well (sometimes it's +/- 1)

33a2224: Raw backend: use channel 0x12 for EDMAC_RAW_SLURP on all recent models (to be tested)

42a7544: Raw backend: use the same PREFERRED_RAW_TYPE on all cameras (to be tested)
0x10 on DIGIC 5/6, 0x5 on DIGIC 4, see

c6f5903: Raw backend: removed unused code about raw type for cameras without CONFIG_EDMAC_RAW_SLURP

e59b408: Added 6D support and changed default 700D PREFERRED_RAW_TYPE

6278468: 650D: enable CONFIG_EDMAC_RAW_SLURP

7625d6d: 700D: enable CONFIG_EDMAC_RAW_SLURP

b898861: sf_dump: some refactoring; stubs for 5D3, 100D, 700D, EOS M

e2d2384: Serial flash dump module

5183f2e: Raw backend: fix noise around raw previews on HDMI screens

bcb89bb: raw_rec: fix recording speed not measured with lvinfo indicator

d342105: 60D: use PREFERRED_RAW_TYPE (fixes digital ISO behavior and bad pixels in preview)

d2d761f: Raw backend: RAW_TYPE_ADDRESS no longer needed

(included fix from 061ac76)

3537358: edmac-memcpy.c: refactored to avoid static struct edmac_info

4623dd7: 5D3: get LV RAW resolution from 0xC0F06800/4, instead of hardcoded values

6abd21a: ETTR: fix roundoff error when displaying next shutter speed in BULB mode

b194dd4: ETTR: in bulb mode, limit shutter speed to interval time minus 3 seconds

c61ac85: ETTR: only round short (non-bulb) exposures

cee4d46: lens.c: fix round_shutter for ETTR

0a73303: Merged unified into ettr-bulb

d0f65e4: Intervalometer: check whether interval time is too short

aed743f: ETTR: limit slowest shutter speed to intervalometer time minus 2 seconds (experiment)

31303e8: ETTR: minor tweaks for debug messages

64c91b2: Merged ettr-experiments

5138bfd: ETTR: disabled operation in semiautomatic modes (see )

c69055b: ettr: fix warnings

63884c9: ETTR: experimental long exposures via bulb timer

a272242: shoot.h: exposed ensure_bulb_mode and format_time_hours_minutes_seconds

ce2ffe1: ETTR: fine-tuned printf's

9872622: ETTR: fixed false "expo limits reached" in movie mode at 24/25 fps, ISO less than maximum

3dd4a7f: ETTR: use plain printf's for debugging

bb65fc3: ETTR: experimental waiting for LiveView exposure to change and/or settle

6a7ecec: ETTR: experimental tweak that should improve convergence for overexposed images (should simply meter for SNR limits if in doubt)

d735230: ETTR: increased threshold for waiting for LiveView exposure to settle

Build Log

4f72a0e: Merged in makefile-updates (pull request #777)
Makefile updates

bc54cf2: Close branch makefile-updates

c8dba97: mlv_play: add variable bit depth support. mlv_play requires experimental raw_twk if you want to playback other than 14bpp

95fa67a: Backed out changeset: e7913102f817

31d7e5e: Makefile: retry unmounting the wifi card until it succeeds

ada7b43: Makefile: ping the wifi card before attempting to mount it or reusing the old mount point

944bc8f: Makefile: nicer handling of wifi cards that connect to a router

9814dc6: Makefile: include uncommitted changes in autoexec.bin (see PR #230)
Diffs are taken from src and current platform directories only
Some lines from Makefile.user are also included (CONFIG entries and gcc version)

9813957: Modules: include source code in the .mo file for uncommitted modules (see PR #230 )

4310463: Makefile: do not reconnect to main wifi network if already there

774ffc4: Makefile: unmount after installq

291c82e: Makefile: fix whitespace alignment for rm_files and rm_dir

38f32b5: mlv_play: added direct raw_twk support along with zoom support (5D3 tested)

cad9333: mlv_play: restore bpp and black level in raw_info on exit

e791310: mlv_rec/mlv_play: add variable bit depth support. mlv_play requires experimental raw_twk if you want to playback other than 14bpp

4265054: raw_twk: added experimental module that uses engines (PACK16, DEF, DSUNPACK) to accelerate raw->YUV conversion

Build Log

9a80258: Merged in andreasb242/magic-lantern (pull request #753)
Bad settings warning

fbc9c7f: Bad settings warning:
The repeated beep is in my option the best solution, as I don't see the LED warning,
if I have the hand on the grip, and the one time popup is only visible if you change
settings, but if you do it by mistake, you also won't see the popup.
BUT I merged the changes today to my local 70D branch, and recognizes that beep is
not working. Beep is currently also not working for the 650D, so I add an option
to also flash the popup message.
The popup message ends up in a flickering screen, which always shows / hide the
message, also really good visible in review mode. As I currently don't know how to
get the beep working, this is currently the best solution for me...

Tested with 650D and 70D branch from nikfreak.

2b88637: Merged in Dannephoto/magic-lantern/crop hack disable (pull request #776)
Disables crop mode hack when turning camera off.

1b308b3: If condition only for crop mode hack

90bd23a: Disables crop mode hack when turning camera off.

5580835: Merged in daniel_fort/magic-lantern/raw2dng_Makefile (pull request #773)
raw2dng make rules changes

7c8d1b1: Modified make rules so raw2dng isn't built automatically when a platform is compiled. Also added switch so cross compiling raw2dng.exe on a Mac is possible.

Build Log

d5e2cc0: Merged in daniel_fort/magic-lantern/EOSM_close_liveview (pull request #761)
To shut off LiveView on the EOSM switch to the info screen.

fda1770: To shut off LiveView on the EOSM switch to the info screen.

ba5642b: Merged in cleanup (pull request #764)
Minor cleanups / fixes

515d621: Merged in daniel_fort/magic-lantern/cr2hdr_make_update (pull request #770)
Removed "all" rule so cr2hdr isn't built automatically when compiling a platform.

21ac498: Removed "all" rule so cr2hdr isn't built automatically when compiling a platform.
Updated exiftool to version 10.33.

215e155: engio_write wrapper

046cc88: 550D: fix compiling minimal target

8cd06a1: Raw backend: make sure skip offsets are even

f0710f5: Makefile: allow extra source files in the minimal profile

dcfe4d3: Makefile: prefer .c files from current directory first

Build Log

db7ebc6: Merged in daniel_fort/magic-lantern-mlv_dump/mlv_dump_frame_extract (pull request #765)
fix to extract only the first frame (numbered 0)

d07035e: fix to extract only the first frame (numbered 0)

Build Log

3384373: mlv_rec: fixed chroma smooth regression in mlv_dump caused by API change in 5167619. thanks dfort/danne/bouncyball.

Build Log

15fce5b: Merged in daniel_fort/magic-lantern/mlv_dump-simplify_dng_filenames (pull request #758)
Simplify dng names

89bfb0b: Remove "frame" from dng filenames so that it conforms with MLVFS default naming.

Build Log

15eb9aa: raw2dng and related: use HOST_CFLAGS (should fix building raw_rec with older compilers)

Build Log

db40ff8: EOS M: fix issue #2596 (temperature goes from 41°C to -60°C)

1392576: raw.c: fix compilation on some cameras apparently no longer used

Build Log

c3c4e71: Merged raw_fixes into unified

155feee: 5D3: reduce the white level a bit (doesn't always reach 16383, false alarm)

851cc1b: Merged in selftest (pull request #752) play dialog mode test, minor updates

0ab7885: Merged in cleanup (pull request #751)
Misc cleanups

5b11902: Merged in 700D (pull request #750)
700D: minor fixes

1b7eeb6: Modules: use module_strings instead of hginfo; misc fine-tunings

1000699: fix permissions and GCC path

0484cca: Merged in g3gg0/magic-lantern-module-hgdiff (pull request #230)
modules: embed hg information and hg diff into object file for traceability

ec05e1f: Make sure we don't leave cruft behind when cleaning or running hg status

da13878: Merged in hudson/magic-lantern

c58bfb4: Modules: Use LD instead of LD_REAL

b29f7be: removed stale option for a feature not implemented yet

dd2b172: Merge

7c8e64a: module: use makefile and objcopy to embed hg information

137e190: module: cleaned up hginfo embedding code

7abb414: module: use makefile-provided objcopy

c7efb49: module: cleaned up dumper script for hg infos

bd0d2df: modules: embed hg information and hg diff into object file for traceability - WARNING: if you plan to publish binary-only modules you have to disable that. but do we want those modules?

c4a5202: Merged in bouncyball/raw-to-mlv-convertor-raw2dng-mod (pull request #733)

d9a11d9: raw2dng multichunk RAW file support

e2f2edd: raw2dng mlv output support

00c11f4: Merged in andreasb242/magic-lantern (pull request #749)
Make "Warning for bad settings" message configurable

80a0700: Make "Warning for bad settings" message configurable:
- Default is Blinking LED, Show a Popup, beep once, as before
- Option for an additional repeated beep: if you change a setting on the Touchscreen, you won't see the popup if you don't look at the screen, one beep can be missed, and I usually can't see the LED, because the thumb hides it...
- Option without LED warning: If you are in a dark environment, the LED can be really stressing...
I hope there is now an option for everybody...

47e3049: Merged lvinfo into unified (show WB shift values on the LiveView info bar)

ca509bc: Merged console into unified

452c3a1: console: console_clear is still used

6b1115f: Merged in raw_fixes (pull request #732)
5D3: raw type experiments, updated vertical stripe and bad pixel fix in mlv_dump, updated white level (0.15 stops of extra highlight detail in LiveView)

d72f00e: Merged bad_pixels into raw_fixes

ab24965: raw2dng/mlv_dump: in vertical stripe fix, give higher weights to bright pixels

99d8506: mlv_dump: vertical stripe fix on by default (same as before)

c24ec42: 5D3: back to raw type 16 (same as before); vertical stripes still present with 4 and 8

9d36d8e: mlv_dump: minor fixes regarding subtract (dark) frame

b933258: mlv_dump: experimental flat-field (gain) correction

0ba0baa: raw2dng/mlv_dump: fine-tuned vertical stripe correction algorithm (to be tested)

441c525: 5D3: white level in LiveView is 16382, not 15000 (gains 0.15 stops of DR in highlights)
For existing footage, run: exiftool *.dng -WhiteLevel=16382 -overwrite_original

36eada7: 5D3: let's try raw type 8 (not affected by digital ISO)

db9f34c: Merge bad_pixels into raw_fixes

6e8eb0a: raw2dng/mlv_dump: apply cold pixel fix on border pixels as well

d7d27f3: raw2dng/mlv_dump, cold pixel fix routine: code formatting, comment updates, C99 loops

d19531f: raw2dng/mlv_dump: fine-tuned cold pixel threshold

6f92c2d: selftest: relaxed timer tests a bit

006ad10: selftest: new tests for play dialog modes

f3d649c: selftest: reorganized stub test code

f7a532a: lvinfo: show WB shift values

48a5e0c: lvinfo: allow % in fields

dfafd97: 700D, 650D, 100D, maybe others: nicer Kelvin display in photo mode

3ca5551: 700D: fix COLOR_FG_NONLV

3c71868: 700D: fix PlayMain_handler stub (fixes SET+MainDial and others)

25dff0f: mlv_dump: option to fix non-static (moving) cold pixels

0c3d649: mlv_dump: vertical stripe fix optional, disabled by default

849010f: mlv_dump: cold pixel fix enabled by default

ae95e45: mlv_dump: fix cold pixel analysis when processing only some frames

7a72323: Menu timeout fix: simpler logic (minor)

043121b: Moved CACHEABLE/UNCACHEABLE definitions from vram.h to mem.h

5bfab05: 7D: removed LEDON/LEDOFF consts (misleading)

840b451: Removed unused AVAIL_SHOT_WORKAROUND

e3a181c: Fix compiling without CONFIG_MODULES

51276d0: 5D3: experiment - changed raw type, to be tested whether it still has vertical stripes

edb599c: Raw backend: debug option for choosing PREFERRED_RAW_TYPE from menu

e9fc340: Raw backend, EDMAC_RAW_SLURP: check RAW_TYPE register

039ad2f: Raw backend, EDMAC_RAW_SLURP: set RAW_TYPE before EDMAC calls (to be tested if it has any effect on pink frames)

81004c0: console: removed unused status and help text

89d8daa: console: allow printf calls very early in the boot process (including from init_task)

Build Log

96ca71e: 5D3: cleaned up obsolete zoom tweaks (c24d8fb)

Build Log

c795013: Merged in cleanup (pull request #743)
Misc cleanups, some GUI button codes renamed, 1100D zoom buttons fix

70427a8: Merged in niklastisk/magic-lantern/makefile-updates (pull request #747)
Makefile updates

458920b: MAKE: skip page align for autoexec-fir target

bc1ac8f: MAKE: do not page align segments in autoexec

b3240f2: MAKE: remove duplicate objcopy

9031984: MAKE: Do not use -fshort-double when GCC version is 6+

7125b1d: 600D, 1100D: cleaned up zoom button codes (to be tested on 1100D)

0b7c210: Renamed ZOOM IN/OUT button codes
sed -i.bak 's/PRESS_ZOOMIN_MAYBE/PRESS_ZOOM_IN/g' */*.[ch]
sed -i.bak 's/PRESS_ZOOMOUT_MAYBE/PRESS_ZOOM_OUT/g' */*.[ch]

1e55ada: EOS M: fix scrollwheel button codes (todo: same on 100D)

a08175e: Renamed DLG_* constants to GUIMODE_*
sed -i.bak 's/DLG_/GUIMODE_/g' */*.[ch]


c1a4001: Removed DLG_SIGNATURE (refactored existing checks with more generic code)
sed -i.bak '/DLG_SIGNATURE/d' */*.h

Build Log

831978d: Merged in mpu (pull request #737)
MPU dumper

4ba566d: Merged in installer (pull request #727)
Installer fixes

55a2454: Close branch installer

00ed1e9: Merged in escho/escho-magiclantern/camera-temperaturen (pull request #738)
Camera temperaturen

e42bfae: update temperatures

4979a92: Merged unified into camera-temperaturen

5613ad8: Created new branch camera-temperaturen

fef4ded: Merged in wifi_sd (pull request #726)
Helpers to run "make install" on Wi-Fi SD cards

999334d: Close branch wifi_sd

0ce3a92: Merged in rec-indicators (pull request #729)
Fix recording indicators above 2GB

9524776: Merged in format-restart (pull request #736)
Restart the camera after formatting the card and restoring ML

32bcd37: Close branch format-restart

ead884a: Merged in minimal (pull request #741)
Minimal target fixes + hello world

45ad217: Close branch minimal

d709359: Merged in cleanup (pull request #740)
Misc small cleanups

474ea76: Minimal target for 600D (to be tested)

4dcecdc: Minimal hello world: wait for display initialization
(fixes "random" boot failures in QEMU, where display initialization is much slower, also depending on what debug/tracing options are enabled)

7202d73: Minimal target for 1100D

5a197aa: Minimal target: Hello World with font_direct, from a user task

599c42c: Minimal target: removed platform-specific files (will use the ones from platform dir)

f606087: Minimal target: removed old stuff; just a simple LED blink

7d83098: Minimal target: fix "make install"

c2ddba2: Makefile: allow changing model ID for build_fir

6b6ad6f: Removed CONFIG_BATTERY_TEST

b5aa111: boot-hack.c: cleaned up some comments


1f5734a: Makefile: install_finish target

17252bf: Merged unified into cleanup

eff3937: xor_chk: check footer before overwriting

76c15f8: Use sync_caches instead of clean_d_cache/flush_caches (to be tested)

4cfb419: minor cleanup in edmac_memcpy_init

c577ab4: 5D3: removed the "Dim REC LED" feature (old hackish implementation, doesn't seem to work anyway)

6a16de5: Restart the camera after formatting the card and restoring ML (

f497f38: Recording indicators: attempt to fix issue #2530 for files up to 4GB (not tested)

0eb42f1: installer: show the uninstall message in yellow (more obvious)

91e792d: installer: fix "make install"

1c7951c: Merged makefile into installer

4c78763: installer: fix issue #2529

a8de93c: installer: minor cosmetic fix

64d342b: installer: fix compilation

e6f5be5: minor: ml_shutdown should be static

65ab46a: Makefile: experimental configuration for Wi-Fi SD cards

50b1f5d: Merged makefile into wifi_sd

c1d232f: wifi_sd: save configs before unmounting

50ff37b: Experiment - unmount SD card (trick useful when uploading files to a Wi-Fi SD card, to avoid filesystem corruption)

57a77d5: mpu_dump: use eventprocs (thanks Maqs)

8c8e332: mpu_dump: module for dumping MPU memory, based on experiments from Maqs

Build Log

90fe6de: Merged in tecgen/magic-lantern/model-specific-icons (pull request #723, 500D submenu icon)
Model specific icons

ad62161: shrinked the live view icons a bit

33fb5a7: resized liveview icon: 1px top, 1px right side

25d2640: moved content a bit to the left

90a9539: 500D: LiveView instead of Q icon

2e30dc1: Created new branch model-specific-icons

Build Log

ae748ad: Makefile: add a quick install target (installq) for slow media (only autoexec.bin and symbol file)

d13c527: Fix arrow key shortcuts conflicting with tools that use focus box position (spotmeter, magic zoom)

Build Log

e609c14: Dual ISO: fix warning in movie mode on unsupported cameras

86e3861: False colors: fix ExpSim check

dd82810: Merged in makefile (pull request #725)

127a660: Removed beep introduced by mistake in b81641b

d16247e: Merged in generic-cfn (pull request #716)
Generic functions for some CFn parameters

3847362: Close branch generic-cfn

b428d26: Merged in daniel_fort/xiga_reframe (pull request #693) (60D movie crop centering in raw)

77d8987: Need to center mv640crop mode for the 60D

b5fc6b3: adjustments based on Silent DNG tests by xiga

5d76297: Makefile: when running "make install" from a module dir, only create the modules directory

25a4c6f: Makefile: quiet prepare_install_dir; skip empty directories (logs and settings)

ad4a246: Makefile: quiet "make install" from module directory

58eefd7: Modules: unmount the card after running "make install"

5098bb0: Makefile: option to mount the card before running "make install"

7f0d033: Removed FEATURE_EXPO_ISO_HTP (no real reason to change it from ML menus; it's the same as Canon's)

bcc0724: Added a generic implementation for some CFn functions (ALO, HTP, MLU), to fix issues like #2345 (affected cameras: all except 5D2/50D/500D)

Build Log

de2c453: features.html: fix issue #2524

Build Log

8028ea4: Merged in edmac (pull request #718)
Edmac info fixes

3c2a5cd: Close branch edmac

95e5ca3: Merged in powersave-focusring (pull request #715)
Attempt to fix issue #2431 (turning the focus ring doesn't reset Canon's powersave timer)

5ea186a: Close branch powersave-focusring

cf00339: Merged in tecgen/50D_FUNC_instead_of_Q_icon (pull request #706) (also for 5D2 and 100D)

e8fc0a3: Fine-tuned submenu icons

6166ff7: trying to revert any changes to whitspaces; there shouldn't be any differences at all between this file and the one of hudson/magic-lantern

6d2b8b9: added a1ex implementation to merge many classes into one

390eaba: new: Av-icons made my nikfreak; renamed variable camera_model to labels

804f4b6: edit of the legs of A

e75ccf6: Av-icons are generated and used instead of Q-icons for 100D and are merged together with 50D, 52D and low resolutions version into one ico.c class

3916459: added Av-icons as replacement for the Q-button icon on the 100D

55b1830: Merged unified into 50D_FUNC_instead_of_Q_icon

32b2424: added camera model to generated code comment in order to help the diff command to recognise the differences between multiple files better

764ecd3: reverted last commit

b94a437: bugfix: now the focus icon is visible again

bb6e042: clean code: exchanged -D with the --ifdef option

c86f204: enabled the new icon only for 50D after testing it on the real camera

a39ce78: corrected pixel in FUNC png's and generated ico.c again

261200f: generating model specific icons to exchange the Q icon (only 50D and 5D2)

f146050: aligned the content within the icons to look nice after converting them with (see generated ico.c)

12dd4d0: added the new FUNC and picture style icons within the list of icons in the python make script

0ad6ea3: draft for the picture style icons

fa988e0: initial draft

177730c: Created new branch 50D_FUNC_instead_of_Q_icon

4135f90: Merged hudson/magic-lantern into unified

3a423dd: reverted: remember user selected samplerate after reboot

9c1e0ce: remember user selected samplerate after reboot

afa7e6f: EDMAC info: misc tweaks/fixes

1ad3360: edmac.c: fix edmac_chanlist

35cb8e7: edmac.c, edmac_get_connection: fix for write connections

7cdff8d: Attempt to fix issue #2431 (turning the focus ring doesn't reset powersave timer; Canon bug?)

Build Log

66fca48: 600D: enabled some features that didn't previously fit in memory

8c75127: Removed focus ramping feature from ML core (now covered by advanced intervalometer)

a17d578: Merged in dmilligan/magic-lantern/adv_int2 (pull request #678)

0bcfff5: adv_int: updated with exit_play_qr_mode()

0410bba: Merged unified into adv_int2

8029795: Makefile: list default modules on separate lines

a8b59d3: adv_int: fixes from code review

472e6ed: adv_int: fix compiler warning

0c03ce9: adv_int: readme

ff18d65: Merge

dce6c8e: Merge

e4ac9c8: adv_int: updates for PR #526: FIO_CreateFile and FIO_OpenFile should return 0

bc7319c: Merge

bd50ea1: update README.rst to new build format (had to delete all the help content b/c the build system doesn't like it)

b95a557: Merge

b3fdaef: adv_int: updates for recent changes to core

e92c6a1: Merge

97a6119: adv_int: warnings for bulb mode

560f9a7: adv_int: external source - detect picture taken with PROP_GUI_STATE rather than CBR_POST_SHOOT which isn't implemented

ffd10dc: adv_int: Tv adjustment menu

411cc13: adv_int: Av adjustment menu

60368ac: adv_int: ISO adjustment menu

ecf7318: Merge

8cddcf2: adv_int: cleanup

e4e7d05: adv_int: advanced intervalometer ramping module

d09aef1: Merged in Licaon_Kter/magic-lantern-rec_ui_fix/rec_ui_fix (pull request #681)

f7c7d0f: Fix typo

a289185: Fixed some indentations (I hope)

c170005: add include lvinfo

4f3451d: Move record time indicator in ML top bar.
Move buffer indicator out of the way of the histogram.

7e0c052: Move REC/STBY text a bit to line up and hide the red dot

1e292bf: Created new branch rec_ui_fix

6bd7ca9: Merged in raw_fixes (pull request #710)
Raw_fixes part 2

3049670: Close branch raw_fixes

5f9e5a1: Lua: after loading all scripts, wait for either keypress or 5-second timeout.

e4a3391: lens_focus: only interpret 0x1000 as error code (should fix )

d04a23a: raw_rec: fix copy/paste error

6df17b9: gui-common: attempt to allow magic zoom while recording raw, but also let the raw recording modules block the zoom key to avoid crashes; anything broken?

e78c7b8: raw_rec: cleaned up some comments

691f99d: raw_rec: fine-tuned error messages

36b111d: raw_rec: reintroduced 32MB chunk limit; to be benchmarked

e203cf9: raw_rec: 64-byte EDMAC alignment (to be benchmarked)

14e2991: raw_rec: undo de4e1d1

4d2fed0: raw_rec: allow up to 32 memory chunks for simulations

5a2aec5: raw_rec: minor cleanups

de4e1d1: raw_rec: removed a buffer choosing heuristic (to be benchmarked)

c4b5350: raw_rec: removed unused argument to raw_rec_should_preview

c20eda5: raw_rec: removed some unused CBRs that were previously intended for other modules

cb954d9: raw_rec: removed frame skipping "feature"

f909d8d: raw_rec: use one extra item for the writing queue (should fix "queue overflow" errors)

Build Log

3ae5729: Merged in lua_fix (pull request #683)
lua scripting: lots of fixes, plus API testing script

1d37239: Merged in daniel_fort/magic-lantern/clean_localsyms (pull request #692)
Remove localsyms in modules/lua

bc0b226: Changed so that removing localsyms is given it it's own action.

806124f: Moved rm localsyms to right after it is used.

b451a3c: Changed to removing it immediately after we are finished with it in the build rule.

8a5b7b6: Remove localsyms in modules/lua when running "make clean"

33c8f3c: Merged in Audionut/test/lua-features (pull request #701)
Add forum link to lua readme

5accdab: Add forum link to lua readme

29531ba: format_memory_size: fix rounding

8f808de: format_memory_size: allow sizes > 4 GB

a0ecc04: Lua: wait for keypress after loading all scripts.

00e5db2: Lua: added "make install_extra" to copy extra scripts in the main script dir on the card, for autoloading

d6c61c6: logger.lua: use line buffering (can be made optional if speed becomes a problem)

82ec3a4: Menu script routines: fix "menu not found" error messages

272e1e4: Lua: moved less-polished scripts to "extra" directory, so they don't get auto-started

dbd5a2c: Lua: when running "make install", copy all scripts, preserving directory structure

a27fe76: Lua: route all print operations to stdin/stdout

feafcb4: console.c: export console_puts (for Lua stdio)

5c3b3d2: sokoban.lua: fix typo

21ed61d: Focus backend: consider unknown status codes as "success"
(fixes follow focus in movie mode, tested on 5D3 + 24/2.8 STM)

e4303de: Lua scripts: tweaks for menu consistency (help lines, capital ON/OFF)

035ab6e: api_test.lua: use proper printf

c647a7a: Lua scripts: use standard I/O instead of console.write

e7cef84: Fix bracketing regression introduced in 5bdf000

1bfe672: Merged unified into lua_fix

1fa0abf: api_test.lua: basic tests for file i/o and stdio

796b442: Lua: add dryos.remove (similar to os.remove)

4a30715: Lua: basic support for standard streams (stdin, stdout, stderr)

fcfe209: lua_stdio: fix file create

08d1502: lua_stdio: fix file append

c08dc69: Merge lua_stdio into lua_fix

78f79c5: Lua: show console at startup, until all scripts are loaded

a13e511: Lua: increased stack size for script tasks, just in case

2cc2768: module backend: fix key handling regression in other modules, introduced in b0891f9

6b344a9: lua_stdio: report file size on stat calls; primitive errno handling

cc36f5b: Lua: fix old comment

5037374: api_test.lua: verify changing exposure directly via camera.iso/shutter/aperture/ec/flash_ec

1a540c1: lua_camera: fix setting ISO via camera.iso (should be the same as camera.iso.value)

4541487: Lua: use plain printf for normal messages

3cf7c20: lua property: cleanup prop message queue -> better, more defensive checks and error handling, fix memory leak
seems to fix some apparent memory issues and err70s with copy2m

fa5e9fc: lua scripting: don't load scripts that start with "_"
fixes issue with hidden files created by OSX Finder #2496

b4ac86f: lua_movie: fix movie mode checks (should fix rec_delay.lua on many cameras)

dc56a12: Lua: moved camera.af_mode to lens.af_mode (to be consistent with

09d87cf: Lua: returns MODE.MOVIE even on cameras without a dedicated movie mode (fixes recdelay.lua on many cameras)

8c1f1e2: Lua: proper error handling if strict.lua is missing

31d4cc7: Lua: print script menus to console

b93fd55: api_test.lua: minor fix

4ede48c: api_test.lua: updated focus tests to include commands with wait=false

eb9cba4: lens.c: reworked lens_focus a bit (fix crash with wait=off and some other tweaks)

49e58e9: editor.lua: use WHEEL_LEFT for decrementing and WHEEL_RIGHT for incrementing (consistent with ML menu)

8ea4ce5: Lua: check script syntax after compiling the module

d276af5: api_test.lua: tests for lens.focus

82dec5a: lua_lens.c: more reasonable defaults for lens.focus

e8076f1: lua_camera.c: removed check that breaks copy2m

94032f6: sokoban.lua: auto-increment level

f09f929: api_test.lua: tests for Lua strict mode; minor refactoring

d944781: Lua: updated scripts for strict.lua

1821da0: strict.lua: changes to play nice with our existing global metatable

b2c2d52: Lua: use strict.lua for all scripts

8691fa8: lua_lens: report focus distance in mm (to be consistent with all other distance fields)

3322054: lua_lens: renamed focal_distance to focus_distance

5950d53: api_test.lua: tests for the "lv" module

fe855af: Lua: added some new APIs to the "lv" module: lv.paused, lv.running, lv.zoom get/set, lv.wait(num_frames)

eed82e3: close_liveview(): fix operation in movie mode

1ee3cde: Pause/ResumeLiveView: minor cleanup/refactoring

2fab2c8: Lua: disabled by default

94cb5cc: lua_camera: don't use SYM_ISO for formatting ISO values (doesn't look nice)

1dcdce4: api_test.lua: restore camera parameters after changing them

8b97c48: api_test.lua: bring back the camera printf's (they provide additional info over the generic test, such as formatting exposure values)

18bf2d7: api_test.lua: run all generic tests first

b7ccdde: logger.lua: do not try to iterate light userdata

eda382b: lua reflection: remove unecessary duplicate 'fields' in dryos (they are already 'normal' table entries and will get enumerated by lua_next)

352abb0: Merge fonts into lua_fix

6cb3719: lua logger: also serialize userdata

bef9037: lua scripting: only call lua_next on tables
it's possible we are iterating a userdata, and calling lua_next on userdata causes a hard crash

a116dbc: Merge

6735a9f: lua scripting: update API tests to use logger and 'reflection' features

fd36ba3: lua scripting: implement 'reflection' for fields of api modules by using a custom __pairs metamethod and iterator (cherry picked commits from lua_touch branch)
this allows us to do e.g.:
for k,v in pairs(camera) do
printf("%s = %s",k,tostring(v))
should make writing simple, automatic, generic API tests easier

8161867: lua scripting: use logger in editor.lua and speed up file open

ae9c901: lua scripting: use logger in calc.lua

f8acd15: lua scripting: logger.lua - a logging helper

1c9af38: lua scripting: directory.parent should return nil for root directories (i.e. A:/ or B:/)

c2a1361: lua scripting: console.write should not automatically add newlines

e22b3bc: Lua: use uncached malloc for buffering stdio files

8e3b7b3: Lua: hide stdio debug messages by default

a89721d: Lua: stdio appears to work!

61ef0db: Lua: include extra dependencies in the module itself (not core); use setjmp from core (newlib)

bbed7ec: Merged lua_fix into lua_stdio

3da4207: Lua: compile with stdio functions from dietlibc (not working yet)

d03c764: fio-ml: use stdio.h instead of defining a custom FILE type

a9ee10f: Lua: added a subset of includes from dietlibc-0.33

b11b12a: tcc-glue: made all functions private and removed unused ones

7b10427: console.c: removed fputs and putchar

cf29a9c: Fix Lua after undefined symbols fix

6dd7067: Modules: fix undefined symbols appearing incorrectly in the sym file

b0891f9: module backend: handle fast scrollwheel events (for recent cameras)

75f88a3: editor.lua: fix performance regression introduced in b6ee499

6ca929a: lua scripting: fix calculator issue #2476

46911d9: api_test.lua: use a larger tolerance when setting aperture as f-number

7602893: api_test.lua: aperture tests

0b70261: Lua: added camera.aperture.min/max

608deb8: lens.c: added lens_format_aperture

5bdf000: lens.c: changed return value of hdr_set_* (todo: check if bracketing still stops when reaching exposure limits)

2d1a333: lens.c: updated lens_set_aperture_approx; Lua aperture tests almost working

e3cff0e: api_test.lua: EC and FEC tests; fix typos

1692466: moved round_shutter/aperture/expo_comp and related to lens.c

abe2508: simplified round_shutter/aperture/expo_comp and added round_flash_expo_comp, used for lens_set_flash_ae

6eae493: lens.c: refactored lens_set_ae/lens_set_flash_ae

5bedbb4: api_test.lua: script API tests, only covering shutter and ISO for now; todo: the rest of the API :P

c0acfcd: Lua, camera module: changing ISO works! (I bet this feature was never tested...)

b6428c6: lens.c: use closest match when setting ISO in hdr_set_rawiso; small refactors

c31cddb: Lua, camera module: use higher precision for APEX values

9673334: lens.c, prop_set_rawshutter_approx: round towards the nearest shutter (max error 1/8 EV)

edba152: lens.c: forgot to rename APEX10 macros

a6c3341: lens.h: updated APEX10 macros to be reversible (converting back and forth should give the same value)

08c83b4: imath.h: added RSCALE (integer scale with rounding, reversible)

44befef: Renamed APEX x10 macros

cd81c8b: lua scripting: load string library by default:

f72aa2c: lua scripting: semaphore timeouts: provide more info, don't force the console open

792edb2: Merged unified into lua_fix

2cc27ef: lua_camera: fix pretty-printing of negative EC values

dda8636: lua_camera: removed apex x10 units (don't see any reason to use them instead of float)

ee58da4: lua_camera: replaced tostring with __tostring, so it will be used with print(camera.shutter) or string.format("%s", camera.shutter)

15904db: Lua: added console.clear()

97beaa2: lua scripting: fix dryos.dcim_dir

00799d1: lua scripting: fix bug in config.lua that prevents submenus' values from loading correctly

587c4b7: lua scripting: use hdr_set_rawshutter instead of lens_set_rawshutter

bbcd18c: lua scripting: use hdr_set_rawaperture instead of lens_set_rawaperture

a63cbca: lua scripting: throw errors when setting camera properties fail

e387939: lua scripting: fix camera.aperture.value conversions

27ba4e9: lua scripting: fix the global shoot() function too

30e5d30: lua scripting: more parameter fixes (lens.focus)

892db3e: lua scripting: fix data type for camera.shoot parameter

Build Log

a14752e: Merged in play_mode (pull request #711)
Small refactor: get_out_of_play_mode renamed to exit_play_qr_mode; also added enter_play_mode

8193485: Close branch play_mode

f0cbdae: selftest, stubs test: go to PLAY mode when finished

928b1e5: selftest, stubs test: wait one second before checking display status

df1c825: Auto exposure on zoom: fix autofocus
(was unreliable, sometimes refusing to focus; tested on 5D3 + 24/2.8 STM)

6e325f9: Removed obsolete crash.c (already covered in the selftest module)

d441958: Ghost image: auto update should be off by default

eb9f7bb: Auto bracketing: refactored with new routines

423a064: Ghost image: refactored with new routines

d150722:, stubs test: if started with main display off, switch to PLAY mode

09949ba: run cache benchmarks PLAY mode only (they interfere with LiveView)

22ecf7a: run card/memory benchmark in either LV or PLAY modes (not photo)

17f5ea0: bench,selftest: refactored to use enter_play_mode/exit_play_qr_mode

02e2a2e: mlv_play: refactored to use enter_play_mode/exit_play_qr_mode

dc71c3d: Renamed get_out_of_play_mode to exit_play_qr_mode, reimplmented with SetGUIRequestMode, added enter_play_mode

5f9c7d7: updated readme

728b999: fix loading on EOS M

bb83caf: Peaking benchmark: auto-enable focus peaking temporarily during the test

adb6ebb:, card benchmark: fix startup message for dual-slot cameras (which card is being benchmarked)

b81641b: redraw: attempt to fix this issue:
(redraw doesn't work when Canon's front buffer is disabled)

Build Log

3dae4b0: fix copy-paste error (should fix the module not loading on 7D)

Build Log

f3641a6: mlv_snd: save user selected samplerate and restore it after a reboot of ML

0c20922: 50D: fix compilation after powersave refactoring. Is it still working?

5a89ad3: Moved run_in_separate_task back to menu.h
(should fix modules that no longer compiled after powersave refactoring)

9617675: Pause/ResumeLiveView: minor cleanup/refactoring

Build Log

54e90de: raw backend: always log resolution changes to console

3990aa4: silent pics: fix crash with simple (non-burst) pics

ce9629b: Powersave: fix compilation on cameras with LCD sensor

346917d: Electronic level included in display presets, like other overlays

Build Log

2017-09-12 01:02 - Build failed!

598036c: Makefile: removed more picoc leftovers (fixes compilation)

fdd9888: electronic level: refresh display more often (smoother motion)

5bd7668: Moved electronic level back to Overlay menu

36df5f0: Fix compilation

95659b4: Makefile: removed some old picoc leftovers

fd73196: Makefile: drop -mthumb-interwork (no longer needed)

7149c45: Stubs reformat

04d5360: Merged in bench-and-tests-as-modules (pull request #610)
Benchmarks and self-tests refactored as modules

d56c0f3: Close branch bench-and-tests-as-modules

4eacd1f: Merged in powersave-refactor (pull request #702)
Powersave refactoring

f61648a: Close branch powersave-refactor

d4cbed7: Changed run_in_separate_task to also disable powersave while the test task is running (99% of its uses would actually run best in this way)

b2a52e6: bench, selftest: fix compilation

ae9c712: Merged powersave-refactor into bench-and-tests-as-modules

0b1d61b: debug.c: removed all the old stuff from "don't click me"

ac9873e: Moved ML powersave routines to powersave.c/h, and batt_display to battery.c

f326d53: Moved display_on/off to powersave.c/h

24272a9: Moved PauseLiveView/ResumeLiveView to powersave.c/h

8597a6b: Moved powersave routines from raw_rec/mlv_rec/silent modules into powersave.c/h (in ML core)

e75655a: selftest: moved the EDMAC screen test from Debug->Don't click me

becb6cc: gui_uilock: change only the lowest 16 bits, to ensure proper requests; updated uilock codes

95a6d95: Moved value of PROP_ICU_UILOCK to propvalues.h (refactor)

7ce6a66: gui_uilock: fix waiting (seems to fix the shutter lockup bug during the SRM test, not 100% sure)

24c7694: selftest: print info about a shutter lockup bug (not yet sure how to reproduce)

2280889: moved the memory leak test from Debug->Don't click me

f083d45: moved the small-block memory test from Debug->Don't click me

d7bc167: moved the SRM memory test from Debug->Don't click me

827b62a: ask user to switch to photo mode, rather than doing unsafe mode switches

d14030c: shoot.c: added ensure_photo_mode near ensure_movie_mode

fbe03f0: set_shooting_mode: only allow M, Tv, Av, P and (where present) BULB

6118f34: fix progress info

289267b: refactored card info (camera-specific macros not available in modules)

77d11dc: fio-ml: expose card info to modules, where available (currently 5D3/7D, CF only)

ca7b6d1: split card benchmark in two options, a quick one for raw video users (16MB buffer) and an advanced one that tries various buffer sizes

5b5396b: refactored 50D ifdef

d504f8a: drop 5Dc ifdef's (no longer supported)

90a0c6e: Build and by default

94b483f: better user feedback for memory benchmark

0f91280: show RPC test menu on 7D (not tested)

efe8ee8: minor fix (memory benchmark header not fully erased)

b327ca5: minor help tweaks

2a01f3a: Merged unified into bench-and-tests-as-modules

17f53ea: CF+SD benchmark: use new screenshot method

6657c03: Stub tests: renamed test macros from TEST_TRY_* to TEST_*

121340c: Stub tests: added a test for task_max (see 700D - e08c6c0)

6a6bf7d: Moved burn-in tests from Debug menu to a module:

4b1c15d: Added is_menu_mode and get_dlg_signature (getters for MENU_MODE and DLG_SIGNATURE)

afbe043: module.h: declared module_translate_key

b0e7e37: Memory backend: exposed some wrappers to allow low-level testing from a module

f3880d8: GUI tweaks and minor cleanups for cache benchmarking code

c2d12e1: fix a crash in cache benchmarking code

9bb0375: added cache benchmarking routines from g3gg0

d2052a8: split benchmark code in separate files

69d2c07: reorganized the menu

8a6a515: help tweak for peaking benchmark

4c741e7: debug.c: cleaned up unused peaking_benchmark and menu_benchmark

ba68451: updated run_in_separate_task

573dacb: refactored with get_display_device_name()

36dd637: Merged unified into bench-and-tests-as-modules

dba660b: Memory benchmark: also run the test with display off (seems a little faster)

52327d9: Merged unified into bench-and-tests-as-modules

44a800e: Moved benchmarks to a module (

Build Log

c350071: Menu: fix help text regression (second line not displayed)

0cc56b4: Merged silent into unified

33d85b6: silent pics (non-fullres): one more precondition check

6cc0f2e: silent pics (non-fullres): block shutter button; fail gracefully if it fails

8a154ee: Merged in Gr3g01/magic-lantern-frsp-long-expo2 (pull request #697)
silent.c long_exposure_fix, safety

aabeb94: silent.c long_exposure_fix, safety

a0c2a00: Merged silent into unified

27a862a: renamed Best Shots to Best Focus (should be more obvious what it does)

ac53faa: also use SRM memory for bursts

172c96e: Moved coding style tools from scripts/ to contrib/coding-style-tools/ (scripts is for user scripts)

cd126cb: Merged in frantony/magic-lantern.checkpatch (pull request #165)
RequestForComments: CODING_STYLE proposal and check scripts

b630e3a: add script
Run this script to check pull request to
$ ./scripts/ 164
total: 0 errors, 0 warnings, 62 lines checked
Pull request #164 has no obvious style problems and is ready for

dec07ee: add script
Run this script before executing 'hg commit'.

8d32251: partly adapt for ML

9a44f33: import script from qemu-1.6.0-rc1

25257e5: add initial CODING_STYLE

8512a88: Merged in black-level-fix (pull request #484)
Black level fix

175edeb: Close branch black-level-fix

5c2aeb4: Black level fix: disable bad.dng debug files

80a00b0: Merged in Audionut/test/nitrate-remove (pull request #700)
Undefine nitrate function

673dd1a: Undefine nitrate function on 5D3.113 and 6D.116

bebc564: Backed out changeset: 0213ec7eee9c

0213ec7: Undefine nitrate function

9da5c5a: Raw backend: reset black level on resolution changes

4f39291: Black level check: relaxed checks about local mean; nicer debug messages

679403f: Raw backend: only log significant black level changes to the console

d64cc6e: raw_rec/mlv_rec: minor cleanups

90ed11e: Black level fix: do not change the API (undo the _retry_lv workaround)

8f1f6b8: black-level-fix: dummy merge (undo bad merge 2357ff5)

958b7ca: Merged unified into black-level-fix (try 2)

f79d731: Black level fix: do not change the API (undo the _retry_lv workaround)

59aa902: Merged unified into black-level-fix

2357ff5: Merged unified into black-level-fix

300b860: Merged unified into black-level-fix

4d06a79: Merged srm-memory into black-level-fix

9cff9e9: Fix merge conflicts

b48b8d2: Merged unified into black-level-fix

a2d1da0: Raw backend: use fewer retries when enabling raw mode for the first time

8c95969: raw_rec/mlv_rec: use NotifyBox for some backend errors

ca792b6: mlv_rec/raw_rec/ettr/silent/focus-box-center: updated raw code with raw_update_params_retry_lv

110a855: Raw backend: added raw_update_params_retry_lv, which retries in LiveView if needed

d75bbc9: Black level fix: make a copy of the raw buffer before saving bad.dng (fixes broken frames)

dc49d02: Black level fix: save all bad.dng files, numbered, for troubleshooting

5e849cd: Black level fix: relax the local mean constraint (seems to give some false alarms)

557ed82: Merged unified into black-level-fix

761f9c3: mlv_rec: handle non-video LV mode on 600D correctly

3cc213e: Raw backend: after zoom toggle or resolution change, mark the raw data as invalid for a short time (fixes raw check warnings even if you press the buttons like crazy)

37184a6: Raw backend: debugging code, save bad frames whenever black check fails

ccecba6: Raw backend: if the resolution was changed, raw_update_params will wait for the next frame, to ensure valid raw data

7996d60: Raw backend, CONFIG_EDMAC_RAW_SLURP: update EDMAC resolution as soon as possible, without requiring a call to raw_update_params (fixes black level issue when recording raw with memory hack enabled, and maybe others)

1fa317c: Raw overlays: print an error message when falling back to YUV
To test it: on 500D, go to LiveView, single shooting mode, take a picture, but hold the shutter for 2-3 seconds before releasing it (raw buffer will be overwritten by LiveView data, so black autodetection will fail)

b1e9953: Raw backend: fix compilation with RAW_DEBUG defined

40d1737: Raw backend: replaced black level convergence checks with a spatial consistency check of the OB area (also handles photo mode, since it requires a single frame for checking)

b21a487: Merged unified into black-level-fix

a9708d9: enforce black calculation if no valid value was found before, use simple averaging

01e2e9f: mlv_rec: black level fix (hopefully) not needed anymore

ab02bbd: mlv_rec: wait for raw backend to get ready

e8876ef: experiment: try to measure black level more than once and resolve black level issue

Build Log

e94c253: gui_uilock: change only the lowest 16 bits, to ensure proper requests; updated uilock codes

4a21c6f: Moved value of PROP_ICU_UILOCK to propvalues.h (refactor)

2b80622: gui_uilock: fix waiting (seems to fix the shutter lockup bug during the SRM test, not 100% sure)

58dbc68: Merged in raw_fixes (pull request #698)
Raw recording fixes (both RAW and MLV)

12693e8: raw_rec: fix beep removed by mistake

80aace7: Merged unified into raw_fixes

865b72b: Dummy merge (undo 9a34564 ... e4e4ffc commited by mistake)

e78c569: menu: allow multiline help choices on both help fields

617b6f6: Restore after format: support for Toshiba FlashAir cards (restore wifi functionality after format)

3a5b587: raw_rec: removed old sound recording code

e4e4ffc: raw_rec: block the zoom key while recording (prevents crash)

0605a6e: raw_rec: lock buttons after recording stops, until the video file is fully saved

3516ba3: raw2dng: fix some error checks

8933723: Restore after format: support for Toshiba FlashAir cards (restore wifi functionality after format)

9a34564: Makefile: umount card after running make install from a module directory

d79b348: menu: allow multiline help choices on both help fields

20fad0f: mlv_rec: block the zoom key while recording (not tested)

d77f66a: mlv_rec: disabled embedded logging (one of the causes for corrupted frames? cc @g3gg0 )

6cf7201: raw_rec: lock buttons after recording stops, until the video file is fully saved

ae11252: raw_rec: block the zoom key while recording (prevents crash)

56a4d2a: raw2dng: fix some error checks

Build Log

7d67bc6: Merged menu_timeout_fix into unified

8aa70d0: Close branch menu_timeout_fix

04fc501: Merged in fonts (pull request #694)
Font updates

f2a1ef2: Close branch fonts

0c507d3: Fonts: fine-tuned warning symbol (larger) and DR/ETTR symbols in tiny fonts

71d9278: menu timeout fix: use aggressive redraws after timeout

dbdb543: menu.c: less aggressive redraw flood

30b24cc: menu timeout fix: make sure menu is always closed by half-shutter

46d1b36: menu.c: refactored menu_task

c41bd87: menu: small cleanups

0384023: Fonts: fix some rough edges

6d8d7be: bmp.h: fix typos

56139c7: Bulb timer: display a warning icon in BULB mode, if turned off (that is, when other tools may use it, even if it's off)

6f3f597: Fonts: new symbol (warning sign)

e4cfe27: bmp.h: defined macros for all special symbols from the font files

37c178b: Fonts: all fonts now contain the same special characters (fixes issues like missing ETTR/DR icons at certain font sizes)

Build Log

2c2a11e: Merged in tecgen/magic-lantern/find_available_rst2html_command_2nd_try (pull request #691)
find available rst2html command and use it (2nd try)

df6e3fa: seach a list of possible rst2html commands and use the first one that can be found

632f504: Created new branch find_available_rst2html_command_2nd_try

7b918b8: Merged in menu_timeout_fix (pull request #688)
EOSM: restart the canon dialog for ML menu if it times out

e5f8f11: Close branch menu_timeout_fix

3083808: menu: minor tweak for EOS M

59d6131: menu: removed EOS M specific hacks (does it still work?)

902502f: Enabled EOSM menu timeout fix for 6D and 700D as well, in internals.h

fd79c14: EOS M: fix some IMGPLAY constants (should fix )

7d06154: EOSM: restart the canon dialog for ML menu if it times out

Build Log

5adb217: Makefile: autodetect card location on Linux systems (e.g. Ubuntu Willy mounts in /media/user/EOS_DIGITALn )

Build Log

dd16e5d: Merged in printf (pull request #686)
Remove duplicate console_printf/printf implementations (just use printf everywhere)

a36cdb7: Close branch printf

4f5d5fb: Removed duplicate console_printf/printf implementations (replaced by printf everywhere); larger buffer for printf

Build Log

c8c0c20: Intervalometer: do not try to resume LiveView before each shot (should fix issue #2265 and also )

cdbe8ba: Modules README: list help pages in the build log

Build Log

3bd5148: Merged in Gr3g01/magic-lantern-mlv-dump (pull request #676)
lv_rec: Fullres silent pics (mlv_dump) need more MAX_COLD_PIXELS

fd00819: lv_rec: Fullres silent pics (mlv_dump) need more MAX_COLD_PIXELS

8db1440: Merged in mlv_prop_data (pull request #684)
mlv_rec: eliminate PROPAD_GetPropertyData, get camera model and serial info from core (should fix #2460)

41c241a: Close branch mlv_prop_data

dfef30f: remove PROPAD_GetPropertyData stubs

3a9c6de: mlv_rec: eliminate PROPAD_GetPropertyData, get camera model and serial info from core (should fix #2460)

Build Log

b69ce4e: Merged in Licaon_Kter/magic-lantern-beta-info-button/add-press-button-info-beta (pull request #682)
Add "press button for settings" in beta info screen

2a1f972: Fixes:

b7ac767: Created new branch add-press-button-info-beta

Build Log

ca5315a: EOSM: fix issue #2447 (exposure compensation limits)

2e5367a: mlv_rec: fix cropPosY,

Build Log

f87b759: GCC version by default 4.8.3 (changeset 57305de64b31)

524b2bc: buld_nd: add jostick center as trigger

c27e0b9: bulb_nd: fix compile warning

fd82e5e: Merged in andreasb242/magic-lantern (pull request #669)
Show warning if the image quality is other than fine (RAW, JPEG or JPEG and RAM)

dc0dc21: Show warning if the image quality is other than fine (RAW, JPEG or JPEG and RAM)

c347c33: Merged in dmilligan/magic-lantern/bulb_nd (pull request #583)
bulb_nd: long exposure / ND filter utilities

448c9de: bulb_nd: some cleanup

f82850a: bulb_nd: function to measure actual ND filter strength

9595478: bulb_nd: separate menu from bulb timer

3dabfe3: bulb_nd: remember the last valid shutter speed (for Av mode, which resets to 0 after metering finishes)

c6bbf02: bulb_nd: fix incorrect 1/2 ev calculation

5715bdd: bulb_nd: long exposure / ND filter utilities

17126eb: Merged in PhotoCat/magic-lantern (pull request #647)
Added a new spotmeter readout mode: RGB in percentage

68da5ac: introduced spotmeter_formula modes CONSTANTS

0a36f35: 1 more comment removed :)

43d6acd: Removed zebra.c comments

3c59a6b: after merging

3e1b925: Added a spotmeter readout mode of RGB in percentage

46eb944: Merged in gcc-49 (pull request #671)
Updated to GCC 4.9.3

1b8b6dc: Close branch gcc-49

4625498: Merged in lua (pull request #642)
Lua Scripting

2bdf8a7: Close branch lua

5e557e6: Fix null_pointer_check for GCC 4.9

57305de: Use GCC 4.9 by default (not yet working)

806586f: Lua scripting: ignore hidden files when loading scripts

8ca8888: Lua scripting: don't show the console on an error from config.lua

69a4e25: Lua scripting: fix config.lua automatic filename detection

8cbb357: Merged unified into lua

1a208b2: Lua scripting: added camera.reboot()

ab7c895: Properties: minor cleanup to power management properties

1c4426c: Lua scripting: update LDOC config

e7a7917: Lua scripting: added a simple Pong game

b6ee499: keys.lua: replaced getkeys with getkey (return only one key at a time; much easier to process)

5490ee3: keys.lua: do not block half-shutter, full-shutter and unknown (non-button) events

2279fb4: Lua scripting: always open console on script errors

9f8dab3: Lua scripting: moved some scripts to Scripts menu

624e40e: Lua scripting: extended "beep" to allow optional frequency and duration

db819b3: Lua scripting: added a "Hello World" script

0ca4515: Lua scripting: simplified some menu definitions

7e9e8d7: Lua scripting: items with only a submenu should not appear as disabled by default

ba489cb: Lua scripting: menu items with a select function, but without submenu or value, will be display as ICON_TYPE.ACTION by default

18982de: Lua scripting: menu items with a submenu, or those with ICON_TYPE.ACTION, will not display a value by default

5b822de: Lua scripting: fine-tuned script loading messages

b34776d: Lua scripting: larger buffer for file reading (faster script loading)

7d094e9: Lua scripting: copy the scripts when running "make install" from modules/lua

d30c7f0: Lua scripting: added and menu.close

38a3e68: Declared gui_open_menu and moved gui_stop_menu to menu.h

51d33fc: allow string literals for menu.update,, menu.rinfo, menu.warning

48f13db: left out from previous commit: put the menu check at the beginning of the loop

04fc768: for scripts that hijack the ML menu, exit if the ML menu closes

82d02cb: rename keyhndlr to keys

f02c5b9: editor: don't delete last line

20002c0: fix const correctness of is_dir and is_file (fixes some compiler warnings in the lua module)

1021d4a: Lua scripting: strip all exported symbols from

7e37cf0: Lua scripting: by default, script menus should go under Scripts (instead of LUA)

68da4b2: Moved non-Lua scripts to scripts/legacy

4286f90: Lua scripting: README tweaks

258069a: Merge

1e5fc6b: update makefiles (add scripts/lib directory)

620bb67: update general documentation

f84c6d5: some more properties

6f64951: library scripts
fix require (strstr was broken)
change the lua search path to ML/SCRIPTS/LIB
move some common code to library scripts and add them to the documentation

636fa3e: config improvements

2b30f8a: script for copying settings when switching to M and reusable example/class for doing config files

5568d8d: fix issue when trying to load files that don't exist

4305e80: fix setting menu value for 'choices'

d965861: calculator improvements

278f9df: calculator script

ab0856b: prop handlers

2ce6648: fix typos

8ab3bef: improve camera API with more unit options for shutter, aperture, iso, ec

ba3bbf9: fix lua floating point parsing (default strpbrk and strtof were broken)

0d88e33: lua 5.3 supports integer division with '//'

1b15533: calling tointeger on a float doesn't work like it's supposed to, so use tonumber and cast it

c8ec115: fix floating point printing using a custom ftoa function (rather than builtin snprintf which doesn't support floats)

a0f8551: more scrolling fixes for filedialog

dbd3ecc: bmp file loading

ee351b9: constants for screen width and height

e702bda: editor scrollbars

dc20b93: fix some scrolling issues in the filedialog

f2db036: replace display.draw_start() and display.draw_end() with display.draw(func) to make double buffering a little "safer" by enforcing a protected call to make sure the lock is always released, then re-throw the error if there was one

7683b46: ported sokoban to lua

0270779: editor fonts

92f0646: make a copy of long-lived strings that we give to ML backends, because lua may move strings around on us, and fix some const correctness issues

a1fbf45: buttons for the filedialogs in the editor, so the UI is more intuitive

790c366: editor debugging - highlight the location of errors; minor fixes

8ed0674: editor debugging: breakpoints, stacktrace, local vars display

08fbfe9: preliminary in camera debugging!!! (you can run a script from the editor and single step through it, TODO: setup breakpoints)

27e0d32: editor - implemented save as and ability to run (eventually debug) other scripts

3cb7232: fix some issues with directory listing, add 'parent' field to directory

6e45372: double buffered drawing

ebbeade: editor select/cut/copy/paste

60ac509: editor - improve key handling; submenus

ef5129a: display function returns characters that wouldn't fit, editor text wrapping

44d0fd7: editor cleanups

8cfbd62: editor filedialog cleanup

747d546: editor save (TODO: save as)

949915c: editor insert/delete/return

d69518f: basic text editing working (no save function yet)

6c8a273: fix gray color constants and add a gray(percent) function

9c47101: the beginnings of a text editor

64dd6ed: fix font lookups

3b8670d: fix the directory stuff

128c8cf: function to block the ML menu

ab42b5c: fix the directory constructor

8243015: fix issue with font index metamethod

a51518d: give the semaphore while waiting for a key

2b58bf0: make the lvinfo update semaphore timeout a little longer

ed84b44: fix example script

ddf2f09: also look for scripts in lowercase (for exfat cards)

f370dce: notify box

746b298: lvinfo API

34f4125: API documentation
ldoc specifies 'int' and 'bool' as the types rather than 'integer' and 'boolean'
enable markdown
include examples

84d6145: functions for enumerating directories

90b08db: API documentation
more consistent propery help text

9a0424a: typo

8902e75: API documentation
missing parameter for font:width()

3a5d7b1: font as a type

56cc774: sample scripts

7216348: task library
so that event handlers and such can startup new tasks and not block

b19dedb: allow different scripts to run at the same time

aa42055: LED functions

b05645d: make battery stuff weak so will load on cameras w/o it

b9c87b8: get/set kelvin wb

babc307: battery functions (TODO: add powersave type stuff?)

04239e7: intervalometer functions

d0ec5d3: pass the interval count as the argument to event.intervalometer()

0fa4749: load modules 'on demand'
saves memory from always having everything loaded, only modules that a particular script uses are loaded

e563efc: accept numbers (floats) as arguments for integer params and vice versa

b466626: fix some error messages, make sure to give semaphores back on error

56fdca7: missing font constant

ba412f0: semaphores

c6d85fa: API documentation
documentation for 'date'

e052537: API documentation
typo and brevity

aee2c93: get/set pixel color with the same function

2ec51c6: API documentation
fix function names

4d4ff8f: get_pixel, set_pixel

6db312a: menu.visible field

f80dba0: functions for getting card info

621b599: dryos API (date, time, and other misc stuff)

d33c848: API documentation
small fixes

3dfa9c5: typo

23bda0a: unreference menu objects when they are removed

aad5bde: rinfo callback missing from

db40e8e: couple more places menu fields should be booleans

e2ddbf3: allow scripts to specify whether or not they would like to run in a separate task

b81c4c8: only set menu warning/info/rinfo/value, if the value returned from lua callback is a string

81b6e7c: fix some menu field types (some things should be boolean instead of integer)

f5e0eca: API documentation
update menu example

5d2fea8: fix compilation

e923f69: get/set value of ML menu items

5516d78: pass a reference to the menu userdata itself as a parameter to the menu callback functions (to make them like true 'instance' functions)

aa569b9: Merge

2a70052: fix compilation

85b43ea: menu callback for update rinfo

322d6c9: fix typo

d2e3762: delete the old lua scripts, add menu test script

d1fe942: fix events

a11c4cb: event API documentation tweaks

1fbfece: move key constants to lua_constants.c and add documentation

1d16cd5: delete superflous code

112718e: move globals to their own file so we can document 'event'

d54e9ed: API documentation
copy/paste fixes

af67dfc: typos

3680453: update readme and create config file for ldoc

40bab5a: menu usage example

3250e00: remove the old API doc

0470b0c: documentation for constants

bb52401: change some comments so that ldoc doesn't pick them up

074125d: move documentation into comments, use luadoc format (convert to html with ldoc)

e19b90a: move each lua API library to a separate file

05d0bc2: menu:remove()

4a17156: use the message handler from the lua standalone interpreter so we get a nice stacktrace; some more error handling cleanups

adea932: use luaL_error for reporting errors

9695f95: use builtin luaL_argerror for argument errors

656e452: get/set any menu object's fields

c7dd119: API documentation
updates to reflect recent changes to menu API

173fdf9: submenus (any depth now supported)

ae22268: make menu library more object-oriented
create menus with{}
wrap the c struct as a userdata value in lua
use lua reference mechanism for callbacks
eleminate the 'simple script' type
TODO: submenus

ffcf212: added missing load for display library

61d8ef2: key library

3b848fe: menu.value metamethod fixes

6d33538: get/set menu.value via metamethods

4263cca: API documentation

71a3db9: API documentation

554e640: couple more camera lib functions

222ae1b: shoot_task event

e07636a: API documentation
display library

a85ba8d: constants for display library

fc9c4c3: display library

6137dd2: fixup events
keypress return values are backwards
disable vsync events for now, until we can be more efficient

9cb3d2b: fix af_mode

e744483: API documentation
fix console library table

e73c2fc: API documentation
fix lens library table

6c1452c: API documentation
switch from fields to tables, looks better

e39412c: some preliminary API documentation

ab5d72d: script events (module cbrs)

43cfc93: some property params should be boolean

f2fae14: some constants for lua

da3bd97: more camera properties

76b8272: movie functions

b17124b: lens functions

ba06ae2: lv functions

112ce53: shutter, iso, aperture, ec

66c5692: preliminary API for shutter, iso, aperture

e0a09f2: fix some crashes (wrong arg to lua_setfield), value for menu with choices => the actual string rather than the index

771713e: few fixes to choices

e9c2ceb: menu choices

480df53: only set menu select and update functions if the script uses them, otherwise, just update values in the lua state right before running the script

509cedf: cleanup function names, use naming convention from old lua api

7363a25: console functions

74c9111: fix wrong arg to lua_pcall causing stack overflow

beebe81: more and improved menu functionality

1530b00: pass the delta parameter to script menu select function

ded4533: more script menu setup options

ccdee03: script loading and some basic functions

27222b6: Merge

4955350: lua as a module (hello world working!)
TODO: implement an API, create menu/gui for running scripts

Build Log

c897f3f: Merged cr2hdr into unified

19dc2aa: Bulb timer: fine-tuned menu behavior when disabled, but in bulb mode (when bulb timer value may be used by other long exposure tools)

5637df1: Fix scrolling in Focus menu

9b9aeff: Merged in histogram-tweaks (pull request #667)
Histogram tweaks

208ef7a: Close branch histogram-tweaks

d1d618e: Merged in Gr3g01/ml-500d-2015 (pull request #668)

0e89a05: fix warning DEP_CFN_AF_BACK_BUTTON

f29b099: Merged in daniel_fort/magic-lantern/EOSM_fps-engio_DPJPandone (pull request #670)
EOSM fps-engio timer fixes

00ad18d: Fixed no newline at end of platform/EOSM.202/features.h

1df859f: Fix conflicts for pull request.

8e17bc4: Changed to a1ex's suggestions.

18282fe: Re-enable Shutter fine-tuning on EOS-M
Shutter fine-tuning DOES work on EOSM. Changes aren't applied until you press record. This is Normal.
It is useful for filming monitors/televisions/streetlights etc. You can offset the framerate to reduce flicker

97677c4: fps_timer_a_min and fps_timer_b_min fixed for EOSM
Manually copied from pull request #649

ab1e90c: cr2hdr: moved safeguard from median_int_wirth to kth_smallest_int

fd4f1b3: cr2hdr: safeguard to prevent crashes similar to issue #2408 (median_int_wirth)

f1fd8ca: cr2hdr: fix issue #2408 (crash)

7cfe3eb: cr2hdr: fix false stripe fix warnings (only scan active area)

d824c6e: Histogram: menu changes; luma raw histogram is no longer allowed

152d9de: Refactored hist_build; do not compute YUV histogram if the RAW-based one is enabled

b57d8be: Raw histogram: fine-tuned noise floor display, as suggested by Audionut

8ac7eb9: Raw histogram: nicer underexposure highlighting (also fixes conflict with fast zebras)

4bc7e25: Raw histogram: ignore bad pixels

2d62b6b: Histogram: fix border flickering

3bab020: Histogram: dropped unused hist_highlight

1834402: Histogram: fine-tuned vertical position on 3:2 cameras

3a75537: cr2hdr: use fgets instead of fscanf in get_camera_model

a5de7ee: cr2hdr: fix handling unknown cameras

dd7f91d: chdk-dng: omit CalibrationIlluminant2 (should fix issue #2343)

8b9190b: cr2hdr: identify camera model from string (should fix issue #2403 - camera identification from MLV files)

Build Log

c295d34: Merged in cleaner-lvapp-hack (pull request #665)
650D, 700D, EOS-M: cleaner method for hiding Canon bottom bar

d49462b: Close branch cleaner-lvapp-hack

c87b210: Merged in nikfreak/magic-lantern/650D_700D_magic_Zoom_Flicker_Fix (pull request #666)

260ce5e: state objects: unify flickering reduction for all Digic_V(+) powered cams

a7eae0b: oops (accidentially removed 'endif) while cleaning up 650D / 700D

874dfa6: try to fix Magic zoomfor 650D / 700D

50a7fe4: Created new branch 650D_700D_magic_Zoom_Flicker_Fix

8eecbc6: DOF info: fix issue #2399

ca1fc32: 650D,700D,EOSM: enabled CONFIG_LVAPP_HACK_DEBUGMSG (Canon bottom bar hiding method similar to 5D3). Does it work?
Also dropped CONFIG_LVAPP_HACK_FBUFF (too much interference with Canon GUI).

dc54f5c: 650D,700D: enabled UNAVI_FEEDBACK_TIMER hiding (should avoid unsightly redraw after using Canon's Q menu in LiveView)



Build Log

8146093: Merged in dpjpandone/eos-m-dpjpandone (pull request #651)
Re-enable Shutter fine-tuning on EOS-M

940534a: Merged in dpjpandone/shutter-finetuning-does-work-on-eosm-cha-1440297620122 (pull request #2)
Shutter fine-tuning DOES work on EOSM. Changes aren't applied until you press record. This is Normal.

7634962: Close branch dpjpandone/shutter-finetuning-does-work-on-eosm-cha-1440297620122

abb956c: Shutter fine-tuning DOES work on EOSM. Changes aren't applied until you press record. This is Normal.

3555770: Fix subtle bug introduced in 6d00d94, which affected CF card workaround on 5D3

Build Log

065d9aa: Fix compiling without FEATURE_ZEBRA_FAST

110efb0: 700D,650D: fix crash when changing picture style settings for Auto picture style (see issue #2381)

2384165: Fix PROP_LV_DISPSIZE assert on some newer cameras (e.g. 700D) - see issue #2381

a0ead76: Image effects: removed the "noise reduction" "feature"

7f8c648: deflick: fix typo in help text (ufraw rename command)

7de89bc: Merged in daniel_fort/magic-lantern/EOSM_cleanup (pull request #657)
EOSM code cleanup

f833396: Temporarily assigning StopASIFDMAADC address to SoundDevShutDownIn to resolve an issue with mlv_snd shutdown. Need to revisit after the 70D merge is complete.

5a13dcb: Reverted changes to mlv_snd.c -- wait until after 70D merge to revisit.

f5db954: Removed extra lines at end of file.

4f33c98: EOSM is mirrorless, no need to check for mirror lock up. Change suggested by Matthias Bretz.

71c5f48: Cleaned up stubs.S, updated comments in internals.h and added StopASIFDMAADC to mlv_snd.c

2eb1cd3: Merged in dpjpandone/eos-m-dpjpandone/dpjpandone/fixes-magic-zoom-flicker-on-eosm-1439856235754 (pull request #650)
Dpjpandone/fixes magic zoom flicker on eosm 1439856235754

ce30fe0: Merged in dpjpandone/remove-second-call-to-lv_vsync_signal-1440003867712 (pull request #1)
remove second call to lv_vsync_signal

2b0f790: Close branch dpjpandone/remove-second-call-to-lv_vsync_signal-1440003867712

c6a795c: remove second call to lv_vsync_signal

5a9c265: fixes magic zoom flicker on EOS-M

b6c11ac: Merged in andreasb242/magic-lantern (pull request #662)
Allow warning on auto focus / manual focus

f8f6d65: Allow warning on auto focus / manual focus

40a1a94: Merged in daniel_fort/magic-lantern/cr2hdr_ports (pull request #660)
cr2hdr build rules

7e50492: Updated comments on how to package Windows .exe with exiftool perl script.

9adb082: Ported cr2hdr to all known platforms - Mac, Linux, Cygwin/MinGW-64 and msys2/MinGW-64 (not working on msys/MinGW)

86363a5: Merged in Gr3g01/ml-500d-2015 (pull request #663)
mlv_rec.c 500D not support exFAT filesystem

3a16313: mlv_rec.c 500D not support exFAT filesystem

e5cc80d: Fullres silent pics: max exposure for 500D/550D/600D is 15 seconds :)

Build Log

df63de5: Merged in Marsu42/ml-pull/6d-button-info (pull request #648)
6d button codes (just fyi comments)

3b70cc2: 6d button codes (just fyi comments)

0603ae4: Created new branch 6d-button-info

e663af4: Merged in daniel_fort/magic-lantern/Windows-port (pull request #656)
Modified so that it will work in a MinGW Windows environment.

4ee33a8: Running shell script works fine with all build environments.

951df34: Code cleanup on and made useful as a stand alone script.

3509166: Modified so that it will work in a MinGW Windows environment.

1779727: Merged cr2hdr-20bit into unified

adb93ed: Close branch cr2hdr-20bit

5a5a5fd: 7D: disabled FEATURE_VIGNETTING_CORRECTION (doesn't work, issue #2369)

0c08758: cr2hdr: Makefile commands to create a zip package for Windows

d0a6798: cr2hdr: 70D support from nikfreak

654de9c: cr2hdr: removed duplicate dcraw table from kelvin.c

0bfe9fb: cr2hdr: fix color matrix for unknown camera models

cc4340b: cr2hdr: fix parsing of --wb options

bf7a9a5: cr2hdr: fix exif info when input file gets overwritten by output file

e329aeb: cr2hdr: minor fix for --embed-original (do not keep exiftool backup files)

d69b784: cr2hdr: fix stripe correction for very large ISO differences

631fce1: cr2hdr: fix identifying some more very overexposed files

dfbc527: cr2hdr: fix identifying some very overexposed files

1145e50: cr2hdr: more aggressive cold pixel detection

97c40e9: cr2hdr: also use median for final black level correction

d397c38: cr2hdr: black level correction should no longer be affected by hot pixels in OB areas

c01318d: cr2hdr makefile: use global var for GCC

0eabcb0: cr2hdr exposure matching: when all else fails, brute force prevails (replaced highlight median with brute force search)

bffa7b0: cr2hdr exposure matching: minor tweaks

8333d82: cr2hdr: fine-tuned graph for --iso-curve

9785c4e: Undo 9defeea (regressions, biased estimations)

4cd89c3: cr2hdr: fixed another border condition

8dcaff8: cr2hdr: fixed issue 2091 (border condition)

1c4832e: cr2hdr: fixed some overflows, (minor regression introduced)

ed39983: cr2hdr: fix typo

a2b9ee2: cr2hdr: fix wrong bright/dark identification in extremely overexposed images

9defeea: cr2hdr: simplified algorithm for exposure matching (50 and 90th percentiles, after discarding very bright and very dark pixels)

0fbfdfe: cr2hdr: with --iso-curve, plot a direct comparison between the two histograms

d6c8801: cr2hdr: use log plot for --iso-curve

f129768: Merged unified into cr2hdr-20bit

30a5132: cr2hdr: print a message when overwriting the output file

80595fa: cr2hdr: fix warnings from gcc 4.8

58fbaf2: cr2hdr: always verify the original after embedding (to make sure it's safe to delete)

08ff57c: cr2hdr: option to keep the original after embedding (--embed-original-copy)

d4b63f6: cr2hdr: when embedding original raw into the DNG, also backup and restore app-specific metadata (XMP or whatever)

26b7a08: cr2hdr: experimental option to embed the original raw into the DNG

7fad967: cr2hdr: added option to skip processing if the output file already exist. Would it be better to make this default, and have an --overwrite switch?

f958488: cr2hdr: do not fail on non-critical errors (useful when processing many files)

143b65e: cr2hdr: fix valgrind warnings

73901d4: cr2hdr: fix warning in kelvin code from dcraw (credits g3gg0, )

b8a4ea6: cr2hdr: horizontal stripe fix should analyze only the active area; fine-tuned the thresholds

72c6efb: cr2hdr: discard border pixels when matching exposure (fixes a regression)

8b19cff: cr2hdr: added another WB algorithm (--wb=graymed); made the graymax WB the default; increased the search range a bit

0adbb93: cr2hdr: compute stripe fix only from dark pixels

ee96a6c: cr2hdr: replaced exposure matching with a percentile-based algorithm biased towards highlights

405cf31: [*] raw_set_pixel_20to16_rand: round was substituted by "int + 0.5" (tho times
[*] black_subtract: elimination of half million of empty useless iterations in
a couple of loops
[*] black_substract: does not interpolate between different colors while
making blackframe anymore
[*] black_substract: avg_black was shown rounded despite the fact that it was
truncated during building of the blackframe - corrected

b934e56: Merged in cr2hdr-20bit-cross-fix (pull request #469)
cr2hdr: use global makefile variable for cross compiler path

72c7861: cr2hdr: fix daylight centering for --wb=graymax

d53afeb: cr2hdr: ported Kelvin<->RGB routines from ufraw and pimped the debug WB display with kelvin values

34beda9: cr2hdr: use global makefile variable for cross compiler path

03c04d1: cr2hdr: experimental auto white balance algorithm (try with --wb=graymax)

1cc36ce: cr2hdr: when detecting bright/dark lines, try to estimate the black offset (fixes very dark video files)

d15f415: cr2hdr: use only green pixels for bright/dark detection (fixes infrared images)

4c6fa8b: cr2hdr: fix overflows in RGGB/GBRG/bright/dark detection

1fa0af9: cr2hdr: exposed debug options for RGGB/GBRG and bright/dark autodetection on the command line; nicer plots for RGGB/GBRG

4cee4e0: cr2hdr: fine-tuned threshold for bright/dark detection

1606c75: cr2hdr: debug info for bright/dark detection

a59dde5: cr2hdr: robust identification of rggb/gbrg configuration (histogram matching)

972543b: cr2hdr: made the exif WB tweak optional, off by default (was reported not to work, and could interfere with --same-levels)

d8061e8: Another script for processing Dual ISO video on Linux (, this time with tonemapping (enfuse, ufraw and ffmpeg)

f843a2e: cr2hdr: fine-tuned bright/dark field identification (should no longer look at specular highlights)

ed7572a: forgot to add --same-levels

c37c94c: cr2hdr: minor fix for --same-levels

36511cb: Quick script for processing Dual ISO video on Linux (, using ufraw and ffmpeg

c0c8fec: cr2hdr: experimental option to keep the same exposure in a batch of files, by matching white levels
Can be useful for video, panoramas, timelapse or whenever the exposures should be matched.
All the matched files should be taken at the same exposure settings
(manual exposure, since this is not a deflicker algorithm),
and they all must be passed in the same command line.
Alternative solution (if you can't pass everything in one command line):
exiftool "-WhiteLevel exiftool "-WhiteLevel+=50000" -overwrite_original *.DNG
(you may want to reduce that 50000 if you get pink highlights)
Be careful with ACR sliders that introduce flicker (if in doubt, try ufraw).

ddb8b1b: cr2hdr: updated loops to C99 style (should be non-functional)

009c840: cr2hdr: macros for conversion between linear and log spaces with range checking

5454286: cr2hdr: output white level back to the old levels (output a bit more consistent with exposure settings, and also solves some exposure matching problems)

5a67d91: cr2hdr: fix valgrind warning related to AMaZE demosaicing (reading past the end of the lines?)

7338961: cr2hdr: enabled SSE2 instructions for AMaZE

6fc25fc: cr2hdr: updated to latest AMaZE from RawTherapee - 4b77ef6013ae (part 2 - patched the file)

72beb90: cr2hdr: updated to latest AMaZE from RawTherapee - 4b77ef6013ae (part 1 - copied original file)

562e080: cr2hdr: fix valgrind warning in exiftool-bridge.c, read_white_balance

4101439: cr2hdr: speed optimizations for hot pixel detection

f80625a: cr2hdr: fine-tuned hot pixel detection

1b66adc: cr2hdr: small downsampling when detecting white level (minor speedup)

643db5d: cr2hdr: added tic/toc for timing various routines

7618a6d: cr2hdr: moved dithering (anti-posterization noise) routines to separate file and optimized them a bit

2bfa1ef: cr2hdr: re-added range checks to horizontal stripe fix

c4cc7c4: cr2hdr: simplified horizontal stripe correction (should be more robust, but watch out for regressions)

755196c: cr2hdr: undo 2766f98 (pushed by mistake, but feel free to try adjusting that parameter)

b3957c8: cr2hdr: fixed regression in bright/dark autodetection

2766f98: cr2hdr: fine-tuned for less aliasing in deep shadows

277cd5e: cr2hdr: fix regression regarding top OB pattern

e6bba36: cr2hdr: fix minor regression (complete gibberish in top bar could influence some raw converters)

5256a82: cr2hdr: fine-tuned for less noise

c5817f0: cr2hdr: use engineering rounding for AsShotNeutral (Pi is about 3)

8986011: cr2hdr: cleaned up unused code from amaze-edge and fixed border interpolation

57fd4e9: cr2hdr: during processing, use average black level from left OB bar only

655e157: cr2hdr: fine-tuned WB messages

342cf2c: cr2hdr: use a smaller OB area for final black adjustment

c83e1eb: cr2hdr: ignore more pixels from the top bar (overexposed pixels spilling into OB?)

d219330: cr2hdr: yet another white level detection algorithm

ea314d8: cr2hdr: discard very bright pixels when matching exposure (likely nonlinear)

37a5ee7: cr2hdr: minor tweak for ISO matching plot

c499a24: cr2hdr: fix match threshold for really overexposed images

7c6e9fe: cr2hdr: fine-tuned ISO search range

33b2166: cr2hdr: speed tweaks and progress messages for exposure matching

235c95b: cr2hdr: experimental exposure matching based on median and binary search (no more histogram matching)

47db33c: Merged unified into cr2hdr-20bit

a139ab3: cr2hdr: second attempt to reduce edge aliasing (fixes a regression)

cfe9c7e: cr2hdr: attempt to reduce aliasing on edge interpolation in half-res areas

fa11a3c: cr2hdr: experimental trick to avoid posterization (adding random noise before rounding)

b13fcd5: cr2hdr: skip very dark pixels when deciding between RGGB or GBRG

5f4e64c: cr2hdr: fixed accuracy issues when baking a soft-film curve and added some diagnostic code

acdcd4f: cr2hdr: fix blue multiplier for baked WB

844b70d: cr2hdr: fix crash caused by out-of-range values from AMaZE

41dae78: cr2hdr: refuse to process non-dual files identified at histogram matching stage

a09e1f6: cr2hdr: support for integer or real-valued command line parameters; added option for WB and any number of stops for the soft-film curve

b7dca53: cr2hdr: experimental option for baking a soft-film curve in the output DNG

b6c5710: cr2hdr: 20-bit engine now matches the older 16-bit one

5167619: cr2hdr: upgraded internal processing to 20 bits. Needs testing, some things might be broken.

ff0153b: cr2hdr: some refactoring (preparing to upgrade the bit depth used during postprocessing)

db7fc34: cr2hdr: debug code to dump bright image without interpolation

522eb2e: cr2hdr: increased safety margin for higher-iso white level

5f5eb1f: cr2hdr: experimental white level routine with two separate levels for each exposure

Build Log

7427c26: fio-ml: fix buffer overflow with large path names

4d25084: Merged in daniel_fort/magic-lantern/raw2dng_Win32 (pull request #655)
lv_rec: use fseeko/fseeko64 depending on platform as in mlv_dump.c.

fd1919e: lv_rec: use fseeko/fseeko64 depending on platform as in mlv_dump.c.

70cf6ba: Merged in daniel_fort/magic-lantern/MinGW x-compile (pull request #659)
Eliminate need for ~/mingw-w32/bin/i686-w64-mingw32-gcc

89a0253: Added rule to make dng2raw.exe - Needed to add stdint.h to define uint32_t and int32_t

7d62c90: Also remove dng2raw.exe if it exists.

d85bbba: There is another Makefile for raw2dng in raw_rec that needed attention.

e9c8eb9: First attempt at removing the home directory link ~/mingw-w32/bin/i686-w64-ming-gcc in dual_iso (cr2hdr) and lv_rec (raw2dng)

56142cc: Merged in daniel_fort/magic-lantern/Windows build_tools (pull request #658)
build_tools for Windows

22ae1d0: Added b option to fopen for Windows compatibility in xor_chk.c and modified Makefile to clean out xor_ch.exe in MSYS/MinGW environment.

febe84a: Merged in McGv/magic-lantern/McGv/guicommonc-edited-online-with-bitbucket--1440276480831 (pull request #653)
gui-common.c edited online with Bitbucket

074e389: gui-common.c edited online with Bitbucket
Trying to fix Issue #2323 650D #2346 700D
according to advise of a1ex on 2015-07-10

Build Log

8d48d16: mlv_rec: add vertical/horizontal averaging to mlv_dump

aab051f: mlv_rec: fix subtract frame handling (buffer size issues)

Build Log

bcd2d84: Merged in daniel_fort/eosm-sounddevshutdownin (pull request #646)
EOSM: Added SoundDevShutDownIn (fix issue #2255)

e2fed56: Added SoundDevShutDownIn

Build Log

3b95943: FEATURE_AUDIO_REMOTE_SHOT is working on the EOSM

d3c71c9: added EOSM to audio_release_running

Build Log

349e775: 550D: fix installer,

Build Log

700da8c: 500D: enabled FEATURE_REC_NOTIFY_BEEP (issue #1992)

638f511: REC/STBY notifications: fix issue #1992

772d186: Overlays in PLAY mode: code cleanup, refactoring

5b8743c: Overlays in PLAY mode: fix issue #2310

Build Log

c46b607: 650D/700D/M: disabled full-screen magic zoom (issue #2272)

f34ceba: Console: fix backspace handling (only erase the current line)

1e43c97: Console: fix printing %

7eb6a4a: Shutdown: earlier LED notification (noticeable on 500D in movie mode, where shutting down takes 1-2 seconds)

13c23a3: mlv_rec: fix default resolution, and crop factor info if resolution is not yet known

92b3a39: mlv_rec: use core calls to find max resolution (workaround, since module prop handlers don't trigger at startup)

a35881b: Added get_afframe_sensor_res (to get max sensor resolution from PROP_LV_AFFRAME)

59bcc39: mlv_rec: fix warning about max resolution; small cleanups

58406ce: Merged in rbrune/magic-lantern (pull request #627)
added fine control on top of x-resolution presets and display of effective crop factor

bf97bfc: added PROP_LV_AFFRAME handler to aquire sensor x resolution, minor bugfixes

ec60d66: merged heads

e9ce7dc: renamed get_edit_mode() to get_menu_edit_mode(), reduced resolution presets, small fixes and clean ups

dd29c42: Changed 'Resolution presets' back to 'Resolution'

05f4e00: added get_edit_mode() to menu system to allow for different resolution change behavior with opened or closed pickbox

7c968d9: added fine control on top of x-resolution presets and display of effective crop factor

Build Log

db3ebdf: Merged in installer (pull request #631)
New installers

171dbb5: Close branch installer

545e081: New FIR binaries

8051468: Installer: updated for 700D.114 and 6D.116

e784fb2: Merge

7ce6bcf: Consts cleanup

ab3d4d1: Dropped 700D.113

8ed7125: Merged in mk11174/700d114 (pull request #628)
Update 700D.113 to 700D.114 FW

f18d9a6: Merged hudson/magic-lantern into unified

0d7b9ba: 700D.114 Stubs task_max reg fix

a546ac1: Port ML to 700D FW 114

5903235: Copied 700D.113 to 700D.114 to prepare for 1.1.4 FW

8f6c53e: Dropped 6D.113

5ae6da9: Merged in Maqs/magic-lantern/6D.116 (pull request #634)
Support for 6D firmware version 1.1.6

2853926: gui.h: moved 3 half-shutter button codes to gui-common.c
(for 6D.116)

d0ac792: consts.h: removed some unused entries

c9d1e99: Merged unified into 6D.116

b10ff68: Merged in unified

c763251: StateObject addresses - should hopefully fix raw recording

f9183f0: Updated for 6D.116

35e995e: Updated for 6D.116

c614104: Updated for 6D.116

cb5083a: As bitrate-6d.o is disabled anyway, we can at least go for bitrate-5d3.o until it has been fixed.

819df53: Merged in unified

f24174f: firmware signature for 6D.116 (thanks JL!)

7dee3c7: get 6D.116 new-sound-system ready - CONFIG_BEEP still needs to be uncommented after merging in new-sound-system.

15280a8: installer support for 6D.116 (hopefully)


7ce03e4: Merged in unified

3e89fbc: comment out stub SetAudioVolumeIn intentionally, as it is only used in bitrate-6d.c (not ported, considered harmful).


c3079d0: merge from unified

57217e3: mlv_rev: add 6D.116 support

f74a55e: raw_rev: add 6D.116 support

cad1846: Initial 6D.116 port

3f79518: Installer: forgot to clear the screen before uninstallation

eeff6b1: Installer: fine-tuned 70D error message

f9a5cfa: Installer: also check for ML and ML/FONTS directories

fa308f4: Installer: better alignment for bootflags display

7c40420: Installer: allow arbitrary font sizes

93f1cf7: Installer for 5D3 1.1.3: fix loading the FIR on 1.3.3

8040ea8: Installer: reset the powersave timer while waiting for uninstallation

f115b5a: Installer: fix bogus message right before uninstallation

5e941f0: Installer: fix make clean

796d96f: Installer: enabled 7D in main installer makefile

340ace1: Installer: fine-tuned messages about ROM dumping, fixed alignment

1ab930b: Installer: updated 7D

a66107e: Merged unified into installer

90c901a: Installer: customized error message for 70D

f9f14a1: Reboot: removed 0x120 FIR offset (already handled by FIR_BASE); no more dependency on 'truncate' :)

b495c2d: Autoexec checksum: fix building as FIR

cfca087: Installer: use a 60-seconds timer for uninstallation

6930c46: Installer: backup ROM before doing anything, and tell the user to store these files in a safe place

57a9865: Merged portable-error-messages into installer

aedd32f: Installer: tweaked countdown message to reduce confusion for new users

a3efe9f: Installer: use a single FIR name for all cameras (ML-SETUP.FIR)

bea7a77: Installer: fix building all installers at once

780a3a3: Installer: support for 600D (not tested, copied from bc1b8f5)

39d8f08: Installer: cleaned up old platforms

0d5516c: Merged unified into installer

ec82427: Installer: display a nice error message if Canon firmware is not the one ML expects

Build Log

291439e: Merged in mlv_play (pull request #641)
mlv_play fix for "exact" playback mode

886afe3: Close branch mlv_play

b4ab604: Merged in dof-info (pull request #637)
DOF info fixes

b921b0e: Close branch dof-info

4eebba1: Merged in cleanup (pull request #636)
Small cleanups

d67aba3: Renamed "Handheld Night" to "Night Handheld",

01b5d25: Merged in Licaon_Kter/magic-lantern/EOS-M-modes-fix (pull request #639)
EOS-M Shoot mode "A+", "Night Handheld Portrait" and "HDR Backlight Control" not identified

c7b0c08: Update mode display with missing EOS M specific modes

4e7d1e6: Created new branch EOS-M-modes-fix


e7d752e: mlv_play: play very low FPS files (timelapses) at 24 fps

93bc825: mlv_play: code cleanup (mlv_play_start_fps_timer no longer fails)

dd47ed1: mlv_play: fix frame skipping during MLV playback, in "exact" mode

0e0d7df: Undo e6b785d (HALFSHUTTER_PRESSED is back)

7367424: menu: undo unwanted change

4724428: DOF info: when diffraction limit is reached, collapse DOF near and far to focus distance

75f087d: lens_format_dist: use 2 decimal places for meters

2b258c8: DOF info: minor menu tweaks

af611ad: DOF info: moved DOF Settings after Focus Settings in menu

49e8160: DOF info: some renames

a5294c8: DOF info: moved DOF Display into the submenu (because the other submenu entries also take effect with it off)

46573a4: DOF info: options for CoC and diffraction blur; dropped airy limit test (see )

ecabba9: DOF info: moved everything to focus.c

644231f: DOF info: fix conflict with top bar on 4:3 screens

e5eb0c2: DOF info: minor renames

03d3f18: gui.h: moved 3 half-shutter button codes to gui-common.c

f5bf3f5: gui.h: removed some unused entries

e6b785d: consts.h: removed HALFSHUTTER_PRESSED (replaced with get_halfshutter_pressed(), implemented in a portable way - to be tested)

b168a7b: consts.h: removed some unused entries

990db0d: 1100D: moved consts-600d.101.h into consts.h

a461e04: dryos.h: fix compilation after cleaning up state-object.h

34e3734: state-object.h: removed some unused definitions

b117dfc: state-object.h: moved unrelated definitions to dryos-notes.h

c7ca227: debug.c: removed unused screenshots_for_menu

8fd83ed: vram.h: removed unused dispcheck

49c5427: Modules: removed unused module unloading support; just call module deinit functions at shutdown

9abec12: Modules: removed unused MODULE_PARAMs

4d82951: Updated FORMAT_BTN definition

705d001: 1100D: FPS override incorrect,

Build Log

07d4df0: mlv_rec: fix mlv_dump producing faulty MLV when MLVI size wasn't correct (only buggy or forged files could trigger this behavior)

ec1767f: mlv_rec: fix mlv_dump crashing in average mode when frames were too big, various cleanups

Build Log

64643d4: lens_format_dist: fix formatting for certain distances (e.g. 1000mm)

15a65f2: DOF info: fix issue #2264

22dceab: DOF info: nicer handling of diffraction / airy limit

1150445: lens_info: code formatting

884fe57: DOF info: code formatting

848d753: Merged in garry23/depth-of-field-with-diffraction (pull request #632)
lens.c edited to account for diffraction in depth of field

e0b4c0b: lens.c edited to account for diffraction in depth of field

dd65a06: Don't display the pitch line on cameras that always report zero for the pitch (eg 60D)

47f9cae: Add support for displaying the pitch with electronic level

8fe6df6: Restore after format: 550D not working,

6cf6b88: EOS-M: FPS override is broken, disabling until somebody fixes it

e5c3e1e: Powersave in LV: fix issue #2262

b62aa8b: state objects: check for validity before installing hooks

Build Log

e08c6c0: 700D.113 Stubs.s task_max reg fix

Build Log

693ec08: Merged in Audionut/mlv (pull request #626)
mlv_rec: fix hidden options from help changes.

1a42a76: Fix hidden options from help changes.

Build Log

925d794: Memory backend: fix warning and possible buffer overflow

bf7cc28: Merged in Maqs/magic-lantern (pull request #624)
Move platform dependent addresses from src/gui-common.c to platform/../consts.h

6d00d94: Move platform dependent addresses from src/gui-common.c to platform/../consts.h

00503e4: Merged fullres-silent-pics into unified ( trigger new picture with a long half-shutter press, )

1c90687: DOF info: cleaned up error messages (fix issue 2253)

fca86fa: Fullres silent pics: continuously check if we are still QR before turning display off (not only after preview_time expires)

179fdd9: delayed_call: added CBR argument and refactored all calls

41267aa: Fullres silent pics: trigger a new picture by long shutter press; always obey the Image Review setting from Canon menu

Build Log

de7779d: Merged in Audionut/mlv/MLV-help (pull request #623)
Small MLV help fixes

0ba4b3c: More small MLV help fixes

dcfc9a7: Small MLV help fixes

Build Log

2794562: Merged in ime_cleanup (pull request #587)
IME cleanup

8b94516: Close branch ime_cleanup

9280955: Merge with unified

dfe9ec9: Replaced hard coded address in boot-hack.c by HIJACK_CACHE_HACK_GUITASK_6D_ADDR (6D specific).

f293eb4: ime_rot/ime_std: for IME_CHARSET_ANY, do not assign FILENAME settings

1ed6422: ime_rot: cleanup arc drawing code

69dea02: ime_base/ime_rot: add config function to customize wheel size. tell us the most pleasant size!

4c2c9a4: ime_rot/ime_std: allow NULL CBRs, don't write beyond buffer length

8daf70a: ime_base/ime_rot/ime_std: add hexadecimal input type

210389b: ime_rot/ime_std: some visual improvements, borders, caret blink

a4ee1bb: ime_rot/ime_std: only clear buffers up to given length (alex recommended this long time ago)

44d5471: ime_rot/ime_base: use trash button to delete characters

08dcb5b: ime_base: update function description regarding buffer size

7adf08b: ime_base: code/namespace cleanup

f88758b: ime_base/ime_rot/ime_std: IME cleanup. use stdint types, use char* instead of unsigned char * for strings, do not use caption directly but strdup it to prevent usage of stack-buffers

Build Log

7bc8b4d: mlv_rec: fix compilation

b434d32: Merged fullres-silent-pics into unified (finally!)

27b8227: ignore lowercase platform dirs

6aa15da: chdk-dng: fix compiling desktop tools

89fd5f5: Fix merge conflict in lens.c (undo 1a0167779348 - replaced by 5a6136d89494)

5a6136d: Cleaned up shutter/aperture handling in Tv/Av/P modes (should also fix DOF info disappearing while recording RAW)

6cd2de9: DOF display: only show if values are valid

6e3bdba: Fullres silent pics: do not monitor half-shutter outside M mode

26659ef: Fullres silent pics: use 10 frames when checking for autofocus

800959f: Revert 51da5cd and 99be96 (dark frames) - will revisit them later

5ce2235: Fullres silent pics: fix MLV grouping in burst + intervalometer

6454755: 650D: enabled RAW_PHOTO_EDMAC (confirmed by Rythmtech)

99be961: Fullres silent pics: preview dark and bias frames

51da5cd: Fullres silent pics: allow taking dark frames or bias frames outside LiveView

3082908: Fullres silent pics: stronger checking for autofocus

e6e9753: Memory backend: attempt to fix fullres playback on 70D (maybe others too)

c6bb8fa: Fullres silent pics: cleaned up some unused functions

a8d4121: Fullres silent pics: error handling (especially card full)

9e99764: save_dng: error handling (should return 0 if card is full)

e14f843: Fullres silent pics: fix black preview on 60D (and maybe others)

ce6bd7a: Menu: fix help message about AF button assignment (suggest MF use as well)

7939084: Fullres silent pics: attempt to detect and ignore AF button press

010775e: Renamed PROP_LV_EXPSIM to PROP_LV_FOCUS_STATUS and exposed it globally

7559933: Fullres silent pics: minor help tweak

666c09b: ETTR optional beeps: fine-tuned help text

872a93f: Typo

26287d6: ETTR: refactored optional beeps to reduce duplicate code

a44ceed: 60D: removed unused SDS_FRONT3_STATE

827fbe8: Fullres silent pics: more explicit fix for MLV module detection

8799ef8: Fullres silent pics: max exposure for 500D/550D/600D is 0.8 seconds :(

0b63113: is_camera: allow wildcard argument for firmware version, e.g. is_camera(5D3, "*") will accept all firmware versions

77fd114: Fullres silent pics: fine-tuned error handling if MLV module is not loaded

4396212: Fullres silent pics: fix MLV module detection

7f50532: mlv_play: use fio_malloc for RAW frames (as with MLV)

744119c: Memory backend: fio_malloc prefers SRM for large buffers (20M+)

757f06f: Full-res silent pics: create a new MLV after you stop the intervalometer (don't append to existing one)

d6ab157: Full-res silent pics: do not use intervalometer frame counter for MLV - it might go out of sync

a9ccc9e: Full-res silent pics: also consider file save time when deciding preview delay

8006e58: Declared is_play_or_qr_mode and added is_play_mode

653d6b8: Full-res silent pics: fine-tune powersave behavior (keep the display on, as set in Canon menu - Image Review); fixed shutter speed metadata

7c8aaeb: Memory backend: fixed handling of undefined preferred_max_alloc_size

49d8e92: Memory backend: fix size/space preference with large allocators (SRM and shoot_malloc)

8bc9974: Memory backend: detailed debug info about choosing an allocator

57b01a8: Memory backend: prefer SRM for allocations > 20 MB

e70a94d: Memory backend: fixed handling of preferred allocation size (was a typo)

f3631a6: Merged unified into fullres-silent-pics

fca1b12: mlv_play: allow full-res frame sizes

79f8b33: Fullres silent pics: check for M mode and valid shutter speed

c6414ff: Fullres silent pics: display write speed

bdef012: Fullres silent pics: cosmetic tweaks

cde1dc8: Fullres silent pics: start a new MLV after a burst sequence (so each sequence gets saved into a separate MLV)

0931a21: Fullres silent pics: only use multi-frame MLVs (let's keep things simple)

1a84aec: Fullres silent pics: tweaked file size and frame number display when saving MLVs

b55eb9b: Full-res silent pics: fix compile errors with some compilers

aebaf05: Full-res silent pics: add option to toggle between single-frame and multi-frame MLV files.
set MLV header's frame count to have a correctly written MLV (MLRawViewer needs that).
write MLVI header when creating a new chunk.

1041b43: Full-res silent pics: fix single-frame-mlv file naming

3403a95: mlv_rec: make mlv_dump a bit more defensive with save_dng return value (yet the save_dng does not catch all cases, so this is a todo)

70743c3: mlv_rec: make mlv_dump a bit more defensive with fwrite return values

e5309bd: ettr: allow user to disable beeps for situations where it is inappropriate

2e848df: Full-res silent pics: rewrite only tags that may change during a shoot

45776ea: Full-res silent pics: fix MLV chunk handling

4c5829f: mlv_rec: mlv_dump now allows altering the frame rate e.g. for direct playback of full res silent pic shots using mlrawviewer. also rewrite the frame count in MLVI header.

114ca14: fix mlv_dump compile error due to declaration differences

fee1d1d: applied the 7D full res parameters from vyskocil. ( thanks!

8ad793b: Full-res silent pics: wait for half-shutter unpress before changing GUI mode

f206845: Full-res silent pics: fix error handling after getting "Raw error"

df98081: Full-res silent pics: check picture quality

df1e944: Register PROP_ICU_AUTO_POWEROFF for modules

ba04723: Full-res silent pics: attempt to reset the powersave timer (please test)

100ac79: Full-res silent pics: always turn off the display while taking the picture

68da679: Full-res silent pictures: dropped the RAW format

3bb1254: Full-res silent pictures: speed-up MLV saving (no need to copy the raw buffer)

256a34f: Full-res silent pictures: check exposure parameters directly from PROP_ISO/PROP_SHUTTER, see

66af570: Silent pics: misc tweaks to MLV recording, should no longer save MLV data in malformed RAW files [merged with dmilligan's changed, not tested]

05de6bb: Fullres silent pics: when used with intervalometer, do some powersaving and show battery status (WIP)

c2c61da: Merged unified into fullres-silent-pics

3a9dfe1: Merged in dmilligan/magic-lantern/full-res-mlvi-fix (pull request #588)
Silent Pics MLV timelapse: write the MLVI header for every chunk

c8c95fb: silent pics: include fileNum in MLVI header

7af6710: silent pics: write the RAWI block in every chunk too (in case of data loss)

5b38422: silent pics: write the MLVI header for every chunk

1a01677: lens.c: disabled PROP_SHUTTER_ALSO in manual mode (should fix some quirks on EOS-M with silent pics)

5e844ad: EOS-M: enabled RAW_PHOTO_EDMAC (thanks jpaana)

c689f96: Fullres silent pics: check for auto ISO

b5791c5: Fullres silent pics: refactored error handling

9fc1d56: 500D, 1100D: fix raw photo height (we skipped one line, so we need to decrease the height)

81a2fd6: Merged unified into fullres-silent-pics

4ed81bd: Full-res silent pics: play a little nicer with regular pictures (e.g. if you fully press the shutter in LiveView)

fcbd9ac: Raw backend: added a sanity check for raw photo resolution

5925e18: Experiment: autodetect raw photo size from EDMAC and drop the old state object hooks (simpler code)

0e07f52: 550D/60D/600D: raw photo offsets should be the same (please check 600D again)

14f522f: 600D: updated raw photo offsets (credits: mk11174)

ad5d1bc: 1100D: updated raw photo edmac and offsets (credits: dmilligan)

f6de367: 6D: updated raw photo edmac and offsets (credits: 1%, nikfreak and Levas)

5f6cf03: silent.c: updated FIO checks

2269fd3: Merged unified into fullres-silent-pics

0db46cc: Merge

13efb20: silent pics: use FIO_SeekSkipFile, add some FIO checks, print some status for debugging

c2c6ccf: silent pics: make all the references to mlv_rec WEAK_FUNC so the module will still load without mlv_rec loaded

23b8c19: silent pics: burst mode pics save into a single mlv too

1db30ad: silent pics: use timing of FA_CreateTestImage for shutter speed for now (only approximate, but better than lens_info.raw_shutter)

dcc3c2f: silent pics: append frames into a single mlv file if the intervalometer is running

bff5218: silent pics: help for file format choices

cd99dd4: silent pics: use macros for file types

dbd0d15: silent pics: option to save silent pics using MLV file format

a2fde12: silent pics: option to save silent pics using raw video file format

4493f6e: 600D EDMAC fullres_silent_pic

b1838cf: Merged in ayshih/magic-lantern-50d/fullres-silent-pics-50d (pull request #553)
50D: updates for fullres silent pics

05d1e8c: 50D: updates for fullres silent pics

86c1cc3: 700D RAW_PHOTO_EDMAC

2573594: pic_view: ability to preview full-res silent pics (not very fast)

59a9926: Merged unified into fullres-silent-pics

aa1af1e: Full-res silent pictures: block all keys until the capture process is finished, to avoid errors

9b3f0c8: Full-res silent pictures: use a temporary copy to speed-up saving the DNG without damaging the overlays

eb352eb: 500D: switched RAW_PHOTO_EDMAC to the one used for CCDWriteEDmacCompleteCBR

03c268f: Full-res silent pictures: minor fixes

a2ce058: Full-res silent pictures: refuse to run at very low shutter speeds (problems beyond 15-second exposures)

ec6cb86: Full-res silent pictures: some error checking

33a03be: 550D: switched RAW_PHOTO_EDMAC to the one used for CCDWriteEDmacCompleteCBR

a992710: 60D: switched RAW_PHOTO_EDMAC to the one used for CCDWriteEDmacCompleteCBR

3d88b92: Silent pictures: full-resolution capture without shutter actuation! (proof of concept)

d8105a9: dryos.h: "call" returns a value, not void

a0a2afe: Deleted RAW_PHOTO_EDMAC for all cameras except 5D2/5D3 (will have to be found again) and added porting notes

e261cbb: 5D3: switched RAW_PHOTO_EDMAC to the one used for CCDWriteEDmacCompleteCBR

214c51e: 5D2: switched RAW_PHOTO_EDMAC to the one used for CCDWriteEDmacCompleteCBR

Build Log

5327699: ROM autobackup: copy data to RAM before saving (no longer interferes with LiveView)

Build Log

13349da: Merged in dmilligan/magic-lantern/take-a-pic-trigger-fix (pull request #618)
Fix CBR_INTERVALOMETER not getting called for first pic when using 'take a pic' trigger

bb09f85: intervalometer: fix CBR_INTERVALOMETER not getting called for first pic when using 'take a pic' trigger

Build Log

80cee7a: Looks like some people didn't like my bad joke

2daef0a: Typo

398501a: console: squeeze up to 80 columns on demand (only if long lines are actually printed)

1b32769: console: handle carriage returns

6150ef6: rbf_font: don't give up if text is too large to be squeezed

048c50a: rbf_font: nicer rendering of condensed fonts

af9cdce: rbf_font: fix returned length and monospace font handling for justified strings

e89155c: rbf_font: fix skipping of nonprintable characters

Build Log

35295ff: Cleanup when graphic changes position.

0022133: Un petit poisson d'avril

d190470: DOF display: undo wrong tweak

848d394: DOF display: small tweaks

35d16b6: Merged in monograph/dof_display/dof_display (pull request #615)

fca7f4b: Depth of field display above focus distance in the bottom bar.

3d5edf2: Created new branch dof_display

b229458: Merged in portable-error-messages (pull request #616)
Portable error messages if ML is loaded on a different camera or firmware version

7cdf440: Close branch portable-error-messages

9627bfe: Merged in autoexec-checksum (pull request #614)
Checksum feature when loading autoexec.bin

ba7c06e: Close branch autoexec-checksum

dd7b845: Tweaked error message when loading ML on another cam/fw

c8bfae7: Use only medium font for error messages (no more tiny fonts)

edf82c5: disp_direct: attempt to fix 1100D flickering, does it work?

af0b217: also handle 7D display init

f512b79: Tweaked error message when loading ML on another cam/fw (e.g. "Your camera doesn't look like a 60D 1.1.1.")

8faa176: Forgot to add build_tools/Makefile

61c6730: Forgot to add build_tools/Makefile

ff1b6b3: autoexec: display a nice error message if Canon firmware does not match what ML expects (rather than just freezing and trying to blink the LED). This routine is portable, should work on all cameras (well, except 7D...)

99324f4: Created directory build_tools/ and moved xor_chk there

73431f3: add checksum feature to ensure correctly loaded autoexec.bin. might help with preventing buggy boot rom on some models that lock up when SD/CF card is removed too quickly.

Build Log

a3cab71: Zoom on half-shutter: let's try a larger delay (the old one was causing too many missed shots)

945e33e: EngDrvOut: check for LCLK instead of DISPLAY_IS_ON (to be tested; look for crashes while taking photos, with things from Display menu enabled)

Build Log

ade831f: 5D3: fix merge conflict in bootflags.c

Build Log

2d6ddfc: mlv_rec: fix compile warning in mlv_dump

9c3f79f: mlv_rec: a bit more detailed error messages in mlv_dump

e109e17: mlv_rec: fix endless loop on error in mlv_dump

f0e381b: mlv_rec: add fix option to mlv_dump that allows to recover footage that only shows noise (unknown yet where it comes from)

Build Log

9f0fb0e: mlv_rec: make mlv_dump parse the first seen MLVI header instead of waiting for the one with ID 0. Allows to process .M00 files if there was no master .MLV

d4912cc: mlv_play: refuse to play corrupted files

Build Log

de733ca: Refactored with video_system_pal (removed local PROP_VIDEO_SYSTEM handlers)

e9c85de: Made get_video_mode_name and get_display_device_name public (from VRAM dumping code); refactored benchmark code with the new functions

99b3218: Exposed PROP_VIDEO_SYSTEM (video_system_pal) as global

6d37281: Allow macros like RECORDING or LV_PAUSED in propvalues.c

9b9462b: 6D: fix raw offsets in x1 zoom mode (not tested)

d6f2423: Declared is_pure_play_photo_mode()

da111a6: Declared is_play_or_qr_mode and added is_play_mode

99b51db: VRAM dumps: handle unknown zoom levels when naming the files

Build Log

a1c1a7d: mlv_rec: added options to mlv_dump which allow exporting single blocks to potentially recover files.
set fileNum to zero for MLV files and dont load "other" chunks if a chunk file is specified.

bc3d903: 6D: fine-tuned skip offsets in LiveView RAW (might squeeze a few more pixels, not tested)

Build Log

95c08bb: 5D3 113: fix installer (was not in the zip)

055f297: mlv_play: fix crash on empty/invalid MLVs (mlv_play_xref_sort)

745c972: Installer: added FIR for 5D3 1.1.3

d29e37e: Installer: updated 650D FIR

cc24391: Installer: do not open Canon menu twice (fixes ), other small tweaks. Binary FIRs not updated.

a85b8f2: ETTR: optional beeps ported from fullres-silent-pics

ce3f9a3: raw_rec: Set correct squeeze factor for 720p modes assuming 3x5 binning/skipping

585c745: Set correct squeeze factor for 720p modes assuming 3x5 binning/skipping

Build Log

e8cc6e5: mlv_rec: added DEBG chunks for embedding logs. useful to troubleshoot after a MLV had been written. one side effect: the second file will have log data from the first file after writers were stopped

df0bbfe: mlv_rec: major fixups for card spanning and preallocated file names

Build Log

36ff475: 7D: fixed vignetting correction (should have no effect in photo mode, not tested, )

1eaeee9: Shutter fine-tuning: also display raw units in menu

f713bdd: Shutter speed: more accurate display in movie mode,

1f0f903: Merged in dietsche/magic-lantern/greg-working (pull request #606)
Fix missing return value in zebra.c

4a54b55: Fix missing return value in zebra.c

Build Log

2179466: io_crypt: experimental XTEA version (thanks SKR!)

Build Log

703ee62: Check return values for get_yuv422_vram calls (should fail gracefully)

26a32b3: VRAM backend: check for uninitialized YUV buffer (fixes mlv_play/pic_view not working at startup, outside LV, if no regular images are on the card)

ad17431: file_man: close the viewer when quitting the menu via e.g. half-shutter

5db01f0: Merged in raw-disable-powersave (pull request #595)
Disable powersave during raw recording

ef32b40: Close branch raw-disable-powersave

5952770: Merged in qemu (pull request #517)
QEMU support

a26bd28: Merged in restore-after-format (pull request #575)
Restore after format: refactoring + fix for EOS-M

4617058: Close branch restore-after-format

bc88f6b: Restore after format: also restore FIR and LOG files from root directory, plus some cleanup

bb9bddb: 600D, 1100D: fix toggle button for restore after format,

4d1fd72: mlv_rec: disable powersave timer while recording (not tested, but confirmed with raw_rec)

a8a501d: Undo 25022dc (7D boot process experiment)

23b96f3: QEMU support: fix 5D2

6e54d47: 5D3 113: restore after format working (backported from 123 - b1296f0)

b59a1ac: qemu: add support for EOS 6D

77a538a: raw_rec: attempt to disable powersave timer while recording (not tested)

e676e1a: Register PROP_ICU_AUTO_POWEROFF for modules

4b522dd: qemu-helper: updated for latest FIO changes

87719a7: Merged unified into qemu

adc9e0b: boot-hack.c: imported some cleanups from the 70D branch (197e38f)

46cd637: EOS-M, restore after format: fix button code

c9ed5e0: EOS-M, restore after format: use the DELETE button to toggle between "Keep ML" and "Remove ML"

8b18a21: Fix typos

3410bcc: Restore after format: moved button codes from gui-common.c to platform/consts.h, and some small refactoring

476ed70: Merged unified into qemu

06f82aa: QEMU support: very rough LV RAW buffer emulation (disabled by default in qemu-util.c)

33d051c: QEMU support: 550D working

f2f51a2: QEMU support: forgot to add

c462697: QEMU support: fix 7D ROM start address (not sure if important, works either way)

25022dc: 7D: classic boot process, with AllocateMemory (tested only on QEMU for now)

8b90105: QEMU support: print an error message and exit if autoexec.bin is too large

0aa6fd5: reloc.c: added a safety check

d484097: reloc.c: when compiled with CONFIG_QEMU, print debug messages

0edac34: QEMU support: 7D slave works! (with ML menus and LiveView)

e45dcb3: Merged unified into qemu

3a6c079: QEMU support: force a refresh of VRAM parameters (workaround, because properties are not working yet)

df6c87f: QEMU support: LiveView emulation (some overlays working!)

695e366: QEMU support: allow operation without a valid YUV422 buffer (fallback)

08452f5: QEMU support: fix scaling for YUV422 dumps from HDMI

4b681e0: QEMU support: ability to load and display a YUV422 buffer (built-in LCD only for now)

f6d045e: QEMU support: show random pixels behind color 0 (placeholder for LiveView image)

f70d49a: QEMU support: first step towards emulating external monitors (proof of concept)

cd4729c: QEMU support: use a dynamically allocated BMP VRAM instead of a hardcoded one

d915d6f: QEMU install script: force --enable-sdl (to make sure you get the graphics window) and use parallel compilation for QEMU (make -j)

17b0203: QEMU support: start a few more Canon tasks

b530521: QEMU support: run Canon's init task and use their memory allocation routines

c63846b: QEMU support: use gray for transparent backgrounds; makes Arkanoid playable :)

2f78de0: QEMU support: copy the .sym file to be able to emulate modules

55591ef: QEMU support: silence ASIF messages when reading audio level

dc960a3: QEMU support: added a welcome screen that shows keyboard help

08b0ec4: QEMU support: patched ML code to allow menu navigation in emulator :)

65d8590: Modules: fix error handling when opening files

d6f5c07: Merged in berlincount/magic-lantern/qemu (pull request #506)
enable calling script from anywhere; prevent interpreter degradation; allow qemu parameter passing

c9841dc: enable calling script from anywhere; prevent interpreter degradation; allow qemu parameter passing

dfd034b: QEMU support: keyboard emulation, almost ready for live menu navigation :)

03ba08b: QEMU support: minor refactor

e5758c9: Merged in berlincount/magic-lantern/qemu (pull request #504)
make variable defaults overrideable from the outside

ad5ea8c: make variable defaults overrideable from the outside

cf39559: QEMU support: graphical display :)

b665730: QEMU support: dummy ASIF handler

e30ab5d: QEMU support: attempt to use DryOS task scheduler. Hello World still working!

34f01f6: QEMU support: fix screenshot alignment after enabling TCM

93e3fce: QEMU support: fixes for FIO_FindFirst/FindNext (file info) and FIO_GetFileSize (return value)

b79cd7a: QEMU support: emulation for some 5D3 registers checked in bootloader

613a727: QEMU support: enabled TCM regions, thanks g3gg0

1397105: QEMU support: fix menu screenshots demo (CONFIG_QEMU_MENU_SCREENSHOTS in Makefile.user)

6836d35: QEMU support: added some very rough FIO handlers - just enough to load the new fonts and print Hello World nicely

0136eec: QEMU support: refactored ML helpers as a generic eos_handler

61198fe: QEMU support: load ML symbols when debugging with GDB

3997c50: QEMU support: added 100D and 5D3.123

c4748b5: QEMU support: fix compilation, "hello world" working again

Build Log

4eb5816: Merged cleanup into unified

d009bed: 50D: fix compilation in bitrate.c

63cfa6e: 50D mvr.h: fix spacing

d12ee56: 50D fix MVR.H, qscale is now visible

62e850b: Small tweaks/cleanups regarding CONFIG_HELLO_WORLD and CONFIG_DUMPER_BOOTFLAG (for new ports)

aa425fc: Merged in fps-override until 535d552 (minor cleanups only)

91203fb: Updated declaration of run_in_separate_task so it no longer requires a cast when used from menu

535d552: FPS override: small cleanups

992e0b9: FPS override: just realized TG_FREQ_SHUTTER == MainClock/TimerA; this will greatly simplify the formulas. Minimal changes for now.

8d5d1c3: FPS override: removed the "else" branch from camera-specific constants

699e4e2: FPS override: allow sound recording if the actual FPS is not changed

Build Log

04a1daf: added EOSM stub for PROPAD_GetPropertyDATA

Build Log

4fff9f6: mlv_rec: make mlv_dump a bit more defensive with save_dng return value (yet the save_dng does not catch all cases, so this is a todo)

72dc1ec: mlv_rec: make mlv_dump a bit more defensive with fwrite return values

28a329f: mlv_rec: mlv_dump now allows altering the frame rate e.g. for direct playback of full res silent pic shots using mlrawviewer. also rewrite the frame count in MLVI header.

Build Log

79c51ef: io_crypt: allow smaller block sizes

dac0a6c: ime_base/ime_rot: added hex charsets

b83c548: io_crypt: experimental modes

Build Log

f7e3108: io_crypt: speedup changes

db84fef: io_crypt: fixed compile errors

Build Log

a27e3b9: Merge

5ba96d4: WebDAVServer: massive speedup in responsiveness on server side

a8d1069: WebDAVServer now speaks FITS ( for astral photography use cases
hide storage directory for modified files in the file list

189078e: clean up WebDAVServer code and do optimizations to get lower response time.
- improved caching
- reduced managed code overhead
- switched to older runtime version for simplification

Build Log

9697dbd: raw2dng: fix compilation

ab76bfd: Fix issue #2119 (bracketing glitch)

9e137f9: Modules: fix PROP_HANDLERs compatibility with core ones (declaration and PROP_INT)

98c86ca: mlv_dump: fix compilation

63ee4b7: Raw backend: removed unused return value from raw_set_pixel

79e29ea: Intervalometer: fixed "take pics like crazy" (was much slower if "stop after" was set to zero)

48c7955: Merged in dpjpandone/magic-lantern/dpjpandone/audio-controls-are-working-on-7d-wind-fi-1408126189067 (pull request #586)
audio controls are working on 7D, wind filter will remain undefined

ff0a283: clean up comments

b6080ad: audio controls are working on 7D, wind filter will remain undefined

7e3fcb0: Merged in dpjpandone/magic-lantern-1/dpjpandone/changed-7d-to-faster-edmacs-to-fix-hdmi--1409286369686 (pull request #589)
Use faster edmacs to fix tearing on 7D

0b2c96c: removed slurp as suggested

672c2da: removed slurp as suggested

fd5f70d: changed: #ifdef CONFIG_7D to: #if defined(CONFIG_7D) for consistency.

c06fcf2: clean up comments in edmac_memcpy

062f62c: changed 7D to faster edmacs to fix HDMI tearing

Build Log

e12ad3d: WebDAVServer now correctly returns DNG sizes, doesnt scan all drives to report quota (which is not really important) and added some processing time measurement

df516a8: enabled optimizations in DNG code

68196f1: use dmilligan's new DNG code and optimized it to tweak out as much as possible

979cb95: updated Visual Studio solutions for VS Express 2013

b509078: update MLVViewSharp to provide a per-frame metadata cache

0b67848: updated Visual Studio solution for WebDAVServer

c04dd11: added WebDAVServer for accessing MLV as virtual filesystem

b6b303f: mlv_rec: use a cleaner syntax for struct packing which is compatible to visual studio, fix visual studio compile errors

Build Log

559643a: mlv_rec: fix also output file offsets in mlv_dump

e7dd0f2: mlv_rec: improved offset error bugfix in mlv_dump

9bde3fa: Merged in mlv_play (pull request #580)
Even more `mlv_play` improvements

1ded54c: Close branch mlv_play

ded9049: mlv_play: updated help text

1b49fb9: mlv_play: play button is the same as play/pause in the OSD menu

a20d110: mlv_play: make play/pause the default OSD menu option

f84f3e9: mlv_play: playback resets after video finishes so that video can be easily played again

eedb4e3: mlv_dump: grouped setting of frame type for clarity

75a07ec: mlv: revised internal data structures for 32-bit alignment

2625015: mlv_play: prevent closing of menu when it should stay open (for delete confirmation)

9c1c38c: mlv_play: skipped frames should not accrue when paused

d314fb4: Backed out changeset baf2fd6921ee

baf2fd6: modules: fixed make rule for hgstamp

d445af2: mlv_play: proper black level for MLV playback

8eab7db: mlv_play: slight change to timer processing logic for better syncing

8df9f5f: mlv_dump: updated XREF format for IDX files

893d1f6: mlv_play: IDX also tracks AUDF, plus use preprocessor constants

56cf3e9: mlv: preprocessor constants for frame types

4ed73f0: mlv_play: exact playback skips skippable frames (VIDF) without reading header

67c722d: mlv: revise structure for entries in XREF block

Build Log

80488b4: 5D2/50D/500D: fix GUI event counting for ML internal events

7571daa: Battery info: do not compile on unsupported cameras

933b187: Merged in escho/escho-magiclantern/features (pull request #582)
delete FEATURE_PLAY_422

9f9bae0: not used anymore

46520bc: Created new branch features

360937d: Merged in dot-tune (pull request #577)
Dot-Tune AFMA fixes

9a7431d: Close branch dot-tune

1cb58c5: Merged in Gr3g01/ml-500d (pull request #585)
500D: added property function stubs - PROPAD_GetPropertyData

5ebbc4b: 500D: added property function stubs - PROPAD_GetPropertyData

dfb3eb7: Merged in ayshih/magic-lantern-50d/modules (pull request #584)
Fixes for version information for modules (re-submit)

54a6f72: modules: only look at ancestors when getting the latest relevant commit

7772965: modules: ensure that hgstamp built if needed (phony target doesn't work)

9040db2: dot_tune: restored missing this-lens mode for non-wide/tele cameras

13b6026: Dot-tune: fix initialization of afma_mode

05d7f55: Dot-tune: fix error handling

cb1c4ec: Dot-tune: added an option for prime lenses (rather than reusing the wide-end one)

61a516d: 6D: enabled CONFIG_AFMA_EXTENDED, please test

913c696: dot_tune: added scanning in both directions for auto range detection

8f9a378: dot_tune: fixed CONFIG_AFMA_WIDE_TELE (not tested)

67a3146: 7D: enabled CONFIG_AFMA_EXTENDED (not tested)

241bbc8: dot-tune: assume all cameras have CONFIG_AFMA_EXTENDED (please check 7D)

Build Log

3288e15: Merged in cleanup (pull request #579)
More cleanups

766623c: 5D2, maybe also 50D: fix menu triggering by long joystick press in photo mode

b202491: 650D: disabled 3rd party flash trick in LiveView (not working, issue #2081)

7f2b5a6: 60D: fix installer (was not in the zip)

e206dc8: Removed FEATURE_MOVIE_AF

949efef: Removed leftovers from REC on resume

516ef19: Removed FEATURE_LVAE_EXPO_LOCK (not used anywhere; seems to be an old 50D hack)

bdd27aa: Removed FEATURE_REMAP (who the @$%# brought this back in?!)

872d855: Removed old FEATURE_MOVIE_AUTOSTOP_RECORDING (to be re-implemented as script)

32e7d1d: Removed old CONFIG_PICOC code

c0b840e: fio-ml.c: removed some unreachable asserts

Build Log

d16f504: Merged in external-monitor-backport (pull request #576)
External monitor fixes - for old cameras, backported from 5D3 1.2.3

9d16556: Fix conflict with qemu branch

6ebe96d: Undo 73a7158 (not needed)

73a7158: Cropmarks: fix right border disappearing

caee312: Raw backend: fine-tuned raw buffer alignment (pixel-perfect match on 5D3)

ab16f73: mlv_play: fix issue 1771 (borders in HDMI mode)

6805a0e: Raw backend: fix raw2lv translation component (tested on 5D2)

1003f8a: Raw backend: fix raw2lv test

7ccc830: vram: after updating display parameters, force a refresh of RAW backend parameters

cf3b1a6: update_vram_params should be private

6b9f9f2: Cropmarks: fix redraw on external monitors

1d5994c: External monitors: check the size of PROP_HDMI_CHANGE_CODE

98a5db8: Merged in cleanup (pull request #528)
More cleanups

be7d9ad: Merged in prevent-menu-flickering (pull request #568)
menu: make CancelDateTimer mandatory for all cameras

50d8af5: Close branch prevent-menu-flickering

1587ac3: Stub tests: attempt to test CancelDateTimer

11cbc2c: Proper merge

285538e: 650D: fixed stub regression

b4f4c2c: Merged in mk11174/menu_flickering/prevent-menu-flickering (pull request #574)
CancelDateTimer for 700D, 650D, 600D, 550D

d1cdd34: 550D CancelDateTimer //stopdatetimer

736a753: 650D CancelDateTimer

eccd7b4: 700D CancelDateTimer

b270973: 600D CancelDateTimer

3d4df51: 60D: CancelDateTimer stub

6ae3481: 1100D: CancelDateTimer stub

a0d3c17: 50D: stub for CancelDateTimer/StopDateTimer

c1ecb0a: bmp.h: small cleanup

d00e04c: Moved recursive lock declarations from bmp.h to dryos.h

045933c: Moved read_file and read_entire_file from bmp.c to fio-ml.c

0282f60: bmp.c: removed some old code

2814167: Merged unified into cleanup

073220c: boot-hack.c: fix conflict with qemu branch

c5628d3: menu: make CancelDateTimer mandatory for all cameras

123526f: boot-hack.c: always load fonts

7169bd1: boot-hack.c: imported some cleanups from the 70D branch (197e38f)

c6847d8: Removed obsolete shootspy.c (replacement in dm-spy-experiments)

a8d190e: Moved raw.o, chdk-dng.o and edmac-memcpy.o to common Makefile.src (ML_SRC_EXTRA_OBJS no longer needed on many cameras)

ccb2940: CONFIG_LVAPP_HACK_RELOC is still needed in the Makefile

8581591: Removed obsolete CONFIG_TIMECODE

33a7847: Removed obsolete CONFIG_PICOC and related files

4ea3302: Removed obsolete CONFIG_PYMITE

ff1e673: Removed obsolete CONFIG_MEMCHECK

bcf8058: Refactored CONFIG_RELOC/CONFIG_LVAPP_HACK* and moved the definitions to internals.h

Build Log

c38da10: Stubs test: more thorough test for message queues, including msg_queue_count

Build Log

d226431: 650D: fixed wrong SetHPTimerNextTick

fff3848: 650D: fixed wrong RAM_OFFSET

da026f7: Merged 650D-FIO_SeekSkipFile into unified

ee9d08d: Added FIO_SeekSkipFile entry point for 650D

Build Log

5faaeb5: 60D: added installer FIR binary

8cac2b5: 60D: use a 8.3 installer file name (fixes installation from 64GB cards)

872451b: Installer: stronger checks before setting the bootflag

92aa96d: Installer: don't include exmem routines (not needed, and they have large dependencies)

30cc186: Fixed ML restoring after format, after FIO changes

Build Log

3e62776: Merged in dmilligan/magic-lantern/1100D-FIO_SeekSkipFile (pull request #572)
1100D: FIO_SeekSkipFile stub

3010ca3: 1100D: FIO_SeekSkipFile stub

7973dc7: Audio meters: whitespace cleanup in draw_ticks

426b121: Audio meters: fix tick position

6258d12: 6D: fix wrong BULB_EXPOSURE_CORRECTION,

608e572: Merged in jpaana/ml/recursive-lock-fix-eosm (pull request #571)
Correct stubs for AcquireRecursiveLock and ReleaseRecursiveLock for EOSM.202

1af1b32: Correct stubs for AcquireRecursiveLock and ReleaseRecursiveLock, now passes stubs API test for these functions.

Build Log

dd4dd72: Stubs API tests: dropped error checking test for FIO_SeekSkipFile (not portable, not working on old cameras)

3daed45: mlv_play: also use SET for bringing the playback menu

9647c66: mlv_play: replaced icon background with transparent black (fixes magenta on old cameras)

619b88b: bmp_h: COLOR_BG is now transparent black everywhere (fixes magenta mlv_play on old cameras); added COLOR_TRANSPARENT_BLACK/COLOR_TRANSPARENT_GRAY

1c92c30: mlv_play: fixed RAW playback with exact FPS (FIO_SeekSkipFile past the end of a file is not portable)

d35d76e: mlv_play: use 24 fps for files with bad FPS metadata

0af3225: mlv_play: fix a FIO_SeekSkipFile call removed by mistake

5e2dabf: mlv_play: cleaned up FIO_SeekSkipFile calls, please test

8a9c856: 600D: squeeze some RAM

05684a8: EOS-M: fix autofocus during bracketing, intervalometer and other tools, thanks jerrykil

c599814: Stubs API tests: check return value for FIO_SeekSkipFile in case of errors

7f54c27: FIO_SeekSkipFile has signed arguments

3d32930: raw_rec: removed unused lv_rec_read_footer

a626343: screenshot: prefer shoot_malloc and try to free memory as soon as possible; should fix issue #2061

82e981b: 50D, 5D2: don't actually disable the LV RAW mode in 10x zoom, just consider it's disabled (fixes crash)

ac95326: mlv_rec: forgot two calls to FIO_SeekFile

Build Log

ae33c8a: Bump module API to prevent old-style FIO error checking from running

a59e959: Stubs API tests: run HP timer tests in PLAY mode to avoid some false positives

37cc043: fio-ml.h: some comments on FIO_SeekSkipFile

9b054cd: Stubs API tests: added a test for FIO_SeekSkipFile; please run it on all cameras

8b3352e: Stubs API tests: moved FIO tests at the beginning

ecdab07: Dropped FIO_SeekFile and replaced existing calls with FIO_SeekSkipFile (the latter works well files > 2GB)

0eda5cf: Stubs reformat

36038a4: Merged in fio_create_return_0 (pull request #526)
FIO_CreateFile and FIO_OpenFile should return 0 on error, just like in plain C

5b73d88: Merged in ayshih/magic-lantern-50d/mlv_play (pull request #562)
More improvements to `mlv_play`

da04b63: mlv_play: replaced all calls to emulated FIO_SeekSkipFile

be70db6: Close branch mlv_play.

006e55c: mlv_play: replaced remaining calls to emulated FIO_SeekSkipFile in RAW playback

4700cb2: mlv_play: removed calls to emulated FIO_SeekSkipFile in RAW playback

90377be: mlv_play: fixed skipping of frames for exact RAW playback

4528a58: Merged in berlincount/ml-100d/100D_CZ_20140723 (pull request #561)
Preserve 100D stubs found so far

5400abd: add further stubs

e0d1c45: remove accidentially added changes

974daa6: Backed out changeset 8d05ccc8d3d0

9d05ccc: add further stubs

689da4b: add further stubs

95f5ebb: add Signature for explored FW

aeea39b: preserve stubs found

0f11bd8: Merged in escho/escho-magiclantern/temperature-convertion (pull request #565)
6D: temperature-converting-function

d70948a: 6D: temperature-converting-function

085476d: Created new branch temperature-convertion

27e1382: Renamed INVALID_PTR to PTR_INVALID to prevent future usage in file I/O calls by mistake

d682c04: Fixed FIO_CreateFile/OpenFile calls in most modules. Did I miss anything?

de0c3bf: Fixed FIO_CreateFile/OpenFile calls in core, and added error checking everywhere. Did I miss anything?

1fa853a: FIO backend: fix and refactor FIO_CopyFile/FIO_MoveFile

aa617a8: FIO backend: fix and refactor FIO_CreateFileOrAppend

df4b289: FIO backend: removed aj_create_log_file and refactored what was using it

8221e7e: FIO backend: force FIO_OpenFile and FIO_CreateFile to return 0 on error, just like fopen; all existig code should be updated

Build Log

aa3fb0f: Merged in mk11174/650d (pull request #564)
650d srm-memory stubs

ebd32ec: 650d srm-memory stubs

2d3eb28: mlv_rec: fix mlv_dump for larger frames, try to reallocate a larger buffer

Build Log

d5515f4: Merged in Gr3g01/ml-500d (pull request #554)
500D: CancelDateTimer stub

d4a7949: 500D: CancelDateTimer stub

9c8dc05: Merged in ayshih/magic-lantern-50d/mlv_play (pull request #555)
Improvements to `mlv_play` exact playback

be3721b: mlv_play: fixed exact playback for FPS < 2

d686865: mlv_play: add support for exact playback of RAW

Build Log

a16e924: FIO_CreateDirectory: prevent creating two directories with the same name

eedd41a: 7D: SRM stubs from 1%

Build Log

ab901b1: Modules: reduced RAM usage in the module list by ~4kB (fixes 600D build)

Build Log

d054a2e: Stubs reformat

c27dc2f: Merged in ayshih/magic-lantern-50d/mlv_play (pull request #551)
mlv_play: fixed printing of month in timestamp

47fc295: mlv_play: fixed printing of month in timestamp

e2eddc3: Merged in escho/escho-magiclantern/600D_stubs (pull request #541)
600D: memory suite stubs

5ef1d4f: 600D memory suite stubs

f653617: Created new branch 600D_stubs

5820133: Merged in srm-memory (pull request #529)
SRM memory allocation (very large buffers)

aa8c8bb: 550D: SRM stubs

69a0b8c: 5D2: SRM stubs

9253657: SRM memory: allow autofocus while allocated, but keep full shutter locked. Test on "don't click me".

3c58bff: Re-applied 964f3df (please test on 50D)

171fca0: prop_request_change_wait: never wait when called from a property handler

7d5ddf1: mlv_play: renamed a variable for consistency

a4aab51: mlv_play: fix minor OSD quirk, issue #2000

da270f4: mlv_play: start from the last file from the playlist, for consistency with Canon's playback

36bc589: mlv_play: if the requested filename does not exist, play the first file from the playlist

00cf154: mlv_play: show correct error message when called with a specific filename that does not exist

fc5b878: mlv_play: fix deletion of RAW files; better error checking

e6d1ef3: mlv_play: fix deletion of stopped files

c7d8eb6: mlv_play: prevent failed delete requests from propagating to next session

f2d95b8: mlv_play: nicer error message when delete fails

50b4885: mlv_play: fix issue #2044

6ca62ff: gui-common: added getter for GUI mode

2f553a9: Merged in ayshih/magic-lantern-50d/mlv_play (pull request #550)
"Exact" playback in `mlv_play` at any FPS

8b3295d: mlv_play: removed FPS matching for exact playback

023f410: mlv_rec: removed MENU rec key hack (was needed on EOS-M)

9ee23a7: Removed custom movie mode hack (was needed EOS-M)

8c3866f: Merged in jpaana/ml/srm-stubs-eosm (pull request #548)
SRM stubs for EOSM.202

cb76765: SRM stubs for EOSM.202

bb0dd25: Fix merge conflict

3449834: mlv_rec: remove cruft

d048c99: Merged unified into srm-memory

18b2eac: mlv_rec: dropped memory hack

5e1ded2: raw_rec: dropped memory hack (no longer needed on 5D3, it gives less total memory)

3d6a945: raw_rec: renamed "Debug info" to "Show buffer graph" to match mlv_rec

3af0569: mlv_rec: dropped the waste hack to simplify memory management

5e86033: raw_rec: dropped the waste hack to simplify memory management

48a3a9b: Merged in dmilligan/magic-lantern/srm-raw-video (pull request #540)
Update raw_rec and mlv_rec to use new SRM job memory

9682583: raw_rec: use new memory from SRM job buffers

26dae23: mlv_rec: use new memory from SRM job buffers

b1299a7: Merged in Audionut/user-builds/6D-SRM (pull request #537)
6D: missing stubs from nikfreak,

34079be: 6D: missing stubs from nikfreak,

bfd9b4a: Merged in dmilligan/magic-lantern/srm-1100D (pull request #534)
1100D stubs for SRM

1ea66dd: stubs for 1100D srm maybe?

54d2ec8: Merged in dmilligan/magic-lantern/srm-60D (pull request #533)
60D stubs for SRM

c7b31e3: 60D stubs for SRM

9c230e7: Merged in mk11174/magic-lantern-srm/srm-memory (pull request #544)
700d srm_memory stubs

ea435ed: 700d srm_memory stubs

11db845: Merged in ayshih/magic-lantern-50d/srm-memory-50d (pull request #543)
SRM stubs for 50D

93a3d84: 50D: SRM stubs

55958ad: Undo 964f3df (breaks 50D, because gui_uilock is called from a prop handler)

d6d37ee: fixed chunk and suite structures, added comments

27a827f: exmem: modified the SRM memory test from "don't click me" to allow taking pictures during the test

52a607c: exmem: prefer not to use SRM malloc (shoot_malloc is much better for regular use) and added srm_malloc for those cases when you actually want this buffer

645c2af: exmem: more defensive shutter lock (now you can take pictures while running the test from "don't click me", if you comment out the shoot_malloc_suite call first)

964f3df: gui_uilock: wait until the request is complete, and timeout after 2 seconds

01906cc: exmem: a quick test for the malloc wrappers (don't click me)

cb8c3c1: exmem: attempt to allow malloc wrappers to work with more than one block

b888b31: exmem: experimental malloc wrappers, limited to one large block for now

76a4b4f: exmem: allow a single SRM malloc call at a time, and block shutter, to prevent ERR70

ff3f916: exmem: testing routines for the SRM allocator in the Free Memory dialog

707f092: exmem: experimental interface for SRM job memory

5d9d953: 5D3.113: stubs for CreateMemoryChunk/AddMemoryChunk (will be required for the SRM malloc wrappers, please find them for the other cameras)

Build Log

e04a15e: mlv_play: fix error handling for exact FPS, and only start the timer when needed

723a1e9: mlv_play: show a "deleted" confirmation

a7469c3: mlv_play: fix stopping from paused state

a53f373: mlv_play: fix issue #2042

be98a2a: mlv_play: option for synchronous calls to mlv_play_show_dlg; UI fine-tuning

ba224c6: mlv_play: make sure it really exits after finishing

f328826: mlv_play: prevent multiple instances

e9a49cb: mlv_play: moved deletion in the same task as playback, and removed retrying hacks

a1a24e6: follow focus: no more need to cram "steps from here"

99243fd: mlv_play: fixed issue #2041

392e9cd: raw_rec/mlv_rec: fixed issue #2035

1476be8: Menu: fixed issue #2043

d041478: Merged in OtherOnePercent/magic-lantern-1/OtherOnePercent/fix-cameras-with-shutter-blanking-but-no-1405358804898 (pull request #546)
Fix cameras with shutter blanking but no timer B method.

fdcb5a5: Fix cameras with shutter blanking but no timer B method.

c10e465: Minor menu renames

e04a782: FPS override: moved "Sync w. Shutter" in advanced menu

5d0db90: FPS override: display the amount of rolling shutter effects in menu (FPS_timer_A * vertical_resolution / main_clock)

520e382: Merged in josepvm/ml_500d_josepvm (pull request #538)
500D: SRM stubs added

890eb7c: Merged in josepvm/500d-srm-stubs-added-1405107975677 (pull request #2)
500D: SRM stubs added

ab3ab77: 500D: SRM stubs added

03576b1: Merged in josepvm/added-missing-stubs-for-500d-gui-timers--1404550062626 (pull request #1)
added missing stubs for 500D. GUI timers an others

709f6ab: Merged in Gr3g01/ml-500d (pull request #539)
raw_rec mlv_rec - DialogRefreshTimer 500D

08e17e9: mlv_rec: DialogRefreshTimer 500D

1bc252d: raw_rec: DialogRefreshTimer 500D

f1f3732: Merged in josepvm/ml_500d_josepvm/josepvm/added-missing-stubs-for-500d-gui-timers--1404550062626 (pull request #531)
added missing stubs for 500D. GUI timers an others

a43c535: added missing stubs for 500D. GUI timers an others

7a33679: Histobar: clip warnings are more important than median, make sure they are always displayed properly

917e92c: Histobar: fixed median and shadow levels (were biased if dynamic range was not 12EV); added a test for this bug when running under QEMU

9288121: missing /

4902ab9: Merged in philmoz/cr2hdr-dng-compress-fix (pull request #532)
Fix for compressed DNG files in cr2hdr.

f381b87: Fix output (-o) filename value passed to Adobe DNG Converter when creating compressed DNG files with cr2hdr.

47e2aa1: Merged in dmilligan/magic-lantern/raw-zebra-under (pull request #542)
Zebras: customizable underexposure threshold for raw

08cd6f4: update help

c695c3d: Merged in Audionut/magic-lantern/raw-zebra-lv (pull request #2)
Share raw zebra underexposure love to LV

8ea85b3: Share raw zebra underexposure love to LV

d86ee82: zebras: customizable underexposure threshold

Build Log

63177f9: Merged in Audionut/user-builds/deflick (pull request #535)
deflick: small help fixes

4977a49: deflick: Small help changes for target level

64a8672: deflick: fix http link

8f61aeb: deflick: small help fixes

Build Log

c62e719: trace: made some symbols private

9d6e473: trace: fix race condition between writer and caller

9bdb38a: trace: fix compile errors, clean up types

Build Log

0729d5a: added SRM malloc/free stubs for 7D, 5D3 and 600D

Build Log

b44b321: 5D3: fix FPS limit for crop mode

c938313: 5D3: added an extra safeguard to CF card test

Build Log

3efd69b: mlv_play: added some comments

Build Log

76c8ae9: plot: fix warning

f7bffb5: mlv_play: rewrote delete task in order to help to fix issue #2022. also delete files on both cards, if available

Build Log

fa60068: mlv_play: increased task stack sizes, should fix issue #2022 (not tested)

Build Log

aa3e6bb: chdk-dng: fix compiling

Build Log

4fb6834: VRAM dumping: skip the VRAM directory (some cameras have a max path limit of 33 characters)

e9cdc29: Fix minimal profile (no extra objects should be included)

6040ed5: Fix minimal profile (drive letter required for file I/O)

e2e7855: save_dng: fix error handling

dd1d695: Raw indicator (info bars): gray out when LV RAW is disabled temporarily (e.g. in 10x zoom mode)

e98e1e5: Modules: fix default README creation

a9d3ac1: EOS-M: undo 5bb2918

5bb2918: EOS-M: fix ML menu while recording RAW (not tested)

90c15df: 60D: fix ML menu while recording

Build Log

4f2dcaf: Merged in escho/escho-magiclantern/edmac_channels_600D (pull request #523)
600D: change edmac write channel

3aec2bd: write channel 6

2a1d31e: change edmac write channel for 600D

c8b7dff: Merged unified into edmac_channels_600D

b629b89: 7D: removed obsolete platform/gui.c (use the common gui.c instead)

c7a833d: 7D: cleaned up CONFIG_GDB

3ace841: my_fprintf: use a smaller buffer and do error checking

Build Log

64d376b: Merged in OtherOnePercent/magic-lantern/OtherOnePercent/update-timings-for-6d-to-avoid-problems--1403463297020 (pull request #522)
Update timings for 6D to avoid problems. It will have to be done a 3rd time if direct table patching happens.

1016519: Don't need aggressive update, it causes problems

84fbfc0: Update timings for 6D to avoid problems. It will have to be done a 3rd time if direct table patching happens.

6b45ad9: 550D: fixed issue #1613 (centering focus box)

e876a7b: EOS-M: experimental menu trigger from the DELETE button (long press). Not tested, does it work?

82abbc4: 6D: declared ML_RESERVED_MEM as 640K; does it work?

190ff5f: Startup: moved ML_RESERVED_MEM outside ifdef's to be visible from everywhere

b2c719f: 6D: missing stubs from nikfreak,

f5c2d91: 550D: ResLock stubs

d10501f: Reloc: clean cache before executing modified code

8c212a4: Fix memory checks for CONFIG_ALLOCATE_MEMORY_POOL (fixes boot for 550D and 1100D)

066acee: Free memory dialog: fix display of AUTOEXEC.BIN size

4719056: Merged in gui-timers (pull request #518)
Refactoring with GUI timers

1e632f1: Merged in edmac-cleanup (pull request #516)
Small EDMAC refactoring

eb053c8: Long joystick press: small race condition fix

05b0417: Cleanup some leftover code related to joystick press

8fdf8ca: Long joystick press: small fix (stop checking when pressing left/right/up/down)

e8ed90b: 5D3/5D2/50D/7D: refactored joystick menu navigation with GUI timers (and enabled it on 7D)

347606b: Refactored redraw_after with GUI timers

024b962: Added a simple wrapper for GUI timers: delayed_call

732f2f2: 5D3/5D2/50D: removed old joypress code (to be rewritten with GUI timers)

abf40a1: CONFIG_ENGINE_RESLOCK should be mandatory everywhere (anything broken?)

7d97e2c: 5D2: enabled CONFIG_ENGINE_RESLOCK

862db91: edmac_channel_to_index: direction argument not needed

9c3fd0a: EDMAC info: show overview for the third EDMAC group on DIGIC V cameras

40ce954: EDMAC info: print results from edmac_get_dir

f4a69c5: EDMAC info: refactored with edmac_get_* calls

6cb8b2f: EDMAC: simplified edmac_get_dir (read if channel & 0x8 else write) and added range checking to all getters

2c69fe1: edmac_get_dir: return "unused" for out-of-range channels

adf46f8: edmac_get_state: prevent lockup on older cameras, where there are fewer EDMAC channels

ad5fe17: edmac_memcpy: find_free_edmac_channels now displays edmac channel numbers, not indices

b24d196: EDMAC: refactored channel<->index mapping (moved to edmac.c/h)

Build Log

b082378: VRAM dumping: recognize mirroring setting from 5D3 123

6fe30c8: VRAM dumping: added a delay before saving the RAW buffer (should fix corrupted DNGs)

Build Log

7eaf03c: VRAM dumping: create a log file with relevant settings

ea0aa3a: VRAM dumping: create empty DNGs if there's no raw data, to keep file numbering consistent

Build Log

392d350: Updated video modes for VRAM dumping. Please follow the guide at

Build Log

bb2a074: Audio remote shot: removed 7D exception (should only enable sound in photo mode, not tested)

f71fc15: 7D/6D: enabled FEATURE_AUDIO_REMOTE_SHOT (doesn't depend on CONFIG_AUDIO_CONTROLS on these cameras)

Build Log

97cdabc: Fix a long file name

Build Log

1efb137: Fix typo

Build Log

0bba349: Fix 1100D build

32f3a5b: Option for dumping image buffers. Looking for dumps from all cameras, all video modes, especially from external monitor users. Please keep the directory structure when uploading.

ef391df: Post deflicker: fix flicker caused by white level variations,

Build Log

f9a29c7: Modules: fix error handling when opening files

Build Log

3046b3f: mlv_play: fix conflict with NotifyBox (visible when Canon code shows "No image", with e.g. FPS override)

ea321de: Display filters: minor tweak for the use-after-free fix

8671cfb: Fix conflict between module display filters and core filters; added some comments

e032868: raw_hist_get_percentile_level(s): fix error handling

880fdec: Display filters: fix use-after-free (for example, fixes crash when also using mlv_play)
Steps to reproduce (before the fix):
- enable some display filter (defishing, raw preview, anything)
- use a low FPS to increase the chances of triggering the race condition
- trigger mlv_play (press PLAY) to playback some video
- repeat 1..5 times until the camera crashes
For more insight, run the current "don't click me" test in playback mode, instead of triggering mlv_play, and print YUV422_LV_BUFFER_DISPLAY_ADDR.

db27045: Memory backend: minor tweaks

fa65504: Memory backend: fix indentation in search_for_allocator

74b8a83: Memory backend: refactored search_for_allocator to remove cascaded if's
(note: indentation broken to make reviewing easier)

7ced1bf: Memory backend: limit shoot_malloc calls to 1000 (fixes the test from previous commit)

5f7dea3: New memory test that fails on 5D3 (don't click me)

16d2011: mlv_play: don't create playlist twice

c4312f6: mlv_play: don't use a background task for playlist (just in case; troubleshooting a crash)

712ecfd: mlv_play: some sanity checks

Build Log

119cdc1: 50D: disabled LV RAW mode in 10x zoom

98876b3: EOS-M: display filters not working, disabling (issue #1989)

81470f8: 7D/5D2/550D/500D: disabled LV RAW mode in 10x zoom (should fix issues #1587, #1990, #1961 and others). Other cameras requiring this workaround?

21a7b6c: Fix declaration of raw_get_pixel_ex

1b15f6d: 7D FPS: fix memory leak

8b1802f: 7D FPS: cleaner check for H.264

fa87e6f: FPS override: refactored with a getter function, to make it easier to disable it in certain modes

5f72c84: 7D FPS: undo H.264 check

647538c: 7D FPS: undo d2ba368e51f4

2de6317: Merged in vyskocil/magic-lantern-vyskocil/7D_fps_override (pull request #464)
FPS override for 7D in RAW recording

d2ba368: add logic to allow FPS_OVERRIDE only in RAW recording mode on 7D

4e58b01: Not needed anymore (?)

af9b62c: try to fix merge conflict (again)

5d1e4df: FPS override only when recording RAW movie

c9552e9: fix merge conflict

d8b23b4: fix merge conflicts

349e54d: fix indentation

e77fed4: remove not needed include
cancel fps override when recording H264, it works but fps override is enabled when H264 recording stop even if it wasn't enabled before (why ?)

734fefe: use fio_malloc() instead of alloc_dma_memory()

94ed05f: remove stopping static variable used to stop H264

5adb864: FPS override for 7D

bbfd104: Merged in clean-startup (pull request #501)
Startup code refactoring

da437b4: Memory backend: allow smaller blocks from shoot_malloc

78d81a6: Exmem: report 31.5MB free for malloc

647cd32: Raw backend: declared raw_get_pixel_ex

f8f22bb: 5D2: Add GUI timers Stubs

d7966c2: 5D2: Add FIO_SeekSkipFile

e0e6a86: Merge unified into clean-startup

369d960: Fix declaration of task_dispatch_hook
(without 'extern', if task_dispatch_hook is not found in stubs, gcc will allocate memory for it locally, then you'll wonder why it doesn't work)

952acb6: reboot.c: renamed copy_and_run_ml back to copy_and_restart (historical reasons) and added some notes about the startup process

d485d73: gui.c: cleanup obsolete CONFIG_GUI_DEBUG

ff32167: Removed CONFIG_MEMPATCH_CHECK definitions (this code is now mandatory for all cameras)

5da4dc0: Startup: made CONFIG_MEMPATCH_CHECK available also for classic boot

acb4375: Startup: refactored HIJACK_CACHE_HACK by making init_task calls common code

Build Log

224e8de: Merged in escho/escho-magiclantern/600D_timer_stubs (pull request #514)
600D stubs and more

04d79a4: disable config_tskmon

5f8a56a: empty debug menue quite a bit

a27b9cd: missing komma FIO_SeekSkipFile

8d5de0f: 600D_timer_stubs

9b6fb41: Created new branch 600D_timer_stubs

Build Log

04b2fe2: tweaks.c 1.8:1 Anamorphic preview .max updated

2c6c362: tweaks.c 1.8:1 Anamorphic Preview edited online with Bitbucket

Build Log

fdb2b72: plot: made new code a bit more defensive

c3e521c: add a file that produces a few linker builtin functions that might be needed by modules

36fcf6d: plot: fix constant for min value, added free routines and statistics functions

bc414a1: Merged in dmilligan/magic-lantern/60d_timer_stubs (pull request #510)
60D GUI Timer stubs and FIO_SeekSkipFile

8fa80b8: 60D GUI Timer stubs and FIO_SeekSkipFile

Build Log

10205a6: Merged in escho/escho-magiclantern/edmac_channels_600D (pull request #503)
edmac_channels for 600D

2ee36b4: 600D res_lock_stubs stolen from TragicLantern

73b33a7: 600D_edmac_channels

c88cec8: Created new branch edmac_channels_600D

Build Log

5d912c8: 550D: Add Timer stubs

7b2d169: 1100D: Add Timer stubs

4689c94: 650D: SetHPTimerNextTick stub

814b62f: Add pretty-stubs target (runs all stubs-prettification tasks in one go)

f38982e: Merged in Pelican/magic-lantern/Pelican/fio_seekskipfile-added-stubss-edited-onl-1401619680648 (pull request #509)
FIO_SeekSkipFile added.

fcb8e37: Missing stubs added
stubs.S edited online with Bitbucket

bd9ea68: FIO_SeekSkipFile added.
stubs.S edited online with Bitbucket

Build Log

85442aa: only use mvr_config when FEATURE_NITRATE is enabled

5ac5669: only use mvr_config when FEATURE_NITRATE is enabled

0931e55: only use/access mvr_config if FEATURE_NITRATE is defined

ce922d7: only use/access mvr_config if FEATURE_NITRATE is defined

d842f82: we should return a value even if there is no intervalometer (defined), if only to avoid warnings

b4610dc: fix warnings (param type) & incorrect C (function declaration inside function is illegal)

cea4b01: show_event_codes / CONFIG_GUI_DEBUG was removed incompletely, clean up

3b0f294: Merged in ayshih/magic-lantern-50d/50d (pull request #505)
Add more timer stubs for the 50D

18a963d: 50D: SetTimerAfter and CancelTimer stubs

Build Log

62289ee: Features table: Fic shutter_fine_tuning link

Build Log

35fe72a: Merged gui-timers into unified

9e90e20: Merged in jpaana/ml/gui-timers-eosm (pull request #487)
GUI timer stubs for EOSM.202

83aeefd: GUI timer stubs for EOSM.202

bd3597f: 700D: timer and file i/o stubs from mk11174

4f60e20: Stubs test: fix a name clash

03bb4ef: Stubs reformat. Please find missing stubs for GUI timers and also for FIO_SeekSkipFile (required for latest mlv_play)

021747a: Stubs test for timer API

cfc8e97: 5D3 113: stubs for SetTimerAfter and CancelTimer

2a6b091: Stubs test: use RAM buffering rather than tiny FIO_WriteFile calls; also print log messages to console

ce15804: Timers: updated docs, removed SetHPTimerAfterTimeout/SetTimerWhen (redundant, not going to be used) and renamed TimerCancel to CancelTimer

Build Log

656e08c: Features table: updated links to raw overlays, shutter fine-tuning and screenshot

Build Log

95175a1: Features table: minor fix

34d3952: 60D: cleanup unused CONFIG_EXMEM_SINGLE_CHUNK

395b9da: 7D,600D,EOSM: no CONFIG_DMA_MEMCPY, please

1b6d9e4: 7D: no CONFIG_AUDIO_CONTROLS yet

5722776: Features table: also print internals (CONFIG_ macros)

65352a6: Features table: fix category for FEATURE_GPS_TWEAKS

313c585: Features table: updated porting thread links, please check

3e9a88b: Make DRYOS_ASSERT_HANDLER mandatory

54d8c80: Fix minimal build profile after FIO updates

1189edb: 5D3, maybe others: fix QR overlays in zoom mode

b9a68ef: FPS override: fix photo mode when a crop mode is selected in movie mode

Build Log

48a7521: Fix FPS override in photo mode

Build Log

b08eef6: 5D3: increased 720p FPS limit (67 fps)

f68f196: 50D/EOSM: disabled FRAME_SHUTTER_BLANKING_WRITE (it depends on the DebugMsg hack, which is not enabled there)

882662a: FPS override: if FRAME_SHUTTER_BLANKING_WRITE is available, only use table patching for overcranking

d2e90af: FPS override: refactored NEW_FPS_METHOD without mode_offset_map

8d9a28f: FPS override: minor speedup when switching video modes with NEW_FPS_METHOD

81ce3c1: FPS override: minor fix when switching video modes with NEW_FPS_METHOD

8d2046b: FPS override: fix shutter blanking override for NEW_FPS_METHOD

6dd7785: 5D3: enabled NEW_FPS_METHOD (40fps at 1080p in raw mode)

5e23456: FPS override: dropped negative number workaround for fine-tuning offsets (no longer needed)

Build Log

d414d91: Bulb exposures: experimental support for self-timer/MLU modes

7c4539c: Typo

44c4d67: Fix shutter display in BULB mode; added SHUTTER_BULB constant

a42c52c: Lens display don't round certain shutter speeds like 32" or 16", since the exact value may be important when using the intervalometer

d24ded6: Fix shutter wrap-around in movie mode

f8f04c2: Merged in dmilligan/magic-lantern/shutter_display (pull request #498)
Shutter speed round to match Canon

ea6e637: lens.c/h: round shutter speeds to match Canon values, allow the shutter menu item to go all the way to 30

4865da9: Merged in ayshih/magic-lantern-50d/ime (pull request #500)
Fixes so that IME modules can compile

c6a1131: ime: fixes for implicit declarations (cleanup)

155e30e: Merged in ayshih/magic-lantern-50d/mlv_play (pull request #499)
Add timer stubs for the 50D for `mlv_play`

4bd4471: 50D: timer stubs for mlv_play

Build Log

702f3b6: Only define FEATURE_BEEP if there is backend support (CONFIG_BEEP)

20ae18d: 6D: disabled audio monitoring (reported not to work, issue #1996)

Build Log

1ae82fc: Merged in dmilligan/magic-lantern/1100D_edmac (pull request #496)
edmac channels for the 1100D, but we don't use it (lv raw doesn't work), so disable edmac to save space in the binary

aa4ad5a: edmac channels for the 1100D, but we don't use it (lv raw doesn't work), so disable edmac to save space in the binary

12984e9: Merged in mk11174/550d (pull request #494)
700d & 550D timer, seekskip, and ASIFADCBuffer Stubs for mlv_snd and mlv_play

72d148f: 700d timer and seekskip stubs for mlv_snd and mlv_play

17ad4b5: 550D timer, seekskip, and ASIFADCBuffer Stubs for mlv_snd and mlv_play

576f42b: Merged in Audionut/ml-fork/black-level (pull request #495)
Turn black_fix off by default.

71c677f: Turn black_fix off by default.

7d0821b: 550D add edmac channels

Build Log

7ecb19e: Merged in Audionut/branch-fix/user-feedback (pull request #491)
Change printed user feedback in raw_rec.

6d4ed35: Change printed user feedback in raw_rec.

Build Log

a6b022b: lens_format_shutter: use rounding consistent with Canon's for 1/25 and faster shutter speeds ( )

e45ccf5: LV ISO display: in movie mode, read it from FRAME_ISO and include the effects of ML digital ISO, FPS override corrections, full-stop rounding with raw video (should be similar to the one before LVinfo refactoring). Should fix issue #1741, to be tested.

c084cf6: 500D: slowed down bmp_fill (helps with ERR70 while recording)

3650ca1: edmac_memcpy: removed the "else" branch for free EDMAC channels. If this breaks any builds, you know what you have to do ;)

b9763be: 500D: fix EDMAC channels (raw video now working)

ff23f49: 50D: allow expo override to sync with dialed exposure values (should fix issue 1968, to be tested)

66bb587: 500D: FRAME_SHUTTER_TIMER is wrong (fixes issue #1983)

aa45cd9: Arrow shortcuts: when they depend on the LCD sensor, print info about how to enable it (500D, 550D, 650D, 700D)

b114b0a: Menu: print long help lines with condensed font (to make sure they will not overflow)

1bd6770: Font backend: fix displaying justified strings (was trimming the last character when printing condensed text)

122dbb0: 500D: FRAME_ISO is OK for reading

f68013c: Merged in Audionut/branch-fix/Help_text (pull request #490)
Small fixes and updates to help text.

0caef75: More verbose bracketing help

c1b7afa: Fix AF_BACK_BUTTON depend on 5D3 (thanks a1ex)

c42185c: Small fixes and updates to help text.

Build Log

1d36eb3: mlv_rec: correct getopt long option, output notification when bug fixing is active

Build Log

acb8af4: mlv_rec: fix black level assignment

Build Log

6c7c94e: Timer and file IO stubs for EOSM.202

4c6a195: Modules: catch non-static MODULE_FUNCTION/MODULE_SYMBOL declarations at runtime (not sure how to catch them at compile-time);
Also fix console behavior at startup (hide if disabled, show if enabled or if there are errors)

44464f7: plot.h: in core declarations, function pointers should be static (fixes lockup when plot module is not loaded)

6c3d32f: dryos.h: declared printf

Build Log

e5939c7: mlv_play: add option for playing back at exact frame rate by either dropping or waiting. requirement for sync audio playback when the new sound system is ready.

56f7b9e: fix typo

f47f2d3: updated timer description, added some stubs for 7D, 5D3, 600D (to be tested)

Build Log

98fb471: Revert unwanted merge (500b291)

Build Log

500b291: Dummy merge, to undo 1a2e6b1

3fd8bc1: Memory browser: highlight modified values with red; dropped support for VxWorks

1a2e6b1: Merge with dual-iso-ec

5a19ccf: Dual ISO auto expo: fix sign for EC < 0

70f5963: Dual ISO auto expo: added two more presets, with ideas from Marsu and Audionut

1814e81: Dual ISO auto expo: fix bug about going back to preferred ISO

24a9742: Dual ISO auto expo: go back to preferred ISO when there are no constraints (removes hysteresis)

261c339: Dual ISO: added debug info for auto exposure and fixed conflict with expo lock

3c4c330: Dual ISO: experimental auto exposure algorithm for recovery ISO

b77b59a: Dual ISO: renamed isoless_* to dual_iso_*

da0c46c: Burn-in tests: added a test for setting exposure randomly

b436d7e: Dual ISO: reduced the relative ISO choices to the useful ones; small refactor

3560962: Dual ISO: fix operation with Auto ISO and relative recovery ISO

808ccfe: Dual ISO: back to old-style menu; some UI tweaks and minor fine-tunings

a4959ea: dual_iso: rename main var to std name (you too, alex :-))

85656d3: dual_iso: move static up (we should try c#)

1c6528d: dual_iso: make dr gained a setting for auto-disabling

126c2c2: Merged unified into dual-iso-ec

e74fc50: Dual ISO: with relative recovery ISO, respect the max auto ISO from Canon menu

e188698: Patch manager: print number of errors in the main menu, if any

2f8f31b: Patch manager: removed cache_lock_request/release interface (should be no longer needed)

b3d6c7a: GDB hooks: refactored with pure patch manager calls; origOpcode field no longer needed, renamed to user_data

23ee7f4: Patch manager: use cli/sei instead of semaphores, since we also need it to work at startup or from interrupts

a1b3753: Experimental library for managing memory patches

Build Log

8b7f6b8: plot: small code cleanup

9a7a9b5: mlv_play: function renaming, remove strdup/strcat from module

839f993: mlv_play: fix files > 4GiB

0d7af49: corrected stub for FIO_SeekFile (64 bit return value), added FIO_SeekSkipFile (64 bit position)

Build Log

d657ea8: Merged in Marsu42/ml-pull/dual_iso_enabled (pull request #482)
dual_iso: tell enabled from active & add toggle function

7f95739: dual_iso: add explicit toggle function

2d48ba3: dual_iso: tell enabled from active

ba0af41: Created new branch dual_iso_enabled

Build Log

ec3353e: CONFIG_PIC: Cleanup leftover makefile comments

36f5443: Cleanup: Expose CONFIG_PIC to Makefile.user.default
Remove it from every single platform Makefile since it was always defined as n

03ac9b4: reboot.c : Allow booting without a valid signature, but warn the user

966b9ae: Do not require DISPLAY_SENSOR_POWERED unless CONFIG_LCD_SENSOR is set

40d80d1: shoot.c: Guard FEATURE_BULB_TIMER

59261d4: lens.c : Guard FEATURE_PICSTYLE

08ce961: Remove unused ML_SRC_STATIC_FONTS

7f33166: Remove deprecated CONFIG_STATIC_FONTS

3725996: raw.c : Fix Screen DR for 700D/EOSM

Build Log

478b8fc: mlv_rec: improve bugfix #1 to recover some frames

df5550b: mlv_rec: add code to mlv_dump for automatic file fixing for known bugs

Build Log

9c32638: mlv_rec: add option to mlv_dump to set black level manually

5239f88: Stubs reformat

b5b987a: Merged in Maqs/magic-lantern/prevent-menu-flickering (pull request #480)
Prevent date/time from flickering while ML menu is active

d9a3411: Created new branch prevent-menu-flickering

694e8bc: Kill date/time update timer to prevent flickering in ML menu (5D3.113, 6D.113, 7D.203)

79f033a: timer.h: Update documentation

a7dc5d4: Document DryOS High Level Timer API
Add stubs for 650D.104

6931c29: Merged in arkanoid (pull request #444)
Arkanoid improvements

2a9dc0e: LV powersave: fix false wakeups triggerd by internal ML events (was broken in 5fdd723)

3f68e85: Merged in Audionut/tutorial/shutter_warning (pull request #481)
Make menu warn advise for shutter count, easy to understand

62134ba: Make menu warn advise for shutter count, easy to understand

eaed601: Arkanoid: minor refactoring in key handling

485c00e: Arkanoid: fixed key handling for pause (handling the UNPRESS event made it stop quickly after starting the game)

2bcca5e: Merged in Marsu42/ml-pull/anti_fud (pull request #475)
Model-specific shutter count & reduce fud

b2a1544: Add curly brackets for ml style compliance

3052cef: Optimize rating info messages

e460103: Add general info about shutter life

89f4d30: Add info about half of shutter rating

feac4e0: Model-specific shutter count & reduce fud

21a74b9: Created new branch anti_fud

87a7027: arkanoid: make the game playable with front and rear wheel

477e2f0: arkanoid: place the balls correctly, minor changes

f9fb29c: arkanoid: reverse pause

962c613: arkanoid: cleanup

62eb204: Arkanoid: nicer key handling (do not block all the GUI events). Fixes unwanted playing outside menu and maybe other subtle side effects.

126386b: Arkanoid: enable sound by default

d57b7f0: arkanoid: limit num of balls to 5 so that arkanoid is responsive in higher levels, fine tunnings

e8617f9: arkanoid: cleanups, fine tunings

f9b42db: arkanoid: spaces for tabs

f281222: arkanoid: double linked list fix, more stable, no more null ptr

3ac9d36: Backout changeset c04747492ee6196d8a573a21f70bc166b74630e2

c047474: Backout changeset d98b3f8120e8816e6e07f7e22f770a311ae1ea6f

d98b3f8: arkanoid: doubly linked list for storing arkanoid elements, clean up, comments, spaces

27fcf97: arkanoid: control pad only if we are in the gameplay

6d91a83: arkanoid: correct elem_loop in game start func

cb9ec98: arkanoid: handle fades properly

2356c5c: arkanoid: spaces, fixed balls movement now is it more stable

a80cd14: arkanoid: spaces, reset_elem set ELEM_END at the beginning

8824aee: arkanoid: spaces, revert 460 fix causes side effects

e1c87ab: arkanoid: spaces, optimalize arkanoid logo function

2d66492: arkanoid: do not generate more brick if we reach the maximum of elems

976a364: arkanoid: changed elem numbering so that NULL is 0

c1494b0: arkanoid: spaces, use memset in reset elem func

8e79198: arkanoid: correct tabs

b373e76: arkanoid: more spaces

06b9252: arkanoid: spaces

2ca62d7: arkanoid: comments

6bddbc7: arkanoid: dont want for the sounds causes lags

289f01d: arkanoid: handle pauses correctly, clean up states

2bfb15f: Arkanoid: undo debug code

3354c62: Arkanoid: hopefully fixed balls bouncing from the bottom edge (hard to reproduce, just keep playing)

52e258b: Arkanoid: reworked sounds to give priority to important ones (e.g. losing ball)

af28503: Arkanoid: bunch of fine-tunings, now it feels a little more solid

fb3c859: Arkanoid: warning cleanup

785f29a: Arkanoid: experimental drawing algorithm for reducing flicker (no double buffering; it's too slow)

cfc86fb: Arkanoid: some quick'n'dirty sound effects

afa0db2: Arkanoid: reworked the state machine and removed the global lock (should fix many subtle bugs)

Build Log

9c96b62: plot: being a bit more defensive

ff1c838: Merged in pravdomil/readmemd-edited-online-with-bitbucket-1398284535670 (pull request #479) make link working

85db9fa: make link working

Build Log

107bde4: 7D: remove unused code that fails compiling

8bd6d49: 500D: fixed photo raw offsets to include top OB area

71502c9: 500D: installer FIR binary

7044af9: 500D: fixed FIO_SeekFile (how the @#$% did it work so far?!)

d105a8a: Moved display_is_on to gui-common.c/h

d65010b: Menu: declared menu_get/set_value_from_script

a76bcf1: Menu: also use caret editing in transparent LV mode

2a7e6f4: 700d, change back ic_write from ic_write_bulk to keep things consistent with other cameras. Was meant for sound system branch only

Build Log

58b5a7a: 700d _ic_write to _ic_write_bulk

062811b: 700d add SetASIFMode and StopASIFDMAADC stubs

Build Log

fd63cf6: Merged in one-audio-common-task (pull request #468)
audio-common.c: Merged audio_meter_task and audio_level_task into audio_common_task

47be69a: Merged unified into one-audio-common-task

9a4c466: audio-common.c: Merged audio_meter_task and audio_level_task into audio_common_task

Build Log

00d2b33: Flexinfo: Add clock to Rebels, 60D, 5D3 and 6D
Fixes issue #1959
cc @a1ex @g3gg0 @OtherOnePercent to check and fix correct positioning.

Build Log

b8e085a: mlv_rec: get rid of backup block, set frame headers every frame

15153f2: mlv_rec: add option to create one directory per video, reordered options and ini strings

2da80f3: mlv_rec: fix incorrect block size generation

77e8408: Merged in OtherOnePercent/backflow2/EOSM-fix (pull request #472)
Fix EOSM ADTG + Dual ISO reg

f4126ff: Fix ADTG shutters EOSM

8be6f48: Backed out changeset: 635763bb2981

8b70546: Make a branch

dc6272f: Correct EOSM regs on dual iso...

635763b: Correct EOSM ADTG shutter regs after boot method change

Build Log

f424fd0: Merged in g3gg0/magic-lantern-plot (pull request #458)
plot: basic module for plotting data

37a8203: plot: simply don't draw dots on borders

6910df2: plot: basic module for plotting data

bef86f5: Merged in Marsu42/ml-pull/cygwin_fix (pull request #467)
Fix cygwin compilation & docs

455164c: cygwin: don't trust awk internet tutorials

a19d705: cygwin: this nearly makes me use linux :->

a55029e: cygwin: yet another awk quoting style :-p

f09eee3: cygwin: other awk fixes

bb88b39: cygwin: solve awk quoting hell

dae2355: cygwin: fix module readme line endings

b97b26a: cygwin: fix docs line endings

7cba541: Created new branch cygwin_fix

108f290: Merged in eosm-use-traditional-boot (pull request #470)
EOSM: Use traditional boot method. This makes the installer work properly.

ab0bd9d: EOSM: Fix incorrect memory size reporting, allocate bvram_mirror where appropriate

2fc65fc: EOSM: Use traditional boot method. This makes the installer work properly.
Avoid a cache-hacked boot should also fix race conditions with modules (See issue: #1903)

Build Log

4f92d93: mlv_rec: count from correct block header, fixes ASSERT

88daff0: Intervalometer: fixed trigger at startup

6c1700e: Intervalometer: fixed inconsistencies like running when it's disabled from menu and cleaned up the code a bit

6d9c6a8: Card benchmark: print a message when completed

994c76b: lens_set_ae: use proper rounding (not just range checking). Should fix ETTR messing up the exposure compensation (where you can't reset it back to 0).

3d4d20f: cf_acc: fix LBA addressing (CYL_HI/CYL_LO were swapped)

Build Log

9058cbc: mlv_rec: advanced error dumping in case of corrupted headers, changed BKUP header handling

Build Log

52e2627: cf_acc: added raw sector read/write code, refactored

Build Log

ee1845a: 650D: Some minor cleanup

66f29bc: Merged in cleanup (pull request #445)
ML Cleanup, take 2

69aaab0: Merged unified into cleanup

8d0c305: Merge unified into cleanup

4a16c01: Revert ead884906b91 but still make signature checking mandatory using a Makefile macro to define the current "active" signature

519289d: Makefile.src : Make sure the first object is always reboot.o

07ed596: Small misc.c cleanups

fbc75a5: Make sure we can use CONFIG_RELOC in source/header files too.
This gets rid of 90% of misc.c usage across platforms

167b1e4: 5D3.113 : Remove unused handle_af_patterns

730c487: 5D3.113 : Remove unused my_memcpy

3faeca4: 6D: Remove unused display_clock()

782a348: 550D: remove unused misc.c

85dd80a: Define handle_af_patterns in the correct header

7317da2: EOSM: remove unused dummy handle_af_patterns

1dee8a3: Fix regression: SoundDevActiveIn was defined twice

64556f2: Add missing lcdsensor header

24763bb: Make deflick module compile without major warnings

6d7275d: Add proper SoundDevActiveIn signature

dd52ae3: Make "unfied" compile without major warnings.
- define CONFIG_UNIFIED instead of some ultra long CONFIG_
- reduce build times by only depending on actual DigicIV models

d255daf: Make EOSM compile without major warnings

82a30b7: Make 7D compile without major warnings

eda3698: Make 60D compile without major warnings

86888a2: Make 600D compile without major warnings

a88d1c9: Make 5D2 compile without major warnings

faa786b: Make 550D compile without major warnings

cac8b6a: Make 500D compile without major warnings

06cd27e: Merged unified into cleanup

1185b84: 1100D: fix warnings

b8780a5: fw-signature: Make sure we also link main ML code against it

a938f6a: boot-hack: Properly name variable

ead8849: fw-signature: Move to object file and make sure we always check for the correct FW signature before booting

6cd22ac: cleanup: rename aj_port to greenscreen as it's the only feature provided
Also retain the original copyright notice (but format it a bit)

8a5e5a8: Merged unified into cleanup

0fb2711: Enabled -Werror-implicit-function-declaration for the next cleanup session

Build Log

fb558c7: Merged in OtherOnePercent/backflow2/mlv_write (pull request #455)
Add single threaded write speed for MLV camera icon

834047a: Manually apply patch

f76d8cf: Notepad++ does these tabs instead of spaces, maybe there is a setting

14774df: Fix some spacing

2ba7c7e: Add single threaded write speed for MLV camera icon

Build Log

faf639e: Remove wrong 550D installer

51c1d41: Add EOSM Installer

Build Log

9d09c94: 650d add SetVolumeIn stub

Build Log

a03d405: Upload proper 1100D installer.
Fixes commit 8d5c15c

8d5c15c: Add 1100D installer

c3c5db2: 650D/700D: Enable FEATURE_AUDIO_REMOTE_SHOT in movie mode too

d74f0f6: Remove wrong 1100D installer

533dbdb: Add 650D installer

9549b1d: Modules README: properly fail when an external command fails

Build Log

8c811d9: 700d add SetAudioVolumeIn stub

Build Log

d8685b4: Merged in mk11174/magic-lantern (pull request #461)
Tweak to 650d/700d Audio meter patch, add EOSM too. added PowerMicAmp and the stub for each model.

c7e2b31: 700d add PowerMicAmp stub for audio meter patch

0fcf9b9: 650d add PowerMicAmp stub for audio meter patch

9300223: EOSM add PowerMicAmp stub for audio meter patch

349a817: 700D/650D/EOSM audio-common.c audio meter patch tweak. Found out that PowerMicAmp is all that is needed to get things going.

f7f15b2: Merged hudson/magic-lantern into unified

92c146c: EOSM audio-common.c add audio meter patch

c6a68a9: Merged in Audionut/tutorial/README.rst (pull request #462)
Small graphical fix dual_iso README.rst

ddc1b15: Small graphical fix dual_iso README.rst

425b7b6: mlv_rec: detailed error message after card I/O error

Build Log

f748ca9: Liveview fixes for magic zoom and electronic level (backported from chris_overseas, 5D3-123)

652dca7: 700d bmp.c add bmp_buf, maybe works for 650d too?

fd41118: Merged in mk11174/magic-lantern (pull request #457)
650d/700d Maybe ok to turn back on Audio meters since many testers have reported positive feedback???

f4d173b: audio-common.c added comment for 650d/700d meter patch

e9e6795: 700d remove feature_audio_meters undef

9da6749: 650d remove feature_audio_meters undef

a0e8eb9: audio-common.c tweak to 650d/700d audio meter code, thanks nanomad!

6af2be9: audio-common.c indent fix

33f6a0b: 650d/700d Another dumb typo in audio-common.c to enable audio meters

1f06da6: 650d/700d typo in audio-common.c to enable audio meters

23e8a6b: Merged hudson/magic-lantern into unified

aa0271a: 650d turn back on audio meters feature.

108e441: 700d Turn back on feature audio meters

efea1b1: 650d/700d audio-common.c Temp Enable Audio Meters until audio chip is coded.

e30fba2: mlv_rec: added eschos recommendation so the recording icon still shows recording time with skipped frames (

Build Log

fa8fac5: mlv_rec: fix OS X linking for mlv_dump

ea59b5b: raw2dng: fixed nonzero cold pixels like these:

ba7dc11: GPS: simplified the menu and cleaned up the code. Workaround limited to internal GPS only to keep things simple and robust.

df337bf: Merged in OtherOnePercent/backflow2/6D-GPS (pull request #449)
6D gps off at shutdown

0eeeeb3: Some text tweaks

c214a58: Some GPS changes

ec54392: Add the rest

89e4ce3: Add GPS.c/h

6003847: Internals text

c41c5f1: Lcase and add config_gps Todo: make it better

b7eb81b: Lcase it

6a22026: Nice up GPS shutdown

8931f49: Add GPS prop to 6D

1ecdf7d: Installer: 50D binary (confirmed by ayshih)

Build Log

d3725b9: Installer: 5D2 binary

Build Log

64f1d91: Merged in ayshih/magic-lantern-50d/cr2hdr-wb (pull request #453)
White balance fix for dual ISO

6d80ab6: cr2hdr: additional documentation on EXIF white balance approach

5c96812: cr2hdr: revised logic for reading EXIF white balance, plus informative output

289f08a: cr2hdr: tries harder to get EXIF white balance

c32aab8: chdk-dng: changed inputs on dng_set_wbgain from floats to ints

61011b9: cr2hdr: populating DNG with CR2 white balance information

Build Log

02c9af6: mlv_rec: use black level depending on camera model

Build Log

b63ed5b: mlv_rec: skip blocks with defect frame spacing field

9de7ca2: mlv_rec: reserve less buffers for CF as it will write smaller blocks of up to 16 MiB

15727f8: mlv_rec: fix remaining .mlv file on SD card when spanning was activated. renamed get_next_chunk_file_name() to mlv_rec_get_chunk_filename()

58a6bbe: mlv_rec: fix black level to 2048 by default. provide an option to mlv_dump to override black level for existing footage (--black-fix)

f37de3f: Merged in Marsu42/ml-pull/6d_setaudiovolumeout (pull request #454)
6d: SetAudioVolumeOut stub

e1dc9d2: 6d: SetAudioVolumeOut stub

8948978: Created new branch 6d_setaudiovolumeout

Build Log

0a81fc0: mlv_rec: removed test mode and specific code

6085b13: mlv_rec: fix prediction dot in debug mode

9cf0c79: mlv_rec: use safer string copy operations

e2392be: mlv_rec: change file handling to reduce overhead, write file header into all files before recording starts.

Build Log

c12cefd: 650D/700D: Cleanup some comments in internals.h

e12128f: 650D: We can control exp. sim. from ML

52cf44f: 650D: Enable Defishing and Anamorphic previews

Build Log

608fcd4: Merged in Audionut/documentation/features.html (pull request #451)
Remove incorrect references to Post Deflicker

c7b9484: Remove old reference to deflicker all_features.h

323ec12: Remove incorrect reference to Post Deflicker from features.html

Build Log

7731392: Merged in ayshih/magic-lantern-50d/dt (pull request #450)
DotTune fix for fixed scanning ranges

f3e97be: dot_tune: fixed control flow for different scan ranges

7abfc38: Created new branch dt

Build Log

aad1ee6: Merged in Pelican/7d203 (pull request #446)
7D.203 stubs update

f4c0b7f: 7D.203 typo

ae67de0: 7D.203 typo

c6deef7: 7D.203 stubs update

904ff4d: Properly cleanup 7D.203 installer files

45fc23a: Merge with unified

054e4f3: Stub checker: Make color support optional

81afd13: Add 1100D installation FIR

cf69ecb: 6D installer binary for 1.1.3

531f817: 7D installer: forgot to add dummy-master.c

Build Log

861147a: 700D gui.h more indent and spacing cleanups

ae29cd4: 700D internals details typo

9b13004: 700D Fix to internals details

4dddb39: 700D.113 Some cleanup on gui.h plus add full shutter press and unpress value

4037b69: 700D.113 Make internals.h match other ports plus enable Shutter Finetune, Reslock and EXPSim since they work.

8dcc96b: 700D.113 Cleaned up features.h and DEFISH and ANAMORPHIC work

Build Log

3e98bdd: 6D installer: fix RESTARTSTART and use 8.3 FIR name

b7eb9e1: Installer: fix 7D FIR

d04784f: 700D Add skip values to raw.c

Build Log

Build Log

463bafb: Installer: binary FIR for 700D.113 (confirmed by mk11174)

Build Log

Build Log


  1. Format the card from the camera.
  2. Make sure you are running Canon firmware 1.1.4 (downgrade if needed).
  3. Copy ML files on the card and run Firmware Update.


  1. Run Firmware Update from your ML card.
  2. Follow the on-screen instructions.

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.