diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index 76fb8b2e8..2ae02685e 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -1086,13 +1086,15 @@ static inline void push_back_audio(struct obs_encoder *encoder, struct audio_data *data, size_t size, size_t offset_size) { + if (offset_size >= size) + return; + size -= offset_size; /* push in to the circular buffer */ - if (size) - for (size_t i = 0; i < encoder->planes; i++) - circlebuf_push_back(&encoder->audio_input_buffer[i], - data->data[i] + offset_size, size); + for (size_t i = 0; i < encoder->planes; i++) + circlebuf_push_back(&encoder->audio_input_buffer[i], + data->data[i] + offset_size, size); } static inline size_t calc_offset_size(struct obs_encoder *encoder,