diff mbox series

[FFmpeg-devel,4/6] avformat: remove avio_flush() calls from the end of write_packet functions

Message ID 20200105131413.22707-4-cus@passwd.hu
State New
Headers show
Series [FFmpeg-devel,1/6] avformat: remove unneded avio_flush() calls before calling avio_close_dyn_buf() | expand

Checks

Context Check Description
andriy/ffmpeg-patchwork success Make fate finished

Commit Message

Marton Balint Jan. 5, 2020, 1:14 p.m. UTC
Removing explicit avio_flush() calls helps us to buffer more data and avoid
flushing the IO context too often which causes reduced IO throughput for
non-streamed file output.

The user can control flushing behaviour at the end of every packet using the
-flush_packets option, the default typically means to flush unless a
non-streamed file output is used.

Therefore this change should have no adverse effect on streaming, even if it is
assumed that a new packet has a clean buffer so small seekbacks within the
output buffer work even when the IO context is not seekable.

Signed-off-by: Marton Balint <cus@passwd.hu>
---
 libavformat/hashenc.c | 1 -
 libavformat/img2enc.c | 1 -
 libavformat/mxfenc.c  | 3 ---
 3 files changed, 5 deletions(-)

Comments

Martin Storsjö Jan. 5, 2020, 8:35 p.m. UTC | #1
On Sun, 5 Jan 2020, Marton Balint wrote:

> Removing explicit avio_flush() calls helps us to buffer more data and avoid
> flushing the IO context too often which causes reduced IO throughput for
> non-streamed file output.
>
> The user can control flushing behaviour at the end of every packet using the
> -flush_packets option, the default typically means to flush unless a
> non-streamed file output is used.
>
> Therefore this change should have no adverse effect on streaming, even if it is
> assumed that a new packet has a clean buffer so small seekbacks within the
> output buffer work even when the IO context is not seekable.
>
> Signed-off-by: Marton Balint <cus@passwd.hu>
> ---
> libavformat/hashenc.c | 1 -
> libavformat/img2enc.c | 1 -
> libavformat/mxfenc.c  | 3 ---
> 3 files changed, 5 deletions(-)

Probably ok

// Martin
diff mbox series

Patch

diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c
index ddc67f53b5..ce609f6efa 100644
--- a/libavformat/hashenc.c
+++ b/libavformat/hashenc.c
@@ -324,7 +324,6 @@  static int framehash_write_packet(struct AVFormatContext *s, AVPacket *pkt)
     }
 
     avio_printf(s->pb, "\n");
-    avio_flush(s->pb);
     return 0;
 }
 
diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index 39398f37a3..5ee99890ce 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -118,7 +118,6 @@  static int write_packet_pipe(AVFormatContext *s, AVPacket *pkt)
             return ret;
     } else {
         avio_write(s->pb, pkt->data, pkt->size);
-        avio_flush(s->pb);
     }
     img->img_number++;
     return 0;
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index e187b3845d..396768d51f 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -2799,7 +2799,6 @@  static int mxf_write_opatom_packet(AVFormatContext *s, AVPacket *pkt, MXFIndexEn
     mxf->edit_units_count++;
     avio_write(pb, pkt->data, pkt->size);
     mxf->body_offset += pkt->size;
-    avio_flush(pb);
 
     return 0;
 }
@@ -2937,8 +2936,6 @@  static int mxf_write_packet(AVFormatContext *s, AVPacket *pkt)
         mxf->body_offset += 16+4+pkt->size + klv_fill_size(16+4+pkt->size);
     }
 
-    avio_flush(pb);
-
     return 0;
 }