commit c30923a3bde846499b74a9d44110611f16760230 from: Oliver Lowe date: Thu Jul 10 12:41:09 2025 UTC wav: declare header var once The rest are initialised to zero values so we don't have to do it ourselves. commit - 837319ae0f0e1c5ee99ae680598cf0484093dc45 commit + c30923a3bde846499b74a9d44110611f16760230 blob - 21cda9fcfa3140b729d6912115dfa50edf958cbc blob + fa18da1e64943623fc8b26cedb1dba3089485bef --- wav/wav.go +++ wav/wav.go @@ -150,27 +150,23 @@ type FormatExtension struct { func readHeader(rd io.Reader) (*header, error) { var head header - var fchunk fileChunk - if err := binary.Read(rd, binary.LittleEndian, &fchunk); err != nil { + if err := binary.Read(rd, binary.LittleEndian, &head.File); err != nil { return nil, fmt.Errorf("read file chunk: %w", err) } - if fchunk.ID != riffID { - return nil, fmt.Errorf("bad RIFF id %x", fchunk.ID) - } else if fchunk.FormatID != waveID { - return nil, fmt.Errorf("bad WAVE file format id %x", fchunk.FormatID) + if head.File.ID != riffID { + return nil, fmt.Errorf("bad RIFF id %x", head.File.ID) + } else if head.File.FormatID != waveID { + return nil, fmt.Errorf("bad WAVE file format id %x", head.File.FormatID) } - head.File = fchunk - var fmtchunk formatChunk - if err := binary.Read(rd, binary.LittleEndian, &fmtchunk); err != nil { + if err := binary.Read(rd, binary.LittleEndian, &head.Format); err != nil { return nil, fmt.Errorf("read file chunk: %w", err) } - if fmtchunk.ID != formatChunkID { - return nil, fmt.Errorf("bad format chunk id %x", fmtchunk.ID) + if head.Format.ID != formatChunkID { + return nil, fmt.Errorf("bad format chunk id %x", head.Format.ID) } - head.Format = fmtchunk - if fmtchunk.AudioFormat == AudioFormatExtensible { + if head.Format.AudioFormat == AudioFormatExtensible { var ext FormatExtension if err := binary.Read(rd, binary.LittleEndian, &ext); err != nil { return nil, fmt.Errorf("read format chunk extension: %w", err) @@ -178,10 +174,8 @@ func readHeader(rd io.Reader) (*header, error) { head.FormatExtension = &ext } - var data dataChunk - if err := binary.Read(rd, binary.LittleEndian, &data); err != nil { + if err := binary.Read(rd, binary.LittleEndian, &head.Data); err != nil { return nil, fmt.Errorf("read data chunk: %w", err) } - head.Data = data return &head, nil }