summaryrefslogtreecommitdiffstats
path: root/demux/demux.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-04-14 02:49:07 +0200
committerwm4 <wm4@nowhere>2013-04-20 23:28:23 +0200
commit8b017c73c4ac3d54bf4d16d8349059c1de4dbc36 (patch)
tree8c0f01a12a3215ff974cdfbbd1b715e749cbd30f /demux/demux.h
parentf989b6081b38d4b05e38ec879e0364694eb08152 (diff)
downloadmpv-8b017c73c4ac3d54bf4d16d8349059c1de4dbc36.tar.bz2
mpv-8b017c73c4ac3d54bf4d16d8349059c1de4dbc36.tar.xz
core: matroska: support concatenated segments
Matroska files can contain multiple segments, which are literally further Matroska files appended to the main file. They can be referenced by segment linking. While this is an extraordinarily useless and dumb feature, we support it for the hell of it. This is implemented by adding a further demuxer parameter for skipping segments. When scanning for linked segments, each file is opened multiple times, until there are no further segments found. Each segment will have a separate demuxer instance (with a separate file handle etc.). It appears the Matroska spec. has an even worse feature for segments: live streaming can completely reconfigure the stream by starting a new segment. We won't add support for it, because there are 0 people on this earth who think Matroska life streaming is a good idea. (As opposed to serving Matroska/WebM files via HTTP.)
Diffstat (limited to 'demux/demux.h')
-rw-r--r--demux/demux.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/demux/demux.h b/demux/demux.h
index c922dc8bb5..fb695e6a45 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -211,6 +211,8 @@ typedef struct demux_attachment
struct demuxer_params {
unsigned char (*matroska_wanted_uids)[16];
+ int matroska_wanted_segment;
+ bool *matroska_was_valid;
};
typedef struct demuxer {