Serial-ATA / Serial-ATA/lofty-rs

FLAC: Support channel mask in Vorbis Comments

Open
#447 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement low priority
Dominant language
Rust
Stars
359
Forks
77
Avg merge
12h 54m
Merged PRs (30d)
11

Description

Source: https://www.ietf.org/archive/id/draft-ietf-cellar-flac-14.html#name-channel-mask

Apparently there's a standardized Vorbis Comments field for the channel mask in FLAC spec now?

Is anyone using it? Probably not. Will it hurt to update the FlacProperties if we encounter it? Also probably not. Also in the case that this is being used, we don't want to overwrite it when writing/stripping tags.

The field is WAVEFORMATEXTENSIBLE_CHANNEL_MASK, which contains the hex-encoded channel mask.

From the spec:

Following are three examples:

  • If a file has a single channel, being a LFE channel, the Vorbis comment field is WAVEFORMATEXTENSIBLE_CHANNEL_MASK=0x8.
  • If a file has four channels, being front left, front right, top front left, and top front right, the Vorbis comment field is WAVEFORMATEXTENSIBLE_CHANNEL_MASK=0x5003.
  • If an input has four channels, being back center, top front center, front center, and top rear center in that order, they have to be reordered to front center, back center, top front center and top rear center. The Vorbis comment field added is WAVEFORMATEXTENSIBLE_CHANNEL_MASK=0x12104.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with FlacProperties and the FLAC Vorbis Comments handling, using the linked FLAC specification to confirm the WAVEFORMATEXTENSIBLE_CHANNEL_MASK format. Done means the channel mask is recognized in FLAC properties and is preserved when writing or stripping tags; verify the behavior with the existing FLAC tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
audio-video-rtc
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.