[FFmpeg-devel,4/4] avformat/file: increase min/max packet size to 256k for written files

Submitted by Marton Balint on June 18, 2017, 10:02 p.m.

Details

Message ID 20170618220254.21682-4-cus@passwd.hu
State Accepted
Commit db9e87dd8c1ce11d37edc16f9380ee8dee68891b
Headers show

Commit Message

Marton Balint June 18, 2017, 10:02 p.m.
Buffering more than one packet can be a huge performance improvement for
encoding files with small packets (e.g. wav) over SMB/CIFS.

Signed-off-by: Marton Balint <cus@passwd.hu>
---
 libavformat/file.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Michael Niedermayer June 19, 2017, 3:22 p.m.
On Mon, Jun 19, 2017 at 12:02:54AM +0200, Marton Balint wrote:
> Buffering more than one packet can be a huge performance improvement for
> encoding files with small packets (e.g. wav) over SMB/CIFS.
> 
> Signed-off-by: Marton Balint <cus@passwd.hu>
> ---
>  libavformat/file.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/libavformat/file.c b/libavformat/file.c
> index 3db9cd0b9e..1d321c4205 100644
> --- a/libavformat/file.c
> +++ b/libavformat/file.c
> @@ -229,6 +229,11 @@ static int file_open(URLContext *h, const char *filename, int flags)
>  
>      h->is_streamed = !fstat(fd, &st) && S_ISFIFO(st.st_mode);
>  
> +    /* Buffer writes more than the default 32k to improve throughput especially
> +     * with networked file systems */
> +    if (!h->is_streamed && flags & AVIO_FLAG_WRITE)
> +        h->min_packet_size = h->max_packet_size = 262144;

Acked-by: Michael

thx

[...]

Patch hide | download patch | download mbox

diff --git a/libavformat/file.c b/libavformat/file.c
index 3db9cd0b9e..1d321c4205 100644
--- a/libavformat/file.c
+++ b/libavformat/file.c
@@ -229,6 +229,11 @@  static int file_open(URLContext *h, const char *filename, int flags)
 
     h->is_streamed = !fstat(fd, &st) && S_ISFIFO(st.st_mode);
 
+    /* Buffer writes more than the default 32k to improve throughput especially
+     * with networked file systems */
+    if (!h->is_streamed && flags & AVIO_FLAG_WRITE)
+        h->min_packet_size = h->max_packet_size = 262144;
+
     return 0;
 }