diff --git a/plugins/obs-outputs/rtmp-stream.c b/plugins/obs-outputs/rtmp-stream.c index 7c1eeb4388483189bd1b23eded07721d4ff71562..3b214113d34e781e4b9c0495107572901e921355 100644 --- a/plugins/obs-outputs/rtmp-stream.c +++ b/plugins/obs-outputs/rtmp-stream.c @@ -89,10 +89,17 @@ static void log_rtmp(int level, const char *format, va_list args) blogva(LOG_INFO, format, args); } +static inline size_t num_buffered_packets(struct rtmp_stream *stream); + static inline void free_packets(struct rtmp_stream *stream) { + size_t num_packets; + pthread_mutex_lock(&stream->packets_mutex); + num_packets = num_buffered_packets(stream); + info("Freeing %d remaining packets", (int)num_packets); + while (stream->packets.size) { struct encoder_packet packet; circlebuf_pop_front(&stream->packets, &packet, sizeof(packet));