<div dir="ltr">Hey Mark / Jean-Marc,<div><br></div><div>Thanks for the quick response. I'm implementing inside opus-tools.</div><div><br></div><div>Mark - Bingo! That did the trick, thanks! :)</div><div>Jean-Marc - I'll take a look at the project and add support for the proposed mappings on my end. </div><div><br></div><div>Thank you both so much!</div><div>Cheers,</div><div>Drew</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, May 18, 2017 at 12:51 PM Jean-Marc Valin <<a href="mailto:jmvalin@jmvalin.ca">jmvalin@jmvalin.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Drew,<br>
<br>
In what code are you implementing this? Note that I've been working on a<br>
library called libopusenc to make it easier to create Ogg Opus files.<br>
Maybe you want to have a look at that. The code is currently at:<br>
<a href="https://github.com/jmvalin/libopusenc" rel="noreferrer" target="_blank">https://github.com/jmvalin/libopusenc</a><br>
<br>
Cheers,<br>
<br>
        Jean-Marc<br>
<br>
On 18/05/17 03:19 PM, Drew Allen wrote:<br>
> Hello all,<br>
><br>
> I'm currently in the process of implementing a mixing matrix into the<br>
> header of OPUS files for the proposed channel mapping 3 seen<br>
> here: <a href="https://tools.ietf.org/html/draft-ietf-codec-ambisonics-03#section-3.2" rel="noreferrer" target="_blank">https://tools.ietf.org/html/draft-ietf-codec-ambisonics-03#section-3.2</a><br>
><br>
> My implementation simply replaces writing the stream mapping char array<br>
> with the Q15 col-wise matrix vals described in the above document.<br>
><br>
> I'm able to write/read matrices of 4x4 and 9x9 and encode->decode first<br>
> and second order just fine, but writing larger matrices causes what<br>
> seems to be some sort of packet corruption. The OpusHead packet is never<br>
> found, but in it's place we have a packet at b_o_s=256 (which is where<br>
> OpusHead usually lives), but the byte size is reported to be 0 and<br>
> e_o_s=0 as well. (This is generated by parsing the packets via<br>
> ogg's *ogg_stream_packetout* function. It appears a matrix larger than<br>
> 7x16 causes this issue. (The matrix values are all signed short vals, so<br>
>>224 bytes seems to fail.<br>
><br>
> I'm not very familiar with ogg internals so any advice would be greatly<br>
> appreciated! Thanks so much! :)<br>
><br>
> Cheers,<br>
> Drew<br>
><br>
><br>
> _______________________________________________<br>
> opus mailing list<br>
> <a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a><br>
> <a href="http://lists.xiph.org/mailman/listinfo/opus" rel="noreferrer" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><br>
><br>
</blockquote></div>