]> gitweb.factorcode.org Git - factor.git/blob - extra/ogg/ogg.factor
Merge branch 'ogg' of git://double.co.nz/git/factor
[factor.git] / extra / ogg / ogg.factor
1 ! Copyright (C) 2007 Chris Double.
2 ! See http://factorcode.org/license.txt for BSD license.
3 !
4 USING: 
5     alien
6     alien.c-types 
7     alien.libraries
8     alien.syntax 
9     classes.struct
10     combinators 
11     kernel 
12     system
13 ;
14 IN: ogg
15
16 <<
17 "ogg" {
18     { [ os winnt? ]  [ "ogg.dll" ] }
19     { [ os macosx? ] [ "libogg.0.dylib" ] }
20     { [ os unix? ]   [ "libogg.so" ] }
21 } cond "cdecl" add-library
22 >>
23
24 LIBRARY: ogg
25
26 STRUCT: oggpack-buffer
27     { endbyte long }
28     { endbit int   }
29     { buffer uchar* }
30     { ptr uchar* }
31     { storage long } ;
32
33 STRUCT: ogg-page
34     {  header uchar* }
35     {  header_len long }
36     {  body uchar* }
37     {  body_len long } ;
38
39 STRUCT: ogg-stream-state
40     {  body_data uchar* }
41     {  body_storage long }
42     {  body_fill long }
43     {  body_returned long }
44     {  lacing_vals int* } 
45     {  granule_vals longlong* }
46     {  lacing_storage long }
47     {  lacing_fill long }
48     {  lacing_packet long }
49     {  lacing_returned long }
50     {  header { uchar 282 } }
51     {  header_fill int }
52     {  e_o_s int }
53     {  b_o_s int }
54     {  serialno long  }
55     {  pageno long }
56     {  packetno longlong }
57     {  granulepos longlong } ;
58
59 STRUCT: ogg-packet
60     {  packet uchar* }
61     {  bytes long }
62     {  b_o_s long }
63     {  e_o_s long }
64     {  granulepos longlong }
65     {  packetno longlong } ;
66
67 STRUCT: ogg-sync-state
68     { data uchar* }
69     { storage int }
70     { fill int }  
71     { returned int }
72     { unsynced int }
73     { headerbytes int }
74     { bodybytes int } ;
75
76 FUNCTION: void oggpack_writeinit ( oggpack-buffer* b ) ;
77 FUNCTION: void  oggpack_writetrunc ( oggpack-buffer* b, long bits ) ;
78 FUNCTION: void  oggpack_writealign ( oggpack-buffer* b) ;
79 FUNCTION: void  oggpack_writecopy ( oggpack-buffer* b, void* source, long bits ) ;
80 FUNCTION: void  oggpack_reset ( oggpack-buffer* b ) ;
81 FUNCTION: void  oggpack_writeclear ( oggpack-buffer* b ) ;
82 FUNCTION: void  oggpack_readinit ( oggpack-buffer* b, uchar* buf, int bytes ) ;
83 FUNCTION: void  oggpack_write ( oggpack-buffer* b, ulong value, int bits ) ;
84 FUNCTION: long  oggpack_look ( oggpack-buffer* b, int bits ) ;
85 FUNCTION: long  oggpack_look1 ( oggpack-buffer* b ) ;
86 FUNCTION: void  oggpack_adv ( oggpack-buffer* b, int bits ) ;
87 FUNCTION: void  oggpack_adv1 ( oggpack-buffer* b ) ;
88 FUNCTION: long  oggpack_read ( oggpack-buffer* b, int bits ) ;
89 FUNCTION: long  oggpack_read1 ( oggpack-buffer* b ) ;
90 FUNCTION: long  oggpack_bytes ( oggpack-buffer* b ) ;
91 FUNCTION: long  oggpack_bits ( oggpack-buffer* b ) ;
92 FUNCTION: uchar* oggpack_get_buffer ( oggpack-buffer* b ) ;
93 FUNCTION: void  oggpackB_writeinit ( oggpack-buffer* b ) ;
94 FUNCTION: void  oggpackB_writetrunc ( oggpack-buffer* b, long bits ) ;
95 FUNCTION: void  oggpackB_writealign ( oggpack-buffer* b ) ;
96 FUNCTION: void  oggpackB_writecopy ( oggpack-buffer* b, void* source, long bits ) ;
97 FUNCTION: void  oggpackB_reset ( oggpack-buffer* b ) ;
98 FUNCTION: void  oggpackB_writeclear ( oggpack-buffer* b ) ;
99 FUNCTION: void  oggpackB_readinit ( oggpack-buffer* b, uchar* buf, int bytes ) ;
100 FUNCTION: void  oggpackB_write ( oggpack-buffer* b, ulong value, int bits ) ;
101 FUNCTION: long  oggpackB_look ( oggpack-buffer* b, int bits ) ;
102 FUNCTION: long  oggpackB_look1 ( oggpack-buffer* b ) ;
103 FUNCTION: void  oggpackB_adv ( oggpack-buffer* b, int bits ) ;
104 FUNCTION: void  oggpackB_adv1 ( oggpack-buffer* b ) ;
105 FUNCTION: long  oggpackB_read ( oggpack-buffer* b, int bits ) ;
106 FUNCTION: long  oggpackB_read1 ( oggpack-buffer* b ) ;
107 FUNCTION: long  oggpackB_bytes ( oggpack-buffer* b ) ;
108 FUNCTION: long  oggpackB_bits ( oggpack-buffer* b ) ;
109 FUNCTION: uchar* oggpackB_get_buffer ( oggpack-buffer* b ) ;
110 FUNCTION: int      ogg_stream_packetin ( ogg-stream-state* os, ogg-packet* op ) ;
111 FUNCTION: int      ogg_stream_pageout ( ogg-stream-state* os, ogg-page* og ) ;
112 FUNCTION: int      ogg_stream_flush ( ogg-stream-state* os, ogg-page* og ) ;
113 FUNCTION: int      ogg_sync_init ( ogg-sync-state* oy ) ;
114 FUNCTION: int      ogg_sync_clear ( ogg-sync-state* oy ) ;
115 FUNCTION: int      ogg_sync_reset ( ogg-sync-state* oy ) ;
116 FUNCTION: int   ogg_sync_destroy ( ogg-sync-state* oy ) ;
117
118 FUNCTION: void* ogg_sync_buffer ( ogg-sync-state* oy, long size ) ;
119 FUNCTION: int      ogg_sync_wrote ( ogg-sync-state* oy, long bytes ) ;
120 FUNCTION: long     ogg_sync_pageseek ( ogg-sync-state* oy, ogg-page* og ) ;
121 FUNCTION: int      ogg_sync_pageout ( ogg-sync-state* oy, ogg-page* og ) ;
122 FUNCTION: int      ogg_stream_pagein ( ogg-stream-state* os, ogg-page* og ) ;
123 FUNCTION: int      ogg_stream_packetout ( ogg-stream-state* os, ogg-packet* op ) ;
124 FUNCTION: int      ogg_stream_packetpeek ( ogg-stream-state* os, ogg-packet* op ) ;
125 FUNCTION: int      ogg_stream_init (ogg-stream-state* os, int serialno ) ;
126 FUNCTION: int      ogg_stream_clear ( ogg-stream-state* os ) ;
127 FUNCTION: int      ogg_stream_reset ( ogg-stream-state* os ) ;
128 FUNCTION: int      ogg_stream_reset_serialno ( ogg-stream-state* os, int serialno ) ;
129 FUNCTION: int      ogg_stream_destroy ( ogg-stream-state* os ) ;
130 FUNCTION: int      ogg_stream_eos ( ogg-stream-state* os ) ;
131 FUNCTION: void     ogg_page_checksum_set ( ogg-page* og ) ;
132 FUNCTION: int      ogg_page_version ( ogg-page* og ) ;
133 FUNCTION: int      ogg_page_continued ( ogg-page* og ) ;
134 FUNCTION: int      ogg_page_bos ( ogg-page* og ) ;
135 FUNCTION: int      ogg_page_eos ( ogg-page* og ) ;
136 FUNCTION: longlong  ogg_page_granulepos ( ogg-page* og ) ;
137 FUNCTION: int      ogg_page_serialno ( ogg-page* og ) ;
138 FUNCTION: long     ogg_page_pageno ( ogg-page* og ) ;
139 FUNCTION: int      ogg_page_packets ( ogg-page* og ) ;
140 FUNCTION: void     ogg_packet_clear ( ogg-packet* op ) ;
141