summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-05-31 14:47:18 +0200
committerwm4 <wm4@nowhere>2019-09-19 20:37:05 +0200
commit6646e82daaad4b9febe3b3ae4fd77f573d309cd8 (patch)
treec96ae3ce69563f2bff234e31cd3676c9998993cb
parent7d3bdb91da4a74ff22fa34c9b0098c56ea165485 (diff)
downloadmpv-6646e82daaad4b9febe3b3ae4fd77f573d309cd8.tar.bz2
mpv-6646e82daaad4b9febe3b3ae4fd77f573d309cd8.tar.xz
demux: move timestamp helper macros to common.h
These are probably generally useful.
-rw-r--r--common/common.h8
-rw-r--r--demux/demux.c16
2 files changed, 12 insertions, 12 deletions
diff --git a/common/common.h b/common/common.h
index dfb2ba7b7a..de4c751baf 100644
--- a/common/common.h
+++ b/common/common.h
@@ -44,6 +44,14 @@
#define MP_ALIGN_UP(x, align) (((x) + (align) - 1) & ~((align) - 1))
#define MP_ALIGN_DOWN(x, align) ((x) & ~((align) - 1))
+// Return "a", or if that is NOPTS, return "def".
+#define MP_PTS_OR_DEF(a, def) ((a) == MP_NOPTS_VALUE ? (def) : (a))
+// If one of the values is NOPTS, always pick the other one.
+#define MP_PTS_MIN(a, b) MPMIN(MP_PTS_OR_DEF(a, b), MP_PTS_OR_DEF(b, a))
+#define MP_PTS_MAX(a, b) MPMAX(MP_PTS_OR_DEF(a, b), MP_PTS_OR_DEF(b, a))
+// Return a+b, unless a is NOPTS. b must not be NOPTS.
+#define MP_ADD_PTS(a, b) ((a) == MP_NOPTS_VALUE ? (a) : ((a) + (b)))
+
#define CONTROL_OK 1
#define CONTROL_TRUE 1
#define CONTROL_FALSE 0
diff --git a/demux/demux.c b/demux/demux.c
index bd62e6f0ef..9cbc88cf62 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -385,14 +385,6 @@ struct mp_packet_tags {
struct mp_tags *sh; // per sh_stream tags (e.g. OGG)
};
-// Return "a", or if that is NOPTS, return "def".
-#define PTS_OR_DEF(a, def) ((a) == MP_NOPTS_VALUE ? (def) : (a))
-// If one of the values is NOPTS, always pick the other one.
-#define MP_PTS_MIN(a, b) MPMIN(PTS_OR_DEF(a, b), PTS_OR_DEF(b, a))
-#define MP_PTS_MAX(a, b) MPMAX(PTS_OR_DEF(a, b), PTS_OR_DEF(b, a))
-
-#define MP_ADD_PTS(a, b) ((a) == MP_NOPTS_VALUE ? (a) : ((a) + (b)))
-
static void demuxer_sort_chapters(demuxer_t *demuxer);
static void *demux_thread(void *pctx);
static void update_cache(struct demux_internal *in);
@@ -1260,7 +1252,7 @@ static void perform_backward_seek(struct demux_internal *in)
target = MP_PTS_MIN(target, ds->back_seek_pos);
}
- target = PTS_OR_DEF(target, in->d_thread->start_time);
+ target = MP_PTS_OR_DEF(target, in->d_thread->start_time);
MP_VERBOSE(in, "triggering backward seek to get more packets\n");
queue_seek(in, target, SEEK_SATAN | SEEK_HR, false);
@@ -1764,7 +1756,7 @@ static void adjust_seek_range_on_packet(struct demux_stream *ds,
if (dp) {
dp->kf_seek_pts = MP_NOPTS_VALUE;
- double ts = PTS_OR_DEF(dp->pts, dp->dts);
+ double ts = MP_PTS_OR_DEF(dp->pts, dp->dts);
if (dp->segmented && (ts < dp->start || ts > dp->end))
ts = MP_NOPTS_VALUE;
@@ -2340,7 +2332,7 @@ static int dequeue_packet(struct demux_stream *ds, struct demux_packet **res)
ds->back_seek_pos = MP_PTS_MIN(ds->back_seek_pos, pkt->pts);
}
- double ts = PTS_OR_DEF(pkt->dts, pkt->pts);
+ double ts = MP_PTS_OR_DEF(pkt->dts, pkt->pts);
if (ts != MP_NOPTS_VALUE)
ds->base_ts = ts;
@@ -3168,7 +3160,7 @@ static void execute_cache_seek(struct demux_internal *in,
ds->reader_head = target;
ds->skip_to_keyframe = !target;
if (ds->reader_head)
- ds->base_ts = PTS_OR_DEF(ds->reader_head->pts, ds->reader_head->dts);
+ ds->base_ts = MP_PTS_OR_DEF(ds->reader_head->pts, ds->reader_head->dts);
recompute_buffers(ds);
in->fw_bytes += ds->fw_bytes;