Generality
Overhead
Latency
Random access
Timestamps
Complexity
I'd like to add one more:
One of the worst examples of branding I've ever seen from an open source project. Ogg? It sounds kind of like a portmanteau of odd and egg. Who wants to use that?
> Those objecting that this index would be unavailable in a streaming scenario are forgetting that seeking is impossible there regardless.
"Streaming" can also mean "playback of and/or seeking within a partially downloaded file". It's awfully nice to start watching that multi-gigabyte video within seconds, rather than minutes or hours and be able to rewind and fast-forward through the parts that are already on (and continue to be delivered to) your system.
An objection I have: metadata tags. Let me start with it. The Vorbis Comment structure has a framing bit. This is only used for the comment packet on Vorbis streams. Theora, Flac (and Flac native), and Speex do not use it. I'm not sure about Opus.
The good point is that the rest is simple and relatively flexible. 4 bytes as a number of tags each with a 4 byte length. Definitely excessive and perhaps should have some flag for different versions. 1, 2, 3, and 4 byte lengths and count. Keys being limited in the spec to ASCII printable is a downside but since it's utf8, 0x3d (the equals sign =) would still work as the key-value separator. The spec also says that they should be case insensitive which would make the utf8 comparisons harder.
4 comments
[ 0.16 ms ] story [ 16.9 ms ] threadOne of the worst examples of branding I've ever seen from an open source project. Ogg? It sounds kind of like a portmanteau of odd and egg. Who wants to use that?
"Streaming" can also mean "playback of and/or seeking within a partially downloaded file". It's awfully nice to start watching that multi-gigabyte video within seconds, rather than minutes or hours and be able to rewind and fast-forward through the parts that are already on (and continue to be delivered to) your system.
The good point is that the rest is simple and relatively flexible. 4 bytes as a number of tags each with a 4 byte length. Definitely excessive and perhaps should have some flag for different versions. 1, 2, 3, and 4 byte lengths and count. Keys being limited in the spec to ASCII printable is a downside but since it's utf8, 0x3d (the equals sign =) would still work as the key-value separator. The spec also says that they should be case insensitive which would make the utf8 comparisons harder.