X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fvideo_encoder.cpp;h=ec96acc58d9c82e24bbb33338bb0dccdb4c2de43;hb=8acd52c4ad9cd890bc689601775255e55912783f;hp=4a84ddce1efe786a0f401b2d4e700f358c5482d5;hpb=d20534ce9ba195aa21291debc74ba13c6772042c;p=nageru diff --git a/nageru/video_encoder.cpp b/nageru/video_encoder.cpp index 4a84ddc..ec96acc 100644 --- a/nageru/video_encoder.cpp +++ b/nageru/video_encoder.cpp @@ -114,6 +114,7 @@ VideoEncoder::VideoEncoder(ResourcePool *resource_pool, QSurface *surface, const VideoEncoder::~VideoEncoder() { + should_quit = true; quicksync_encoder->shutdown(); x264_encoder.reset(nullptr); x264_disk_encoder.reset(nullptr); @@ -405,7 +406,7 @@ int VideoEncoder::write_srt_packet(uint8_t *buf, int buf_size) if (want_srt_metric_update.exchange(false) && srt_sock != -1) { srt_metrics.update_srt_stats(srt_sock); } - while (buf_size > 0) { + while (buf_size > 0 && !should_quit.load()) { if (srt_sock == -1) { srt_sock = connect_to_srt(); if (srt_sock == -1) {