[NUT-devel] Issues
Oded Shimon
ods15 at ods15.dyndns.org
Fri Mar 3 18:31:12 CET 2006
The controversies so far...
1. checksum in frame headers/syncpoints
I did very much like the elegance with the syncpoints, however I did not
like the hacks in code to accomplish this (frame header parser in
find_syncpoint, put_frame using put_syncpoint to a temporary buffer,
demuxing frame header is dependant of "saw syncpoint" context).
So I have no strong feelings either way with this. I do have a small
proposal for overhead reduction in new method (if it's stupid say so and
I'll drop it) - has_checksum being implicit by the rules it is manditory
for - so you can save frame codes or a byte for coded flags... Come to
think of it, the frame header for a frame that needs has_checksum is large
already anyway...
2. limiting max_distance, max_frame_size
I say, keep them VLC, but add a MUST in spec regarding their value... Using
'u(16)' is as silly as using it for the 'tmp_mul' vars in the main header
which also have a MUST restriction...
3. prefix/compression for frames
Not sure if this is an actual controversy, possibly the flamewar going on
has nothing to do with this (let's keep mplayer g5926 flames for another
mailing list :).
I'm quite against the prefix stuff, for a completely other reason - it's a
silly complexity for something that does not belong in the container. If
you're gonna do this, you might as well compress the frames with bzip2
while you're at it. underhead is nice, but not that nice, this will be
nothing but a legacy feature in the future...
4. Info frames/streams/packets
The first problem: limiting positions where info frames/packets should be
Michael you said you're strongly against this, but you also said a muxer
should place them sanely and the demuxer should not go crazy looking for
them. IMO there should be rules that you can't just put the frames/packets
all over the place as you please, and I'd like to find the best ones that
stay fully featured while still allowing the demuxer to not have to search
everywhere for them.
Second problem: dump info streams?
There is some advantage to this - info frames don't really have stream like
behavior, unless you repeat them often. A NUT-aware streaming server could
give the info frame relavent to current position just once, and not be
wasteful and repeat often or at all... Info streams can work if you put an
EOR closely after the frame, but that is not semantically correct...
What I hate about dumping info streams though is some complication to my
demuxer api (each call can give a frame or a packet, instead of always a
frame), and, if we do dump info streams, I very much want a restriction
that info packets that are global (chapter_id >=0 ?) can only come after
main headers, and not wherever...
Thinking again about my streaming example, the file isn't seekable anyway,
and if you dump it, and you're still using the info frames instead of
remuxing them to info packets, you deserve what you get of an
unseekable/bad seekable file... (Which would nicely discourage using info
frames in places where it is inappropiatte - not live streams..)
- ods15
More information about the NUT-devel
mailing list