lavf/mux: add the flush_packets option.
Note: a lot of muxers already do the flushing explicitly.
This commit is contained in:
parent
125acd2152
commit
4f112a8e34
@ -151,6 +151,11 @@ been without shifting.
|
|||||||
|
|
||||||
Also note that this affects only leading negative timestamps, and not
|
Also note that this affects only leading negative timestamps, and not
|
||||||
non-monotonic negative timestamps.
|
non-monotonic negative timestamps.
|
||||||
|
|
||||||
|
@item flush_packets @var{integer} (@emph{output})
|
||||||
|
Flush the underlying I/O stream after each packet. Default 1 enables it, and
|
||||||
|
has the effect of reducing the latency; 0 disables it and may slightly
|
||||||
|
increase performance in some cases.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@c man end FORMAT OPTIONS
|
@c man end FORMAT OPTIONS
|
||||||
|
@ -1213,6 +1213,13 @@ typedef struct AVFormatContext {
|
|||||||
*/
|
*/
|
||||||
int seek2any;
|
int seek2any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flush the I/O context after each packet.
|
||||||
|
* - encoding: Set by user via AVOptions (NO direct access)
|
||||||
|
* - decoding: unused
|
||||||
|
*/
|
||||||
|
int flush_packets;
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
* All fields below this line are not part of the public API. They
|
* All fields below this line are not part of the public API. They
|
||||||
* may not be used outside of libavformat and can be changed and
|
* may not be used outside of libavformat and can be changed and
|
||||||
|
@ -494,6 +494,8 @@ static inline int split_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
|
|
||||||
did_split = av_packet_split_side_data(pkt);
|
did_split = av_packet_split_side_data(pkt);
|
||||||
ret = s->oformat->write_packet(s, pkt);
|
ret = s->oformat->write_packet(s, pkt);
|
||||||
|
if (s->flush_packets && s->pb && s->pb->error >= 0)
|
||||||
|
avio_flush(s->pb);
|
||||||
if (did_split)
|
if (did_split)
|
||||||
av_packet_merge_side_data(pkt);
|
av_packet_merge_side_data(pkt);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -75,6 +75,7 @@ static const AVOption options[]={
|
|||||||
{"avoid_negative_ts", "shift timestamps to make them positive. 1 enables, 0 disables, default of -1 enables when required by target format.", OFFSET(avoid_negative_ts), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, E},
|
{"avoid_negative_ts", "shift timestamps to make them positive. 1 enables, 0 disables, default of -1 enables when required by target format.", OFFSET(avoid_negative_ts), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, E},
|
||||||
{"skip_initial_bytes", "skip initial bytes", OFFSET(skip_initial_bytes), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX-1, D},
|
{"skip_initial_bytes", "skip initial bytes", OFFSET(skip_initial_bytes), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX-1, D},
|
||||||
{"correct_ts_overflow", "correct single timestamp overflows", OFFSET(correct_ts_overflow), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, D},
|
{"correct_ts_overflow", "correct single timestamp overflows", OFFSET(correct_ts_overflow), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, D},
|
||||||
|
{"flush_packets", "enable flushing of the I/O context after each packet", OFFSET(flush_packets), AV_OPT_TYPE_INT, {.i64 = 1}, 0, 1, E},
|
||||||
{NULL},
|
{NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user