From c4dc5566afcdb74d74e06088cd7afb833a0bee2a Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sun, 23 Oct 2016 11:15:37 +0300 Subject: [PATCH] + libogg 1.3.2 http://www.xiph.org http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz ./configure --disable-shared && make install --- ogg/include/ogg/config_types.h | 25 ++++ ogg/include/ogg/ogg.h | 210 +++++++++++++++++++++++++++++++++ ogg/include/ogg/os_types.h | 147 +++++++++++++++++++++++ ogg/lib/libogg.a | Bin 0 -> 25544 bytes 4 files changed, 382 insertions(+) create mode 100644 ogg/include/ogg/config_types.h create mode 100644 ogg/include/ogg/ogg.h create mode 100644 ogg/include/ogg/os_types.h create mode 100644 ogg/lib/libogg.a diff --git a/ogg/include/ogg/config_types.h b/ogg/include/ogg/config_types.h new file mode 100644 index 00000000..4b00047a --- /dev/null +++ b/ogg/include/ogg/config_types.h @@ -0,0 +1,25 @@ +#ifndef __CONFIG_TYPES_H__ +#define __CONFIG_TYPES_H__ + +/* these are filled in by configure */ +#define INCLUDE_INTTYPES_H 1 +#define INCLUDE_STDINT_H 1 +#define INCLUDE_SYS_TYPES_H 1 + +#if INCLUDE_INTTYPES_H +# include +#endif +#if INCLUDE_STDINT_H +# include +#endif +#if INCLUDE_SYS_TYPES_H +# include +#endif + +typedef int16_t ogg_int16_t; +typedef uint16_t ogg_uint16_t; +typedef int32_t ogg_int32_t; +typedef uint32_t ogg_uint32_t; +typedef int64_t ogg_int64_t; + +#endif diff --git a/ogg/include/ogg/ogg.h b/ogg/include/ogg/ogg.h new file mode 100644 index 00000000..cea4ebed --- /dev/null +++ b/ogg/include/ogg/ogg.h @@ -0,0 +1,210 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: toplevel libogg include + last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $ + + ********************************************************************/ +#ifndef _OGG_H +#define _OGG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + void *iov_base; + size_t iov_len; +} ogg_iovec_t; + +typedef struct { + long endbyte; + int endbit; + + unsigned char *buffer; + unsigned char *ptr; + long storage; +} oggpack_buffer; + +/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ + +typedef struct { + unsigned char *header; + long header_len; + unsigned char *body; + long body_len; +} ogg_page; + +/* ogg_stream_state contains the current encode/decode state of a logical + Ogg bitstream **********************************************************/ + +typedef struct { + unsigned char *body_data; /* bytes from packet bodies */ + long body_storage; /* storage elements allocated */ + long body_fill; /* elements stored; fill mark */ + long body_returned; /* elements of fill returned */ + + + int *lacing_vals; /* The values that will go to the segment table */ + ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact + this way, but it is simple coupled to the + lacing fifo */ + long lacing_storage; + long lacing_fill; + long lacing_packet; + long lacing_returned; + + unsigned char header[282]; /* working space for header encode */ + int header_fill; + + int e_o_s; /* set when we have buffered the last packet in the + logical bitstream */ + int b_o_s; /* set after we've written the initial page + of a logical bitstream */ + long serialno; + long pageno; + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ + ogg_int64_t granulepos; + +} ogg_stream_state; + +/* ogg_packet is used to encapsulate the data and metadata belonging + to a single raw Ogg/Vorbis packet *************************************/ + +typedef struct { + unsigned char *packet; + long bytes; + long b_o_s; + long e_o_s; + + ogg_int64_t granulepos; + + ogg_int64_t packetno; /* sequence number for decode; the framing + knows where there's a hole in the data, + but we need coupling so that the codec + (which is in a separate abstraction + layer) also knows about the gap */ +} ogg_packet; + +typedef struct { + unsigned char *data; + int storage; + int fill; + int returned; + + int unsynced; + int headerbytes; + int bodybytes; +} ogg_sync_state; + +/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ + +extern void oggpack_writeinit(oggpack_buffer *b); +extern int oggpack_writecheck(oggpack_buffer *b); +extern void oggpack_writetrunc(oggpack_buffer *b,long bits); +extern void oggpack_writealign(oggpack_buffer *b); +extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpack_reset(oggpack_buffer *b); +extern void oggpack_writeclear(oggpack_buffer *b); +extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpack_look(oggpack_buffer *b,int bits); +extern long oggpack_look1(oggpack_buffer *b); +extern void oggpack_adv(oggpack_buffer *b,int bits); +extern void oggpack_adv1(oggpack_buffer *b); +extern long oggpack_read(oggpack_buffer *b,int bits); +extern long oggpack_read1(oggpack_buffer *b); +extern long oggpack_bytes(oggpack_buffer *b); +extern long oggpack_bits(oggpack_buffer *b); +extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); + +extern void oggpackB_writeinit(oggpack_buffer *b); +extern int oggpackB_writecheck(oggpack_buffer *b); +extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); +extern void oggpackB_writealign(oggpack_buffer *b); +extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); +extern void oggpackB_reset(oggpack_buffer *b); +extern void oggpackB_writeclear(oggpack_buffer *b); +extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); +extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); +extern long oggpackB_look(oggpack_buffer *b,int bits); +extern long oggpackB_look1(oggpack_buffer *b); +extern void oggpackB_adv(oggpack_buffer *b,int bits); +extern void oggpackB_adv1(oggpack_buffer *b); +extern long oggpackB_read(oggpack_buffer *b,int bits); +extern long oggpackB_read1(oggpack_buffer *b); +extern long oggpackB_bytes(oggpack_buffer *b); +extern long oggpackB_bits(oggpack_buffer *b); +extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); + +/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ + +extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); +extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, + int count, long e_o_s, ogg_int64_t granulepos); +extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); +extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); + +/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ + +extern int ogg_sync_init(ogg_sync_state *oy); +extern int ogg_sync_clear(ogg_sync_state *oy); +extern int ogg_sync_reset(ogg_sync_state *oy); +extern int ogg_sync_destroy(ogg_sync_state *oy); +extern int ogg_sync_check(ogg_sync_state *oy); + +extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); +extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); +extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); +extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); +extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); +extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); +extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); + +/* Ogg BITSTREAM PRIMITIVES: general ***************************/ + +extern int ogg_stream_init(ogg_stream_state *os,int serialno); +extern int ogg_stream_clear(ogg_stream_state *os); +extern int ogg_stream_reset(ogg_stream_state *os); +extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); +extern int ogg_stream_destroy(ogg_stream_state *os); +extern int ogg_stream_check(ogg_stream_state *os); +extern int ogg_stream_eos(ogg_stream_state *os); + +extern void ogg_page_checksum_set(ogg_page *og); + +extern int ogg_page_version(const ogg_page *og); +extern int ogg_page_continued(const ogg_page *og); +extern int ogg_page_bos(const ogg_page *og); +extern int ogg_page_eos(const ogg_page *og); +extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); +extern int ogg_page_serialno(const ogg_page *og); +extern long ogg_page_pageno(const ogg_page *og); +extern int ogg_page_packets(const ogg_page *og); + +extern void ogg_packet_clear(ogg_packet *op); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OGG_H */ diff --git a/ogg/include/ogg/os_types.h b/ogg/include/ogg/os_types.h new file mode 100644 index 00000000..8bf82107 --- /dev/null +++ b/ogg/include/ogg/os_types.h @@ -0,0 +1,147 @@ +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * + * * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * + * by the Xiph.Org Foundation http://www.xiph.org/ * + * * + ******************************************************************** + + function: #ifdef jail to whip a few platforms into the UNIX ideal. + last mod: $Id: os_types.h 19098 2014-02-26 19:06:45Z giles $ + + ********************************************************************/ +#ifndef _OS_TYPES_H +#define _OS_TYPES_H + +/* make it easy on the folks that want to compile the libs with a + different malloc than stdlib */ +#define _ogg_malloc malloc +#define _ogg_calloc calloc +#define _ogg_realloc realloc +#define _ogg_free free + +#if defined(_WIN32) + +# if defined(__CYGWIN__) +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; +# elif defined(__MINGW32__) +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + typedef unsigned long long ogg_uint64_t; +# elif defined(__MWERKS__) + typedef long long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; +# else + /* MSVC/Borland */ + typedef __int64 ogg_int64_t; + typedef __int32 ogg_int32_t; + typedef unsigned __int32 ogg_uint32_t; + typedef __int16 ogg_int16_t; + typedef unsigned __int16 ogg_uint16_t; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 ogg_int16_t; + typedef UInt16 ogg_uint16_t; + typedef SInt32 ogg_int32_t; + typedef UInt32 ogg_uint32_t; + typedef SInt64 ogg_int64_t; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined(__HAIKU__) + + /* Haiku */ +# include + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16_t ogg_int16_t; + typedef uint16_t ogg_uint16_t; + typedef int32_t ogg_int32_t; + typedef uint32_t ogg_uint32_t; + typedef int64_t ogg_int64_t; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short ogg_int16_t; + typedef int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long ogg_int64_t; + +#elif defined(R5900) + + /* PS2 EE */ + typedef long ogg_int64_t; + typedef int ogg_int32_t; + typedef unsigned ogg_uint32_t; + typedef short ogg_int16_t; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#elif defined(__TMS320C6X__) + + /* TI C64x compiler */ + typedef signed short ogg_int16_t; + typedef unsigned short ogg_uint16_t; + typedef signed int ogg_int32_t; + typedef unsigned int ogg_uint32_t; + typedef long long int ogg_int64_t; + +#else + +# include + +#endif + +#endif /* _OS_TYPES_H */ diff --git a/ogg/lib/libogg.a b/ogg/lib/libogg.a new file mode 100644 index 0000000000000000000000000000000000000000..99ee82575ace8e07c2c29181958d6302bd339c7a GIT binary patch literal 25544 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 literal 0 HcmV?d00001