From 1b5d1adad07d9e70cc60b75999d565c0e98ca513 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 30 Jun 2019 20:30:17 +0200 Subject: recorder: use shared PTS macros These macros explicitly honor MP_NOPTS_VALUE, instead of implicitly relying on the fact that this value is the lowest allowed value. In addition, this changes one case to use MP_NOPTS_VALUE instead of INFINITY, also a cosmetic change. --- common/recorder.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'common') diff --git a/common/recorder.c b/common/recorder.c index 6b233d41bb..213caab6cb 100644 --- a/common/recorder.c +++ b/common/recorder.c @@ -28,8 +28,6 @@ #include "recorder.h" -#define PTS_ADD(a, b) ((a) == MP_NOPTS_VALUE ? (a) : ((a) + (b))) - // Maximum number of packets we buffer at most to attempt to resync streams. // Essentially, this should be higher than the highest supported keyframe // interval. @@ -198,10 +196,10 @@ static void mux_packet(struct mp_recorder_sink *rst, struct demux_packet mpkt = *pkt; double diff = priv->rebase_ts - priv->base_ts; - mpkt.pts = PTS_ADD(mpkt.pts, diff); - mpkt.dts = PTS_ADD(mpkt.dts, diff); + mpkt.pts = MP_ADD_PTS(mpkt.pts, diff); + mpkt.dts = MP_ADD_PTS(mpkt.dts, diff); - rst->max_out_pts = MPMAX(rst->max_out_pts, pkt->pts); + rst->max_out_pts = MP_PTS_MAX(rst->max_out_pts, pkt->pts); AVPacket avpkt; mp_set_av_packet(&avpkt, &mpkt, &rst->av_stream->time_base); @@ -254,13 +252,13 @@ static void check_restart(struct mp_recorder *priv) if (priv->muxing) return; - double min_ts = INFINITY; + double min_ts = MP_NOPTS_VALUE; double rebase_ts = 0; for (int n = 0; n < priv->num_streams; n++) { struct mp_recorder_sink *rst = priv->streams[n]; int min_packets = rst->sh->type == STREAM_VIDEO ? QUEUE_MIN_PACKETS : 1; - rebase_ts = MPMAX(rebase_ts, rst->max_out_pts); + rebase_ts = MP_PTS_MAX(rebase_ts, rst->max_out_pts); if (rst->num_packets < min_packets) { if (!rst->proper_eof && rst->sh->type != STREAM_SUB) @@ -269,11 +267,11 @@ static void check_restart(struct mp_recorder *priv) } for (int i = 0; i < min_packets; i++) - min_ts = MPMIN(min_ts, rst->packets[i]->pts); + min_ts = MP_PTS_MIN(min_ts, rst->packets[i]->pts); } // Subtitle only stream (wait longer) or stream without any PTS (fuck it). - if (!isfinite(min_ts)) + if (min_ts == MP_NOPTS_VALUE) return; priv->rebase_ts = rebase_ts; -- cgit v1.2.3