summaryrefslogtreecommitdiffstats
path: root/demux/timeline.h
diff options
context:
space:
mode:
Diffstat (limited to 'demux/timeline.h')
-rw-r--r--demux/timeline.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/demux/timeline.h b/demux/timeline.h
new file mode 100644
index 0000000000..e4d6f67953
--- /dev/null
+++ b/demux/timeline.h
@@ -0,0 +1,37 @@
+#ifndef MP_TIMELINE_H_
+#define MP_TIMELINE_H_
+
+struct timeline_part {
+ double start;
+ double source_start;
+ struct demuxer *source;
+};
+
+struct timeline {
+ struct mpv_global *global;
+ struct mp_log *log;
+
+ // main source
+ struct demuxer *demuxer;
+
+ // All referenced files. The source file must be at sources[0].
+ struct demuxer **sources;
+ int num_sources;
+
+ // Segments to play, ordered by time. parts[num_parts] must be valid; its
+ // start field sets the duration, and source must be NULL.
+ struct timeline_part *parts;
+ int num_parts;
+
+ struct demux_chapter *chapters;
+ int num_chapters;
+
+ // Which source defines the overall track list (over the full timeline).
+ struct demuxer *track_layout;
+};
+
+struct timeline *timeline_load(struct mpv_global *global, struct mp_log *log,
+ struct demuxer *demuxer);
+void timeline_destroy(struct timeline *tl);
+
+#endif