aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/segment.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2012-01-13 15:38:13 +0100
committerStefano Sabatini <stefasab@gmail.com>2012-06-29 17:03:25 +0200
commita9a7e215e5207e674338b7ca9eb74e96ae5faf99 (patch)
treee308a84a4bb963dc301bb0c9af2d722c9c3bdd8f /libavformat/segment.c
parent3cd4f9fd76d626f3168393b55549440a2cb8e716 (diff)
downloadffmpeg-a9a7e215e5207e674338b7ca9eb74e96ae5faf99.tar.gz
lavf/segment: add stream_segment variant of the segment muxer
This simplifies usage for segment streaming formats with no global headers, tipically MPEG 2 transport stream "ts" files. The seg class duplication is required in order to avoid an infinite loop in libavformat/utils.c:format_child_next_class().
Diffstat (limited to 'libavformat/segment.c')
-rw-r--r--libavformat/segment.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 4a33c6588e..19d8855c57 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -269,7 +269,6 @@ static const AVClass seg_class = {
.version = LIBAVUTIL_VERSION_INT,
};
-
AVOutputFormat ff_segment_muxer = {
.name = "segment",
.long_name = NULL_IF_CONFIG_SMALL("segment muxer"),
@@ -280,3 +279,21 @@ AVOutputFormat ff_segment_muxer = {
.write_trailer = seg_write_trailer,
.priv_class = &seg_class,
};
+
+static const AVClass sseg_class = {
+ .class_name = "stream_segment muxer",
+ .item_name = av_default_item_name,
+ .option = options,
+ .version = LIBAVUTIL_VERSION_INT,
+};
+
+AVOutputFormat ff_stream_segment_muxer = {
+ .name = "stream_segment,ssegment",
+ .long_name = NULL_IF_CONFIG_SMALL("streaming segment muxer"),
+ .priv_data_size = sizeof(SegmentContext),
+ .flags = AVFMT_NOFILE,
+ .write_header = seg_write_header,
+ .write_packet = seg_write_packet,
+ .write_trailer = seg_write_trailer,
+ .priv_class = &sseg_class,
+};