diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 172689372f..0d414292b2 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -320,11 +320,11 @@ static void trigger_listener(int trigger_status) case TRIG_GO: if((audio_status() & AUDIO_STATUS_RECORD) != AUDIO_STATUS_RECORD) { - talk_buffer_steal(); /* we use the mp3 buffer */ - audio_record(rec_create_filename(path_buffer)); + talk_buffer_steal(); /* we use the mp3 buffer */ + audio_record(rec_create_filename(path_buffer)); - /* give control to mpeg thread so that it can start recording */ - yield(); yield(); yield(); + /* give control to mpeg thread so that it can start recording*/ + yield(); yield(); yield(); } /* if we're already recording this is a retrigger */ @@ -567,7 +567,9 @@ bool recording_screen(void) #endif peak_meter_enabled = true; +#if CONFIG_CODEC != SWCODEC if (global_settings.rec_prerecord_time) +#endif talk_buffer_steal(); /* will use the mp3 buffer */ audio_set_recording_options(global_settings.rec_frequency, @@ -905,7 +907,9 @@ bool recording_screen(void) } settings_save(); +#if CONFIG_CODEC != SWCODEC if (global_settings.rec_prerecord_time) +#endif talk_buffer_steal(); /* will use the mp3 buffer */ audio_set_recording_options(global_settings.rec_frequency, diff --git a/firmware/pcm_record.c b/firmware/pcm_record.c index 8805e73157..8d34b345c8 100644 --- a/firmware/pcm_record.c +++ b/firmware/pcm_record.c @@ -820,8 +820,8 @@ static void pcmrec_init(void) is_paused = false; is_error = false; - rec_buffer = (unsigned char*)(((unsigned long)audiobuf) & ~3); - buffer_size = (long)audiobufend - (long)audiobuf - 16; + rec_buffer = (unsigned char*)(((unsigned long)audiobuf + talk_get_bufsize()) & ~3); + buffer_size = (long)audiobufend - (long)audiobuf - talk_get_bufsize() - 16; logf("buf size: %d kb", buffer_size/1024);