Skip to content

Ambisonics not available #46

Open
Open
@chris-hld

Description

@chris-hld

Opusfile fails to decode Ambisonics.
Both mapping families (2 and 3) are broken / not implemented.

With a third order Ambix file, the encoding works:

./../../opus-tools/opusenc --channels ambix opus_AmbixTCs.wav opus_ambi.opus    
Skipping chunk of type "fact", length 4
Skipping chunk of type "PEAK", length 136
Encoding using libopus 1.4-6-g9fc8fc4c (audio)
-----------------------------------------------------
   Input: 48 kHz, 16 channels
  Output: 16 channels (16 coupled)
          20ms packets, 768 kbit/s VBR
 Preskip: 312

Encoding complete                                
-----------------------------------------------------
       Encoded: 10.02 seconds
       Runtime: 1 second
                (10.02x realtime)
         Wrote: 1028095 bytes, 501 packets, 19 pages
       Bitrate: 815.996 kbit/s (without overhead)
 Instant rates: 12.4 to 1496.4 kbit/s
                (31 to 3741 bytes per packet)
      Overhead: 0.589% (container+metadata)

The bitstream seams also seems valid

./../../opus-tools/opusinfo opus_ambi.opus                                  
Processing file "opus_ambi.opus"...

New logical stream (#1, serial: 572bd79b): type opus
Encoded with libopus 1.4-6-g9fc8fc4c, libopusenc 0.2.1-16-ge4285b5
User comments section follows...
	ENCODER=opusenc from opus-tools 0.2-32-ge7f495e
	ENCODER_OPTIONS=--channels ambix
Opus stream 1:
	Pre-skip: 312
	Playback gain: 0 dB
	Channels: 16
	Original sample rate: 48000 Hz
	Streams: 8, Coupled: 8
	Channel Mapping Family: 3
	Demixing Matrix [16x16]:
	[  8192,      0,  -3413,  13829,      0,      0,  -8176,  -7075,  15617,      0,      0,      0,  11826,  -7890,  -9974,  16112]
	[  8192,  -9779,   3413,   9779, -15617,  -5003,  -8176,   5003,      0, -11393,  -9974,   5579, -11826,  -5579,      0, -11393]
	[  8192,   9779,   3413,  -9779, -15617,   5003,  -8176,  -5003,      0,  11393,  -9974,  -5579, -11826,   5579,      0,  11393]
	[  8192,   6263, -11359,   6263,   6406, -10664,   8208, -10664,      0,   2993, -13617,  10185,   -901,  10185,      0,  -2993]
	[  8192,   8857,  11359,      0,      0,  15081,   8208,      0,  -6406,  -4233,      0,  14403,    901,      0, -13617,      0]
	[  8192,      0,  11359,   8857,      0,      0,   8208,  15081,   6406,      0,      0,      0,    901,  14403,  13617,   4233]
	[  8192,   6263, -11359,  -6263,  -6406, -10664,   8208,  10664,      0,   2993,  13617,  10185,   -901, -10185,      0,   2993]
	[  8192,  13829,  -3413,      0,      0,  -7075,  -8176,      0, -15617, -16112,      0,  -7890,  11826,      0,   9974,      0]
	[  8192,   9779,   3413,   9779,  15617,   5003,  -8176,   5003,      0,  11393,   9974,  -5579, -11826,  -5579,      0, -11393]
	[  8192, -13829,  -3413,      0,      0,   7075,  -8176,      0, -15617,  16112,      0,   7890,  11826,      0,   9974,      0]
	[  8192,      0,  -3413, -13829,      0,      0,  -8176,   7075,  15617,      0,      0,      0,  11826,   7890,  -9974, -16112]
	[  8192,  -6263, -11359,   6263,  -6406,  10664,   8208, -10664,      0,  -2993,  13617, -10185,   -901,  10185,      0,  -2993]
	[  8192,      0,  11359,  -8857,      0,      0,   8208, -15081,   6406,      0,      0,      0,    901, -14403,  13617,  -4233]
	[  8192,  -8857,  11359,      0,      0, -15081,   8208,      0,  -6406,   4233,      0, -14403,    901,      0, -13617,      0]
	[  8192,  -6263, -11359,  -6263,   6406,  10664,   8208,  10664,      0,  -2993, -13617, -10185,   -901, -10185,      0,   2993]
	[  8192,  -9779,   3413,  -9779,  15617,  -5003,  -8176,  -5003,      0, -11393,   9974,   5579, -11826,   5579,      0,  11393]
	Packet duration:   20.0ms (max),   20.0ms (avg),   20.0ms (min)
	Page duration:    640.0ms (max),  589.4ms (avg),  500.0ms (min)
	Total data length: 1028095 bytes (overhead: 0.589%)
	Playback length: 0m:10.000s
	Average bitrate: 822.5 kbit/s, w/o overhead: 817.6 kbit/s
Logical stream 1 ended

However, decoding fails very quickly:

./../../opus-tools/opusdec opus_ambi.opus opus_ambi_dec.wav                
Failed to open 'opus_ambi.opus'.

This PR fixes at least Ambisonics mapping 2 #45

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions