[NUT-devel] [nut]: r604 - docs/nutissues.txt

Michael Niedermayer michaelni at gmx.at
Tue Feb 12 05:51:44 CET 2008


On Mon, Feb 11, 2008 at 10:41:51PM -0500, Rich Felker wrote:
> On Tue, Feb 12, 2008 at 12:33:22AM +0100, michael wrote:
> > Author: michael
> > Date: Tue Feb 12 00:33:21 2008
> > New Revision: 604
> > 
> > Log:
> > 3 more issues which have come up in the past but have IIRC never
> > been resolved.
> > 
> > 
> > Modified:
> >    docs/nutissues.txt
> > 
> > Modified: docs/nutissues.txt
> > ==============================================================================
> > --- docs/nutissues.txt	(original)
> > +++ docs/nutissues.txt	Tue Feb 12 00:33:21 2008
> > @@ -110,3 +110,42 @@ Solutions:
> >  A. Store such alternative playlists of scenes in info packets somehow.
> >  B. Design a separate layer for it.
> >  C. Do not support this.
> > +
> > +
> > +Issue header-compression
> > +------------------------
> > +Headers of codec frames often contain low entropy information or things
> > +we already know like the frame size.
> > +
> > +A. Store header bytes and length in the framecode table.
> > +B. Leave things as they are.
> 
> I think this one was resolved strongly as a leave-it-alone.

resolved by whom? :)


> I'm
> absolutely against any proposal that precludes implementations from
> performing zero-copy decoding from the stream buffer.

Well if you have a buffer in which the frame is, just write the header
before it. If not just write the header and then (f)read() the rest.


> 
> > +Issue small-frames
> > +------------------
> > +The original intent of nut frames was that 1 container frame == 1 codec
> > +frame. Though this does not seem to be explicitly written in nut.txt.
> 
> It is.

I thought so too but i searched, and didnt find it so where is it?


> 
> > +Also it is inefficient for very small frames, AMR-NB for example has 6-32
> > +bytes per frame.
> 
> I don't think anyone really cares that much about efficiency when
> storing 

I do, others likely care about 10% overhead as well.


> shit codecs

I think this applies more to audio codes, if it limited to coding shit
i wont bother and gladly leave it alone. ;)


> in NUT. Obviously any good codec will use large
> frame sizes 

no


> or compression will not be good.

also not true


> 
> > +Solutions:
> > +A. Enforce 1 container frame == 1 codec frame even if it causes 10% overhead.
> 
> Yes.

Vote noted. And my veto as well unless option D is selected which would
also include A.


> 
> > +B. Allow multiple frames as long as the whole packet is less than some
> > +   fixed minimum in bytes (like 256byte)
> 
> Very very bad. Demuxing requires a codec-specific framer.
> 
> > +C. Allow multiple frames as long as the whole packet is less than some
> > +   fixed minimum in bytes (like 256byte) and the codec uses a constant
> > +   framesize in samples.
> 
> This does not help.

help what?


> 
> > +D. Use header compression, that is allow to store the first (few) bytes
> > +   of a codec frame together with its size in the framecode table. This
> > +   would allow us to store the size of a frame without any redundancy.
> > +   Thus effectivly avoiding the overhead small frames cause.
> 
> At the cost of efficient decoding... If such a horrid proposal were

Id guess the overhead of working with 6 byte frames and decoding
a framecode before each takes more time than copying 60 bytes. Also depending
on the media this comes from 10% extra disk IO should beat 1 copy pass in
slowness.

And i dont give a damn about zero copy for a 400-1000 byte / sec codec!
also so much for bad compression ...

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/nut-devel/attachments/20080212/f5428264/attachment.pgp>


More information about the NUT-devel mailing list