From 771bd8404d289d433586fdf25c02ebb4e812623e Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Wed, 13 Nov 2019 16:04:16 +0100 Subject: [PATCH] Do not write invalid packet duration Configuration packets have no PTS. Do not compute a packet duration from their PTS. Fixes recording to mp4 on device rotation. --- app/src/recorder.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/recorder.c b/app/src/recorder.c index c09e21ae..f6f6fd96 100644 --- a/app/src/recorder.c +++ b/app/src/recorder.c @@ -301,8 +301,12 @@ run_recorder(void *data) { continue; } - // we now know the duration of the previous packet - previous->packet.duration = rec->packet.pts - previous->packet.pts; + // config packets have no PTS, we must ignore them + if (rec->packet.pts != AV_NOPTS_VALUE + && previous->packet.pts != AV_NOPTS_VALUE) { + // we now know the duration of the previous packet + previous->packet.duration = rec->packet.pts - previous->packet.pts; + } bool ok = recorder_write(recorder, &previous->packet); record_packet_delete(previous);