From 40639263a6782d2d515d7bd626a9e4ff6c1ea870 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 23 Dec 2016 14:54:12 +0100 Subject: [PATCH] Fix a bug where we would give wrong pts to the QuickSync encoder. --- quicksync_encoder.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/quicksync_encoder.cpp b/quicksync_encoder.cpp index 6537380..284b67a 100644 --- a/quicksync_encoder.cpp +++ b/quicksync_encoder.cpp @@ -1759,6 +1759,8 @@ void QuickSyncEncoderImpl::encode_thread_func() if (!reorder_buffer.count(quicksync_display_frame_num)) { break; } + frame = move(reorder_buffer[quicksync_display_frame_num]); + reorder_buffer.erase(quicksync_display_frame_num); if (frame_type == FRAME_IDR) { numShortTerm = 0; @@ -1776,8 +1778,7 @@ void QuickSyncEncoderImpl::encode_thread_func() } last_dts = dts; - encode_frame(reorder_buffer[quicksync_display_frame_num], quicksync_encoding_frame_num, quicksync_display_frame_num, gop_start_display_frame_num, frame_type, frame.pts, dts, frame.duration); - reorder_buffer.erase(quicksync_display_frame_num); + encode_frame(frame, quicksync_encoding_frame_num, quicksync_display_frame_num, gop_start_display_frame_num, frame_type, frame.pts, dts, frame.duration); ++quicksync_encoding_frame_num; } } -- 2.39.5