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.
This commit is contained in:
Romain Vimont 2019-11-13 16:04:16 +01:00
parent af3027a85b
commit 771bd8404d

View file

@ -301,8 +301,12 @@ run_recorder(void *data) {
continue; continue;
} }
// we now know the duration of the previous packet // config packets have no PTS, we must ignore them
previous->packet.duration = rec->packet.pts - previous->packet.pts; 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); bool ok = recorder_write(recorder, &previous->packet);
record_packet_delete(previous); record_packet_delete(previous);