133 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			133 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								! Copyright (C) 2007 Chris Double.
							 | 
						||
| 
								 | 
							
								! See http://factorcode.org/license.txt for BSD license.
							 | 
						||
| 
								 | 
							
								!
							 | 
						||
| 
								 | 
							
								USING: kernel system combinators alien alien.syntax ;
							 | 
						||
| 
								 | 
							
								IN: ogg
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<<
							 | 
						||
| 
								 | 
							
								"ogg" {
							 | 
						||
| 
								 | 
							
								    { [ os winnt? ]  [ "ogg.dll" ] }
							 | 
						||
| 
								 | 
							
								    { [ os macosx? ] [ "libogg.0.dylib" ] }
							 | 
						||
| 
								 | 
							
								    { [ os unix? ]   [ "libogg.so" ] }
							 | 
						||
| 
								 | 
							
								} cond "cdecl" add-library
							 | 
						||
| 
								 | 
							
								>>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								LIBRARY: ogg
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								C-STRUCT: oggpack_buffer
							 | 
						||
| 
								 | 
							
								    { "long" "endbyte" }
							 | 
						||
| 
								 | 
							
								    { "int" "endbit" }
							 | 
						||
| 
								 | 
							
								    { "uchar*" "buffer" }
							 | 
						||
| 
								 | 
							
								    { "uchar*" "ptr" }
							 | 
						||
| 
								 | 
							
								    { "long" "storage" } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								C-STRUCT: ogg_page
							 | 
						||
| 
								 | 
							
								    { "uchar*" "header" }
							 | 
						||
| 
								 | 
							
								    { "long" "header_len" }
							 | 
						||
| 
								 | 
							
								    { "uchar*" "body" }
							 | 
						||
| 
								 | 
							
								    { "long" "body_len" } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								C-STRUCT: ogg_stream_state
							 | 
						||
| 
								 | 
							
								    { "uchar*" "body_data" }
							 | 
						||
| 
								 | 
							
								    { "long" "body_storage" }
							 | 
						||
| 
								 | 
							
								    { "long" "body_fill" }
							 | 
						||
| 
								 | 
							
								    { "long" "body_returned" }
							 | 
						||
| 
								 | 
							
								    { "int*" "lacing_vals" } 
							 | 
						||
| 
								 | 
							
								    { "longlong*" "granule_vals" }
							 | 
						||
| 
								 | 
							
								    { "long" "lacing_storage" }
							 | 
						||
| 
								 | 
							
								    { "long" "lacing_fill" }
							 | 
						||
| 
								 | 
							
								    { "long" "lacing_packet" }
							 | 
						||
| 
								 | 
							
								    { "long" "lacing_returned" }
							 | 
						||
| 
								 | 
							
								    { { "uchar" 282 } "header" }
							 | 
						||
| 
								 | 
							
								    { "int" "header_fill" }
							 | 
						||
| 
								 | 
							
								    { "int" "e_o_s" }
							 | 
						||
| 
								 | 
							
								    { "int" "b_o_s" }
							 | 
						||
| 
								 | 
							
								    { "long" "serialno" }
							 | 
						||
| 
								 | 
							
								    { "long" "pageno" }
							 | 
						||
| 
								 | 
							
								    { "longlong" "packetno" }
							 | 
						||
| 
								 | 
							
								    { "longlong" "granulepos" } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								C-STRUCT: ogg_packet
							 | 
						||
| 
								 | 
							
								    { "uchar*" "packet" }
							 | 
						||
| 
								 | 
							
								    { "long" "bytes" }
							 | 
						||
| 
								 | 
							
								    { "long" "b_o_s" }
							 | 
						||
| 
								 | 
							
								    { "long" "e_o_s" }
							 | 
						||
| 
								 | 
							
								    { "longlong" "granulepos" }
							 | 
						||
| 
								 | 
							
								    { "longlong" "packetno" } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								C-STRUCT: ogg_sync_state
							 | 
						||
| 
								 | 
							
								    { "uchar*" "data" }
							 | 
						||
| 
								 | 
							
								    { "int" "storage" }
							 | 
						||
| 
								 | 
							
								    { "int" "fill" }  
							 | 
						||
| 
								 | 
							
								    { "int" "returned" }
							 | 
						||
| 
								 | 
							
								    { "int" "unsynced" }
							 | 
						||
| 
								 | 
							
								    { "int" "headerbytes" }
							 | 
						||
| 
								 | 
							
								    { "int" "bodybytes" } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FUNCTION: void oggpack_writeinit ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_writetrunc ( oggpack_buffer* b, long bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_writealign ( oggpack_buffer* b) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_writecopy ( oggpack_buffer* b, void* source, long bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_reset ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_writeclear ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_readinit ( oggpack_buffer* b, uchar* buf, int bytes ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_write ( oggpack_buffer* b, ulong value, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpack_look ( oggpack_buffer* b, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpack_look1 ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_adv ( oggpack_buffer* b, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpack_adv1 ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpack_read ( oggpack_buffer* b, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpack_read1 ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpack_bytes ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpack_bits ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: uchar* oggpack_get_buffer ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_writeinit ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_writetrunc ( oggpack_buffer* b, long bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_writealign ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_writecopy ( oggpack_buffer* b, void* source, long bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_reset ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_writeclear ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_readinit ( oggpack_buffer* b, uchar* buf, int bytes ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_write ( oggpack_buffer* b, ulong value, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpackB_look ( oggpack_buffer* b, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpackB_look1 ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_adv ( oggpack_buffer* b, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void  oggpackB_adv1 ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpackB_read ( oggpack_buffer* b, int bits ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpackB_read1 ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpackB_bytes ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long  oggpackB_bits ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: uchar* oggpackB_get_buffer ( oggpack_buffer* b ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_packetin ( ogg_stream_state* os, ogg_packet* op ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_pageout ( ogg_stream_state* os, ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_flush ( ogg_stream_state* os, ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_sync_init ( ogg_sync_state* oy ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_sync_clear ( ogg_sync_state* oy ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_sync_reset ( ogg_sync_state* oy ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int   ogg_sync_destroy ( ogg_sync_state* oy ) ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FUNCTION: void* ogg_sync_buffer ( ogg_sync_state* oy, long size ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_sync_wrote ( ogg_sync_state* oy, long bytes ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long     ogg_sync_pageseek ( ogg_sync_state* oy, ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_sync_pageout ( ogg_sync_state* oy, ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_pagein ( ogg_stream_state* os, ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_packetout ( ogg_stream_state* os, ogg_packet* op ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_packetpeek ( ogg_stream_state* os, ogg_packet* op ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_init (ogg_stream_state* os, int serialno ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_clear ( ogg_stream_state* os ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_reset ( ogg_stream_state* os ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_reset_serialno ( ogg_stream_state* os, int serialno ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_destroy ( ogg_stream_state* os ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_stream_eos ( ogg_stream_state* os ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void     ogg_page_checksum_set ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_page_version ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_page_continued ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_page_bos ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_page_eos ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: longlong  ogg_page_granulepos ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_page_serialno ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: long     ogg_page_pageno ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: int      ogg_page_packets ( ogg_page* og ) ;
							 | 
						||
| 
								 | 
							
								FUNCTION: void     ogg_packet_clear ( ogg_packet* op ) ;
							 | 
						||
| 
								 | 
							
								
							 |