stream_encoder.c : Only set 10MB output buffer on _WIN32.
authorErik de Castro Lopo <erikd@mega-nerd.com>
Sat, 27 Sep 2014 22:43:24 +0000 (08:43 +1000)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Sun, 28 Sep 2014 23:06:37 +0000 (09:06 +1000)
Commig 6a6207b52a set the size of the encoder output buffer to 10MB
but this fix is really only needed on Windows, so wrap it in an #ifdef.

src/libFLAC/stream_encoder.c

index bd95634..029bfc6 100644 (file)
@@ -1288,8 +1288,13 @@ static FLAC__StreamEncoderInitStatus init_FILE_internal_(
        if(file == stdout)
                file = get_binary_stdout_(); /* just to be safe */
 
-       setvbuf(file, NULL, _IOFBF, 10*1024*1024); /* 10MB output buffer to help reduce disk fragmentation */
-
+#ifdef _WIN32
+       /*
+        * Windows can suffer quite badly from disk fragmentation. This can be
+        * reduced significantly by setting the output buffer size to be 10MB.
+        */
+       setvbuf(file, NULL, _IOFBF, 10*1024*1024);
+#endif
        encoder->private_->file = file;
 
        encoder->private_->progress_callback = progress_callback;