[NUT-devel] Fourcc spec

Oded Shimon ods15 at ods15.dyndns.org
Sat Dec 23 12:15:39 CET 2006


On Fri, Dec 22, 2006 at 01:28:25PM +0100, Michael Niedermayer wrote:
> On Fri, Dec 22, 2006 at 12:56:26PM +0200, Oded Shimon wrote:
> > The general NUT habit so far was to ignore existing implementation 
> > limitations...
> 
> its easy to find arguments against any solution, but unless you compare
> 2 possible solutions this is meaningless
> 
> question is not if solution X has a flaw, question is which solution
> has the fewest flaws

OK, my best attempt:

Option 1: Keep the current situation:
The spec explicitly says to use AVI fourcc's, is vague on what to do if 
there is no AVI fourcc.
Pros:
Use the same codec tables as AVI for both muxing and demuxing
Keep fourcc's of old codecs for bug workarounds
Cons:
Several fourcc's per codec
No defined fourcc's for codecs which are not contained in AVI
No defined fourcc's for any codec really

Option 2: Make an explicit list, using only existing and popular fourcc's 
from AVI for codecs which exist in AVI, allowing several fourcc's per 
codec. (DX50, XVID, \x55\x00, ..)
Pros:
Use the same codec tables as AVI for both muxing and demuxing
Keep fourcc's of old codecs for bug workarounds
Defined fourcc's for all codecs
Cons:
Several fourcc's per codec
"Looks silly" (I'm personally not really against this, but I bet Rich 
is...)

Option 3: Make an explicit list, similar to the list I originally proposed
Pros:
Defined fourcc's for all codecs
Single fourcc per codec
"Clean" in sane codec names
Cons:
Different tables for AVI and NUT (for muxing, demuxing can still use 
common table)
Loss of bug workarounds


Summary:
A - Defined explicit codecs forucc's
B - bug workarounds ability
C - single fourcc per codec
D - Single table in implementation for muxer
E - "Sane" codec names

Option   A  B  C  D  E
     1      X     X (x) - since it is not explicit in spec, it doesn't matter as much
     2   X  X     X
     3   X     X     X


- ods15



More information about the NUT-devel mailing list