[Mplayer-cvslog] CVS: main/DOCS/tech mpcf.txt,1.54,1.55

Michael Niedermayer michaelni at gmx.at
Sun May 2 14:01:00 CEST 2004


Hi

On Sunday 02 May 2004 08:16, D Richard Felker III wrote:
> On Sun, May 02, 2004 at 03:42:58AM +0200, Michael Niedermayer wrote:
[...]
> > btw, the overhead per startcode should be approximately 8 +
> > 3*stream_count, less if there is too little space for every stream to
> > have a packet between 2 startcodes
>
> Hmm. This sounds accurate.
>
> > for 4 streams with the 16384 recommendation thats 0.12% in worst case.
> > IMHO its really a question about overhead vs. error robustness, but IMHO
> > 16k is reasonable
> >
> > as soon as we add short startcodes, assuming we do, we can raise this
> > maybe, but short startcodes will also need 3+1*stream_count at absolute
> > minimum IMHO
>
> How do short startcodes add 3+1*stream_count overhead? This is
> nonsense. They add constant overhead of 3 bytes per startcode, nothing
> more.
but then the timestamps will be random
for example, we loose 1 frame, and realize it immedeatly, in reality there 
will be a few random headers decoded without realizing it ...

actual pts: 0I 3P 1B 2B 6P 4B 5B 9P 7B 8B
LRU2:        3  2  1  3 -2  1  4 -2  1  4
LRU1:        2  1  3 -2  1  4 -2  1  4 -2
LRU0:        1  3 -2  1  4 -2  1  4 -2  1
encoded:     F  2  L  2  L  2  2  2  2  2 (F=full, L=lsb, 012=delta predicted)

damage:            X
LRU2:        3  2  X  1  3  2  4  3  2  4
LRU1:        2  1  X  3  2  4  3  2  4  3
LRU0:        1  3  X  2  4  3  2  4  3  2
decoded:     F  2  X  2  L  2  2  2  2  2
timestamp:   0  3  X  5  9 12 14 18 21 23

so, for short startcodes we have to
1. reset the timestamp delta predictors 
2. code all of the first following timestamps of each stream as lsb timestamp

3+1*stream_count is minimum, indeed the reseting may cause more lsb timestamps 
to follow, and lsb may be larger then 1 byte

[...]
-- 
Michael
level[i]= get_vlc(); i+=get_vlc();		(violates patent EP0266049)
median(mv[y-1][x], mv[y][x-1], mv[y+1][x+1]);	(violates patent #5,905,535)
buf[i]= qp - buf[i-1];				(violates patent #?)
for more examples, see http://mplayerhq.hu/~michael/patent.html
stop it, see http://petition.eurolinux.org & http://petition.ffii.org/eubsa/en




More information about the MPlayer-cvslog mailing list