annotate win32-mingw/include/ogg/ogg.h @ 169:223a55898ab9 tip default

Add null config files
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 02 Mar 2020 14:03:47 +0000
parents fe7c3a0b0259
children
rev   line source
cannam@88 1 /********************************************************************
cannam@88 2 * *
cannam@88 3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
cannam@88 4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
cannam@88 5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
cannam@88 6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
cannam@88 7 * *
cannam@88 8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
cannam@88 9 * by the Xiph.Org Foundation http://www.xiph.org/ *
cannam@88 10 * *
cannam@88 11 ********************************************************************
cannam@88 12
cannam@88 13 function: toplevel libogg include
cannam@88 14 last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $
cannam@88 15
cannam@88 16 ********************************************************************/
cannam@88 17 #ifndef _OGG_H
cannam@88 18 #define _OGG_H
cannam@88 19
cannam@88 20 #ifdef __cplusplus
cannam@88 21 extern "C" {
cannam@88 22 #endif
cannam@88 23
cannam@88 24 #include <stddef.h>
cannam@88 25 #include <ogg/os_types.h>
cannam@88 26
cannam@88 27 typedef struct {
cannam@88 28 void *iov_base;
cannam@88 29 size_t iov_len;
cannam@88 30 } ogg_iovec_t;
cannam@88 31
cannam@88 32 typedef struct {
cannam@88 33 long endbyte;
cannam@88 34 int endbit;
cannam@88 35
cannam@88 36 unsigned char *buffer;
cannam@88 37 unsigned char *ptr;
cannam@88 38 long storage;
cannam@88 39 } oggpack_buffer;
cannam@88 40
cannam@88 41 /* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/
cannam@88 42
cannam@88 43 typedef struct {
cannam@88 44 unsigned char *header;
cannam@88 45 long header_len;
cannam@88 46 unsigned char *body;
cannam@88 47 long body_len;
cannam@88 48 } ogg_page;
cannam@88 49
cannam@88 50 /* ogg_stream_state contains the current encode/decode state of a logical
cannam@88 51 Ogg bitstream **********************************************************/
cannam@88 52
cannam@88 53 typedef struct {
cannam@88 54 unsigned char *body_data; /* bytes from packet bodies */
cannam@88 55 long body_storage; /* storage elements allocated */
cannam@88 56 long body_fill; /* elements stored; fill mark */
cannam@88 57 long body_returned; /* elements of fill returned */
cannam@88 58
cannam@88 59
cannam@88 60 int *lacing_vals; /* The values that will go to the segment table */
cannam@88 61 ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact
cannam@88 62 this way, but it is simple coupled to the
cannam@88 63 lacing fifo */
cannam@88 64 long lacing_storage;
cannam@88 65 long lacing_fill;
cannam@88 66 long lacing_packet;
cannam@88 67 long lacing_returned;
cannam@88 68
cannam@88 69 unsigned char header[282]; /* working space for header encode */
cannam@88 70 int header_fill;
cannam@88 71
cannam@88 72 int e_o_s; /* set when we have buffered the last packet in the
cannam@88 73 logical bitstream */
cannam@88 74 int b_o_s; /* set after we've written the initial page
cannam@88 75 of a logical bitstream */
cannam@88 76 long serialno;
cannam@88 77 long pageno;
cannam@88 78 ogg_int64_t packetno; /* sequence number for decode; the framing
cannam@88 79 knows where there's a hole in the data,
cannam@88 80 but we need coupling so that the codec
cannam@88 81 (which is in a separate abstraction
cannam@88 82 layer) also knows about the gap */
cannam@88 83 ogg_int64_t granulepos;
cannam@88 84
cannam@88 85 } ogg_stream_state;
cannam@88 86
cannam@88 87 /* ogg_packet is used to encapsulate the data and metadata belonging
cannam@88 88 to a single raw Ogg/Vorbis packet *************************************/
cannam@88 89
cannam@88 90 typedef struct {
cannam@88 91 unsigned char *packet;
cannam@88 92 long bytes;
cannam@88 93 long b_o_s;
cannam@88 94 long e_o_s;
cannam@88 95
cannam@88 96 ogg_int64_t granulepos;
cannam@88 97
cannam@88 98 ogg_int64_t packetno; /* sequence number for decode; the framing
cannam@88 99 knows where there's a hole in the data,
cannam@88 100 but we need coupling so that the codec
cannam@88 101 (which is in a separate abstraction
cannam@88 102 layer) also knows about the gap */
cannam@88 103 } ogg_packet;
cannam@88 104
cannam@88 105 typedef struct {
cannam@88 106 unsigned char *data;
cannam@88 107 int storage;
cannam@88 108 int fill;
cannam@88 109 int returned;
cannam@88 110
cannam@88 111 int unsynced;
cannam@88 112 int headerbytes;
cannam@88 113 int bodybytes;
cannam@88 114 } ogg_sync_state;
cannam@88 115
cannam@88 116 /* Ogg BITSTREAM PRIMITIVES: bitstream ************************/
cannam@88 117
cannam@88 118 extern void oggpack_writeinit(oggpack_buffer *b);
cannam@88 119 extern int oggpack_writecheck(oggpack_buffer *b);
cannam@88 120 extern void oggpack_writetrunc(oggpack_buffer *b,long bits);
cannam@88 121 extern void oggpack_writealign(oggpack_buffer *b);
cannam@88 122 extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits);
cannam@88 123 extern void oggpack_reset(oggpack_buffer *b);
cannam@88 124 extern void oggpack_writeclear(oggpack_buffer *b);
cannam@88 125 extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
cannam@88 126 extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits);
cannam@88 127 extern long oggpack_look(oggpack_buffer *b,int bits);
cannam@88 128 extern long oggpack_look1(oggpack_buffer *b);
cannam@88 129 extern void oggpack_adv(oggpack_buffer *b,int bits);
cannam@88 130 extern void oggpack_adv1(oggpack_buffer *b);
cannam@88 131 extern long oggpack_read(oggpack_buffer *b,int bits);
cannam@88 132 extern long oggpack_read1(oggpack_buffer *b);
cannam@88 133 extern long oggpack_bytes(oggpack_buffer *b);
cannam@88 134 extern long oggpack_bits(oggpack_buffer *b);
cannam@88 135 extern unsigned char *oggpack_get_buffer(oggpack_buffer *b);
cannam@88 136
cannam@88 137 extern void oggpackB_writeinit(oggpack_buffer *b);
cannam@88 138 extern int oggpackB_writecheck(oggpack_buffer *b);
cannam@88 139 extern void oggpackB_writetrunc(oggpack_buffer *b,long bits);
cannam@88 140 extern void oggpackB_writealign(oggpack_buffer *b);
cannam@88 141 extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits);
cannam@88 142 extern void oggpackB_reset(oggpack_buffer *b);
cannam@88 143 extern void oggpackB_writeclear(oggpack_buffer *b);
cannam@88 144 extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
cannam@88 145 extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits);
cannam@88 146 extern long oggpackB_look(oggpack_buffer *b,int bits);
cannam@88 147 extern long oggpackB_look1(oggpack_buffer *b);
cannam@88 148 extern void oggpackB_adv(oggpack_buffer *b,int bits);
cannam@88 149 extern void oggpackB_adv1(oggpack_buffer *b);
cannam@88 150 extern long oggpackB_read(oggpack_buffer *b,int bits);
cannam@88 151 extern long oggpackB_read1(oggpack_buffer *b);
cannam@88 152 extern long oggpackB_bytes(oggpack_buffer *b);
cannam@88 153 extern long oggpackB_bits(oggpack_buffer *b);
cannam@88 154 extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b);
cannam@88 155
cannam@88 156 /* Ogg BITSTREAM PRIMITIVES: encoding **************************/
cannam@88 157
cannam@88 158 extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
cannam@88 159 extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov,
cannam@88 160 int count, long e_o_s, ogg_int64_t granulepos);
cannam@88 161 extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
cannam@88 162 extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill);
cannam@88 163 extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og);
cannam@88 164 extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill);
cannam@88 165
cannam@88 166 /* Ogg BITSTREAM PRIMITIVES: decoding **************************/
cannam@88 167
cannam@88 168 extern int ogg_sync_init(ogg_sync_state *oy);
cannam@88 169 extern int ogg_sync_clear(ogg_sync_state *oy);
cannam@88 170 extern int ogg_sync_reset(ogg_sync_state *oy);
cannam@88 171 extern int ogg_sync_destroy(ogg_sync_state *oy);
cannam@88 172 extern int ogg_sync_check(ogg_sync_state *oy);
cannam@88 173
cannam@88 174 extern char *ogg_sync_buffer(ogg_sync_state *oy, long size);
cannam@88 175 extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes);
cannam@88 176 extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og);
cannam@88 177 extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
cannam@88 178 extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
cannam@88 179 extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
cannam@88 180 extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op);
cannam@88 181
cannam@88 182 /* Ogg BITSTREAM PRIMITIVES: general ***************************/
cannam@88 183
cannam@88 184 extern int ogg_stream_init(ogg_stream_state *os,int serialno);
cannam@88 185 extern int ogg_stream_clear(ogg_stream_state *os);
cannam@88 186 extern int ogg_stream_reset(ogg_stream_state *os);
cannam@88 187 extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno);
cannam@88 188 extern int ogg_stream_destroy(ogg_stream_state *os);
cannam@88 189 extern int ogg_stream_check(ogg_stream_state *os);
cannam@88 190 extern int ogg_stream_eos(ogg_stream_state *os);
cannam@88 191
cannam@88 192 extern void ogg_page_checksum_set(ogg_page *og);
cannam@88 193
cannam@88 194 extern int ogg_page_version(const ogg_page *og);
cannam@88 195 extern int ogg_page_continued(const ogg_page *og);
cannam@88 196 extern int ogg_page_bos(const ogg_page *og);
cannam@88 197 extern int ogg_page_eos(const ogg_page *og);
cannam@88 198 extern ogg_int64_t ogg_page_granulepos(const ogg_page *og);
cannam@88 199 extern int ogg_page_serialno(const ogg_page *og);
cannam@88 200 extern long ogg_page_pageno(const ogg_page *og);
cannam@88 201 extern int ogg_page_packets(const ogg_page *og);
cannam@88 202
cannam@88 203 extern void ogg_packet_clear(ogg_packet *op);
cannam@88 204
cannam@88 205
cannam@88 206 #ifdef __cplusplus
cannam@88 207 }
cannam@88 208 #endif
cannam@88 209
cannam@88 210 #endif /* _OGG_H */