From f4a8ea7ff6fd83ec925cfd3fccde538196cff85a Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 4 Jan 2020 21:14:46 +0100 Subject: [PATCH] avformat: remove more unneeded avio_flush() calls These instances are simply redundant or present because avio_flush() used to be required before doing a seekback. That is no longer the case, aviobuf code does the flush automatically on seek. This only affects code which is either disabled for streaming IO contexts or does no seekbacks after the flush, so this change should have no adverse effect on streaming. Signed-off-by: Marton Balint --- libavformat/asfenc.c | 1 - libavformat/avienc.c | 1 - libavformat/gxfenc.c | 2 -- libavformat/segafilmenc.c | 2 -- libavformat/wavenc.c | 7 ------- 5 files changed, 13 deletions(-) diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index d03cff91c0b48..8eaa9d40ce421 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -1130,7 +1130,6 @@ static int asf_write_trailer(AVFormatContext *s) return ret; asf_write_index(s, asf->index_ptr, asf->maximum_packet, asf->next_start_sec); } - avio_flush(s->pb); if (asf->is_streamed || !(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { put_chunk(s, 0x4524, 0, 0); /* end of stream */ diff --git a/libavformat/avienc.c b/libavformat/avienc.c index 23cc58ea76ccc..d6cfb1b783929 100644 --- a/libavformat/avienc.c +++ b/libavformat/avienc.c @@ -591,7 +591,6 @@ static void update_odml_entry(AVFormatContext *s, int stream_index, int64_t ix, int64_t pos; int au_byterate, au_ssize, au_scale; - avio_flush(pb); pos = avio_tell(pb); /* Updating one entry in the AVI OpenDML master index */ diff --git a/libavformat/gxfenc.c b/libavformat/gxfenc.c index c9fb0dcd91bd0..e09b8d76256cd 100644 --- a/libavformat/gxfenc.c +++ b/libavformat/gxfenc.c @@ -863,13 +863,11 @@ static int gxf_write_trailer(AVFormatContext *s) return ret; gxf_write_flt_packet(s); gxf_write_umf_packet(s); - avio_flush(pb); /* update duration in all map packets */ for (i = 1; i < gxf->map_offsets_nb; i++) { avio_seek(pb, gxf->map_offsets[i], SEEK_SET); if ((ret = gxf_write_map_packet(s, 1)) < 0) return ret; - avio_flush(pb); } avio_seek(pb, end, SEEK_SET); diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c index f1048ff8082a2..812d0ad64e947 100644 --- a/libavformat/segafilmenc.c +++ b/libavformat/segafilmenc.c @@ -362,8 +362,6 @@ static int film_write_header(AVFormatContext *format_context) avio_wb32(pb, film->packet_count); - avio_flush(pb); - /* Finally, write out each packet's data to the header */ packet = film->start; while (packet != NULL) { diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c index ea7573139cb63..f6f5710802d1c 100644 --- a/libavformat/wavenc.c +++ b/libavformat/wavenc.c @@ -411,17 +411,13 @@ static int wav_write_trailer(AVFormatContext *s) int rf64 = 0; int ret = 0; - avio_flush(pb); - if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { if (wav->write_peak != PEAK_ONLY && avio_tell(pb) - wav->data < UINT32_MAX) { ff_end_tag(pb, wav->data); - avio_flush(pb); } if (wav->write_peak && wav->peak_output) { ret = peak_write_chunk(s); - avio_flush(pb); } /* update file size */ @@ -433,8 +429,6 @@ static int wav_write_trailer(AVFormatContext *s) avio_seek(pb, 4, SEEK_SET); avio_wl32(pb, (uint32_t)(file_size - 8)); avio_seek(pb, file_size, SEEK_SET); - - avio_flush(pb); } else { av_log(s, AV_LOG_ERROR, "Filesize %"PRId64" invalid for wav, output file will be broken\n", @@ -454,7 +448,6 @@ static int wav_write_trailer(AVFormatContext *s) } else { avio_wl32(pb, number_of_samples); avio_seek(pb, file_size, SEEK_SET); - avio_flush(pb); } }