diff options
author | François Laignel <francois@centricular.com> | 2023-06-19 17:26:57 +0300 |
---|---|---|
committer | François Laignel <francois@centricular.com> | 2023-06-19 17:32:07 +0300 |
commit | f85106b86ae10ff276b0ff46371e0dd591c54025 (patch) | |
tree | 3fbbb7ad78db22739be7751821c1e89a317d4ad0 /mux | |
parent | 84a33ca7b9fde27aabee41c191ad63763947033e (diff) |
mp4, fmp4: fix byte order for opus extension
The "Encapsulation of Opus in ISO Base Media File Format" [1] specifications,
§ 4.3.2 Opus Specific Box, indicates that data must be stored as big-endian.
In `write_dops`, `to_le_bytes` variants were used.
Related to [2].
[1] https://opus-codec.org/docs/opus_in_isobmff.html#4.3.2
[2] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4875
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1247>
Diffstat (limited to 'mux')
-rw-r--r-- | mux/fmp4/src/fmp4mux/boxes.rs | 6 | ||||
-rw-r--r-- | mux/mp4/src/mp4mux/boxes.rs | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/mux/fmp4/src/fmp4mux/boxes.rs b/mux/fmp4/src/fmp4mux/boxes.rs index 720c823e4..9d84158e9 100644 --- a/mux/fmp4/src/fmp4mux/boxes.rs +++ b/mux/fmp4/src/fmp4mux/boxes.rs @@ -1502,9 +1502,9 @@ fn write_dops(v: &mut Vec<u8>, caps: &gst::Caps) -> Result<(), Error> { // Version number v.push(0); v.push(channels); - v.extend(pre_skip.to_le_bytes()); - v.extend(rate.to_le_bytes()); - v.extend(output_gain.to_le_bytes()); + v.extend(pre_skip.to_be_bytes()); + v.extend(rate.to_be_bytes()); + v.extend(output_gain.to_be_bytes()); v.push(channel_mapping_family); if channel_mapping_family > 0 { v.push(stream_count); diff --git a/mux/mp4/src/mp4mux/boxes.rs b/mux/mp4/src/mp4mux/boxes.rs index 9dd37aea9..c1fa77918 100644 --- a/mux/mp4/src/mp4mux/boxes.rs +++ b/mux/mp4/src/mp4mux/boxes.rs @@ -1319,9 +1319,9 @@ fn write_dops(v: &mut Vec<u8>, caps: &gst::Caps) -> Result<(), Error> { // Version number v.push(0); v.push(channels); - v.extend(pre_skip.to_le_bytes()); - v.extend(rate.to_le_bytes()); - v.extend(output_gain.to_le_bytes()); + v.extend(pre_skip.to_be_bytes()); + v.extend(rate.to_be_bytes()); + v.extend(output_gain.to_be_bytes()); v.push(channel_mapping_family); if channel_mapping_family > 0 { v.push(stream_count); |