Skip to content

FLAC: is_last not cleared when PADDING block inserted after #607

@PandorasFox

Description

@PandorasFox

Reproducer

https://gist.github.com/PandorasFox/8f8f82b25fe0ea3737237a10c0500165

Summary

(apologies for the codegenned reproduction case - I did all the validation with ffprobe/xxd by hand and then codebotted out the repro case out of my codebase)

tl;dr I did a mass-transcode of some wavs into flac via flacenc-rs + lofty for carrying over the tags after the fact - when lofty adds a padding block after the VORBIS_COMMENT block, it doesn't clear is_last on the VORBIS_COMMENT block, which leads to inconsistent decoder errors during playback.

vlc, for example, will play back fine since it will ignore the is_last and just seeks for the start of the stream itself - but the same files served over my navidrome will inconsistently play back depending on how strict my client is with the FLACs.

thankfully just a one-byte fix to repair the emitted files :)

Expected behavior

No response

Assets

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions