]> git.sesse.net Git - nageru/blobdiff - alsa_input.cpp
Rework the audio/video sync algorithm.
[nageru] / alsa_input.cpp
index 158bfaa32e0e914d50a1a29efe52a6cec5fb7bd3..0d6901423b17085d65459708385a5fcb055218a4 100644 (file)
@@ -12,6 +12,7 @@
 #include "timebase.h"
 
 using namespace std;
+using namespace std::chrono;
 using namespace std::placeholders;
 
 #define RETURN_ON_ERROR(msg, expr) do {                                                    \
@@ -243,10 +244,11 @@ ALSAInput::CaptureEndReason ALSAInput::do_capture()
 
                const int64_t prev_pts = frames_to_pts(num_frames_output);
                const int64_t pts = frames_to_pts(num_frames_output + frames);
+               const steady_clock::time_point now = steady_clock::now();
                bool success;
                do {
                        if (should_quit) return CaptureEndReason::REQUESTED_QUIT;
-                       success = audio_callback(buffer.get(), frames, audio_format, pts - prev_pts);
+                       success = audio_callback(buffer.get(), frames, audio_format, pts - prev_pts, now);
                } while (!success);
                num_frames_output += frames;
        }