From 5d6ba6daaffcddb3aaf1e3c39f80ab4447c0e074 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Thu, 13 Apr 2023 00:46:54 +0200 Subject: [PATCH] Add some asserts to track down pts/dts problems before we get crashes back from FFmpeg way down the chain. --- nageru/quicksync_encoder.cpp | 1 + shared/mux.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/nageru/quicksync_encoder.cpp b/nageru/quicksync_encoder.cpp index 3e53cf3..75b13b8 100644 --- a/nageru/quicksync_encoder.cpp +++ b/nageru/quicksync_encoder.cpp @@ -1349,6 +1349,7 @@ void QuickSyncEncoderImpl::save_codeddata(GLSurface *surf, storage_task task) // this is weird. but it seems to put a new frame onto the queue void QuickSyncEncoderImpl::storage_task_enqueue(storage_task task) { + assert(task.pts >= task.dts); lock_guard lock(storage_task_queue_mutex); storage_task_queue.push(move(task)); storage_task_queue_changed.notify_all(); diff --git a/shared/mux.cpp b/shared/mux.cpp index 2130752..9216055 100644 --- a/shared/mux.cpp +++ b/shared/mux.cpp @@ -164,6 +164,8 @@ Mux::~Mux() void Mux::add_packet(const AVPacket &pkt, int64_t pts, int64_t dts, AVRational timebase, int stream_index_override) { + assert(pts >= dts); + AVPacket pkt_copy; av_init_packet(&pkt_copy); if (av_packet_ref(&pkt_copy, &pkt) < 0) { -- 2.39.2