@@ -801,5 +801,5 @@ const FFOutputFormat ff_pulse_muxer = {
.p.flags = AVFMT_NOFILE,
#endif
.p.priv_class = &pulse_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -728,5 +728,5 @@ const FFOutputFormat ff_fifo_muxer = {
.write_packet = fifo_write_packet,
.write_trailer = fifo_write_trailer,
.deinit = fifo_deinit,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -3205,7 +3205,7 @@ const FFOutputFormat ff_hls_muxer = {
.p.flags = AVFMT_NOFILE | AVFMT_GLOBALHEADER | AVFMT_NODIMENSIONS,
#endif
.p.priv_class = &hls_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
.priv_data_size = sizeof(HLSContext),
.init = hls_init,
.write_header = hls_write_header,
@@ -3569,7 +3569,7 @@ const FFOutputFormat ff_matroska_muxer = {
.query_codec = mkv_query_codec,
.check_bitstream = mkv_check_bitstream,
.p.priv_class = &matroska_webm_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -3606,7 +3606,7 @@ const FFOutputFormat ff_webm_muxer = {
AVFMT_TS_NONSTRICT,
#endif
.p.priv_class = &matroska_webm_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -3636,6 +3636,6 @@ const FFOutputFormat ff_matroska_audio_muxer = {
ff_codec_wav_tags, additional_audio_tags, 0
},
.p.priv_class = &matroska_webm_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -8239,7 +8239,7 @@ const FFOutputFormat ff_mov_muxer = {
},
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_TGP_MUXER
@@ -8263,7 +8263,7 @@ const FFOutputFormat ff_tgp_muxer = {
.p.codec_tag = codec_3gp_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_MP4_MUXER
@@ -8289,7 +8289,7 @@ const FFOutputFormat ff_mp4_muxer = {
.p.codec_tag = mp4_codec_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_PSP_MUXER
@@ -8314,7 +8314,7 @@ const FFOutputFormat ff_psp_muxer = {
.p.codec_tag = mp4_codec_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_TG2_MUXER
@@ -8338,7 +8338,7 @@ const FFOutputFormat ff_tg2_muxer = {
.p.codec_tag = codec_3gp_tags_list,
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_IPOD_MUXER
@@ -8363,7 +8363,7 @@ const FFOutputFormat ff_ipod_muxer = {
.p.codec_tag = (const AVCodecTag* const []){ codec_ipod_tags, 0 },
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_ISMV_MUXER
@@ -8389,7 +8389,7 @@ const FFOutputFormat ff_ismv_muxer = {
codec_mp4_tags, codec_ism_tags, 0 },
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_F4V_MUXER
@@ -8414,7 +8414,7 @@ const FFOutputFormat ff_f4v_muxer = {
.p.codec_tag = (const AVCodecTag* const []){ codec_f4v_tags, 0 },
.check_bitstream = mov_check_bitstream,
.p.priv_class = &mov_isobmff_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
#if CONFIG_AVIF_MUXER
@@ -8437,6 +8437,6 @@ const FFOutputFormat ff_avif_muxer = {
#endif
.p.codec_tag = codec_avif_tags_list,
.p.priv_class = &mov_avif_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -2415,6 +2415,6 @@ const FFOutputFormat ff_mpegts_muxer = {
#else
.p.flags = AVFMT_VARIABLE_FPS | AVFMT_NODIMENSIONS,
#endif
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
.p.priv_class = &mpegts_muxer_class,
};
@@ -1208,10 +1208,10 @@ int av_write_frame(AVFormatContext *s, AVPacket *in)
if (!in) {
#if FF_API_ALLOW_FLUSH || LIBAVFORMAT_VERSION_MAJOR >= 61
// Hint: The pulse audio output device has this set,
- // so we can't switch the check to FF_FMT_ALLOW_FLUSH immediately.
+ // so we can't switch the check to FF_OFMT_FLAG_ALLOW_FLUSH immediately.
if (s->oformat->flags & AVFMT_ALLOW_FLUSH) {
#else
- if (ffofmt(s->oformat)->flags_internal & FF_FMT_ALLOW_FLUSH) {
+ if (ffofmt(s->oformat)->flags_internal & FF_OFMT_FLAG_ALLOW_FLUSH) {
#endif
ret = ffofmt(s->oformat)->write_packet(s, NULL);
flush_if_needed(s);
@@ -27,7 +27,15 @@
struct AVDeviceInfoList;
-#define FF_FMT_ALLOW_FLUSH (1 << 1)
+/**
+ * This flag indicates that the muxer stores data internally
+ * and supports flushing it. Flushing is signalled by sending
+ * a NULL packet to the muxer's write_packet callback;
+ * without this flag, a muxer never receives NULL packets.
+ * So the documentation of write_packet below for the semantics
+ * of the return value in case of flushing.
+ */
+#define FF_OFMT_FLAG_ALLOW_FLUSH (1 << 1)
typedef struct FFOutputFormat {
/**
@@ -40,13 +48,13 @@ typedef struct FFOutputFormat {
int priv_data_size;
/**
- * Internal flags. See FF_FMT_* in internal.h and mux.h.
+ * Internal flags. See FF_OFMT_FLAG_* above and FF_FMT_FLAG_* in internal.h.
*/
int flags_internal;
int (*write_header)(AVFormatContext *);
/**
- * Write a packet. If FF_FMT_ALLOW_FLUSH is set in flags_internal,
+ * Write a packet. If FF_OFMT_FLAG_ALLOW_FLUSH is set in flags_internal,
* pkt can be NULL in order to flush data buffered in the muxer.
* When flushing, return 0 if there still is more data to flush,
* or 1 if everything was flushed and there is no more buffered
@@ -777,7 +777,7 @@ const FFOutputFormat ff_ogg_muxer = {
.p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT,
#endif
.p.priv_class = &ogg_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -800,7 +800,7 @@ const FFOutputFormat ff_oga_muxer = {
.p.flags = AVFMT_TS_NEGATIVE,
#endif
.p.priv_class = &ogg_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -826,7 +826,7 @@ const FFOutputFormat ff_ogv_muxer = {
.p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT,
#endif
.p.priv_class = &ogg_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -849,7 +849,7 @@ const FFOutputFormat ff_spx_muxer = {
.p.flags = AVFMT_TS_NEGATIVE,
#endif
.p.priv_class = &ogg_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -872,6 +872,6 @@ const FFOutputFormat ff_opus_muxer = {
.p.flags = AVFMT_TS_NEGATIVE,
#endif
.p.priv_class = &ogg_muxer_class,
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
#endif
@@ -614,5 +614,5 @@ const FFOutputFormat ff_tee_muxer = {
#else
.p.flags = AVFMT_NOFILE | AVFMT_TS_NEGATIVE,
#endif
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
@@ -159,7 +159,7 @@ const FFOutputFormat ff_fifo_test_muxer = {
#else
.p.flags = AVFMT_NOFILE,
#endif
- .flags_internal = FF_FMT_ALLOW_FLUSH,
+ .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH,
};
It better reflects that this is a muxer-only flag. Also document the flag. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavdevice/pulse_audio_enc.c | 2 +- libavformat/fifo.c | 2 +- libavformat/hlsenc.c | 2 +- libavformat/matroskaenc.c | 6 +++--- libavformat/movenc.c | 18 +++++++++--------- libavformat/mpegtsenc.c | 2 +- libavformat/mux.c | 4 ++-- libavformat/mux.h | 14 +++++++++++--- libavformat/oggenc.c | 10 +++++----- libavformat/tee.c | 2 +- libavformat/tests/fifo_muxer.c | 2 +- 11 files changed, 36 insertions(+), 28 deletions(-)