60D - crashes when recording video

Issue #2627 new
Renārs Vilnis created an issue

For more then a half a year having the issue, that 60D most of the time crashes when starting video recording. As I don't film nowadays that much, though that might be just an issue with the nightly build, but as months have passed the error persists.

Found forum post that describes the same issue. Link

CRASH01.LOG

ASSERT: FALSE
at SoundDevice\SoundDevice_CODEC.c:1048, task ASIF
lv:1 mode:20

Magic Lantern version : Nightly.2016Apr13.60D111
Mercurial changeset   : 598036c017f7 (unified) tip
Built on 2016-04-12 22:14:48 UTC by jenkins@magiclantern.fm.
Free Memory  : 319K + 1798K

ML/SETTINGS/magic.cfg

# Magic Lantern Nightly.2016Apr13.60D111 (598036c017f7 (unified) tip)
# Built on 2016-04-12 22:14:48 UTC by jenkins@magiclantern.fm
# Configuration saved on 2016/10/30 13:52:05
beta.warn = 30
menu.first = -3
h264.bitrate-factor = 14
lv.peak = 2
iso.smooth = 1
bv.av = 68
bv.tv = 101
bv.iso = 72
rec.notify = 3
screen_layout.ext = 2
shutter.lock.value = 101
movie.rec-key = 1
movie.restart = 1
interval.time = 0
interval.trigger = 2
hdr.seq = 0
hdr.delay = 0
hdr.ev_spacing = 8
hdr.frames = 3
hdrv.iso.b = 96
digic.zerosharp = 1
battery.drain.rate.rev = 229
hist.draw = 0
audio.mgain = 2
audio.monitoring = 0
audio.input-choice = 0
audio.lovl = 3
display.dont.mirror = 0
clear.preview = 1
focus.peaking = 1
global.draw = 1
disp.mode.x = 323

Comments (13)

  1. gaulpordon

    I made this stop happening by disabling beeps in the audio menu. Square seems to crash with error 70, set to sine it starts recording and stops straight away. I found it best to just disable it for now.

  2. Renārs Vilnis reporter

    @gaulpordon Hmm will try it out

    EDIT Turning sound type to sin didn't seem to help, but turning beep off seemed to fix it

  3. Rafael Ferrari

    Hi Alex,

    I believe this is related to audio_meters. My 500D also crash at SoundDevice\SoundDevice_CODEC.c every time while recording videos, so I created this patch to hide Audio Meters while recording, but still show in Audio menu. Works for now, no more SoundDevice_CODEC crash, no need to disable overlays or beeps. Yes, this is not elegant, but may be a good idea to disable to avoid instability on selected models. Can you test, please?

    audio-common.c

    Routine: audio_meters_are_drawn_common() Changed: If 500D, only show audio_meters in Audio menu (will not show while recording)

    Routine: audio_common_task Changed: Not compute audio levels if audio_meters are not shown (Important to avoid unnecessary audio hardware access)

    --- src/audio-common.orig.c 2018-06-01 17:50:30.343132126 -0300
    +++ src/audio-common.c  2018-06-01 18:08:03.743893154 -0300
    @@ -308,11 +308,15 @@
         {
             return is_menu_active("Audio");
         }
         else
         {
    +        #if defined(CONFIG_500D)
    +        return 0;
    +        #else
             return is_movie_mode() && do_draw_meters && zebra_should_run() && !get_halfshutter_pressed();
    +        #endif
         }
     #else
         return 0;
     #endif
     }
    @@ -503,17 +507,20 @@
         int meters_slept_times = 0;
    
         TASK_LOOP
         {
             msleep(MIN_MSLEEP);
    -        int meters_sleep_cycles = (DISPLAY_IS_ON ? (50/MIN_MSLEEP) : (500/MIN_MSLEEP));
    -        meters_slept_times++;
    -        compute_audio_levels(0);
    -        compute_audio_levels(1);
    -        if(meters_slept_times >= meters_sleep_cycles) {
    -            reconfig_audio = audio_meters_step(reconfig_audio);
    -            meters_slept_times = 0;
    +        if (audio_meters_are_drawn())
    +        {
    +           int meters_sleep_cycles = (DISPLAY_IS_ON ? (50/MIN_MSLEEP) : (500/MIN_MSLEEP));
    +           meters_slept_times++;
    +           compute_audio_levels(0);
    +           compute_audio_levels(1);
    +           if(meters_slept_times >= meters_sleep_cycles) {
    +               reconfig_audio = audio_meters_step(reconfig_audio);
    +               meters_slept_times = 0;
    +           }
             }
         }
    
     }
    

    Change CONFIG_500D to your camera model. Thanks.

  4. Alex

    Thanks, will check. The original report is about 60D; however, the 500D is known to crash with this message by... drawing too fast on the screen (issue #1468).

    Back then, I've managed to crash the 500D with a simple loop that was drawing random pixels on the screen, from the minimal target (with no other ML code). Will try to reproduce and add it to selftest.mo.

    I wasn't able to reproduce the crash on 60D yet, but didn't try too hard; your patch has a good hint.

  5. Log in to comment