<div dir="ltr">I should also say the the ogg_packet.packet[] char array is zero-filled for packet mentioned.</div><br><div class="gmail_quote"><div dir="ltr">On Thu, May 18, 2017 at 12:19 PM Drew Allen <<a href="mailto:bitllama@google.com">bitllama@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello all,<div><br></div><div>I'm currently in the process of implementing a mixing matrix into the header of OPUS files for the proposed channel mapping 3 seen here: <a href="https://tools.ietf.org/html/draft-ietf-codec-ambisonics-03#section-3.2" target="_blank">https://tools.ietf.org/html/draft-ietf-codec-ambisonics-03#section-3.2</a></div><div><br></div><div>My implementation simply replaces writing the stream mapping char array with the Q15 col-wise matrix vals described in the above document.</div><div><br></div><div>I'm able to write/read matrices of 4x4 and 9x9 and encode->decode first and second order just fine, but writing larger matrices causes what seems to be some sort of packet corruption. The OpusHead packet is never found, but in it's place we have a packet at b_o_s=256 (which is where OpusHead usually lives), but the byte size is reported to be 0 and e_o_s=0 as well. (This is generated by parsing the packets via ogg's <b>ogg_stream_packetout</b> function. It appears a matrix larger than 7x16 causes this issue. (The matrix values are all signed short vals, so >224 bytes seems to fail.</div><div><br></div><div>I'm not very familiar with ogg internals so any advice would be greatly appreciated! Thanks so much! :)</div><div><br></div><div>Cheers,</div><div>Drew</div></div></blockquote></div>