diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2023-01-27 15:06:00 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-02-09 15:24:15 +0100 |
commit | 59c9dc82f450638a3068deeb1db5c56f6d155752 (patch) | |
tree | 936dabca4a3e593553f6e0c8409e530111c99c0c /libavformat/segment.c | |
parent | f23ae839fc184c4492e10f371cde5c1b55e51522 (diff) | |
download | ffmpeg-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.c | 29 |
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 |