-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement --channels discrete format option #80
Conversation
Btw may be better to not do changes to CI scripts within this same PR... |
e7f495e
to
78b8127
Compare
Ah yes, I was forking from the gitlab repo originally, which seems to have two more CI commits. Should be fixed now. |
The documentation specifies mapping families:
Therefore, renaming to |
With the option, also channel counts <8 can be transported without stereo coding, correctly evoking mapping 255.
Decoding needs the fix in https://github.com/xiph/opusfile/pull/45/files. |
Curious, without the opusfile PR, will libopus-based libs not be able to decode properly? Would ffmpeg be able to decode these "discrete"/"decoupled" audio files? |
Yes, it should be! Essentially this PR is just using channel mapping 255, which is defined and should be implemented by decoders. And opus info shows that the encoded file is valid, therefore any compliant decoder should be able to decode the file. |
@mark4o Are PR's considered in this repo? Or should they be created in https://gitlab.xiph.org/xiph/opus-tools ? |
Thanks! Merged in a2be338 on https://gitlab.xiph.org/xiph/opus-tools/ (official repository). It looks like the mirroring to GitHub has stopped working; we'll get that fixed. Once that is working again this PR should get tagged and close automatically. |
I also wonder, does gitlab ci / GitHub ci currently publishes any nightly binaries? (E.g. as some "nightly"-tagged release) Additionally, having fully static musl/alpine binaries for opus-tools programs would be very nice to run on older systems |
The gitlab CI builds it for Debian but it doesn't retain the binaries. opus-tools is not very large so it doesn't take long to build. |
I mean, god knows when a new release will happen :) So having the binaries from the same build process as release binaries is nice. Yeah, static building is not difficult (I made the following GitHub Workflow file: https://gist.github.com/vadimkantorov/c2664ee326e1e929f2ab9fb5ac743d26), but for less build-savvy users, it would be helpful. |
This implements an option to specify the channel format as individual, providing an alternative to the default and ambix format.
Currently, input with up to 8 channels is interpreted as surround input triggering coupled channels.
This behavior is, however, detrimental when using individual / discrete streams that should not be coded as stereo coupled, such as e.g. microphone array signals.
The proposed format uses the channel mapping family 255, which is explicitly defined for such scenarios.