feat(20-01): implement OGG Vorbis tag writer with custom page parser and CRC32
- Custom OGG page parser/writer with MSB-first CRC32 lookup table (ogg.go) - Vorbis Comment packet parse/serialize with raw byte preservation (ogg_vorbis.go) - METADATA_BLOCK_PICTURE base64 encoding for cover art with legacy field stripping - Multi-stream and non-Vorbis OGG rejection with clear error messages - Pipeline integration: FormatOGG constant, .ogg in DetectFormat, writeOggTags dispatch - Lenient-read/strict-write: warn on CRC mismatch, always write correct CRCs - Page sequence renumbering and crash-safe writes via AtomicWrite
This commit is contained in:
@@ -146,6 +146,8 @@ func (tw *TagWriter) WriteTrackTags(trackID int64, changes TagChanges) error {
|
||||
err = writeFlacTags(tw.logger, audioFile.FilePath, changes)
|
||||
case FormatWAV:
|
||||
err = writeWavTags(tw.logger, audioFile.FilePath, changes)
|
||||
case FormatOGG:
|
||||
err = writeOggTags(tw.logger, audioFile.FilePath, changes)
|
||||
default:
|
||||
err = fmt.Errorf("%w: %s", errUnsupportedFormat, format)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user