Obsolete unused backup project such as OK6410
guowenxue
2019-08-02 d304465ae7e95190acc898051acb4d7e4542a794
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
 
#------------------------------------------------------------------------------
# $File: vorbis,v 1.16 2009/09/19 16:28:13 christos Exp $
# vorbis:  file(1) magic for Ogg/Vorbis files
#
# From Felix von Leitner <leitner@fefe.de>
# Extended by Beni Cherniavsky <cben@crosswinds.net>
# Further extended by Greg Wooledge <greg@wooledge.org>
#
# Most (everything but the number of channels and bitrate) is commented
# out with `##' as it's not interesting to the average user.  The most
# probable things advanced users would want to uncomment are probably
# the number of comments and the encoder version.
#
# FIXME: The first match has been made a search, so that it can skip
# over prepended ID3 tags. This will work for MIME type detection, but
# won't work for detecting other properties of the file (they all need
# to be made relative to the search). In any case, if the file has ID3
# tags, the ID3 information will be printed, not the Ogg information,
# so until that's fixed, this doesn't matter.
# FIXME[2]: Disable the above for now, since search assumes text mode.
#
# --- Ogg Framing ---
#0        search/1000    OggS        Ogg data
0        string    OggS        Ogg data
!:mime        application/ogg
>4        byte        !0        UNKNOWN REVISION %u
##>4        byte        0        revision 0
>4        byte        0
##>>14        lelong        x        (Serial %lX)
# non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
>>28        string        \x7fFLAC    \b, FLAC audio
# non-Vorbis content: Theora
>>28        string        \x80theora    \b, Theora video
# non-Vorbis content: Kate
>>28        string        \x80kate\0\0\0\0    \b, Kate
>>>37        ubyte        x        v%u
>>>38        ubyte        x        \b.%u,
>>>40        byte        0        utf8 encoding,
>>>40        byte        !0        unknown character encoding,
>>>60        string        >\0        language %s,
>>>60        string        \0        no language set,
>>>76        string        >\0        category %s
>>>76        string        \0        no category set
# non-Vorbis content: Skeleton
>>28        string        fishead\0    \b, Skeleton
>>>36        short        x        v%u
>>>40        short        x        \b.%u
# non-Vorbis content: Speex
>>28        string        Speex\ \ \     \b, Speex audio
# non-Vorbis content: OGM
>>28        string        \x01video\0\0\0    \b, OGM video
>>>37        string/c    div3        (DivX 3)
>>>37        string/c    divx        (DivX 4)
>>>37        string/c    dx50        (DivX 5)
>>>37        string/c    xvid        (XviD)
# --- First vorbis packet - general header ---
>>28        string        \x01vorbis    \b, Vorbis audio,
>>>35        lelong        !0        UNKNOWN VERSION %lu,
##>>>35        lelong        0        version 0,
>>>35        lelong        0
>>>>39        ubyte        1        mono,
>>>>39        ubyte        2        stereo,
>>>>39        ubyte        >2        %u channels,
>>>>40        lelong        x        %lu Hz
# Minimal, nominal and maximal bitrates specified when encoding
>>>>48        string        <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff    \b,
# The above tests if at least one of these is specified:
>>>>>52        lelong        !-1
# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
# instead of -1.
# Vorbis 1.0 uses 0 instead of -1.
>>>>>>52    lelong        !0
>>>>>>>52    lelong        !-1000
>>>>>>>>52    lelong        x        <%lu
>>>>>48        lelong        !-1
>>>>>>48    lelong        x        ~%lu
>>>>>44        lelong        !-1
>>>>>>44    lelong        !-1000
>>>>>>>44    lelong        !0
>>>>>>>>44    lelong        x        >%lu
>>>>>48        string        <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff    bps
# -- Second vorbis header packet - the comments
# A kludge to read the vendor string.  It's a counted string, not a
# zero-terminated one, so file(1) can't read it in a generic way.
# libVorbis is the only one existing currently, so I detect specifically
# it.  The interesting value is the cvs date (8 digits decimal).
# Post-RC1 Ogg files have the second header packet (and thus the version)
# in a different place, so we must use an indirect offset.
>>>(84.b+85)        string        \x03vorbis
>>>>(84.b+96)        string/c    Xiphophorus\ libVorbis\ I    \b, created by: Xiphophorus libVorbis I
>>>>>(84.b+120)        string        >00000000    
# Map to beta version numbers:
>>>>>>(84.b+120)    string        <20000508    (<beta1, prepublic)
>>>>>>(84.b+120)    string        20000508    (1.0 beta 1 or beta 2)
>>>>>>(84.b+120)    string        >20000508
>>>>>>>(84.b+120)    string        <20001031    (beta2-3)
>>>>>>(84.b+120)    string        20001031    (1.0 beta 3)
>>>>>>(84.b+120)    string        >20001031
>>>>>>>(84.b+120)    string        <20010225    (beta3-4)
>>>>>>(84.b+120)    string        20010225    (1.0 beta 4)
>>>>>>(84.b+120)    string        >20010225
>>>>>>>(84.b+120)    string        <20010615    (beta4-RC1)
>>>>>>(84.b+120)    string        20010615    (1.0 RC1)
>>>>>>(84.b+120)    string        20010813    (1.0 RC2)
>>>>>>(84.b+120)    string        20010816    (RC2 - Garf tuned v1)
>>>>>>(84.b+120)    string        20011014    (RC2 - Garf tuned v2)
>>>>>>(84.b+120)    string        20011217    (1.0 RC3)
>>>>>>(84.b+120)    string        20011231    (1.0 RC3)
# Some pre-1.0 CVS snapshots still had "Xiphphorus"...
>>>>>>(84.b+120)    string        >20011231    (pre-1.0 CVS)
# For the 1.0 release, Xiphophorus is replaced by Xiph.Org
>>>>(84.b+96)        string/c    Xiph.Org\ libVorbis\ I    \b, created by: Xiph.Org libVorbis I
>>>>>(84.b+117)        string        >00000000    
>>>>>>(84.b+117)    string        <20020717    (pre-1.0 CVS)
>>>>>>(84.b+117)    string        20020717    (1.0)
>>>>>>(84.b+117)    string        20030909    (1.0.1)
>>>>>>(84.b+117)    string        20040629    (1.1.0 RC1)