On Wed, Nov 09, 2005 at 05:33:37AM -0800, Arc wrote:> > Data pages are identified to be part of a logical bitstream through their > > serial number, so don't need any additional identifiers. Thus, Arc, I don't > > quite understand why you would require another 32 bits at the beginning of > > each data packet, when ogg pages are already covering that information? > > I am open to eliminating it, if it can be shown that the act of reading or > skipping this data complicates implementation or makes it less efficient, > however, the decidion to do so should include several people (Monty, Ralph, etc) > who haven't joined this discussion yet.I agree with Silvia here. The initial-octet packet type flagging is nice in vorbis and theora because there are a number of headers to distinguish, and you have to bit-unpack everything starting at the packet boundary anyway. PCM is just PCM, so I think having just the raw data in the data packets is better.> > As for the information that goes into the bos page, I can see at least an > > endianness indicator missing.We should think about float support too. -r
On Wed, Nov 09, 2005 at 09:31:29AM -0800, Ralph Giles wrote:> > > > I am open to eliminating it, if it can be shown that the act of reading or > > skipping this data complicates implementation or makes it less efficient, > > however, the decidion to do so should include several people (Monty, Ralph, etc) > > who haven't joined this discussion yet. > > I agree with Silvia here. The initial-octet packet type flagging is nice > in vorbis and theora because there are a number of headers to > distinguish, and you have to bit-unpack everything starting at the > packet boundary anyway. PCM is just PCM, so I think having just the raw > data in the data packets is better.Note that the data begins on an int barrier, as the header was made exactly 32 bits long, so it should be trivial to copy the data from the packet to a buffer starting at 4 bytes in vs 0 bytes in. We really do need a "chunk" for the bitpacker, to grab as much continuous memory as possible, vs 32 bit pieces per function call. Will make handling Speex much easier, too.> > > As for the information that goes into the bos page, I can see at least an > > > endianness indicator missing. > > We should think about float support too.We have float support, I believe it's sufficient.. basically the same as RIFF/WAVE supports in it's header: [...] 2 [variable] Data Type: 0=signed int, 1=unsigned int, 2=float, 3=extended 6 [null] Padding to byte/int - may be used for "extended" data type -- The recognition of individual possibility, to allow each to be what she and he can be, rests inherently upon the availability of knowledge; The perpetuation of ignorance is the beginning of slavery. from "Die Gedanken Sind Frei": Free Software and the Struggle for Free Thought by Eben Moglen, General council of the Free Software Foundation
On Wed, Nov 09, 2005 at 10:21:57AM -0800, Arc wrote:> > > > > As for the information that goes into the bos page, I can see at least an > > > > endianness indicator missing. > > > > We should think about float support too.Doh! Much of this is recoded on the Discussion page: http://wiki.xiph.org/index.php/Talk:OggPCM .. along with wether it needs a VorbisComment header, sample adding, etc. I added the question of wether data packets need a data packet header, but note, if VorbisComments were included, we would need data packet header since page0 would no longer be the only header. Even if we don't, it makes sense to me for future minor revisions that we have it ready anyways, in case additional headers are needed in the future. -- The recognition of individual possibility, to allow each to be what she and he can be, rests inherently upon the availability of knowledge; The perpetuation of ignorance is the beginning of slavery. from "Die Gedanken Sind Frei": Free Software and the Struggle for Free Thought by Eben Moglen, General council of the Free Software Foundation
On Wed, Nov 09, 2005 at 10:21:57AM -0800, Arc wrote:> > We should think about float support too. > > We have float support, I believe it's sufficient.. basically the same as > RIFF/WAVE supports in it's header:Oops, sorry, I missed that in the wiki. Fine with me. Need to specify the float format though. -r