[MPlayer-dev-eng] Nut proposal [Re: Cleaning your nuts]

Michael Niedermayer michaelni at gmx.at
Thu Apr 22 18:28:35 CEST 2004


Hi

On Thursday 22 April 2004 16:40, D Richard Felker III wrote:
[...]
> A better idea: allow the global header to define the meaning of the 4
> codes. If there are more than 4 streams, one of the codes must always
> indicate vlc. But rather than the +1/same/-1 system, it might be
> preferable to use 01,10,11 to indicate three audio streams (since
> audio has lots of small packets) and then vlc-code the stream id for
> all others. Or if you have just 2 audio streams, you could use the
> third code for one of the +1/same/-1 purposes.
>
> Someone (Ivan? :) might object that this sounds like bringing back the
> framecode lookup table nightmare. But IMO it's very different. My
> objection to framecode is that you have a single number that indices
> all of the properties of the frame (streamid, size, pts, ...), making
> it confusing and hard to choose a good table (because of multiple
> constraints).
i disagree, we can easily add a default frame_code table to the spec which is 
near identical to this flags system, and it would still allow more 
complicated muxers to choose better frame_code tables, while the flags system 
makes this impossible
choosing a good table also isnt a difficult multiple constraints thing either, 
its just assigning the 255 framecodes depending upon the likeliness of all 
possible frame_codes (excluding the packet_size)
so if a video non-keyframe of stream 0 with same pts delta as last occures in 
25% of the cases 255/4 frame_codes are assigned to it each with a different 
lsb_size
we also always include frame_codes to support rare cases

we dont know their likeliness yes, but we can guess based upon common sense, 
keyframe in audio/video, frame type likelyness, full timestamp likely, ...
and after all designing a static flags header isnt any different, we also make 
guesses about the likeliness and try to pack it in a byte, only difference is 
that its not extendible in the future

[...]
-- 
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-dev-eng mailing list