]> git.sesse.net Git - nageru/blobdiff - mux.h
Synchronize the Mux class, since both H264EncoderImpl and X264Encoder are writing...
[nageru] / mux.h
diff --git a/mux.h b/mux.h
index 2eb8eeaa45f1472f471488736b9638ce382b2407..d645916d758c1fa9435cbb39e8fc135b9aaad721 100644 (file)
--- a/mux.h
+++ b/mux.h
@@ -9,6 +9,8 @@ extern "C" {
 #include <libavformat/avio.h>
 }
 
+#include <mutex>
+
 class KeyFrameSignalReceiver {
 public:
        // Needs to automatically turn the flag off again after actually receiving data.
@@ -28,7 +30,8 @@ public:
        void add_packet(const AVPacket &pkt, int64_t pts, int64_t dts);
 
 private:
-       AVFormatContext *avctx;
+       std::mutex ctx_mu;
+       AVFormatContext *avctx;  // Protected by <ctx_mu>.
        AVStream *avstream_video, *avstream_audio;
        KeyFrameSignalReceiver *keyframe_signal_receiver;
 };