summaryrefslogtreecommitdiff
path: root/libavformat/segment.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2023-01-27 15:06:00 +0100
committerAnton Khirnov <anton@khirnov.net>2023-02-09 15:24:15 +0100
commit59c9dc82f450638a3068deeb1db5c56f6d155752 (patch)
tree936dabca4a3e593553f6e0c8409e530111c99c0c /libavformat/segment.c
parentf23ae839fc184c4492e10f371cde5c1b55e51522 (diff)
downloadffmpeg-59c9dc82f450638a3068deeb1db5c56f6d155752.tar.gz
avformat/avformat: Move AVOutputFormat internals out of public header
This commit does for AVOutputFormat what commit 20f972701806be20a77f808db332d9489343bb78 did for AVCodec: It adds a new type FFOutputFormat, moves all the internals of AVOutputFormat to it and adds a now reduced AVOutputFormat as first member. This does not affect/improve extensibility of both public or private fields for muxers (it is still a mess due to lavd). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavformat/segment.c')
-rw-r--r--libavformat/segment.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 80e4bf851c..eb629b342c 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -976,7 +976,8 @@ calc_times:
av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &st->time_base));
ret = ff_write_chained(seg->avf, pkt->stream_index, pkt, s,
- seg->initial_offset || seg->reset_timestamps || seg->avf->oformat->interleave_packet);
+ seg->initial_offset || seg->reset_timestamps ||
+ ffofmt(seg->avf->oformat)->interleave_packet);
fail:
/* Use st->index here as the packet returned from ff_write_chained()
@@ -1016,9 +1017,9 @@ static int seg_check_bitstream(AVFormatContext *s, AVStream *st,
{
SegmentContext *seg = s->priv_data;
AVFormatContext *oc = seg->avf;
- if (oc->oformat->check_bitstream) {
+ if (ffofmt(oc->oformat)->check_bitstream) {
AVStream *const ost = oc->streams[st->index];
- int ret = oc->oformat->check_bitstream(oc, ost, pkt);
+ int ret = ffofmt(oc->oformat)->check_bitstream(oc, ost, pkt);
if (ret == 1) {
FFStream *const sti = ffstream(st);
FFStream *const osti = ffstream(ost);
@@ -1085,33 +1086,33 @@ static const AVClass seg_class = {
};
#if CONFIG_SEGMENT_MUXER
-const AVOutputFormat ff_segment_muxer = {
- .name = "segment",
- .long_name = NULL_IF_CONFIG_SMALL("segment"),
+const FFOutputFormat ff_segment_muxer = {
+ .p.name = "segment",
+ .p.long_name = NULL_IF_CONFIG_SMALL("segment"),
+ .p.flags = AVFMT_NOFILE|AVFMT_GLOBALHEADER,
+ .p.priv_class = &seg_class,
.priv_data_size = sizeof(SegmentContext),
- .flags = AVFMT_NOFILE|AVFMT_GLOBALHEADER,
.init = seg_init,
.write_header = seg_write_header,
.write_packet = seg_write_packet,
.write_trailer = seg_write_trailer,
.deinit = seg_free,
.check_bitstream = seg_check_bitstream,
- .priv_class = &seg_class,
};
#endif
#if CONFIG_STREAM_SEGMENT_MUXER
-const 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,
+const FFOutputFormat ff_stream_segment_muxer = {
+ .p.name = "stream_segment,ssegment",
+ .p.long_name = NULL_IF_CONFIG_SMALL("streaming segment muxer"),
+ .p.flags = AVFMT_NOFILE,
+ .p.priv_class = &seg_class,
+ .priv_data_size = sizeof(SegmentContext),
.init = seg_init,
.write_header = seg_write_header,
.write_packet = seg_write_packet,
.write_trailer = seg_write_trailer,
.deinit = seg_free,
.check_bitstream = seg_check_bitstream,
- .priv_class = &seg_class,
};
#endif