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().
This commit is contained in:
Stefano Sabatini
2012-01-13 15:38:13 +01:00
parent 3cd4f9fd76
commit a9a7e215e5
3 changed files with 21 additions and 3 deletions

View File

@@ -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,
};