ogg.h
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:5k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #ifndef _OGG_H
  2. #define _OGG_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include <ogg/os_types.h>
  7. typedef struct {
  8.   long endbyte;
  9.   int  endbit;
  10.   unsigned char *buffer;
  11.   unsigned char *ptr;
  12.   long storage;
  13. } oggpack_buffer;
  14. typedef struct {
  15.   unsigned char *header;
  16.   long header_len;
  17.   unsigned char *body;
  18.   long body_len;
  19. } ogg_page;
  20. typedef struct {
  21.   unsigned char   *body_data;    
  22.   long    body_storage;          
  23.   long    body_fill;             
  24.   long    body_returned;        
  25.   int     *lacing_vals;     
  26.   ogg_int64_t *granule_vals; 
  27.   long    lacing_storage;
  28.   long    lacing_fill;
  29.   long    lacing_packet;
  30.   long    lacing_returned;
  31.   unsigned char    header[282];     
  32.   int              header_fill;
  33.   int     e_o_s;         
  34.   int     b_o_s;          
  35.   long    serialno;
  36.   long    pageno;
  37.   ogg_int64_t  packetno;     
  38.   ogg_int64_t   granulepos;
  39. } ogg_stream_state;
  40. typedef struct {
  41.   unsigned char *packet;
  42.   long  bytes;
  43.   long  b_o_s;
  44.   long  e_o_s;
  45.   ogg_int64_t  granulepos;
  46.   
  47.   ogg_int64_t  packetno;     
  48. } ogg_packet;
  49. typedef struct {
  50.   unsigned char *data;
  51.   int storage;
  52.   int fill;
  53.   int returned;
  54.   int unsynced;
  55.   int headerbytes;
  56.   int bodybytes;
  57. } ogg_sync_state;
  58. extern void  oggpack_writeinit(oggpack_buffer *b);
  59. extern void  oggpack_writetrunc(oggpack_buffer *b,long bits);
  60. extern void  oggpack_writealign(oggpack_buffer *b);
  61. extern void  oggpack_writecopy(oggpack_buffer *b,void *source,long bits);
  62. extern void  oggpack_reset(oggpack_buffer *b);
  63. extern void  oggpack_writeclear(oggpack_buffer *b);
  64. extern void  oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
  65. extern void  oggpack_write(oggpack_buffer *b,unsigned long value,int bits);
  66. extern long  oggpack_look(oggpack_buffer *b,int bits);
  67. extern long  oggpack_look1(oggpack_buffer *b);
  68. extern void  oggpack_adv(oggpack_buffer *b,int bits);
  69. extern void  oggpack_adv1(oggpack_buffer *b);
  70. extern long  oggpack_read(oggpack_buffer *b,int bits);
  71. extern long  oggpack_read1(oggpack_buffer *b);
  72. extern long  oggpack_bytes(oggpack_buffer *b);
  73. extern long  oggpack_bits(oggpack_buffer *b);
  74. extern unsigned char *oggpack_get_buffer(oggpack_buffer *b);
  75. extern void  oggpackB_writeinit(oggpack_buffer *b);
  76. extern void  oggpackB_writetrunc(oggpack_buffer *b,long bits);
  77. extern void  oggpackB_writealign(oggpack_buffer *b);
  78. extern void  oggpackB_writecopy(oggpack_buffer *b,void *source,long bits);
  79. extern void  oggpackB_reset(oggpack_buffer *b);
  80. extern void  oggpackB_writeclear(oggpack_buffer *b);
  81. extern void  oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
  82. extern void  oggpackB_write(oggpack_buffer *b,unsigned long value,int bits);
  83. extern long  oggpackB_look(oggpack_buffer *b,int bits);
  84. extern long  oggpackB_look1(oggpack_buffer *b);
  85. extern void  oggpackB_adv(oggpack_buffer *b,int bits);
  86. extern void  oggpackB_adv1(oggpack_buffer *b);
  87. extern long  oggpackB_read(oggpack_buffer *b,int bits);
  88. extern long  oggpackB_read1(oggpack_buffer *b);
  89. extern long  oggpackB_bytes(oggpack_buffer *b);
  90. extern long  oggpackB_bits(oggpack_buffer *b);
  91. extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b);
  92. extern int      ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
  93. extern int      ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
  94. extern int      ogg_stream_flush(ogg_stream_state *os, ogg_page *og);
  95. extern int      ogg_sync_init(ogg_sync_state *oy);
  96. extern int      ogg_sync_clear(ogg_sync_state *oy);
  97. extern int      ogg_sync_reset(ogg_sync_state *oy);
  98. extern int ogg_sync_destroy(ogg_sync_state *oy);
  99. extern char    *ogg_sync_buffer(ogg_sync_state *oy, long size);
  100. extern int      ogg_sync_wrote(ogg_sync_state *oy, long bytes);
  101. extern long     ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og);
  102. extern int      ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
  103. extern int      ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
  104. extern int      ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
  105. extern int      ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op);
  106. extern int      ogg_stream_init(ogg_stream_state *os,int serialno);
  107. extern int      ogg_stream_clear(ogg_stream_state *os);
  108. extern int      ogg_stream_reset(ogg_stream_state *os);
  109. extern int      ogg_stream_reset_serialno(ogg_stream_state *os,int serialno);
  110. extern int      ogg_stream_destroy(ogg_stream_state *os);
  111. extern int      ogg_stream_eos(ogg_stream_state *os);
  112. extern void     ogg_page_checksum_set(ogg_page *og);
  113. extern int      ogg_page_version(ogg_page *og);
  114. extern int      ogg_page_continued(ogg_page *og);
  115. extern int      ogg_page_bos(ogg_page *og);
  116. extern int      ogg_page_eos(ogg_page *og);
  117. extern ogg_int64_t  ogg_page_granulepos(ogg_page *og);
  118. extern int      ogg_page_serialno(ogg_page *og);
  119. extern long     ogg_page_pageno(ogg_page *og);
  120. extern int      ogg_page_packets(ogg_page *og);
  121. extern void     ogg_packet_clear(ogg_packet *op);
  122. #ifdef __cplusplus
  123. }
  124. #endif
  125. #endif  /* _OGG_H */