]> git.sesse.net Git - nageru/blobdiff - video_encoder.cpp
Update the queue length metric after trimming, not before.
[nageru] / video_encoder.cpp
index b7e36bd7620de732364b839125175c093e4da447..a622ba2af6640425d72dc5a72de44b4cc8f218e3 100644 (file)
@@ -40,7 +40,8 @@ string generate_local_dump_filename(int frame)
        // Use the frame number to disambiguate between two cuts starting
        // on the same second.
        char filename[256];
-       snprintf(filename, sizeof(filename), "%s%s-f%02d%s",
+       snprintf(filename, sizeof(filename), "%s/%s%s-f%02d%s",
+               global_flags.recording_dir.c_str(),
                LOCAL_DUMP_PREFIX, timestamp, frame % 100, LOCAL_DUMP_SUFFIX);
        return filename;
 }
@@ -140,6 +141,12 @@ void VideoEncoder::add_audio(int64_t pts, std::vector<float> audio)
        stream_audio_encoder->encode_audio(audio, pts + quicksync_encoder->global_delay());
 }
 
+bool VideoEncoder::is_zerocopy() const
+{
+       lock_guard<mutex> lock(qs_mu);
+       return quicksync_encoder->is_zerocopy();
+}
+
 bool VideoEncoder::begin_frame(int64_t pts, int64_t duration, movit::YCbCrLumaCoefficients ycbcr_coefficients, const std::vector<RefCountedFrame> &input_frames, GLuint *y_tex, GLuint *cbcr_tex)
 {
        lock_guard<mutex> lock(qs_mu);
@@ -179,7 +186,8 @@ void VideoEncoder::open_output_stream()
 
        int time_base = global_flags.stream_coarse_timebase ? COARSE_TIMEBASE : TIMEBASE;
        stream_mux.reset(new Mux(avctx, width, height, video_codec, video_extradata, stream_audio_encoder->get_codec_parameters().get(), time_base,
-               /*write_callback=*/nullptr));
+               /*write_callback=*/nullptr, { &stream_mux_metrics }));
+       stream_mux_metrics.init({{ "destination", "http" }});
 }
 
 int VideoEncoder::write_packet2_thunk(void *opaque, uint8_t *buf, int buf_size, AVIODataMarkerType type, int64_t time)