improve ID3 tag handling
[nihav-tool.git] / src / wavwriter.rs
index a22887650f8e1ca01f254e523bffc0e504e2befc..c0b324dc19215288151e3d500c4234ae99f9b5dd 100644 (file)
@@ -61,6 +61,7 @@ macro_rules! write_data {
 impl<'a> WavWriter<'a> {
     pub fn new(name: &str) -> Self {
         let file = File::create(name).unwrap();
+        let file = std::io::BufWriter::new(file);
         let fw   = Box::new(FileWriter::new_write(file));
         let io   = ByteWriter::new(Box::leak(fw));
         WavWriter { io: Box::new(io), data_pos: 0, be: false, bits: 0 }
@@ -156,6 +157,7 @@ impl<'a> Drop for WavWriter<'a> {
             let res = self.io.write_u32le((size - 8) as u32);
             let res = self.io.seek(SeekFrom::Start(self.data_pos - 4));
             let res = self.io.write_u32le(((size as u64) - self.data_pos) as u32);
+            let res = self.io.flush();
         }
     }
 }