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 |
Context | Check | Description |
---|---|---|
andriy/ffmpeg-patchwork | success | Make fate finished |
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 --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; }
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(-)