Not ready for merging.
It only works at this time for packed audio, as I'm not 100% on how to wrangle Cython into doing what I want in the few minutes I have.
I think it is "safe" for us to do this with planar audio as well, assuming that we check that the various extended_data
pointers have a uniform stride. I think we would need to construct a new object that exposes the buffer API with arbitrary data/size/stride and maintains ownership of the data. Our Buffer
or something similar could serve that purpose.