diff --git a/libobs/obs-output.c b/libobs/obs-output.c index 1f63f59ed..a68097051 100644 --- a/libobs/obs-output.c +++ b/libobs/obs-output.c @@ -2068,32 +2068,36 @@ static bool begin_delayed_capture(obs_output_t *output) static void reset_raw_output(obs_output_t *output) { - const struct audio_output_info *aoi = - audio_output_get_info(output->audio); - struct audio_convert_info conv = output->audio_conversion; - struct audio_convert_info info = { - aoi->samples_per_sec, - aoi->format, - aoi->speakers, - }; - clear_audio_buffers(output); - if (output->audio_conversion_set) { - if (conv.samples_per_sec) - info.samples_per_sec = conv.samples_per_sec; - if (conv.format != AUDIO_FORMAT_UNKNOWN) - info.format = conv.format; - if (conv.speakers != SPEAKERS_UNKNOWN) - info.speakers = conv.speakers; + if (output->audio) { + const struct audio_output_info *aoi = + audio_output_get_info(output->audio); + struct audio_convert_info conv = output->audio_conversion; + struct audio_convert_info info = { + aoi->samples_per_sec, + aoi->format, + aoi->speakers, + }; + + if (output->audio_conversion_set) { + if (conv.samples_per_sec) + info.samples_per_sec = conv.samples_per_sec; + if (conv.format != AUDIO_FORMAT_UNKNOWN) + info.format = conv.format; + if (conv.speakers != SPEAKERS_UNKNOWN) + info.speakers = conv.speakers; + } + + output->sample_rate = info.samples_per_sec; + output->planes = get_audio_planes(info.format, info.speakers); + output->total_audio_frames = 0; + output->audio_size = + get_audio_size(info.format, info.speakers, 1); } output->audio_start_ts = 0; output->video_start_ts = 0; - output->sample_rate = info.samples_per_sec; - output->planes = get_audio_planes(info.format, info.speakers); - output->total_audio_frames = 0; - output->audio_size = get_audio_size(info.format, info.speakers, 1); pause_reset(&output->pause); }