]> git.sesse.net Git - nageru/blobdiff - nageru/video_encoder.cpp
Make it possible to quit while SRT is not connected, although slowly.
[nageru] / nageru / video_encoder.cpp
index 4a84ddce1efe786a0f401b2d4e700f358c5482d5..ec96acc58d9c82e24bbb33338bb0dccdb4c2de43 100644 (file)
@@ -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) {