/extra/ogg/ogg.factor

http://github.com/abeaumont/factor · Factor · 143 lines · 129 code · 11 blank · 3 comment · 1 complexity · 36f7bb84742ce7618e283a756657d750 MD5 · raw file

  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. "ogg" {
  17. { [ os windows? ] [ "ogg.dll" ] }
  18. { [ os macosx? ] [ "libogg.0.dylib" ] }
  19. { [ os unix? ] [ "libogg.so" ] }
  20. } cond cdecl add-library
  21. "ogg" deploy-library
  22. >>
  23. LIBRARY: ogg
  24. STRUCT: oggpack-buffer
  25. { endbyte long }
  26. { endbit int }
  27. { buffer uchar* }
  28. { ptr uchar* }
  29. { storage long } ;
  30. STRUCT: ogg-page
  31. { header uchar* }
  32. { header_len long }
  33. { body uchar* }
  34. { body_len long } ;
  35. STRUCT: ogg-stream-state
  36. { body_data uchar* }
  37. { body_storage long }
  38. { body_fill long }
  39. { body_returned long }
  40. { lacing_vals int* }
  41. { granule_vals longlong* }
  42. { lacing_storage long }
  43. { lacing_fill long }
  44. { lacing_packet long }
  45. { lacing_returned long }
  46. { header { uchar 282 } }
  47. { header_fill int }
  48. { e_o_s int }
  49. { b_o_s int }
  50. { serialno long }
  51. { pageno long }
  52. { packetno longlong }
  53. { granulepos longlong } ;
  54. STRUCT: ogg-packet
  55. { packet uchar* }
  56. { bytes long }
  57. { b_o_s long }
  58. { e_o_s long }
  59. { granulepos longlong }
  60. { packetno longlong } ;
  61. STRUCT: ogg-sync-state
  62. { data uchar* }
  63. { storage int }
  64. { fill int }
  65. { returned int }
  66. { unsynced int }
  67. { headerbytes int }
  68. { bodybytes int } ;
  69. FUNCTION: void oggpack_writeinit ( oggpack-buffer* b ) ;
  70. FUNCTION: void oggpack_writetrunc ( oggpack-buffer* b, long bits ) ;
  71. FUNCTION: void oggpack_writealign ( oggpack-buffer* b) ;
  72. FUNCTION: void oggpack_writecopy ( oggpack-buffer* b, void* source, long bits ) ;
  73. FUNCTION: void oggpack_reset ( oggpack-buffer* b ) ;
  74. FUNCTION: void oggpack_writeclear ( oggpack-buffer* b ) ;
  75. FUNCTION: void oggpack_readinit ( oggpack-buffer* b, uchar* buf, int bytes ) ;
  76. FUNCTION: void oggpack_write ( oggpack-buffer* b, ulong value, int bits ) ;
  77. FUNCTION: long oggpack_look ( oggpack-buffer* b, int bits ) ;
  78. FUNCTION: long oggpack_look1 ( oggpack-buffer* b ) ;
  79. FUNCTION: void oggpack_adv ( oggpack-buffer* b, int bits ) ;
  80. FUNCTION: void oggpack_adv1 ( oggpack-buffer* b ) ;
  81. FUNCTION: long oggpack_read ( oggpack-buffer* b, int bits ) ;
  82. FUNCTION: long oggpack_read1 ( oggpack-buffer* b ) ;
  83. FUNCTION: long oggpack_bytes ( oggpack-buffer* b ) ;
  84. FUNCTION: long oggpack_bits ( oggpack-buffer* b ) ;
  85. FUNCTION: uchar* oggpack_get_buffer ( oggpack-buffer* b ) ;
  86. FUNCTION: void oggpackB_writeinit ( oggpack-buffer* b ) ;
  87. FUNCTION: void oggpackB_writetrunc ( oggpack-buffer* b, long bits ) ;
  88. FUNCTION: void oggpackB_writealign ( oggpack-buffer* b ) ;
  89. FUNCTION: void oggpackB_writecopy ( oggpack-buffer* b, void* source, long bits ) ;
  90. FUNCTION: void oggpackB_reset ( oggpack-buffer* b ) ;
  91. FUNCTION: void oggpackB_writeclear ( oggpack-buffer* b ) ;
  92. FUNCTION: void oggpackB_readinit ( oggpack-buffer* b, uchar* buf, int bytes ) ;
  93. FUNCTION: void oggpackB_write ( oggpack-buffer* b, ulong value, int bits ) ;
  94. FUNCTION: long oggpackB_look ( oggpack-buffer* b, int bits ) ;
  95. FUNCTION: long oggpackB_look1 ( oggpack-buffer* b ) ;
  96. FUNCTION: void oggpackB_adv ( oggpack-buffer* b, int bits ) ;
  97. FUNCTION: void oggpackB_adv1 ( oggpack-buffer* b ) ;
  98. FUNCTION: long oggpackB_read ( oggpack-buffer* b, int bits ) ;
  99. FUNCTION: long oggpackB_read1 ( oggpack-buffer* b ) ;
  100. FUNCTION: long oggpackB_bytes ( oggpack-buffer* b ) ;
  101. FUNCTION: long oggpackB_bits ( oggpack-buffer* b ) ;
  102. FUNCTION: uchar* oggpackB_get_buffer ( oggpack-buffer* b ) ;
  103. FUNCTION: int ogg_stream_packetin ( ogg-stream-state* os, ogg-packet* op ) ;
  104. FUNCTION: int ogg_stream_pageout ( ogg-stream-state* os, ogg-page* og ) ;
  105. FUNCTION: int ogg_stream_flush ( ogg-stream-state* os, ogg-page* og ) ;
  106. FUNCTION: int ogg_sync_init ( ogg-sync-state* oy ) ;
  107. FUNCTION: int ogg_sync_clear ( ogg-sync-state* oy ) ;
  108. FUNCTION: int ogg_sync_reset ( ogg-sync-state* oy ) ;
  109. FUNCTION: int ogg_sync_destroy ( ogg-sync-state* oy ) ;
  110. FUNCTION: void* ogg_sync_buffer ( ogg-sync-state* oy, long size ) ;
  111. FUNCTION: int ogg_sync_wrote ( ogg-sync-state* oy, long bytes ) ;
  112. FUNCTION: long ogg_sync_pageseek ( ogg-sync-state* oy, ogg-page* og ) ;
  113. FUNCTION: int ogg_sync_pageout ( ogg-sync-state* oy, ogg-page* og ) ;
  114. FUNCTION: int ogg_stream_pagein ( ogg-stream-state* os, ogg-page* og ) ;
  115. FUNCTION: int ogg_stream_packetout ( ogg-stream-state* os, ogg-packet* op ) ;
  116. FUNCTION: int ogg_stream_packetpeek ( ogg-stream-state* os, ogg-packet* op ) ;
  117. FUNCTION: int ogg_stream_init ( ogg-stream-state* os, int serialno ) ;
  118. FUNCTION: int ogg_stream_clear ( ogg-stream-state* os ) ;
  119. FUNCTION: int ogg_stream_reset ( ogg-stream-state* os ) ;
  120. FUNCTION: int ogg_stream_reset_serialno ( ogg-stream-state* os, int serialno ) ;
  121. FUNCTION: int ogg_stream_destroy ( ogg-stream-state* os ) ;
  122. FUNCTION: int ogg_stream_eos ( ogg-stream-state* os ) ;
  123. FUNCTION: void ogg_page_checksum_set ( ogg-page* og ) ;
  124. FUNCTION: int ogg_page_version ( ogg-page* og ) ;
  125. FUNCTION: int ogg_page_continued ( ogg-page* og ) ;
  126. FUNCTION: int ogg_page_bos ( ogg-page* og ) ;
  127. FUNCTION: int ogg_page_eos ( ogg-page* og ) ;
  128. FUNCTION: longlong ogg_page_granulepos ( ogg-page* og ) ;
  129. FUNCTION: int ogg_page_serialno ( ogg-page* og ) ;
  130. FUNCTION: long ogg_page_pageno ( ogg-page* og ) ;
  131. FUNCTION: int ogg_page_packets ( ogg-page* og ) ;
  132. FUNCTION: void ogg_packet_clear ( ogg-packet* op ) ;