[DEV] update the ogg and tremor with the new lutin build system
This commit is contained in:
parent
618dd74f93
commit
179046e549
46
lutin_ogg.py
Normal file
46
lutin_ogg.py
Normal file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/python
|
||||
import lutinModule as module
|
||||
import lutinTools as tools
|
||||
import lutinDebug as debug
|
||||
|
||||
def get_desc():
|
||||
return "ogg : Ogg-tremor library for ogg audio decoding"
|
||||
|
||||
|
||||
def create(target):
|
||||
myModule = module.Module(__file__, 'ogg', 'LIBRARY')
|
||||
|
||||
myModule.add_src_file([
|
||||
'ogg/framing.c',
|
||||
'ogg/bitwise.c',
|
||||
'tremor/floor0.c',
|
||||
'tremor/vorbisfile.c',
|
||||
'tremor/synthesis.c',
|
||||
'tremor/res012.c',
|
||||
'tremor/block.c',
|
||||
'tremor/mdct.c',
|
||||
'tremor/sharedbook.c',
|
||||
'tremor/codebook.c',
|
||||
'tremor/floor1.c',
|
||||
'tremor/window.c',
|
||||
'tremor/registry.c',
|
||||
'tremor/info.c',
|
||||
'tremor/mapping0.c'
|
||||
])
|
||||
|
||||
|
||||
myModule.add_export_path(tools.get_current_path(__file__))
|
||||
myModule.add_path(tools.get_current_path(__file__)+"/ogg/")
|
||||
myModule.add_path(tools.get_current_path(__file__)+"/tremor/")
|
||||
|
||||
# add the currrent module at the
|
||||
return myModule
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
25
ogg/config_types.h.in
Normal file
25
ogg/config_types.h.in
Normal file
@ -0,0 +1,25 @@
|
||||
#ifndef __CONFIG_TYPES_H__
|
||||
#define __CONFIG_TYPES_H__
|
||||
|
||||
/* these are filled in by configure */
|
||||
#define INCLUDE_INTTYPES_H @INCLUDE_INTTYPES_H@
|
||||
#define INCLUDE_STDINT_H @INCLUDE_STDINT_H@
|
||||
#define INCLUDE_SYS_TYPES_H @INCLUDE_SYS_TYPES_H@
|
||||
|
||||
#if INCLUDE_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#endif
|
||||
#if INCLUDE_STDINT_H
|
||||
# include <stdint.h>
|
||||
#endif
|
||||
#if INCLUDE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
typedef @SIZE16@ ogg_int16_t;
|
||||
typedef @USIZE16@ ogg_uint16_t;
|
||||
typedef @SIZE32@ ogg_int32_t;
|
||||
typedef @USIZE32@ ogg_uint32_t;
|
||||
typedef @SIZE64@ ogg_int64_t;
|
||||
|
||||
#endif
|
@ -12,7 +12,7 @@
|
||||
|
||||
function: code raw packets into framed OggSquish stream and
|
||||
decode Ogg streams back into raw packets
|
||||
last mod: $Id: framing.c 18052 2011-08-04 17:57:02Z giles $
|
||||
last mod: $Id: framing.c 18758 2013-01-08 16:29:56Z tterribe $
|
||||
|
||||
note: The CRC code is directly derived from public domain code by
|
||||
Ross Williams (ross@guest.adelaide.edu.au). See docs/framing.html
|
||||
@ -21,6 +21,7 @@
|
||||
********************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
#include <ogg/ogg.h>
|
||||
|
||||
@ -236,39 +237,51 @@ int ogg_stream_destroy(ogg_stream_state *os){
|
||||
/* Helpers for ogg_stream_encode; this keeps the structure and
|
||||
what's happening fairly clear */
|
||||
|
||||
static int _os_body_expand(ogg_stream_state *os,int needed){
|
||||
if(os->body_storage<=os->body_fill+needed){
|
||||
static int _os_body_expand(ogg_stream_state *os,long needed){
|
||||
if(os->body_storage-needed<=os->body_fill){
|
||||
long body_storage;
|
||||
void *ret;
|
||||
ret=_ogg_realloc(os->body_data,(os->body_storage+needed+1024)*
|
||||
sizeof(*os->body_data));
|
||||
if(os->body_storage>LONG_MAX-needed){
|
||||
ogg_stream_clear(os);
|
||||
return -1;
|
||||
}
|
||||
body_storage=os->body_storage+needed;
|
||||
if(body_storage<LONG_MAX-1024)body_storage+=1024;
|
||||
ret=_ogg_realloc(os->body_data,body_storage*sizeof(*os->body_data));
|
||||
if(!ret){
|
||||
ogg_stream_clear(os);
|
||||
return -1;
|
||||
}
|
||||
os->body_storage+=(needed+1024);
|
||||
os->body_storage=body_storage;
|
||||
os->body_data=ret;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _os_lacing_expand(ogg_stream_state *os,int needed){
|
||||
if(os->lacing_storage<=os->lacing_fill+needed){
|
||||
static int _os_lacing_expand(ogg_stream_state *os,long needed){
|
||||
if(os->lacing_storage-needed<=os->lacing_fill){
|
||||
long lacing_storage;
|
||||
void *ret;
|
||||
ret=_ogg_realloc(os->lacing_vals,(os->lacing_storage+needed+32)*
|
||||
sizeof(*os->lacing_vals));
|
||||
if(os->lacing_storage>LONG_MAX-needed){
|
||||
ogg_stream_clear(os);
|
||||
return -1;
|
||||
}
|
||||
lacing_storage=os->lacing_storage+needed;
|
||||
if(lacing_storage<LONG_MAX-32)lacing_storage+=32;
|
||||
ret=_ogg_realloc(os->lacing_vals,lacing_storage*sizeof(*os->lacing_vals));
|
||||
if(!ret){
|
||||
ogg_stream_clear(os);
|
||||
return -1;
|
||||
}
|
||||
os->lacing_vals=ret;
|
||||
ret=_ogg_realloc(os->granule_vals,(os->lacing_storage+needed+32)*
|
||||
ret=_ogg_realloc(os->granule_vals,lacing_storage*
|
||||
sizeof(*os->granule_vals));
|
||||
if(!ret){
|
||||
ogg_stream_clear(os);
|
||||
return -1;
|
||||
}
|
||||
os->granule_vals=ret;
|
||||
os->lacing_storage+=(needed+32);
|
||||
os->lacing_storage=lacing_storage;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -304,12 +317,17 @@ void ogg_page_checksum_set(ogg_page *og){
|
||||
int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count,
|
||||
long e_o_s, ogg_int64_t granulepos){
|
||||
|
||||
int bytes = 0, lacing_vals, i;
|
||||
long bytes = 0, lacing_vals;
|
||||
int i;
|
||||
|
||||
if(ogg_stream_check(os)) return -1;
|
||||
if(!iov) return 0;
|
||||
|
||||
for (i = 0; i < count; ++i) bytes += (int)iov[i].iov_len;
|
||||
for (i = 0; i < count; ++i){
|
||||
if(iov[i].iov_len>LONG_MAX) return -1;
|
||||
if(bytes>LONG_MAX-(long)iov[i].iov_len) return -1;
|
||||
bytes += (long)iov[i].iov_len;
|
||||
}
|
||||
lacing_vals=bytes/255+1;
|
||||
|
||||
if(os->body_returned){
|
||||
|
133
ogg/os_types.h
133
ogg/os_types.h
@ -9,22 +9,139 @@
|
||||
* 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
|
||||
|
||||
#include <etk/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
|
||||
|
||||
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;
|
||||
#if defined(_WIN32)
|
||||
|
||||
# if defined(__CYGWIN__)
|
||||
# include <stdint.h>
|
||||
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 <sys/types.h>
|
||||
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 <sys/types.h>
|
||||
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 <inttypes.h>
|
||||
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 <sys/types.h>
|
||||
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 <inttypes.h>
|
||||
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 <tremor/config_types.h>
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _OS_TYPES_H */
|
||||
|
50
tremor/Makefile.am
Normal file
50
tremor/Makefile.am
Normal file
@ -0,0 +1,50 @@
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
INCLUDES = -I./ @OGG_CFLAGS@
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = vorbisidec.pc
|
||||
|
||||
lib_LTLIBRARIES = libvorbisidec.la
|
||||
|
||||
libvorbisidec_la_SOURCES = mdct.c block.c window.c \
|
||||
synthesis.c info.c \
|
||||
floor1.c floor0.c vorbisfile.c \
|
||||
res012.c mapping0.c registry.c codebook.c \
|
||||
sharedbook.c \
|
||||
codebook.h misc.h mdct_lookup.h\
|
||||
os.h mdct.h block.h ivorbisfile.h lsp_lookup.h\
|
||||
registry.h window.h window_lookup.h\
|
||||
codec_internal.h backends.h \
|
||||
asm_arm.h ivorbiscodec.h
|
||||
libvorbisidec_la_LDFLAGS = -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@
|
||||
libvorbisidec_la_LIBADD = @OGG_LIBS@
|
||||
|
||||
EXTRA_PROGRAMS = ivorbisfile_example iseeking_example
|
||||
CLEANFILES = $(EXTRA_PROGRAMS) $(lib_LTLIBRARIES)
|
||||
|
||||
ivorbisfile_example_SOURCES = ivorbisfile_example.c
|
||||
ivorbisfile_example_LDFLAGS = -static
|
||||
ivorbisfile_example_LDADD = libvorbisidec.la @OGG_LIBS@
|
||||
|
||||
iseeking_example_SOURCES = iseeking_example.c
|
||||
iseeking_example_LDFLAGS = -static
|
||||
iseeking_example_LDADD = libvorbisidec.la @OGG_LIBS@
|
||||
|
||||
includedir = $(prefix)/include/tremor
|
||||
|
||||
include_HEADERS = ivorbiscodec.h ivorbisfile.h config_types.h
|
||||
|
||||
EXTRA_DIST = vorbisidec.pc.in \
|
||||
$(srcdir)/doc/*.html $(srcdir)/win32/VS*/libtremor/*.vcproj
|
||||
|
||||
example:
|
||||
-ln -fs . vorbis
|
||||
$(MAKE) ivorbisfile_example
|
||||
$(MAKE) iseeking_example
|
||||
|
||||
debug:
|
||||
$(MAKE) all CFLAGS="@DEBUG@"
|
||||
|
||||
profile:
|
||||
$(MAKE) all CFLAGS="@PROFILE@"
|
46
tremor/README
Normal file
46
tremor/README
Normal file
@ -0,0 +1,46 @@
|
||||
This README covers the Ogg Vorbis 'Tremor' integer playback codec
|
||||
source as of date 2002 09 02, version 1.0.0.
|
||||
|
||||
******
|
||||
|
||||
The C source in this package will build on any ANSI C compiler and
|
||||
function completely and properly on any platform. The included build
|
||||
system assumes GNU build system and make tools (m4, automake,
|
||||
autoconf, libtool and gmake). GCC is not required, although GCC is
|
||||
the most tested compiler. To build using GNU tools, type in the
|
||||
source directory:
|
||||
|
||||
./autogen.sh
|
||||
make
|
||||
|
||||
Currently, the source implements playback in pure C on all platforms
|
||||
except ARM, where a [currently] small amount of assembly (see
|
||||
asm_arm.h) is used to implement 64 bit math operations and fast LSP
|
||||
computation. If building on ARM without the benefit of GNU build
|
||||
system tools, be sure that '_ARM_ASSEM_' is #defined by the build
|
||||
system if this assembly is desired, else the resulting library will
|
||||
use whatever 64 bit math builtins the compiler implements.
|
||||
|
||||
No math library is required by this source. No floating point
|
||||
operations are used at any point in either setup or decode. This
|
||||
decoder library will properly decode any past, current or future
|
||||
Vorbis I file or stream.
|
||||
|
||||
********
|
||||
|
||||
The build system produces a static and [when supported by the OS]
|
||||
dynamic library named 'libvorbisidec'. This library exposes an API
|
||||
nearly identical to the BSD reference library's 'libvorbisfile',
|
||||
including all the features familiar to users of vorbisfile. This API
|
||||
is similar enough that the proper header file to include is named
|
||||
'ivorbisfile.h' [included in the source build directory]. Lower level
|
||||
libvorbis-style headers and structures are in 'ivorbiscodec.h'
|
||||
[included in the source build directory]. A simple example program,
|
||||
ivorbisfile_example.c, can be built with 'make example'.
|
||||
|
||||
********
|
||||
|
||||
Detailed Tremor API Documentation begins at doc/index.html
|
||||
|
||||
Monty
|
||||
xiph.org
|
62
tremor/Version_script.in
Normal file
62
tremor/Version_script.in
Normal file
@ -0,0 +1,62 @@
|
||||
#
|
||||
# Export file for libvorbisidec
|
||||
#
|
||||
# Only the symbols listed in the global section will be callable from
|
||||
# applications linking to libvorbisidec.
|
||||
#
|
||||
|
||||
@PACKAGE@.so.1
|
||||
{
|
||||
global:
|
||||
ov_clear;
|
||||
ov_open;
|
||||
ov_open_callbacks;
|
||||
ov_test;
|
||||
ov_test_callbacks;
|
||||
ov_test_open;
|
||||
ov_bitrate;
|
||||
ov_bitrate_instant;
|
||||
ov_streams;
|
||||
ov_seekable;
|
||||
ov_serialnumber;
|
||||
ov_raw_total;
|
||||
ov_pcm_total;
|
||||
ov_time_total;
|
||||
ov_raw_seek;
|
||||
ov_pcm_seek;
|
||||
ov_pcm_seek_page;
|
||||
ov_time_seek;
|
||||
ov_time_seek_page;
|
||||
ov_raw_tell;
|
||||
ov_pcm_tell;
|
||||
ov_time_tell;
|
||||
ov_info;
|
||||
ov_comment;
|
||||
ov_read;
|
||||
|
||||
vorbis_info_init;
|
||||
vorbis_info_clear;
|
||||
vorbis_info_blocksize;
|
||||
vorbis_comment_init;
|
||||
vorbis_comment_add;
|
||||
vorbis_comment_add_tag;
|
||||
vorbis_comment_query;
|
||||
vorbis_comment_query_count;
|
||||
vorbis_comment_clear;
|
||||
vorbis_block_init;
|
||||
vorbis_block_clear;
|
||||
vorbis_dsp_clear;
|
||||
vorbis_synthesis_idheader;
|
||||
vorbis_synthesis_headerin;
|
||||
vorbis_synthesis_init;
|
||||
vorbis_synthesis_restart;
|
||||
vorbis_synthesis;
|
||||
vorbis_synthesis_trackonly;
|
||||
vorbis_synthesis_blockin;
|
||||
vorbis_synthesis_pcmout;
|
||||
vorbis_synthesis_read;
|
||||
vorbis_packet_blocksize;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
@ -1,2 +0,0 @@
|
||||
Anti-Grain Geometry - Version 2.4
|
||||
Copyright (C) 2002-2005 Maxim Shemanarev (McSeem)
|
120
tremor/autogen.sh
Executable file
120
tremor/autogen.sh
Executable file
@ -0,0 +1,120 @@
|
||||
#!/bin/sh
|
||||
# Run this to set up the build system: configure, makefiles, etc.
|
||||
# (based on the version in enlightenment's cvs)
|
||||
|
||||
package="vorbisdec"
|
||||
|
||||
olddir=`pwd`
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
cd "$srcdir"
|
||||
DIE=0
|
||||
|
||||
echo "checking for autoconf... "
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have autoconf installed to compile $package."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9]\.[0-9]\).*/\1/"
|
||||
VERSIONMKINT="sed -e s/[^0-9]//"
|
||||
|
||||
# do we need automake?
|
||||
if test -r Makefile.am; then
|
||||
AM_OPTIONS=`fgrep AUTOMAKE_OPTIONS Makefile.am`
|
||||
AM_NEEDED=`echo $AM_OPTIONS | $VERSIONGREP`
|
||||
if test x"$AM_NEEDED" = "x$AM_OPTIONS"; then
|
||||
AM_NEEDED=""
|
||||
fi
|
||||
if test -z $AM_NEEDED; then
|
||||
echo -n "checking for automake... "
|
||||
AUTOMAKE=automake
|
||||
ACLOCAL=aclocal
|
||||
if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then
|
||||
echo "yes"
|
||||
else
|
||||
echo "no"
|
||||
AUTOMAKE=
|
||||
fi
|
||||
else
|
||||
echo -n "checking for automake $AM_NEEDED or later... "
|
||||
for am in automake-$AM_NEEDED automake$AM_NEEDED automake; do
|
||||
($am --version < /dev/null > /dev/null 2>&1) || continue
|
||||
ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP | $VERSIONMKINT`
|
||||
verneeded=`echo $AM_NEEDED | $VERSIONMKINT`
|
||||
if test $ver -ge $verneeded; then
|
||||
AUTOMAKE=$am
|
||||
echo $AUTOMAKE
|
||||
break
|
||||
fi
|
||||
done
|
||||
test -z $AUTOMAKE && echo "no"
|
||||
echo -n "checking for aclocal $AM_NEEDED or later... "
|
||||
for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED aclocal; do
|
||||
($ac --version < /dev/null > /dev/null 2>&1) || continue
|
||||
ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP | $VERSIONMKINT`
|
||||
verneeded=`echo $AM_NEEDED | $VERSIONMKINT`
|
||||
if test $ver -ge $verneeded; then
|
||||
ACLOCAL=$ac
|
||||
echo $ACLOCAL
|
||||
break
|
||||
fi
|
||||
done
|
||||
test -z $ACLOCAL && echo "no"
|
||||
fi
|
||||
test -z $AUTOMAKE || test -z $ACLOCAL && {
|
||||
echo
|
||||
echo "You must have automake installed to compile $package."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
echo -n "checking for libtool... "
|
||||
for LIBTOOLIZE in libtoolize glibtoolize nope; do
|
||||
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break
|
||||
done
|
||||
if test x$LIBTOOLIZE = xnope; then
|
||||
echo "nope."
|
||||
LIBTOOLIZE=libtoolize
|
||||
else
|
||||
echo $LIBTOOLIZE
|
||||
fi
|
||||
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have libtool installed to compile $package."
|
||||
echo "Download the appropriate package for your system,"
|
||||
echo "or get the source from one of the GNU ftp sites"
|
||||
echo "listed in http://www.gnu.org/order/ftp.html"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
if test "$DIE" -eq 1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$*"; then
|
||||
echo "I am going to run ./configure with no arguments - if you wish "
|
||||
echo "to pass any to it, please specify them on the $0 command line."
|
||||
fi
|
||||
|
||||
echo "Generating configuration files for $package, please wait...."
|
||||
|
||||
echo " $ACLOCAL $ACLOCAL_FLAGS"
|
||||
$ACLOCAL $ACLOCAL_FLAGS || exit 1
|
||||
echo " $LIBTOOLIZE --automake"
|
||||
$LIBTOOLIZE --automake || exit 1
|
||||
echo " autoheader"
|
||||
autoheader || exit 1
|
||||
echo " $AUTOMAKE --add-missing $AUTOMAKE_FLAGS"
|
||||
$AUTOMAKE --add-missing $AUTOMAKE_FLAGS || exit 1
|
||||
echo " autoconf"
|
||||
autoconf || exit 1
|
||||
|
||||
cd $olddir
|
||||
$srcdir/configure --enable-maintainer-mode "$@" && echo
|
146
tremor/configure.in
Normal file
146
tremor/configure.in
Normal file
@ -0,0 +1,146 @@
|
||||
dnl Process this file with autoconf to produce a configure script
|
||||
|
||||
dnl ------------------------------------------------
|
||||
dnl Initialization and Versioning
|
||||
dnl ------------------------------------------------
|
||||
|
||||
AC_INIT(mdct.c)
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
AC_CANONICAL_TARGET
|
||||
|
||||
AM_CONFIG_HEADER([config.h])
|
||||
|
||||
AM_INIT_AUTOMAKE(libvorbisidec,1.2.1)
|
||||
|
||||
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
dnl Library versioning
|
||||
|
||||
V_LIB_CURRENT=1
|
||||
V_LIB_REVISION=3
|
||||
V_LIB_AGE=0
|
||||
AC_SUBST(V_LIB_CURRENT)
|
||||
AC_SUBST(V_LIB_REVISION)
|
||||
AC_SUBST(V_LIB_AGE)
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Check for programs
|
||||
dnl --------------------------------------------------
|
||||
|
||||
dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2"
|
||||
dnl if $CFLAGS is blank
|
||||
cflags_save="$CFLAGS"
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
CFLAGS="$cflags_save"
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Set build flags based on environment
|
||||
dnl --------------------------------------------------
|
||||
|
||||
dnl Set some target options
|
||||
|
||||
cflags_save="$CFLAGS"
|
||||
ldflags_save="$LDFLAGS"
|
||||
if test -z "$GCC"; then
|
||||
case $host in
|
||||
arm-*-*)
|
||||
DEBUG="-g -D_ARM_ASSEM_"
|
||||
CFLAGS="-O -D_ARM_ASSEM_"
|
||||
PROFILE="-p -g -O -D_ARM_ASSEM_" ;;
|
||||
*)
|
||||
DEBUG="-g"
|
||||
CFLAGS="-O"
|
||||
PROFILE="-g -p" ;;
|
||||
esac
|
||||
else
|
||||
|
||||
case $host in
|
||||
arm-*-*)
|
||||
DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -D_ARM_ASSEM_"
|
||||
CFLAGS="-O2 -D_ARM_ASSEM_ -fsigned-char"
|
||||
PROFILE="-W -pg -g -O2 -D_ARM_ASSEM_ -fsigned-char -fno-inline-functions";;
|
||||
|
||||
*)
|
||||
DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char"
|
||||
CFLAGS="-O2 -Wall -fsigned-char"
|
||||
PROFILE="-Wall -pg -g -O2 -fsigned-char -fno-inline-functions";;
|
||||
esac
|
||||
fi
|
||||
CFLAGS="$CFLAGS $cflags_save -D_REENTRANT"
|
||||
LDFLAGS="$LDFLAGS $ldflags_save"
|
||||
|
||||
|
||||
# Test whenever ld supports -version-script
|
||||
AC_PROG_LD
|
||||
AC_PROG_LD_GNU
|
||||
if test "x$lt_cv_prog_gnu_ld" = "xyes"; then
|
||||
SHLIB_VERSION_ARG="-Wl,--version-script=Version_script"
|
||||
LDFLAGS="$LDFLAGS $SHLIB_VERSION_ARG"
|
||||
fi
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Options
|
||||
dnl --------------------------------------------------
|
||||
|
||||
AC_ARG_ENABLE(
|
||||
low-accuracy,
|
||||
[ --enable-low-accuracy enable 32 bit only multiply operations],
|
||||
CFLAGS="$CFLAGS -D_LOW_ACCURACY_"
|
||||
)
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Check for headers
|
||||
dnl --------------------------------------------------
|
||||
|
||||
AC_CHECK_HEADER(memory.h,CFLAGS="$CFLAGS -DUSE_MEMORY_H",:)
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Check for typedefs, structures, etc
|
||||
dnl --------------------------------------------------
|
||||
|
||||
dnl none
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Check for libraries
|
||||
dnl --------------------------------------------------
|
||||
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
HAVE_OGG=no
|
||||
if test "x$PKG_CONFIG" != "x"
|
||||
then
|
||||
PKG_CHECK_MODULES(OGG, ogg >= 1.0, HAVE_OGG=yes, HAVE_OGG=no)
|
||||
fi
|
||||
if test "x$HAVE_OGG" = "xno"
|
||||
then
|
||||
dnl fall back to the old school test
|
||||
XIPH_PATH_OGG(, AC_MSG_ERROR(must have Ogg installed!))
|
||||
libs_save=$LIBS
|
||||
LIBS="$OGG_LIBS"
|
||||
AC_CHECK_FUNC(oggpack_writealign, , AC_MSG_ERROR(Ogg >= 1.0 required !))
|
||||
LIBS=$libs_save
|
||||
fi
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Check for library functions
|
||||
dnl --------------------------------------------------
|
||||
|
||||
AC_FUNC_ALLOCA
|
||||
AC_FUNC_MEMCMP
|
||||
|
||||
dnl --------------------------------------------------
|
||||
dnl Do substitutions
|
||||
dnl --------------------------------------------------
|
||||
|
||||
LIBS="$LIBS"
|
||||
|
||||
AC_SUBST(LIBS)
|
||||
AC_SUBST(DEBUG)
|
||||
AC_SUBST(PROFILE)
|
||||
|
||||
AC_OUTPUT(Makefile Version_script vorbisidec.pc)
|
6
tremor/debian/Makefile.am
Normal file
6
tremor/debian/Makefile.am
Normal file
@ -0,0 +1,6 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
EXTRA_DIST = changelog control copyright libvorbisidec1.install\
|
||||
libvorbisidec-dev.install rules
|
9
tremor/debian/changelog
Normal file
9
tremor/debian/changelog
Normal file
@ -0,0 +1,9 @@
|
||||
libvorbisidec (1.2.0-1) unstable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
-- Christopher L Cheney <ccheney@debian.org> Wed, 09 Oct 2002 22:00:00 -0500
|
||||
|
||||
Local variables:
|
||||
mode: debian-changelog
|
||||
End:
|
22
tremor/debian/control
Normal file
22
tremor/debian/control
Normal file
@ -0,0 +1,22 @@
|
||||
Source: libvorbisidec
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Maintainer: Christopher L Cheney <ccheney@debian.org>
|
||||
Build-Depends: autotools-dev, debhelper (>> 4.0.18), devscripts, gawk
|
||||
Standards-Version: 3.5.7.0
|
||||
|
||||
Package: libvorbisidec1
|
||||
Architecture: any
|
||||
Section: libs
|
||||
Depends: ${shlibs:Depends}
|
||||
Description: Ogg Bitstream Library
|
||||
Libogg is a library for manipulating ogg bitstreams. It handles
|
||||
both making ogg bitstreams and getting packets from ogg bitstreams.
|
||||
|
||||
Package: libvorbisidec-dev
|
||||
Architecture: any
|
||||
Section: devel
|
||||
Depends: libvorbisidec1 (= ${Source-Version}), libc6-dev
|
||||
Description: Ogg Bitstream Library Development
|
||||
The libogg-dev package contains the header files and documentation
|
||||
needed to develop applications with libogg.
|
37
tremor/debian/copyright
Normal file
37
tremor/debian/copyright
Normal file
@ -0,0 +1,37 @@
|
||||
This package was debianized by Christopher L Cheney <ccheney@debian.org> on
|
||||
Wed, 09 Oct 2002 22:00:00 -0500.
|
||||
|
||||
It was downloaded from cvs.
|
||||
|
||||
Upstream Author(s): Monty <monty@xiph.org>
|
||||
|
||||
Copyright:
|
||||
Copyright (c) 2002, Xiph.org Foundation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
- Neither the name of the Xiph.Org Foundation nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
8
tremor/debian/libvorbisidec-dev.install
Normal file
8
tremor/debian/libvorbisidec-dev.install
Normal file
@ -0,0 +1,8 @@
|
||||
debian/tmp/usr/include/tremor/config_types.h
|
||||
debian/tmp/usr/include/tremor/ivorbiscodec.h
|
||||
debian/tmp/usr/include/tremor/ivorbisfile.h
|
||||
debian/tmp/usr/include/tremor/ogg.h
|
||||
debian/tmp/usr/include/tremor/os_types.h
|
||||
debian/tmp/usr/lib/libvorbisidec.a
|
||||
debian/tmp/usr/lib/libvorbisidec.la
|
||||
debian/tmp/usr/lib/libvorbisidec.so
|
1
tremor/debian/libvorbisidec1.install
Normal file
1
tremor/debian/libvorbisidec1.install
Normal file
@ -0,0 +1 @@
|
||||
debian/tmp/usr/lib/libvorbisidec.so.*
|
151
tremor/debian/rules
Executable file
151
tremor/debian/rules
Executable file
@ -0,0 +1,151 @@
|
||||
#!/usr/bin/make -f
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# GNU copyright 1997 to 1999 by Joey Hess.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# This is the debhelper compatibility version to use.
|
||||
export DH_COMPAT=4
|
||||
|
||||
# This has to be exported to make some magic below work.
|
||||
export DH_OPTIONS
|
||||
|
||||
# These are used for cross-compiling and for saving the configure script
|
||||
# from having to guess our platform (since we know it already)
|
||||
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
|
||||
objdir = $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)
|
||||
|
||||
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
||||
CFLAGS += -g
|
||||
endif
|
||||
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
||||
INSTALL_PROGRAM += -s
|
||||
endif
|
||||
|
||||
configure: configure-stamp
|
||||
configure-stamp:
|
||||
dh_testdir
|
||||
|
||||
# make build directory
|
||||
mkdir $(objdir)
|
||||
|
||||
# run configure with build tree $(objdir)
|
||||
# change ../configure to ../autogen.sh for CVS build
|
||||
cd $(objdir) && \
|
||||
../configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
|
||||
--prefix=/usr
|
||||
|
||||
touch configure-stamp
|
||||
|
||||
build: build-stamp
|
||||
build-stamp: configure-stamp
|
||||
dh_testdir
|
||||
|
||||
cd $(objdir) && \
|
||||
$(MAKE)
|
||||
|
||||
touch build-stamp
|
||||
|
||||
autotools:
|
||||
OLDDATESUB=`./config.sub -t | tr -d -` ;\
|
||||
OLDDATEGUESS=`./config.guess -t | tr -d -` ;\
|
||||
NEWDATESUB=`/usr/share/misc/config.sub -t | tr -d -` ;\
|
||||
NEWDATEGUESS=`/usr/share/misc/config.guess -t | tr -d -` ;\
|
||||
if [ $$OLDDATESUB -lt $$NEWDATESUB -o \
|
||||
$$OLDDATEGUESS -lt $$NEWDATEGUESS ]; then \
|
||||
dch -a -p "GNU config automated update: config.sub\
|
||||
($$OLDDATESUB to $$NEWDATESUB), config.guess\
|
||||
($$OLDDATEGUESS to $$NEWDATEGUESS)" ;\
|
||||
cp -f /usr/share/misc/config.sub config.sub ;\
|
||||
cp -f /usr/share/misc/config.guess config.guess ;\
|
||||
echo WARNING: GNU config scripts updated from master copies 1>&2 ;\
|
||||
fi
|
||||
|
||||
debian-clean:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
|
||||
dh_clean
|
||||
|
||||
clean: autotools
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
rm -f build-stamp configure-stamp
|
||||
|
||||
# Remove build tree
|
||||
rm -rf $(objdir)
|
||||
|
||||
# if Makefile exists run distclean
|
||||
if test -f Makefile; then \
|
||||
$(MAKE) distclean; \
|
||||
fi
|
||||
|
||||
#if test -d CVS; then \
|
||||
$(MAKE) cvs-clean ;\
|
||||
fi
|
||||
|
||||
dh_clean
|
||||
|
||||
install: DH_OPTIONS=
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_clean -k
|
||||
dh_installdirs
|
||||
|
||||
cd $(objdir) && \
|
||||
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
|
||||
|
||||
dh_install --list-missing
|
||||
|
||||
# This single target is used to build all the packages, all at once, or
|
||||
# one at a time. So keep in mind: any options passed to commands here will
|
||||
# affect _all_ packages. Anything you want to only affect one package
|
||||
# should be put in another target, such as the install target.
|
||||
binary-common:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
# dh_installxfonts
|
||||
dh_installchangelogs
|
||||
dh_installdocs
|
||||
dh_installexamples
|
||||
# dh_installmenu
|
||||
# dh_installdebconf
|
||||
# dh_installlogrotate
|
||||
# dh_installemacsen
|
||||
# dh_installpam
|
||||
# dh_installmime
|
||||
# dh_installinit
|
||||
# dh_installcron
|
||||
# dh_installinfo
|
||||
# dh_undocumented
|
||||
dh_installman
|
||||
dh_strip
|
||||
dh_link
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_makeshlibs -V
|
||||
dh_installdeb
|
||||
# dh_perl
|
||||
dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
# Build architecture independant packages using the common target.
|
||||
binary-indep: build install
|
||||
# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
|
||||
|
||||
# Build architecture dependant packages using the common target.
|
||||
binary-arch: build install
|
||||
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
|
||||
|
||||
# Any other binary targets build just one binary package at a time.
|
||||
binary-%: build install
|
||||
$(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$*
|
||||
|
||||
binary: binary-indep binary-arch
|
||||
.PHONY: build clean binary-indep binary-arch binary install configure
|
132
tremor/doc/OggVorbis_File.html
Normal file
132
tremor/doc/OggVorbis_File.html
Normal file
@ -0,0 +1,132 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - datatype - OggVorbis_File</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>OggVorbis_File</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h"</i></p>
|
||||
|
||||
<p>
|
||||
The OggVorbis_File structure defines an Ogg Vorbis file.
|
||||
<p>
|
||||
|
||||
This structure is used in all libvorbisidec routines. Before it can be used,
|
||||
it must be initialized by <a href="ov_open.html">ov_open()</a> or <a
|
||||
href="ov_open_callbacks.html">ov_open_callbacks()</a>.
|
||||
|
||||
<p>
|
||||
After use, the OggVorbis_File structure must be deallocated with a
|
||||
call to <a href="ov_clear.html">ov_clear()</a>.
|
||||
|
||||
<p>
|
||||
Once a file or data source is opened successfully by libvorbisidec
|
||||
(using <a href="ov_open.html">ov_open()</a> or <a
|
||||
href="ov_open_callbacks.html">ov_open_callbacks()</a>), it is owned by
|
||||
libvorbisidec. The file should not be used by any other applications or
|
||||
functions outside of the libvorbisidec API. The file must not be closed
|
||||
directly by the application at any time after a successful open;
|
||||
libvorbisidec expects to close the file within <a
|
||||
href="ov_clear.html">ov_clear()</a>.
|
||||
<p>
|
||||
If the call to <a href="ov_open.html">ov_open()</a> or <a
|
||||
href="ov_open_callbacks.html">ov_open_callbacks()</a> <b>fails</b>,
|
||||
libvorbisidec does <b>not</b> assume ownership of the file and the
|
||||
application is expected to close it if necessary.
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>typedef struct {
|
||||
void *datasource; /* Pointer to a FILE *, etc. */
|
||||
int seekable;
|
||||
ogg_int64_t offset;
|
||||
ogg_int64_t end;
|
||||
ogg_sync_state oy;
|
||||
|
||||
/* If the FILE handle isn't seekable (eg, a pipe), only the current
|
||||
stream appears */
|
||||
int links;
|
||||
ogg_int64_t *offsets;
|
||||
ogg_int64_t *dataoffsets;
|
||||
long *serialnos;
|
||||
ogg_int64_t *pcmlengths;
|
||||
vorbis_info *vi;
|
||||
vorbis_comment *vc;
|
||||
|
||||
/* Decoding working state local storage */
|
||||
ogg_int64_t pcm_offset;
|
||||
int ready_state;
|
||||
long current_serialno;
|
||||
int current_link;
|
||||
|
||||
ogg_int64_t bittrack;
|
||||
ogg_int64_t samptrack;
|
||||
|
||||
ogg_stream_state os; /* take physical pages, weld into a logical
|
||||
stream of packets */
|
||||
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
|
||||
vorbis_block vb; /* local working space for packet->PCM decode */
|
||||
|
||||
<a href="ov_callbacks.html">ov_callbacks</a> callbacks;
|
||||
|
||||
} OggVorbis_File;</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Relevant Struct Members</h3>
|
||||
<dl>
|
||||
<dt><i>datasource</i></dt>
|
||||
|
||||
<dd>Pointer to file or other ogg source. When using stdio based
|
||||
file/stream access, this field contains a <tt>FILE</tt> pointer. When using
|
||||
custom IO via callbacks, libvorbisidec treats this void pointer as a
|
||||
black box only to be passed to the callback routines provided by the
|
||||
application.</dd>
|
||||
|
||||
<dt><i>seekable</i></dt>
|
||||
<dd>Read-only int indicating whether file is seekable. E.g., a physical file is seekable, a pipe isn't.</dd>
|
||||
<dt><i>links</i></dt>
|
||||
<dd>Read-only int indicating the number of logical bitstreams within the physical bitstream.</dd>
|
||||
<dt><i>ov_callbacks</i></dt>
|
||||
<dd>Collection of file manipulation routines to be used on this data source. When using stdio/FILE access via <a href="ov_open.html">ov_open()</a>, the callbacks will be filled in with stdio calls or wrappers to stdio calls.</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Notes</h3>
|
||||
|
||||
<p>Tremor requires a native 64 bit integer type to compile and
|
||||
function; The GNU build system will locate and typedef
|
||||
<tt>ogg_int64_t</tt> to the appropriate native type. If not using the
|
||||
GNU build tools, you will need to define <tt>ogg_int64_t</tt> as a
|
||||
64-bit type inside your system's project file/Makefile, etc. On win32,
|
||||
for example, this should be defined as <tt>__int64</tt>.
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
111
tremor/doc/build.html
Normal file
111
tremor/doc/build.html
Normal file
@ -0,0 +1,111 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Build</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Tremor: Building libvorbisidec</h1>
|
||||
|
||||
<p>
|
||||
|
||||
The C source in the Tremor package will build on any ANSI C compiler
|
||||
and function completely and properly on any platform. The included
|
||||
build system assumes GNU build system and make tools (m4, automake,
|
||||
autoconf, libtool and gmake). GCC is not required, although GCC is
|
||||
the most tested compiler. To build using GNU tools, type in the
|
||||
source directory:
|
||||
|
||||
<p>
|
||||
<pre><tt>
|
||||
./autogen.sh
|
||||
gmake
|
||||
</tt></pre>
|
||||
<p>
|
||||
or if GNU make is the standard make on the build system:
|
||||
<pre><tt>
|
||||
./autogen.sh
|
||||
make
|
||||
</tt></pre>
|
||||
|
||||
<p>
|
||||
Currently, the source implements playback in pure C on all platforms
|
||||
except ARM, where a [currently] small amount of assembly (see the file
|
||||
asm_arm.h) is used to implement 64 bit math operations and
|
||||
fast LSP computation. If building on ARM without the benefit of GNU
|
||||
build system tools, be sure that <tt>_ARM_ASSEM_</tt> is #defined by
|
||||
the build system if this assembly is desired, else the resulting
|
||||
library will use whatever 64 bit math builtins the compiler
|
||||
implements.
|
||||
|
||||
<p>
|
||||
No math library is required by this source. No floating point
|
||||
operations are used at any point in either setup or decode. This
|
||||
decoder library will properly decode any past, current or future
|
||||
Vorbis I file or stream.
|
||||
|
||||
<p>
|
||||
The GNU build system produces static and, when supported by the OS,
|
||||
dynamic libraries named 'libvorbisidec'. This library exposes an API
|
||||
nearly identical to the BSD reference library's 'libvorbisfile',
|
||||
including all the features familiar to users of vorbisfile. This API
|
||||
is similar enough that the proper header file to include is named
|
||||
'ivorbisfile.h', included in the source build directory.
|
||||
Lower level libvorbis-style headers and structures are
|
||||
in 'ivorbiscodec.h', also included in the source build directory. A
|
||||
simple example program, ivorbisfile_example.c, can be built with 'make
|
||||
ivorbisfile_example'.
|
||||
<p>
|
||||
(We've summarized <a href="diff.html">differences between the free,
|
||||
reference vorbisfile library and Tremor's libvorbisidec in a separate
|
||||
document</a>.)
|
||||
|
||||
<h3>Notes</h3>
|
||||
|
||||
<p>Tremor requires a native 64 bit integer type to compile and
|
||||
function; The GNU build system will locate and typedef
|
||||
<tt>ogg_int64_t</tt> to the appropriate native type. If not using the
|
||||
GNU build tools, you will need to define <tt>ogg_int64_t</tt> as a
|
||||
64-bit type inside your system's project file/Makefile, etc. On win32,
|
||||
for example, this should be defined as <tt>__int64</tt>.
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
113
tremor/doc/callbacks.html
Normal file
113
tremor/doc/callbacks.html
Normal file
@ -0,0 +1,113 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Callbacks and non-stdio I/O</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Callbacks and non-stdio I/O</h1>
|
||||
|
||||
Although stdio is convenient and nearly universally implemented as per
|
||||
ANSI C, it is not suited to all or even most potential uses of Vorbis.
|
||||
For additional flexibility, embedded applications may provide their
|
||||
own I/O functions for use with Tremor when stdio is unavailable or not
|
||||
suitable. One common example is decoding a Vorbis stream from a
|
||||
memory buffer.<p>
|
||||
|
||||
Use custom I/O functions by populating an <a
|
||||
href="ov_callbacks.html">ov_callbacks</a> structure and calling <a
|
||||
href="ov_open_callbacks.html">ov_open_callbacks()</a> or <a
|
||||
href="ov_test_callbacks.html">ov_test_callbacks()</a> rather than the
|
||||
typical <a href="ov_open.html">ov_open()</a> or <a
|
||||
href="ov_test.html">ov_test()</a>. Past the open call, use of
|
||||
libvorbisidec is identical to using it with stdio.
|
||||
|
||||
<h2>Read function</h2>
|
||||
|
||||
The read-like function provided in the <tt>read_func</tt> field is
|
||||
used to fetch the requested amount of data. It expects the fetch
|
||||
operation to function similar to file-access, that is, a multiple read
|
||||
operations will retrieve contiguous sequential pieces of data,
|
||||
advancing a position cursor after each read.<p>
|
||||
|
||||
The following behaviors are also expected:<p>
|
||||
<ul>
|
||||
<li>a return of '0' indicates end-of-data (if the by-thread errno is unset)
|
||||
<li>short reads mean nothing special (short reads are not treated as error conditions)
|
||||
<li>a return of zero with the by-thread errno set to nonzero indicates a read error
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<h2>Seek function</h2>
|
||||
|
||||
The seek-like function provided in the <tt>seek_func</tt> field is
|
||||
used to request non-sequential data access by libvorbisidec, moving
|
||||
the access cursor to the requested position.<p>
|
||||
|
||||
libvorbisidec expects the following behavior:
|
||||
<ul>
|
||||
<li>The seek function must always return -1 (failure) if the given
|
||||
data abstraction is not seekable. It may choose to always return -1
|
||||
if the application desires libvorbisidec to treat the Vorbis data
|
||||
strictly as a stream (which makes for a less expensive open
|
||||
operation).<p>
|
||||
|
||||
<li>If the seek function initially indicates seekability, it must
|
||||
always succeed upon being given a valid seek request.<p>
|
||||
|
||||
<li>The seek function must implement all of SEEK_SET, SEEK_CUR and
|
||||
SEEK_END. The implementation of SEEK_END should set the access cursor
|
||||
one past the last byte of accessible data, as would stdio
|
||||
<tt>fseek()</tt><p>
|
||||
</ul>
|
||||
|
||||
<h2>Close function</h2>
|
||||
|
||||
The close function should deallocate any access state used by the
|
||||
passed in instance of the data access abstraction and invalidate the
|
||||
instance handle. The close function is assumed to succeed.<p>
|
||||
|
||||
One common use of callbacks and the close function is to change the
|
||||
behavior of libvorbisidec with respect to file closure for applications
|
||||
that <em>must</em> <tt>fclose</tt> data files themselves. By passing
|
||||
the normal stdio calls as callback functions, but passing a
|
||||
<tt>close_func</tt> that does nothing, an application may call <a
|
||||
href="ov_clear.html">ov_clear()</a> and then <tt>fclose()</tt> the
|
||||
file originally passed to libvorbisidec.
|
||||
|
||||
<h2>Tell function</h2>
|
||||
|
||||
The tell function is intended to mimic the
|
||||
behavior of <tt>ftell()</tt> and must return the byte position of the
|
||||
next data byte that would be read. If the data access cursor is at
|
||||
the end of the 'file' (pointing to one past the last byte of data, as
|
||||
it would be after calling <tt>fseek(file,SEEK_END,0)</tt>), the tell
|
||||
function must return the data position (and thus the total file size),
|
||||
not an error.<p>
|
||||
|
||||
The tell function need not be provided if the data IO abstraction is
|
||||
not seekable.<p.
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
61
tremor/doc/datastructures.html
Normal file
61
tremor/doc/datastructures.html
Normal file
@ -0,0 +1,61 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Base Data Structures</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Base Data Structures</h1>
|
||||
<p>There are several data structures used to hold file and bitstream information during libvorbisidec decoding. These structures are declared in "ivorbisfile.h" and "ivorbiscodec.h".
|
||||
<p>
|
||||
<p>When using libvorbisidec, it's not necessary to know about most of the contents of these data structures, but it may be helpful to understand what they contain.
|
||||
<br><br>
|
||||
|
||||
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td><b>datatype</b></td>
|
||||
<td><b>purpose</b></td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="OggVorbis_File.html">OggVorbis_File</a></td>
|
||||
<td>This structure represents the basic file information. It contains
|
||||
a pointer to the physical file or bitstream and various information about that bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="vorbis_comment.html">vorbis_comment</a></td>
|
||||
<td>This structure contains the file comments. It contains
|
||||
a pointer to unlimited user comments, information about the number of comments, and a vendor description.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="vorbis_info.html">vorbis_info</a></td>
|
||||
<td>This structure contains encoder-related information about the bitstream. It includes encoder info, channel info, and bitrate limits.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_callbacks.html">ov_callbacks</a></td>
|
||||
<td>This structure contains pointers to the application-specified file manipulation routines set for use by <a href="ov_open_callbacks.html">ov_open_callbacks()</a>. See also the <a href="callbacks.html">provided document on using application-provided callbacks instead of stdio</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
82
tremor/doc/decoding.html
Normal file
82
tremor/doc/decoding.html
Normal file
@ -0,0 +1,82 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Decoding</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Decoding</h1>
|
||||
|
||||
<p>
|
||||
All libivorbisdec decoding routines are declared in "ivorbisfile.h".
|
||||
<p>
|
||||
|
||||
After <a href="initialization.html">initialization</a>, decoding audio
|
||||
is as simple as calling <a href="ov_read.html">ov_read()</a>. This
|
||||
function works similarly to reading from a normal file using
|
||||
<tt>read()</tt>.<p>
|
||||
|
||||
However, a few differences are worth noting:
|
||||
|
||||
<h2>multiple stream links</h2>
|
||||
|
||||
A Vorbis stream may consist of multiple sections (called links) that
|
||||
encode differing numbers of channels or sample rates. It is vitally
|
||||
important to pay attention to the link numbers returned by <a
|
||||
href="ov_read.html">ov_read</a> and handle audio changes that may
|
||||
occur at link boundaries. Such multi-section files do exist in the
|
||||
wild and are not merely a specification curiosity.
|
||||
|
||||
<h2>returned data amount</h2>
|
||||
|
||||
<a href="ov_read.html">ov_read</a> does not attempt to completely fill
|
||||
a large, passed in data buffer; it merely guarantees that the passed
|
||||
back data does not overflow the passed in buffer size. Large buffers
|
||||
may be filled by iteratively looping over calls to <a
|
||||
href="ov_read.html">ov_read</a> (incrementing the buffer pointer)
|
||||
until the original buffer is filled.
|
||||
|
||||
<h2>file cursor position</h2>
|
||||
|
||||
Vorbis files do not necessarily start at a sample number or time offset
|
||||
of zero. Do not be surprised if a file begins at a positive offset of
|
||||
several minutes or hours, such as would happen if a large stream (such
|
||||
as a concert recording) is chopped into multiple seperate files.
|
||||
|
||||
<p>
|
||||
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td><b>function</b></td>
|
||||
<td><b>purpose</b></td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_read.html">ov_read</a></td>
|
||||
<td>This function makes up the main chunk of a decode loop. It takes an
|
||||
OggVorbis_File structure, which must have been initialized by a previous
|
||||
call to <a href="ov_open.html"><tt>ov_open()</tt></a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
67
tremor/doc/diff.html
Normal file
67
tremor/doc/diff.html
Normal file
@ -0,0 +1,67 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Vorbisfile Differences</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Tremor / Vorbisfile API Differences</h1>
|
||||
|
||||
<p>
|
||||
|
||||
The Tremor libvorbisidec library exposes an API intended to be as
|
||||
similar as possible to the familiar 'vorbisfile' library included with
|
||||
the open source Vorbis reference libraries distributed for free by
|
||||
Xiph.org. Differences are summarized below.<p>
|
||||
|
||||
<h2>OggVorbis_File structure</h2>
|
||||
|
||||
The <tt>bittrack</tt> and <tt>samptrack</tt> fields in the <a
|
||||
href="OggVorbis_File.html">OggVorbis_File</a> structure are changed to
|
||||
64 bit integers in Tremor, from doubles in vorbisfile.
|
||||
|
||||
<h2>Time-related seek and tell function calls</h2>
|
||||
|
||||
The <a href="ov_time_total.html">ov_time_total()</a> and <a
|
||||
href="ov_time_tell.html">ov_time_tell()</a> functions return milliseconds as
|
||||
64 bit integers in Tremor. In vorbisfile, these functions returned
|
||||
seconds as doubles.<p>
|
||||
|
||||
In Tremor, the <a href="ov_time_seek.html">ov_time_seek()</a> and <a
|
||||
href="ov_time_seek_page.html">ov_time_seek_page()</a> calls take
|
||||
seeking positions in milliseconds as 64 bit integers, rather than in
|
||||
seconds as doubles as in Vorbisfile.<p>
|
||||
|
||||
<h2>Reading decoded data</h2>
|
||||
|
||||
Tremor <a href="ov_read.html">ov_read()</a> always returns data as
|
||||
signed 16 bit interleaved PCM in host byte order. As such, it does not
|
||||
take arguments to request specific signedness, byte order or bit depth
|
||||
as in Vorbisfile.<p>
|
||||
|
||||
Tremor does not implement <tt>ov_read_float()</tt>.<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
205
tremor/doc/example.html
Normal file
205
tremor/doc/example.html
Normal file
@ -0,0 +1,205 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Example Code</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Example Code</h1>
|
||||
|
||||
<p>
|
||||
The following is a run-through of the decoding example program supplied
|
||||
with libvorbisidec, ivorbisfile_example.c.
|
||||
This program takes a vorbis bitstream from stdin and writes raw pcm to stdout.
|
||||
|
||||
<p>
|
||||
First, relevant headers, including vorbis-specific "ivorbiscodec.h" and "ivorbisfile.h" have to be included.
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include "ivorbiscodec.h"
|
||||
#include "ivorbisfile.h"
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
We also have to make a concession to Windows users here. If we are using windows for decoding, we must declare these libraries so that we can set stdin/stdout to binary.
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
Next, a buffer for the pcm audio output is declared.
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
char pcmout[4096];
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>Inside main(), we declare our primary OggVorbis_File structure. We also declare a few other helpful variables to track out progress within the file.
|
||||
Also, we make our final concession to Windows users by setting the stdin and stdout to binary mode.
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int main(int argc, char **argv){
|
||||
OggVorbis_File vf;
|
||||
int eof=0;
|
||||
int current_section;
|
||||
|
||||
#ifdef _WIN32
|
||||
_setmode( _fileno( stdin ), _O_BINARY );
|
||||
_setmode( _fileno( stdout ), _O_BINARY );
|
||||
#endif
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p><a href="ov_open.html">ov_open()</a> must be
|
||||
called to initialize the <b>OggVorbis_File</b> structure with default values.
|
||||
<a href="ov_open.html">ov_open()</a> also checks to ensure that we're reading Vorbis format and not something else.
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
if(ov_open(stdin, &vf, NULL, 0) < 0) {
|
||||
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
We're going to pull the channel and bitrate info from the file using <a href="ov_info.html">ov_info()</a> and show them to the user.
|
||||
We also want to pull out and show the user a comment attached to the file using <a href="ov_comment.html">ov_comment()</a>.
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
{
|
||||
char **ptr=ov_comment(&vf,-1)->user_comments;
|
||||
vorbis_info *vi=ov_info(&vf,-1);
|
||||
while(*ptr){
|
||||
fprintf(stderr,"%s\n",*ptr);
|
||||
++ptr;
|
||||
}
|
||||
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate);
|
||||
fprintf(stderr,"\nDecoded length: %ld samples\n",
|
||||
(long)ov_pcm_total(&vf,-1));
|
||||
fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
|
||||
}
|
||||
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Here's the read loop:
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
|
||||
while(!eof){
|
||||
long ret=ov_read(&vf,pcmout,sizeof(pcmout),¤t_section);
|
||||
if (ret == 0) {
|
||||
/* EOF */
|
||||
eof=1;
|
||||
} else if (ret < 0) {
|
||||
/* error in the stream. Not a problem, just reporting it in
|
||||
case we (the app) cares. In this case, we don't. */
|
||||
} else {
|
||||
/* we don't bother dealing with sample rate changes, etc, but
|
||||
you'll have to*/
|
||||
fwrite(pcmout,1,ret,stdout);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
The code is reading blocks of data using <a href="ov_read.html">ov_read()</a>.
|
||||
Based on the value returned, we know if we're at the end of the file or have invalid data. If we have valid data, we write it to the pcm output.
|
||||
|
||||
<p>
|
||||
Now that we've finished playing, we can pack up and go home. It's important to call <a href="ov_clear.html">ov_clear()</a> when we're finished.
|
||||
|
||||
<br><br>
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
|
||||
ov_clear(&vf);
|
||||
|
||||
fprintf(stderr,"Done.\n");
|
||||
return(0);
|
||||
}
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
95
tremor/doc/fileinfo.html
Normal file
95
tremor/doc/fileinfo.html
Normal file
@ -0,0 +1,95 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - File Information</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>File Information</h1>
|
||||
<p>Libvorbisidec contains many functions to get information about bitstream attributes and decoding status.
|
||||
<p>
|
||||
All libvorbisidec file information routines are declared in "ivorbisfile.h".
|
||||
<p>
|
||||
|
||||
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td><b>function</b></td>
|
||||
<td><b>purpose</b></td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_bitrate.html">ov_bitrate</a></td>
|
||||
<td>Returns the average bitrate of the current logical bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_bitrate_instant.html">ov_bitrate_instant</a></td>
|
||||
<td>Returns the exact bitrate since the last call of this function, or -1 if at the beginning of the bitream or no new information is available.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_streams.html">ov_streams</a></td>
|
||||
<td>Gives the number of logical bitstreams within the current physical bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_seekable.html">ov_seekable</a></td>
|
||||
<td>Indicates whether the bitstream is seekable.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_serialnumber.html">ov_serialnumber</a></td>
|
||||
<td>Returns the unique serial number of the specified logical bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_raw_total.html">ov_raw_total</a></td>
|
||||
<td>Returns the total (compressed) bytes in a physical or logical seekable bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_pcm_total.html">ov_pcm_total</a></td>
|
||||
<td>Returns the total number of samples in a physical or logical seekable bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_time_total.html">ov_time_total</a></td>
|
||||
<td>Returns the total time length in seconds of a physical or logical seekable bitstream.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_raw_tell.html">ov_raw_tell</a></td>
|
||||
<td>Returns the byte location of the next sample to be read, giving the approximate location in the stream that the decoding engine has reached.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_pcm_tell.html">ov_pcm_tell</a></td>
|
||||
<td>Returns the sample location of the next sample to be read, giving the approximate location in the stream that the decoding engine has reached.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_time_tell.html">ov_time_tell</a></td>
|
||||
<td>Returns the time location of the next sample to be read, giving the approximate location in the stream that the decoding engine has reached.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_info.html">ov_info</a></td>
|
||||
<td>Returns the <a href="vorbis_info.html">vorbis_info</a> struct for a specific bitstream section.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_comment.html">ov_comment</a></td>
|
||||
<td>Returns attached <a href="vorbis_comment.html">comments</a> for the current bitstream.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
53
tremor/doc/index.html
Normal file
53
tremor/doc/index.html
Normal file
@ -0,0 +1,53 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Documentation</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Tremor Documentation</h1>
|
||||
|
||||
<p>
|
||||
|
||||
The Tremor Vorbis I stream and file decoder provides an embeddable,
|
||||
integer-only library [libvorbisidec] intended for decoding all current
|
||||
and future Vorbis I compliant streams. The Tremor libvorbisidec
|
||||
library exposes an API intended to be as similar as possible to the
|
||||
familiar 'vorbisfile' library included with the open source Vorbis
|
||||
reference libraries distributed for free by Xiph.org. <p>
|
||||
|
||||
Tremor can be used along with any ANSI compliant stdio implementation
|
||||
for file/stream access, or use custom stream i/o routines provided by
|
||||
the embedded environment. Both uses are described in detail in this
|
||||
documentation.
|
||||
|
||||
<p>
|
||||
<a href="build.html">Building libvorbisidec</a><br>
|
||||
<a href="overview.html">API overview</a><br>
|
||||
<a href="reference.html">API reference</a><br>
|
||||
<a href="example.html">Example code</a><br>
|
||||
<a href="diff.html">Tremor / vorbisfile API differences</a><br>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
101
tremor/doc/initialization.html
Normal file
101
tremor/doc/initialization.html
Normal file
@ -0,0 +1,101 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Setup/Teardown</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<H1>Setup/Teardown</h1> <p>In order to decode audio using
|
||||
libvorbisidec, a bitstream containing Vorbis audio must be properly
|
||||
initialized before decoding and cleared when decoding is finished.
|
||||
The simplest possible case is to use <tt>fopen()</tt> to open a Vorbis
|
||||
file and then pass the <tt>FILE *</tt> to an <a
|
||||
href="ov_open.html">ov_open()</a> call. A successful <a
|
||||
href="return.html">return code</a> from <a
|
||||
href="ov_open.html">ov_open()</a> indicates the file is ready for use.
|
||||
Once the file is no longer needed, <a
|
||||
href="ov_clear.html">ov_clear()</a> is used to close the file and
|
||||
deallocate decoding resources. </b>Do not</b> call <tt>fclose()</tt> on the
|
||||
file; libvorbisidec does this in the <a
|
||||
href="ov_clear.html">ov_clear()</a> call.
|
||||
|
||||
<p>
|
||||
All libvorbisidec initialization and deallocation routines are declared in "ivorbisfile.h".
|
||||
<p>
|
||||
|
||||
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td><b>function</b></td>
|
||||
<td><b>purpose</b></td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_open.html">ov_open</a></td>
|
||||
<td>Initializes the Ogg Vorbis bitstream with a pointer to a bitstream and default values. This must be called before other functions in the library may be
|
||||
used.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_open_callbacks.html">ov_open_callbacks</a></td>
|
||||
<td>Initializes the Ogg Vorbis bitstream with a pointer to a bitstream, default values, and custom file/bitstream manipulation routines. Used instead of <a href="ov_open.html">ov_open()</a> when working with other than stdio based I/O.</td>
|
||||
</tr>
|
||||
|
||||
<tr valign=top>
|
||||
<td><a href="ov_test.html">ov_test</a></td>
|
||||
|
||||
<td>Partially opens a file just far enough to determine if the file
|
||||
is an Ogg Vorbis file or not. A successful return indicates that the
|
||||
file appears to be an Ogg Vorbis file, but the <a
|
||||
href="OggVorbis_File.html">OggVorbis_File</a> struct is not yet fully
|
||||
initialized for actual decoding. After a <a href="return.html">successful return</a>, the file
|
||||
may be closed using <a href="ov_clear.html">ov_clear()</a> or fully
|
||||
opened for decoding using <a
|
||||
href="ov_test_open.html">ov_test_open()</a>.<p> This call is intended to
|
||||
be used as a less expensive file open test than a full <a
|
||||
href="ov_open.html">ov_open()</a>.<p>
|
||||
Note that libvorbisidec owns the passed in file resource is it returns success; do not <tt>fclose()</tt> files owned by libvorbisidec.</td>
|
||||
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_test_callbacks.html">ov_test_callbacks</a></td>
|
||||
<td>As above but allowing application-define I/O callbacks.<p>
|
||||
Note that libvorbisidec owns the passed in file resource is it returns success; do not <tt>fclose()</tt> files owned by libvorbisidec.</td>
|
||||
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_test_open.html">ov_test_open</a><td>
|
||||
Finish opening a file after a successful call to <a href="ov_test.html">ov_test()</a> or <a href="ov_test_callbacks.html">ov_test_callbacks()</a>.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_clear.html">ov_clear</a></td> <td>Closes the
|
||||
bitstream and cleans up loose ends. Must be called when
|
||||
finished with the bitstream. After return, the <a
|
||||
href="OggVorbis_File.html">OggVorbis_File</a> struct is
|
||||
invalid and may not be used before being initialized again
|
||||
before begin reinitialized.
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
72
tremor/doc/ov_bitrate.html
Normal file
72
tremor/doc/ov_bitrate.html
Normal file
@ -0,0 +1,72 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_bitrate</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_bitrate</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>This function returns the average bitrate for the specified logical bitstream. This may be different from the <a href=ov_info.html>ov_info->nominal_bitrate</a> value, as it is based on the actual average for this bitstream if the file is seekable.
|
||||
<p>Nonseekable files will return the nominal bitrate setting or the average of the upper and lower bounds, if any of these values are set.
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
long ov_bitrate(OggVorbis_File *vf,int i);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the bitrate for the entire bitstream, this parameter should be set to -1.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>OV_EINVAL indicates that an invalid argument value was submitted or that the stream represented by <tt>vf</tt> is not open.</li>
|
||||
<li>OV_FALSE means the call returned a 'false' status, which in this case most likely indicates that the file is nonseekable and the upper, lower, and nominal bitrates were unset.
|
||||
<li><i>n</i> indicates the bitrate for the given logical bitstream or the entire
|
||||
physical bitstream. If the file is open for random (seekable) access, it will
|
||||
find the *actual* average bitrate. If the file is streaming (nonseekable), it
|
||||
returns the nominal bitrate (if set) or else the average of the
|
||||
upper/lower bounds (if set).</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
65
tremor/doc/ov_bitrate_instant.html
Normal file
65
tremor/doc/ov_bitrate_instant.html
Normal file
@ -0,0 +1,65 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_bitrate</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_bitrate_instant</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Used to find the most recent bitrate played back within the file. Will return 0 if the bitrate has not changed or it is the beginning of the file.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
long ov_bitrate_instant(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 indicates the beginning of the file or unchanged bitrate info.</li>
|
||||
<li><i>n</i> indicates the actual bitrate since the last call.</li>
|
||||
<li>OV_FALSE indicates that playback is not in progress, and thus there is no instantaneous bitrate information to report.</li>
|
||||
<li>OV_EINVAL indicates that the stream represented by <tt>vf</tt> is not open.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
78
tremor/doc/ov_callbacks.html
Normal file
78
tremor/doc/ov_callbacks.html
Normal file
@ -0,0 +1,78 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - datatype - ov_callbacks</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_callbacks</h1>
|
||||
|
||||
<p><i>declared in "ivorbiscodec.h"</i></p>
|
||||
|
||||
<p>
|
||||
The ov_callbacks structure contains file manipulation function prototypes necessary for opening, closing, seeking, and location.
|
||||
|
||||
<p>
|
||||
The ov_callbacks structure does not need to be user-defined if you are
|
||||
working with stdio-based file manipulation; the <a
|
||||
href="ov_open.html">ov_open()</a> call provides default callbacks for
|
||||
stdio. ov_callbacks are defined and passed to <a
|
||||
href="ov_open_callbacks.html">ov_open_callbacks()</a> when
|
||||
implementing non-stdio based stream manipulation (such as playback
|
||||
from a memory buffer).
|
||||
<p>
|
||||
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>typedef struct {
|
||||
size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource);
|
||||
int (*seek_func) (void *datasource, ogg_int64_t offset, int whence);
|
||||
int (*close_func) (void *datasource);
|
||||
long (*tell_func) (void *datasource);
|
||||
} ov_callbacks;</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Relevant Struct Members</h3>
|
||||
<dl>
|
||||
<dt><i>read_func</i></dt>
|
||||
<dd>Pointer to custom data reading function.</dd>
|
||||
<dt><i>seek_func</i></dt>
|
||||
<dd>Pointer to custom data seeking function. If the data source is not seekable (or the application wants the data source to be treated as unseekable at all times), the provided seek callback should always return -1 (failure).</dd>
|
||||
<dt><i>close_func</i></dt>
|
||||
<dd>Pointer to custom data source closure function.</dd>
|
||||
<dt><i>tell_func</i></dt>
|
||||
<dd>Pointer to custom data location function.</dd>
|
||||
</dl>
|
||||
|
||||
<p>
|
||||
|
||||
See <a href="callbacks.html">the callbacks and non-stdio I/O document</a> for more
|
||||
detailed information on required behavior of the various callback
|
||||
functions.<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
64
tremor/doc/ov_clear.html
Normal file
64
tremor/doc/ov_clear.html
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_clear</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_clear</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p> After a bitstream has been opened using <a href="ov_open.html">ov_open()</a>/<a href="ov_open_callbacks.html">ov_open_callbacks()</a> and decoding is complete, the application must call <tt>ov_clear()</tt> to clear
|
||||
the decoder's buffers and close the file.<p>
|
||||
|
||||
<tt>ov_clear()</tt> must also be called after a successful call to <a href="ov_test.html">ov_test()</a> or <a href="ov_test_callbacks.html">ov_test_callbacks()</a>.<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_clear(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. After <tt>ov_clear</tt> has been called, the structure is deallocated and can no longer be used.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 for success</li>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
66
tremor/doc/ov_comment.html
Normal file
66
tremor/doc/ov_comment.html
Normal file
@ -0,0 +1,66 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_bitrate</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_comment</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns a pointer to the <a href="vorbis_comment.html">vorbis_comment</a> struct for the specified bitstream. For nonseekable streams, returns the struct for the current bitstream.
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the <a href="vorbis_comment.html">vorbis_comment</a> struct for the current bitstream, this parameter should be set to -1.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>Returns the vorbis_comment struct for the specified bitstream.</li>
|
||||
<li>NULL if the specified bitstream does not exist or the file has been initialized improperly.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
64
tremor/doc/ov_info.html
Normal file
64
tremor/doc/ov_info.html
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_info</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_info</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the <a href="vorbis_info.html">vorbis_info</a> struct for the specified bitstream. For nonseekable files, always returns the current vorbis_info struct.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
vorbis_info *ov_info(<a href="OggVorbis_File.html">OggVorbis_File</a> *vf,int link);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. </dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the <a href="vorbis_info.html">vorbis_info</a> struct for the current bitstream, this parameter should be set to -1.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>Returns the vorbis_info struct for the specified bitstream. Returns vorbis_info for current bitstream if the file is nonseekable or i=-1.</li>
|
||||
<li>NULL if the specified bitstream does not exist or the file has been initialized improperly.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
115
tremor/doc/ov_open.html
Normal file
115
tremor/doc/ov_open.html
Normal file
@ -0,0 +1,115 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_open</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_open</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>This is the main function used to open and initialize an OggVorbis_File
|
||||
structure. It sets up all the related decoding structure.
|
||||
<p>The first argument must be a file pointer to an already opened file
|
||||
or pipe (it need not be seekable--though this obviously restricts what
|
||||
can be done with the bitstream). <tt>vf</tt> should be a pointer to the
|
||||
OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. Once this has been called, the same <a href="OggVorbis_File.html">OggVorbis_File</a>
|
||||
struct should be passed to all the libvorbisidec functions.
|
||||
<p>Also, you should be aware that ov_open(), once successful, takes complete possession of the file resource. After you have opened a file using ov_open(), you MUST close it using <a href="ov_clear.html">ov_clear()</a>, not fclose() or any other function.
|
||||
<p>
|
||||
It is often useful to call <tt>ov_open()</tt>
|
||||
simply to determine whether a given file is a vorbis bitstream. If the
|
||||
<tt>ov_open()</tt>
|
||||
call fails, then the file is not recognizable as such.
|
||||
When you use <tt>ov_open()
|
||||
</tt>for
|
||||
this, you should <tt>fclose()</tt> the file pointer if, and only if, the
|
||||
<tt>ov_open()</tt>
|
||||
call fails. If it succeeds, you must call <a href="ov_clear.html">ov_clear()</a> to clear
|
||||
the decoder's buffers and close the file for you.<p>
|
||||
|
||||
(Note that <a href="ov_test.html">ov_test()</a> provides a less expensive way to test a file for Vorbisness.)<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_open(FILE *f,<a href="OggVorbis_File.html">OggVorbis_File</a> *vf,char *initial,long ibytes);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>f</i></dt>
|
||||
<dd>File pointer to an already opened file
|
||||
or pipe (it need not be seekable--though this obviously restricts what
|
||||
can be done with the bitstream).</dd>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.</dd>
|
||||
<dt><i>initial</i></dt>
|
||||
<dd>Typically set to NULL. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. It is used in conjunction with <tt>ibytes</tt>. In this case, <tt>initial</tt>
|
||||
should be a pointer to a buffer containing the data read.</dd>
|
||||
<dt><i>ibytes</i></dt>
|
||||
<dd>Typically set to 0. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. In this case, <tt>ibytes</tt>
|
||||
should contain the length (in bytes) of the buffer. Used together with <tt>initial</tt></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 indicates success</li>
|
||||
|
||||
<li>less than zero for failure:</li>
|
||||
<ul>
|
||||
<li>OV_EREAD - A read from media returned an error.</li>
|
||||
<li>OV_ENOTVORBIS - Bitstream is not Vorbis data.</li>
|
||||
<li>OV_EVERSION - Vorbis version mismatch.</li>
|
||||
<li>OV_EBADHEADER - Invalid Vorbis bitstream header.</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<h3>Notes</h3>
|
||||
<p>If your decoder is threaded, it is recommended that you NOT call
|
||||
<tt>ov_open()</tt>
|
||||
in the main control thread--instead, call <tt>ov_open()</tt> IN your decode/playback
|
||||
thread. This is important because <tt>ov_open()</tt> may be a fairly time-consuming
|
||||
call, given that the full structure of the file is determined at this point,
|
||||
which may require reading large parts of the file under certain circumstances
|
||||
(determining all the logical bitstreams in one physical bitstream, for
|
||||
example). See <a href="threads.html">Thread Safety</a> for other information on using libvorbisidec with threads.
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
110
tremor/doc/ov_open_callbacks.html
Normal file
110
tremor/doc/ov_open_callbacks.html
Normal file
@ -0,0 +1,110 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_open_callbacks</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_open_callbacks</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>This is an alternative function used to open and initialize an OggVorbis_File
|
||||
structure when using a data source other than a file. It allows you to specify custom file manipulation routines and sets up all the related decoding structure.
|
||||
<p>Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.
|
||||
<p>
|
||||
It is often useful to call <tt>ov_open_callbacks()</tt>
|
||||
simply to determine whether a given file is a vorbis bitstream. If the
|
||||
<tt>ov_open_callbacks()</tt>
|
||||
call fails, then the file is not recognizable as such. When you use <tt>ov_open_callbacks()
|
||||
</tt>for
|
||||
this, you should <tt>fclose()</tt> the file pointer if, and only if, the
|
||||
<tt>ov_open_callbacks()</tt>
|
||||
call fails. If it succeeds, you must call <a href=ov_clear.html>ov_clear()</a> to clear
|
||||
the decoder's buffers and close the file for you.<p>
|
||||
|
||||
See also <a href="callbacks.html">Callbacks and Non-stdio I/O</a> for information on designing and specifying the required callback functions.<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_open_callbacks(void *datasource, <a href="OggVorbis_File.html">OggVorbis_File</a> *vf, char *initial, long ibytes, <a href="ov_callbacks.html">ov_callbacks</a> callbacks);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>f</i></dt>
|
||||
<dd>File pointer to an already opened file
|
||||
or pipe (it need not be seekable--though this obviously restricts what
|
||||
can be done with the bitstream).</dd>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.</dd>
|
||||
<dt><i>initial</i></dt>
|
||||
<dd>Typically set to NULL. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. It is used in conjunction with <tt>ibytes</tt>. In this case, <tt>initial</tt>
|
||||
should be a pointer to a buffer containing the data read.</dd>
|
||||
<dt><i>ibytes</i></dt>
|
||||
<dd>Typically set to 0. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. In this case, <tt>ibytes</tt>
|
||||
should contain the length (in bytes) of the buffer. Used together with <tt>initial</tt>.</dd>
|
||||
<dt><i>callbacks</i></dt>
|
||||
<dd>Pointer to a completed <a href="ov_callbacks.html">ov_callbacks</a> struct which indicates desired custom file manipulation routines.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 for success</li>
|
||||
<li>less than zero for failure:</li>
|
||||
<ul>
|
||||
<li>OV_EREAD - A read from media returned an error.</li>
|
||||
<li>OV_ENOTVORBIS - Bitstream is not Vorbis data.</li>
|
||||
<li>OV_EVERSION - Vorbis version mismatch.</li>
|
||||
<li>OV_EBADHEADER - Invalid Vorbis bitstream header.</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<h3>Notes</h3>
|
||||
<p>If your decoder is threaded, it is recommended that you NOT call
|
||||
<tt>ov_open_callbacks()</tt>
|
||||
in the main control thread--instead, call <tt>ov_open_callbacks()</tt> IN your decode/playback
|
||||
thread. This is important because <tt>ov_open_callbacks()</tt> may be a fairly time-consuming
|
||||
call, given that the full structure of the file is determined at this point,
|
||||
which may require reading large parts of the file under certain circumstances
|
||||
(determining all the logical bitstreams in one physical bitstream, for
|
||||
example).
|
||||
See <a href="threads.html">Thread Safety</a> for other information on using libvorbisidec with threads.
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
81
tremor/doc/ov_pcm_seek.html
Normal file
81
tremor/doc/ov_pcm_seek.html
Normal file
@ -0,0 +1,81 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_pcm_seek</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_pcm_seek</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Seeks to the offset specified (in pcm samples) within the physical bitstream. This function only works for seekable streams.
|
||||
<p>This also updates everything needed within the
|
||||
decoder, so you can immediately call <a href="ov_read.html">ov_read()</a> and get data from
|
||||
the newly seeked to position.
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>pos</i></dt>
|
||||
<dd>Position in pcm samples to seek to in the bitstream.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 for success</li>
|
||||
|
||||
<li>
|
||||
nonzero indicates failure, described by several error codes:</li>
|
||||
<ul>
|
||||
<li>OV_ENOSEEK - Bitstream is not seekable.
|
||||
</li>
|
||||
<li>OV_EINVAL - Invalid argument value.
|
||||
</li>
|
||||
<li>OV_EREAD - A read from media returned an error.
|
||||
</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack
|
||||
corruption.
|
||||
</li>
|
||||
<li>OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt.
|
||||
</li>
|
||||
</ul></blockquote>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
83
tremor/doc/ov_pcm_seek_page.html
Normal file
83
tremor/doc/ov_pcm_seek_page.html
Normal file
@ -0,0 +1,83 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_pcm_seek_page</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_pcm_seek_page</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Seeks to the closest page preceding the specified location (in pcm samples) within the physical bitstream. This function only works for seekable streams.
|
||||
<p>This function is faster than <a href="ov_pcm_seek.html">ov_pcm_seek</a> because the function can begin decoding at a page boundary rather than seeking through any remaining samples before the specified location. However, it is less accurate.
|
||||
<p>This also updates everything needed within the
|
||||
decoder, so you can immediately call <a href="ov_read.html">ov_read()</a> and get data from
|
||||
the newly seeked to position.
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>pos</i></dt>
|
||||
<dd>Position in pcm samples to seek to in the bitstream.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>
|
||||
0 for success</li>
|
||||
|
||||
<li>
|
||||
nonzero indicates failure, described by several error codes:</li>
|
||||
<ul>
|
||||
<li>OV_ENOSEEK - Bitstream is not seekable.
|
||||
</li>
|
||||
<li>OV_EINVAL - Invalid argument value.
|
||||
</li>
|
||||
<li>OV_EREAD - A read from media returned an error.
|
||||
</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack
|
||||
corruption.
|
||||
</li>
|
||||
<li>OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt.
|
||||
</li>
|
||||
</ul></blockquote>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
63
tremor/doc/ov_pcm_tell.html
Normal file
63
tremor/doc/ov_pcm_tell.html
Normal file
@ -0,0 +1,63 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_pcm_tell</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_pcm_tell</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the current offset in samples.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li><i>n</i> indicates the current offset in samples.</li>
|
||||
<li>OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
67
tremor/doc/ov_pcm_total.html
Normal file
67
tremor/doc/ov_pcm_total.html
Normal file
@ -0,0 +1,67 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_pcm_total</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_pcm_total</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the total pcm samples of the physical bitstream or a specified logical bitstream.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. To retrieve the total pcm samples for the entire physical bitstream, this parameter should be set to -1.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is unseekable.</li>
|
||||
<li>
|
||||
total length in pcm samples of content if i=-1.</li>
|
||||
<li>length in pcm samples of logical bitstream if i=1 to n.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
75
tremor/doc/ov_raw_seek.html
Normal file
75
tremor/doc/ov_raw_seek.html
Normal file
@ -0,0 +1,75 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_raw_seek</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_raw_seek</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Seeks to the offset specified (in compressed raw bytes) within the physical bitstream. This function only works for seekable streams.
|
||||
<p>This also updates everything needed within the
|
||||
decoder, so you can immediately call <a href="ov_read.html">ov_read()</a> and get data from
|
||||
the newly seeked to position.
|
||||
<p>When seek speed is a priority, this is the best seek funtion to use.
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_raw_seek(OggVorbis_File *vf,long pos);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>pos</i></dt>
|
||||
<dd>Position in compressed bytes to seek to in the bitstream.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 indicates success</li>
|
||||
<li>nonzero indicates failure, described by several error codes:</li>
|
||||
<ul>
|
||||
<li>OV_ENOSEEK - Bitstream is not seekable.
|
||||
</li>
|
||||
<li>OV_EINVAL - Invalid argument value.
|
||||
</li>
|
||||
<li>OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt.
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
63
tremor/doc/ov_raw_tell.html
Normal file
63
tremor/doc/ov_raw_tell.html
Normal file
@ -0,0 +1,63 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_raw_tell</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_raw_tell</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the current offset in raw compressed bytes.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li><i>n</i> indicates the current offset in bytes.</li>
|
||||
<li>OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
68
tremor/doc/ov_raw_total.html
Normal file
68
tremor/doc/ov_raw_total.html
Normal file
@ -0,0 +1,68 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_raw_total</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_raw_total</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the total (compressed) bytes of the physical bitstream or a specified logical bitstream.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. To retrieve the total bytes for the entire physical bitstream, this parameter should be set to -1.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is nonseekable</li>
|
||||
<li><tt>n</tt>
|
||||
total length in compressed bytes of content if i=-1.</li>
|
||||
<li><tt>n</tt> length in compressed bytes of logical bitstream if i=1 to n.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
115
tremor/doc/ov_read.html
Normal file
115
tremor/doc/ov_read.html
Normal file
@ -0,0 +1,115 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_read</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_read()</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>
|
||||
This is the main function used to decode a Vorbis file within a
|
||||
loop. It returns up to the specified number of bytes of decoded audio
|
||||
in host-endian, signed 16 bit PCM format. If the audio is
|
||||
multichannel, the channels are interleaved in the output buffer.
|
||||
If the passed in buffer is large, <tt>ov_read()</tt> will not fill
|
||||
it; the passed in buffer size is treated as a <em>limit</em> and
|
||||
not a request.
|
||||
<p>
|
||||
|
||||
Note that up to this point, the Tremor API could more or less hide the
|
||||
multiple logical bitstream nature of chaining from the toplevel
|
||||
application if the toplevel application didn't particularly care.
|
||||
However, when reading audio back, the application must be aware
|
||||
that multiple bitstream sections do not necessarily use the same
|
||||
number of channels or sampling rate. <p> <tt>ov_read()</tt> passes
|
||||
back the index of the sequential logical bitstream currently being
|
||||
decoded (in <tt>*bitstream</tt>) along with the PCM data in order
|
||||
that the toplevel application can handle channel and/or sample
|
||||
rate changes. This number will be incremented at chaining
|
||||
boundaries even for non-seekable streams. For seekable streams, it
|
||||
represents the actual chaining index within the physical bitstream.
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
long ov_read(<a href="OggVorbis_File.html">OggVorbis_File</a> *vf, char *buffer, int length, int *bitstream);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>buffer</i></dt>
|
||||
<dd>A pointer to an output buffer. The decoded output is inserted into this buffer.</dd>
|
||||
<dt><i>length</i></dt>
|
||||
<dd>Number of bytes to be read into the buffer. Should be the same size as the buffer. A typical value is 4096.</dd>
|
||||
<dt><i>bitstream</i></dt>
|
||||
<dd>A pointer to the number of the current logical bitstream.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt>OV_HOLE</dt>
|
||||
<dd>indicates there was an interruption in the data.
|
||||
<br>(one of: garbage between pages, loss of sync followed by
|
||||
recapture, or a corrupt page)</dd>
|
||||
<dt>OV_EBADLINK</dt>
|
||||
<dd>indicates that an invalid stream section was supplied to
|
||||
libvorbisidec, or the requested link is corrupt.</dd>
|
||||
<dt>0</dt>
|
||||
<dd>indicates EOF</dd>
|
||||
<dt><i>n</i></dt>
|
||||
<dd>indicates actual number of bytes read. <tt>ov_read()</tt> will
|
||||
decode at most one vorbis packet per invocation, so the value
|
||||
returned will generally be less than <tt>length</tt>.
|
||||
</dl>
|
||||
</blockquote>
|
||||
|
||||
<h3>Notes</h3>
|
||||
<p><b>Typical usage:</b>
|
||||
<blockquote>
|
||||
<tt>bytes_read = ov_read(&vf,
|
||||
buffer, 4096,&current_section)</tt>
|
||||
</blockquote>
|
||||
|
||||
This reads up to 4096 bytes into a buffer, with signed 16-bit
|
||||
little-endian samples.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
63
tremor/doc/ov_seekable.html
Normal file
63
tremor/doc/ov_seekable.html
Normal file
@ -0,0 +1,63 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_seekable</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_seekable</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>This indicates whether or not the bitstream is seekable.
|
||||
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
long ov_seekable(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 indicates that the file is not seekable.</li>
|
||||
<li>nonzero indicates that the file is seekable.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
67
tremor/doc/ov_serialnumber.html
Normal file
67
tremor/doc/ov_serialnumber.html
Normal file
@ -0,0 +1,67 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_serialnumber</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_serialnumber</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the serialnumber of the specified logical bitstream link number within the overall physical bitstream.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
long ov_serialnumber(OggVorbis_File *vf,int i);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. For nonseekable files, this argument is ignored. To retrieve the serial number of the current bitstream, this parameter should be set to -1.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>
|
||||
-1 if the specified logical bitstream <i>i</i> does not exist.</li>
|
||||
|
||||
<li>Returns the serial number of the logical bitstream <i>i</i> or the serial number of the current bitstream if the file is nonseekable.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
64
tremor/doc/ov_streams.html
Normal file
64
tremor/doc/ov_streams.html
Normal file
@ -0,0 +1,64 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_streams</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_streams</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the number of logical bitstreams within our physical bitstream.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
long ov_streams(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. </dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>
|
||||
1 indicates a single logical bitstream or an unseekable file.</li>
|
||||
<li><i>n</i> indicates the number of logical bitstreams.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
89
tremor/doc/ov_test.html
Normal file
89
tremor/doc/ov_test.html
Normal file
@ -0,0 +1,89 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_test</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_test</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>
|
||||
This partially opens a vorbis file to test for Vorbis-ness. It loads
|
||||
the headers for the first chain, and tests for seekability (but does not seek).
|
||||
Use <a href="ov_test_open.html">ov_test_open()</a> to finish opening the file
|
||||
or <a href="ov_clear.html">ov_clear</a> to close/free it.
|
||||
<p>
|
||||
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_test(FILE *f,<a href="OggVorbis_File.html">OggVorbis_File</a> *vf,char *initial,long ibytes);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>f</i></dt>
|
||||
<dd>File pointer to an already opened file
|
||||
or pipe (it need not be seekable--though this obviously restricts what
|
||||
can be done with the bitstream).</dd>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.</dd>
|
||||
<dt><i>initial</i></dt>
|
||||
<dd>Typically set to NULL. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. It is used in conjunction with <tt>ibytes</tt>. In this case, <tt>initial</tt>
|
||||
should be a pointer to a buffer containing the data read.</dd>
|
||||
<dt><i>ibytes</i></dt>
|
||||
<dd>Typically set to 0. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. In this case, <tt>ibytes</tt>
|
||||
should contain the length (in bytes) of the buffer. Used together with <tt>initial</tt></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 for success</li>
|
||||
|
||||
<li>less than zero for failure:</li>
|
||||
<ul>
|
||||
<li>OV_EREAD - A read from media returned an error.</li>
|
||||
<li>OV_ENOTVORBIS - Bitstream is not Vorbis data.</li>
|
||||
<li>OV_EVERSION - Vorbis version mismatch.</li>
|
||||
<li>OV_EBADHEADER - Invalid Vorbis bitstream header.</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
90
tremor/doc/ov_test_callbacks.html
Normal file
90
tremor/doc/ov_test_callbacks.html
Normal file
@ -0,0 +1,90 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_test_callbacks</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_test_callbacks</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>This is an alternative function used to open and test an OggVorbis_File
|
||||
structure when using a data source other than a file. It allows you to specify custom file manipulation routines and sets up all the related decoding structures.
|
||||
<p>Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.
|
||||
<p>
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_test_callbacks(void *datasource, <a href="OggVorbis_File.html">OggVorbis_File</a> *vf, char *initial, long ibytes, <a href="ov_callbacks.html">ov_callbacks</a> callbacks);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>f</i></dt>
|
||||
<dd>File pointer to an already opened file
|
||||
or pipe (it need not be seekable--though this obviously restricts what
|
||||
can be done with the bitstream).</dd>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.</dd>
|
||||
<dt><i>initial</i></dt>
|
||||
<dd>Typically set to NULL. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. It is used in conjunction with <tt>ibytes</tt>. In this case, <tt>initial</tt>
|
||||
should be a pointer to a buffer containing the data read.</dd>
|
||||
<dt><i>ibytes</i></dt>
|
||||
<dd>Typically set to 0. This parameter is useful if some data has already been
|
||||
read from the file and the stream is not seekable. In this case, <tt>ibytes</tt>
|
||||
should contain the length (in bytes) of the buffer. Used together with <tt>initial</tt>.</dd>
|
||||
<dt><i>callbacks</i></dt>
|
||||
<dd>Pointer to a completed <a href="ov_callbacks.html">ov_callbacks</a> struct which indicates desired custom file manipulation routines.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>0 for success</li>
|
||||
<li>less than zero for failure:</li>
|
||||
<ul>
|
||||
<li>OV_EREAD - A read from media returned an error.</li>
|
||||
<li>OV_ENOTVORBIS - Bitstream is not Vorbis data.</li>
|
||||
<li>OV_EVERSION - Vorbis version mismatch.</li>
|
||||
<li>OV_EBADHEADER - Invalid Vorbis bitstream header.</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
82
tremor/doc/ov_test_open.html
Normal file
82
tremor/doc/ov_test_open.html
Normal file
@ -0,0 +1,82 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_test_open</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_test_open</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>
|
||||
Finish opening a file partially opened with <a href="ov_test.html">ov_test()</a>
|
||||
or <a href="ov_test_callbacks.html">ov_test_callbacks()</a>.
|
||||
<p>
|
||||
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_test_open(<a href="OggVorbis_File.html">OggVorbis_File</a> *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions. Once this has been called, the same <tt>OggVorbis_File</tt>
|
||||
struct should be passed to all the libvorbisidec functions.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>
|
||||
0 for success</li>
|
||||
|
||||
<li>less than zero for failure:</li>
|
||||
<ul>
|
||||
<li>OV_EREAD - A read from media returned an error.</li>
|
||||
<li>OV_ENOTVORBIS - Bitstream is not Vorbis data.</li>
|
||||
<li>OV_EVERSION - Vorbis version mismatch.</li>
|
||||
<li>OV_EBADHEADER - Invalid Vorbis bitstream header.</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
70
tremor/doc/ov_time_seek.html
Normal file
70
tremor/doc/ov_time_seek.html
Normal file
@ -0,0 +1,70 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_time_seek</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_time_seek</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>For seekable
|
||||
streams, this seeks to the given time. For implementing seeking in a player,
|
||||
this is the only function generally needed. This also updates everything needed within the
|
||||
decoder, so you can immediately call <a href="ov_read.html">ov_read()</a> and get data from
|
||||
the newly seeked to position. This function does not work for unseekable streams.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_time_seek(<a href="OggVorbis_File.html">OggVorbis_File</a> *vf, ogg_int64_t ms);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>Pointer to our already opened and initialized OggVorbis_File structure.</dd>
|
||||
<dt><i>ms</i></dt>
|
||||
<dd>Location to seek to within the file, specified in milliseconds.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>
|
||||
0 for success</li>
|
||||
|
||||
<li>
|
||||
Nonzero for failure</li>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
83
tremor/doc/ov_time_seek_page.html
Normal file
83
tremor/doc/ov_time_seek_page.html
Normal file
@ -0,0 +1,83 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_time_seek_page</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_time_seek_page</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>For seekable
|
||||
streams, this seeks to closest full page preceding the given time. This function is faster than <a href="ov_time_seek.html">ov_time_seek</a> because it doesn't seek through the last few samples to reach an exact time, but it is also less accurate. This should be used when speed is important.
|
||||
<p>This function also updates everything needed within the
|
||||
decoder, so you can immediately call <a href="ov_read.html">ov_read()</a> and get data from
|
||||
the newly seeked to position.
|
||||
<p>This function does not work for unseekable streams.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
int ov_time_seek_page(<a href="OggVorbis_File.html">OggVorbis_File</a> *vf, ogg_int64_t ms);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>Pointer to our already opened and initialized OggVorbis_File structure.</dd>
|
||||
<dt><i>ms</i></dt>
|
||||
<dd>Location to seek to within the file, specified in milliseconds.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>
|
||||
0 for success</li>
|
||||
|
||||
<li>
|
||||
nonzero indicates failure, described by several error codes:</li>
|
||||
<ul>
|
||||
<li>OV_ENOSEEK - Bitstream is not seekable.
|
||||
</li>
|
||||
<li>OV_EINVAL - Invalid argument value.
|
||||
</li>
|
||||
<li>OV_EREAD - A read from media returned an error.
|
||||
</li>
|
||||
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack
|
||||
corruption.
|
||||
</li>
|
||||
<li>OV_EBADLINK - Invalid stream section supplied to libvorbisidec, or the requested link is corrupt.
|
||||
</li>
|
||||
</ul></blockquote>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
63
tremor/doc/ov_time_tell.html
Normal file
63
tremor/doc/ov_time_tell.html
Normal file
@ -0,0 +1,63 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_bitrate</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_time_tell</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
<p>Returns the current decoding offset in milliseconds.
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
ogg_int64_t ov_time_tell(OggVorbis_File *vf);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li><i>n</i> indicates the current decoding time offset in milliseconds.</li>
|
||||
<li>OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
67
tremor/doc/ov_time_total.html
Normal file
67
tremor/doc/ov_time_total.html
Normal file
@ -0,0 +1,67 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - function - ov_time_total</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>ov_time_total</h1>
|
||||
|
||||
<p><i>declared in "ivorbisfile.h";</i></p>
|
||||
|
||||
|
||||
<p>Returns the total time in seconds of the physical bitstream or a specified logical bitstream.
|
||||
|
||||
|
||||
<br><br>
|
||||
<table border=0 color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>
|
||||
ogg_int64_t ov_time_total(OggVorbis_File *vf,int i);
|
||||
</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>vf</i></dt>
|
||||
<dd>A pointer to the OggVorbis_File structure--this is used for ALL the externally visible libvorbisidec
|
||||
functions.</dd>
|
||||
<dt><i>i</i></dt>
|
||||
<dd>Link to the desired logical bitstream. To retrieve the time total for the entire physical bitstream, this parameter should be set to -1.</b></dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>Return Values</h3>
|
||||
<blockquote>
|
||||
<li>OV_EINVAL means that the argument was invalid. In this case, the requested bitstream did not exist or the bitstream is nonseekable.</li>
|
||||
<li><tt>n</tt> total length in milliseconds of content if i=-1.</li>
|
||||
<li><tt>n</tt> length in milliseconds of logical bitstream if i=1 to n.</li>
|
||||
</blockquote>
|
||||
<p>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
61
tremor/doc/overview.html
Normal file
61
tremor/doc/overview.html
Normal file
@ -0,0 +1,61 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - API Overview</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Tremor API Overview</h1>
|
||||
|
||||
<p>The makeup of the Tremor libvorbisidec library API is relatively
|
||||
simple. It revolves around a single file resource. This file resource is
|
||||
passed to libvorbisidec, where it is opened, manipulated, and closed,
|
||||
in the form of an <a href="OggVorbis_File.html">OggVorbis_File</a>
|
||||
struct.
|
||||
<p>
|
||||
The Tremor API consists of the following functional categories:
|
||||
<p>
|
||||
<ul>
|
||||
<li><p><a href="datastructures.html">Base data structures</a>
|
||||
<li><p><a href="initialization.html">Setup/Teardown</a>
|
||||
<li><p><a href="decoding.html">Decoding</a>
|
||||
<li><p><a href="seeking.html">Seeking</a>
|
||||
<li><p><a href="fileinfo.html">File Information</a>
|
||||
</ul>
|
||||
<p>
|
||||
In addition, the following subjects deserve attention additional to
|
||||
the above general overview:
|
||||
<p>
|
||||
<ul>
|
||||
<li><p><a href="threads.html">Threading and thread safety</a>
|
||||
<li><p><a href="callbacks.html">Using [non stdio] custom stream I/O
|
||||
via callbacks</a>
|
||||
<li><a href="diff.html">Tremor / vorbisfile API differences</a><br>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
75
tremor/doc/reference.html
Normal file
75
tremor/doc/reference.html
Normal file
@ -0,0 +1,75 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor API Reference</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Tremor API Reference</h1>
|
||||
|
||||
<p>
|
||||
<b>Data Structures</b><br>
|
||||
<a href="OggVorbis_File.html">OggVorbis_File</a><br>
|
||||
<a href="vorbis_comment.html">vorbis_comment</a><br>
|
||||
<a href="vorbis_info.html">vorbis_info</a><br>
|
||||
<a href="ov_callbacks.html">ov_callbacks</a><br>
|
||||
<br>
|
||||
<b>Setup/Teardown</b><br>
|
||||
<a href="ov_open.html">ov_open()</a><br>
|
||||
<a href="ov_open_callbacks.html">ov_open_callbacks()</a><br>
|
||||
<a href="ov_clear.html">ov_clear()</a><br>
|
||||
<a href="ov_test.html">ov_test()</a><br>
|
||||
<a href="ov_test_callbacks.html">ov_test_callbacks()</a><br>
|
||||
<a href="ov_test_open.html">ov_test_open()</a><br>
|
||||
<br>
|
||||
<b>Decoding</b><br>
|
||||
<a href="ov_read.html">ov_read()</a><br>
|
||||
<br>
|
||||
<b>Seeking</b><br>
|
||||
<a href="ov_raw_seek.html">ov_raw_seek()</a><br>
|
||||
<a href="ov_pcm_seek.html">ov_pcm_seek()</a><br>
|
||||
<a href="ov_time_seek.html">ov_time_seek()</a><br>
|
||||
<a href="ov_pcm_seek_page.html">ov_pcm_seek_page()</a><br>
|
||||
<a href="ov_time_seek_page.html">ov_time_seek_page()</a><br>
|
||||
<br>
|
||||
<b>File Information</b><br>
|
||||
<a href="ov_bitrate.html">ov_bitrate()</a><br>
|
||||
<a href="ov_bitrate_instant.html">ov_bitrate_instant()</a><br>
|
||||
<a href="ov_streams.html">ov_streams()</a><br>
|
||||
<a href="ov_seekable.html">ov_seekable()</a><br>
|
||||
<a href="ov_serialnumber.html">ov_serialnumber()</a><br>
|
||||
<a href="ov_raw_total.html">ov_raw_total()</a><br>
|
||||
<a href="ov_pcm_total.html">ov_pcm_total()</a><br>
|
||||
<a href="ov_time_total.html">ov_time_total()</a><br>
|
||||
<a href="ov_raw_tell.html">ov_raw_tell()</a><br>
|
||||
<a href="ov_pcm_tell.html">ov_pcm_tell()</a><br>
|
||||
<a href="ov_time_tell.html">ov_time_tell()</a><br>
|
||||
<a href="ov_info.html">ov_info()</a><br>
|
||||
<a href="ov_comment.html">ov_comment()</a><br>
|
||||
<br>
|
||||
<b><a href="return.html">Return Codes</a></b><br>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
77
tremor/doc/return.html
Normal file
77
tremor/doc/return.html
Normal file
@ -0,0 +1,77 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Return Codes</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Return Codes</h1>
|
||||
|
||||
<p>
|
||||
|
||||
The following return codes are <tt>#define</tt>d in "ivorbiscodec.h"
|
||||
may be returned by libvorbisidec. Descriptions of a code relevant to
|
||||
a specific function are found in the reference description of that
|
||||
function.
|
||||
|
||||
<dl>
|
||||
|
||||
<dt>OV_FALSE</dt>
|
||||
<dd>Not true, or no data available</dd>
|
||||
|
||||
<dt>OV_HOLE</dt>
|
||||
<dd>Tremor encoutered missing or corrupt data in the bitstream. Recovery
|
||||
is normally automatic and this return code is for informational purposes only.</dd>
|
||||
|
||||
<dt>OV_EREAD</dt>
|
||||
<dd>Read error while fetching compressed data for decode</dd>
|
||||
|
||||
<dt>OV_EFAULT</dt>
|
||||
<dd>Internal inconsistency in decode state. Continuing is likely not possible.</dd>
|
||||
|
||||
<dt>OV_EIMPL</dt>
|
||||
<dd>Feature not implemented</dd>
|
||||
|
||||
<dt>OV_EINVAL</dt>
|
||||
<dd>Either an invalid argument, or incompletely initialized argument passed to libvorbisidec call</dd>
|
||||
|
||||
<dt>OV_ENOTVORBIS</dt>
|
||||
<dd>The given file/data was not recognized as Ogg Vorbis data.</dd>
|
||||
|
||||
<dt>OV_EBADHEADER</dt>
|
||||
<dd>The file/data is apparently an Ogg Vorbis stream, but contains a corrupted or undecipherable header.</dd>
|
||||
|
||||
<dt>OV_EVERSION</dt>
|
||||
<dd>The bitstream format revision of the given stream is not supported.</dd>
|
||||
|
||||
<dt>OV_EBADLINK</dt>
|
||||
<dd>The given link exists in the Vorbis data stream, but is not decipherable due to garbacge or corruption.</dd>
|
||||
|
||||
<dt>OV_ENOSEEK</dt>
|
||||
<dd>The given stream is not seekable</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
74
tremor/doc/seeking.html
Normal file
74
tremor/doc/seeking.html
Normal file
@ -0,0 +1,74 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Seeking</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Seeking</h1>
|
||||
<p>Seeking functions allow you to specify a specific point in the stream to begin or continue decoding.
|
||||
<p>
|
||||
All libvorbisidec seeking routines are declared in "ivorbisfile.h".
|
||||
|
||||
<p>Certain seeking functions are best suited to different situations.
|
||||
When speed is important and exact positioning isn't required,
|
||||
page-level seeking should be used. Note also that Vorbis files do not
|
||||
necessarily start at a sample number or time offset of zero. Do not
|
||||
be surprised if a file begins at a positive offset of several minutes
|
||||
or hours, such as would happen if a large stream (such as a concert
|
||||
recording) is chopped into multiple separate files. Requesting to
|
||||
seek to a position before the beginning of such a file will seek to
|
||||
the position where audio begins.<p>
|
||||
|
||||
</ul>
|
||||
|
||||
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td><b>function</b></td>
|
||||
<td><b>purpose</b></td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_raw_seek.html">ov_raw_seek</a></td>
|
||||
<td>This function seeks to a position specified in the compressed bitstream, specified in bytes.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_pcm_seek.html">ov_pcm_seek</a></td>
|
||||
<td>This function seeks to a specific audio sample number, specified in pcm samples.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_pcm_seek_page.html">ov_pcm_seek_page</a></td>
|
||||
<td>This function seeks to the closest page preceding the specified audio sample number, specified in pcm samples.</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_time_seek.html">ov_time_seek</a></td>
|
||||
<td>This function seeks to the specific time location in the bitstream, specified in integer milliseconds. Note that this differs from the reference vorbisfile implementation, which takes seconds as a float. </td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><a href="ov_time_seek_page.html">ov_time_seek_page</a></td>
|
||||
<td>This function seeks to the closest page preceding the specified time position in the bitstream, specified in integer milliseconds.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
7
tremor/doc/style.css
Normal file
7
tremor/doc/style.css
Normal file
@ -0,0 +1,7 @@
|
||||
BODY { font-family: Helvetica, sans-serif }
|
||||
TD { font-family: Helvetica, sans-serif }
|
||||
P { font-family: Helvetica, sans-serif }
|
||||
H1 { font-family: Helvetica, sans-serif }
|
||||
H2 { font-family: Helvetica, sans-serif }
|
||||
H4 { font-family: Helvetica, sans-serif }
|
||||
P.tiny { font-size: 8pt }
|
50
tremor/doc/threads.html
Normal file
50
tremor/doc/threads.html
Normal file
@ -0,0 +1,50 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - Thread Safety</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>Thread Safety</h1>
|
||||
|
||||
Tremor's libvorbisidec may be used safely in a threading environment
|
||||
so long as thread access to individual <a
|
||||
href="OggVorbis_File.html">OggVorbis_File</a> instances is serialized.
|
||||
<ul>
|
||||
|
||||
<li>Only one thread at a time may enter a function that takes a given <a
|
||||
href="OggVorbis_File.html">OggVorbis_File</a> instance, even if the
|
||||
functions involved appear to be read-only.<p>
|
||||
|
||||
<li>Multiple threads may enter
|
||||
libvorbisidec at a given time, so long as each thread's function calls
|
||||
are using different <a href="OggVorbis_File.html">OggVorbis_File</a>
|
||||
instances. <p>
|
||||
|
||||
<li>Any one <a
|
||||
href="OggVorbis_File.html">OggVorbis_File</a> instance may be used safely from multiple threads so long as only one thread at a time is making calls using that instance.<p>
|
||||
</ul>
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
70
tremor/doc/vorbis_comment.html
Normal file
70
tremor/doc/vorbis_comment.html
Normal file
@ -0,0 +1,70 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - datatype - vorbis_comment</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>vorbis_comment</h1>
|
||||
|
||||
<p><i>declared in "ivorbiscodec.h"</i></p>
|
||||
|
||||
<p>
|
||||
The vorbis_comment structure defines an Ogg Vorbis comment.
|
||||
<p>
|
||||
Only the fields the program needs must be defined. If a field isn't
|
||||
defined by the application, it will either be blank (if it's a string value)
|
||||
or set to some reasonable default (usually 0).
|
||||
<p>
|
||||
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>typedef struct vorbis_comment{
|
||||
/* unlimited user comment fields. */
|
||||
char **user_comments;
|
||||
int *comment_lengths;
|
||||
int comments;
|
||||
char *vendor;
|
||||
|
||||
} vorbis_comment;</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<dl>
|
||||
<dt><i>user_comments</i></dt>
|
||||
<dd>Unlimited user comment array. The individual strings in the array are 8 bit clean, by the Vorbis specification, and as such the <tt>comment_lengths</tt> array should be consulted to determine string length. For convenience, each string is also NULL-terminated by the decode library (although Vorbis comments are not NULL terminated within the bitstream itself).</dd>
|
||||
<dt><i>comment_lengths</i></dt>
|
||||
<dd>An int array that stores the length of each comment string</dd>
|
||||
<dt><i>comments</i></dt>
|
||||
<dd>Int signifying number of user comments in user_comments field.</dd>
|
||||
<dt><i>vendor</i></dt>
|
||||
<dd>Information about the creator of the file. Stored in a standard C 0-terminated string.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
80
tremor/doc/vorbis_info.html
Normal file
80
tremor/doc/vorbis_info.html
Normal file
@ -0,0 +1,80 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Tremor - datatype - vorbis_info</title>
|
||||
<link rel=stylesheet href="style.css" type="text/css">
|
||||
</head>
|
||||
|
||||
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
||||
<table border=0 width=100%>
|
||||
<tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h1>vorbis_info</h1>
|
||||
|
||||
<p><i>declared in "ivorbiscodec.h"</i></p>
|
||||
|
||||
<p>
|
||||
The vorbis_info structure contains basic information about the audio in a vorbis bitstream.
|
||||
<p>
|
||||
|
||||
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
||||
<tr bgcolor=#cccccc>
|
||||
<td>
|
||||
<pre><b>typedef struct vorbis_info{
|
||||
int version;
|
||||
int channels;
|
||||
long rate;
|
||||
|
||||
long bitrate_upper;
|
||||
long bitrate_nominal;
|
||||
long bitrate_lower;
|
||||
long bitrate_window;
|
||||
|
||||
void *codec_setup;
|
||||
|
||||
} vorbis_info;</b></pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>Relevant Struct Members</h3>
|
||||
<dl>
|
||||
<dt><i>version</i></dt>
|
||||
<dd>Vorbis encoder version used to create this bitstream.</dd>
|
||||
<dt><i>channels</i></dt>
|
||||
<dd>Int signifying number of channels in bitstream.</dd>
|
||||
<dt><i>rate</i></dt>
|
||||
<dd>Sampling rate of the bitstream.</dd>
|
||||
<dt><i>bitrate_upper</i></dt>
|
||||
<dd>Specifies the upper limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_lower parameters, the stream is fixed bitrate. May be unset if no limit exists.</dd>
|
||||
<dt><i>bitrate_nominal</i></dt>
|
||||
<dd>Specifies the average bitrate for a VBR bitstream. May be unset. If the bitrate_upper and bitrate_lower parameters match, the stream is fixed bitrate.</dd>
|
||||
<dt><i>bitrate_lower</i></dt>
|
||||
<dd>Specifies the lower limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_upper parameters, the stream is fixed bitrate. May be unset if no limit exists.</dd>
|
||||
<dt><i>bitrate_window</i></dt>
|
||||
<dd>Currently unset.</dd>
|
||||
|
||||
<dt><i>codec_setup</i></dt>
|
||||
<dd>Internal structure that contains the detailed/unpacked configuration for decoding the current Vorbis bitstream.</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<br><br>
|
||||
<hr noshade>
|
||||
<table border=0 width=100%>
|
||||
<tr valign=top>
|
||||
<td><p class=tiny>copyright © 2002 Xiph.org</p></td>
|
||||
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
||||
</tr><tr>
|
||||
<td><p class=tiny>Tremor documentation</p></td>
|
||||
<td align=right><p class=tiny>Tremor version 1.0 - 20020403</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
265
tremor/iseeking_example.c
Normal file
265
tremor/iseeking_example.c
Normal file
@ -0,0 +1,265 @@
|
||||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis 'TREMOR' 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 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: illustrate seeking, and test it too
|
||||
last mod: $Id: iseeking_example.c 16037 2009-05-26 21:10:58Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "ivorbiscodec.h"
|
||||
#include "ivorbisfile.h"
|
||||
|
||||
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */
|
||||
# include <io.h>
|
||||
# include <fcntl.h>
|
||||
#endif
|
||||
|
||||
void _verify(OggVorbis_File *ov,
|
||||
ogg_int64_t val,
|
||||
ogg_int64_t pcmval,
|
||||
ogg_int64_t timeval,
|
||||
ogg_int64_t pcmlength,
|
||||
char *bigassbuffer){
|
||||
int j;
|
||||
long bread;
|
||||
char buffer[4096];
|
||||
int dummy;
|
||||
ogg_int64_t pos;
|
||||
|
||||
/* verify the raw position, the pcm position and position decode */
|
||||
if(val!=-1 && ov_raw_tell(ov)<val){
|
||||
fprintf(stderr,"raw position out of tolerance: requested %ld, got %ld\n",
|
||||
(long)val,(long)ov_raw_tell(ov));
|
||||
exit(1);
|
||||
}
|
||||
if(pcmval!=-1 && ov_pcm_tell(ov)>pcmval){
|
||||
fprintf(stderr,"pcm position out of tolerance: requested %ld, got %ld\n",
|
||||
(long)pcmval,(long)ov_pcm_tell(ov));
|
||||
exit(1);
|
||||
}
|
||||
if(timeval!=-1 && ov_time_tell(ov)>timeval){
|
||||
fprintf(stderr,"time position out of tolerance: requested %ld, got %ld\n",
|
||||
(long)timeval,(long)ov_time_tell(ov));
|
||||
exit(1);
|
||||
}
|
||||
pos=ov_pcm_tell(ov);
|
||||
if(pos<0 || pos>pcmlength){
|
||||
fprintf(stderr,"pcm position out of bounds: got %ld\n",(long)pos);
|
||||
exit(1);
|
||||
}
|
||||
bread=ov_read(ov,buffer,4096,&dummy);
|
||||
if(bigassbuffer){
|
||||
for(j=0;j<bread;j++){
|
||||
if(buffer[j]!=bigassbuffer[j+pos*4]){
|
||||
fprintf(stderr,"data position after seek doesn't match pcm position\n");
|
||||
|
||||
{
|
||||
FILE *f=fopen("a.m","w");
|
||||
for(j=0;j<bread;j++)fprintf(f,"%d\n",(int)buffer[j]);
|
||||
fclose(f);
|
||||
f=fopen("b.m","w");
|
||||
for(j=0;j<bread;j++)fprintf(f,"%d\n",(int)bigassbuffer[j+pos*2]);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(){
|
||||
OggVorbis_File ov;
|
||||
int i,ret;
|
||||
ogg_int64_t pcmlength;
|
||||
ogg_int64_t timelength;
|
||||
char *bigassbuffer;
|
||||
int dummy;
|
||||
|
||||
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
|
||||
_setmode( _fileno( stdin ), _O_BINARY );
|
||||
#endif
|
||||
|
||||
|
||||
/* open the file/pipe on stdin */
|
||||
if(ov_open(stdin, &ov, NULL, 0) < 0) {
|
||||
fprintf(stderr,"Could not open input as an OggVorbis file.\n\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(ov_seekable(&ov)){
|
||||
|
||||
/* to simplify our own lives, we want to assume the whole file is
|
||||
stereo. Verify this to avoid potentially mystifying users
|
||||
(pissing them off is OK, just don't confuse them) */
|
||||
for(i=0;i<ov.links;i++){
|
||||
vorbis_info *vi=ov_info(&ov,i);
|
||||
if(vi->channels!=2){
|
||||
fprintf(stderr,"Sorry; right now seeking_test can only use Vorbis files\n"
|
||||
"that are entirely stereo.\n\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* because we want to do sample-level verification that the seek
|
||||
does what it claimed, decode the entire file into memory */
|
||||
pcmlength=ov_pcm_total(&ov,-1);
|
||||
timelength=ov_time_total(&ov,-1);
|
||||
bigassbuffer=malloc(pcmlength*4); /* w00t */
|
||||
if(bigassbuffer){
|
||||
i=0;
|
||||
while(i<pcmlength*4){
|
||||
int ret=ov_read(&ov,bigassbuffer+i,pcmlength*4-i,&dummy);
|
||||
if(ret<0)continue;
|
||||
if(ret){
|
||||
i+=ret;
|
||||
}else{
|
||||
pcmlength=i/4;
|
||||
}
|
||||
fprintf(stderr,"\rloading.... [%ld left] ",
|
||||
(long)(pcmlength*4-i));
|
||||
}
|
||||
}else{
|
||||
fprintf(stderr,"\rfile too large to load into memory for read tests;\n\tonly verifying seek positioning...\n");
|
||||
}
|
||||
|
||||
{
|
||||
ogg_int64_t length=ov.end;
|
||||
fprintf(stderr,"\rtesting raw seeking to random places in %ld bytes....\n",
|
||||
(long)length);
|
||||
|
||||
for(i=0;i<1000;i++){
|
||||
ogg_int64_t val=rand()*length/RAND_MAX;
|
||||
fprintf(stderr,"\r\t%d [raw position %ld]... ",i,(long)val);
|
||||
ret=ov_raw_seek(&ov,val);
|
||||
if(ret<0){
|
||||
fprintf(stderr,"seek failed: %d\n",ret);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
_verify(&ov,val,-1,-1.,pcmlength,bigassbuffer);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr,"\r");
|
||||
{
|
||||
fprintf(stderr,"testing pcm page seeking to random places in %ld samples....\n",
|
||||
(long)pcmlength);
|
||||
|
||||
for(i=0;i<1000;i++){
|
||||
ogg_int64_t val=(double)rand()*pcmlength/RAND_MAX;
|
||||
fprintf(stderr,"\r\t%d [pcm position %ld]... ",i,(long)val);
|
||||
ret=ov_pcm_seek_page(&ov,val);
|
||||
if(ret<0){
|
||||
fprintf(stderr,"seek failed: %d\n",ret);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
_verify(&ov,-1,val,-1.,pcmlength,bigassbuffer);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr,"\r");
|
||||
{
|
||||
fprintf(stderr,"testing pcm exact seeking to random places in %ld samples....\n",
|
||||
(long)pcmlength);
|
||||
|
||||
for(i=0;i<1000;i++){
|
||||
ogg_int64_t val=(double)rand()*pcmlength/RAND_MAX;
|
||||
fprintf(stderr,"\r\t%d [pcm position %ld]... ",i,(long)val);
|
||||
ret=ov_pcm_seek(&ov,val);
|
||||
if(ret<0){
|
||||
fprintf(stderr,"seek failed: %d\n",ret);
|
||||
exit(1);
|
||||
}
|
||||
if(ov_pcm_tell(&ov)!=val){
|
||||
fprintf(stderr,"Declared position didn't perfectly match request: %ld != %ld\n",
|
||||
(long)val,(long)ov_pcm_tell(&ov));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
_verify(&ov,-1,val,-1.,pcmlength,bigassbuffer);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr,"\r");
|
||||
{
|
||||
fprintf(stderr,"testing time page seeking to random places in %ld milliseconds....\n",
|
||||
(long)timelength);
|
||||
|
||||
for(i=0;i<1000;i++){
|
||||
ogg_int64_t val=(double)rand()*timelength/RAND_MAX;
|
||||
fprintf(stderr,"\r\t%d [time position %ld]... ",i,(long)val);
|
||||
ret=ov_time_seek_page(&ov,val);
|
||||
if(ret<0){
|
||||
fprintf(stderr,"seek failed: %d\n",ret);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
_verify(&ov,-1,-1,val,pcmlength,bigassbuffer);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr,"\r");
|
||||
{
|
||||
fprintf(stderr,"testing time exact seeking to random places in %ld milliseconds....\n",
|
||||
(long)timelength);
|
||||
|
||||
for(i=0;i<1000;i++){
|
||||
ogg_int64_t val=(double)rand()*timelength/RAND_MAX;
|
||||
fprintf(stderr,"\r\t%d [time position %ld]... ",i,(long)val);
|
||||
ret=ov_time_seek(&ov,val);
|
||||
if(ret<0){
|
||||
fprintf(stderr,"seek failed: %d\n",ret);
|
||||
exit(1);
|
||||
}
|
||||
if(ov_time_tell(&ov)<val-1 || ov_time_tell(&ov)>val+1){
|
||||
fprintf(stderr,"Declared position didn't perfectly match request: %ld != %ld\n",
|
||||
(long)val,(long)ov_time_tell(&ov));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
_verify(&ov,-1,-1,val,pcmlength,bigassbuffer);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr,"\r \nOK.\n\n");
|
||||
|
||||
|
||||
}else{
|
||||
fprintf(stderr,"Standard input was not seekable.\n");
|
||||
}
|
||||
|
||||
ov_clear(&ov);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
91
tremor/ivorbisfile_example.c
Normal file
91
tremor/ivorbisfile_example.c
Normal file
@ -0,0 +1,91 @@
|
||||
/********************************************************************
|
||||
* *
|
||||
* THIS FILE IS PART OF THE OggVorbis 'TREMOR' 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 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
|
||||
* BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: simple example decoder using vorbisidec
|
||||
|
||||
********************************************************************/
|
||||
|
||||
/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to
|
||||
stdout using vorbisfile. Using vorbisfile is much simpler than
|
||||
dealing with libvorbis. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "ivorbiscodec.h"
|
||||
#include "ivorbisfile.h"
|
||||
|
||||
#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
char pcmout[4096]; /* take 4k out of the data segment, not the stack */
|
||||
|
||||
int main(){
|
||||
OggVorbis_File vf;
|
||||
int eof=0;
|
||||
int current_section;
|
||||
|
||||
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
|
||||
/* Beware the evil ifdef. We avoid these where we can, but this one we
|
||||
cannot. Don't add any more, you'll probably go to hell if you do. */
|
||||
_setmode( _fileno( stdin ), _O_BINARY );
|
||||
_setmode( _fileno( stdout ), _O_BINARY );
|
||||
#endif
|
||||
|
||||
if(ov_open(stdin, &vf, NULL, 0) < 0) {
|
||||
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* Throw the comments plus a few lines about the bitstream we're
|
||||
decoding */
|
||||
{
|
||||
char **ptr=ov_comment(&vf,-1)->user_comments;
|
||||
vorbis_info *vi=ov_info(&vf,-1);
|
||||
while(*ptr){
|
||||
fprintf(stderr,"%s\n",*ptr);
|
||||
++ptr;
|
||||
}
|
||||
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate);
|
||||
fprintf(stderr,"\nDecoded length: %ld samples\n",
|
||||
(long)ov_pcm_total(&vf,-1));
|
||||
fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
|
||||
}
|
||||
|
||||
while(!eof){
|
||||
long ret=ov_read(&vf,pcmout,sizeof(pcmout),¤t_section);
|
||||
if (ret == 0) {
|
||||
/* EOF */
|
||||
eof=1;
|
||||
} else if (ret < 0) {
|
||||
if(ret==OV_EBADLINK){
|
||||
fprintf(stderr,"Corrupt bitstream section! Exiting.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* some other error in the stream. Not a problem, just reporting it in
|
||||
case we (the app) cares. In this case, we don't. */
|
||||
} else {
|
||||
/* we don't bother dealing with sample rate changes, etc, but
|
||||
you'll have to*/
|
||||
fwrite(pcmout,1,ret,stdout);
|
||||
}
|
||||
}
|
||||
|
||||
/* cleanup */
|
||||
ov_clear(&vf);
|
||||
|
||||
fprintf(stderr,"Done.\n");
|
||||
return(0);
|
||||
}
|
14
tremor/vorbisidec.pc.in
Normal file
14
tremor/vorbisidec.pc.in
Normal file
@ -0,0 +1,14 @@
|
||||
# libvorbisidec pkg-config source file
|
||||
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: vorbisidec
|
||||
Description: vorbisidec is the integer Ogg Vorbis library
|
||||
Version: @VERSION@
|
||||
Requires.private: ogg
|
||||
Conflicts:
|
||||
Libs: -L${libdir} -lvorbisidec
|
||||
Cflags: -I${includedir}
|
19
tremor/win32/VS2005/libogg.vsprops
Normal file
19
tremor/win32/VS2005/libogg.vsprops
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="windows-1250"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="libogg"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""..\..\..\..\libogg-$(LIBOGG_VERSION)\include";..\..\..\..\ogg\include;..\..\..\..\..\..\..\core\ogg\libogg\include"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\libogg-$(LIBOGG_VERSION)\win32\VS2005\$(PlatformName)\$(ConfigurationName)";"..\..\..\..\ogg\win32\VS2005\$(PlatformName)\$(ConfigurationName)";"..\..\..\..\..\..\..\core\ogg\libogg\win32\VS2005\$(PlatformName)\$(ConfigurationName)""
|
||||
/>
|
||||
<UserMacro
|
||||
Name="LIBOGG_VERSION"
|
||||
Value="1.1.4"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
865
tremor/win32/VS2005/libtremor/libtremor.vcproj
Normal file
865
tremor/win32/VS2005/libtremor/libtremor.vcproj
Normal file
@ -0,0 +1,865 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="libtremor"
|
||||
ProjectGUID="{7A8E774E-DD94-43B8-8758-6F9F656CC8D2}"
|
||||
RootNamespace="libtremor"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="_DEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="_DEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="_DEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="NDEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="NDEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="NDEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\block.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\codebook.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\floor0.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\floor1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\info.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mapping0.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mdct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\registry.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\res012.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\sharedbook.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\synthesis.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\window.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\backends.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\block.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\codebook.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\codec_internal.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\config_types.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\ivorbiscodec.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\ivorbisfile.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\lsp_lookup.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mdct.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mdct_lookup.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\misc.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\ogg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\os.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\os_types.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\registry.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\window.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\window_lookup.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
19
tremor/win32/VS2008/libogg.vsprops
Normal file
19
tremor/win32/VS2008/libogg.vsprops
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="windows-1250"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="libogg"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""..\..\..\..\libogg-$(LIBOGG_VERSION)\include";..\..\..\..\ogg\include;..\..\..\..\..\..\..\core\ogg\libogg\include"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\libogg-$(LIBOGG_VERSION)\win32\VS2008\$(PlatformName)\$(ConfigurationName)";"..\..\..\..\ogg\win32\VS2008\$(PlatformName)\$(ConfigurationName)";"..\..\..\..\..\..\..\core\ogg\libogg\win32\VS2008\$(PlatformName)\$(ConfigurationName)""
|
||||
/>
|
||||
<UserMacro
|
||||
Name="LIBOGG_VERSION"
|
||||
Value="1.1.4"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
865
tremor/win32/VS2008/libtremor/libtremor.vcproj
Normal file
865
tremor/win32/VS2008/libtremor/libtremor.vcproj
Normal file
@ -0,0 +1,865 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="libtremor"
|
||||
ProjectGUID="{7A8E774E-DD94-43B8-8758-6F9F656CC8D2}"
|
||||
RootNamespace="libtremor"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
/>
|
||||
<Platform
|
||||
Name="Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="_DEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="_DEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="_DEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
MinimalRebuild="true"
|
||||
RuntimeLibrary="1"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
CallingConvention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="NDEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="NDEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Windows Mobile 6 Professional SDK (ARMV4I)"
|
||||
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\libogg.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
ExecutionBucket="7"
|
||||
AdditionalIncludeDirectories="..\..\..\include;..\..\..\..\libogg\include"
|
||||
PreprocessorDefinitions="NDEBUG;_LIB;_WIN32_WCE=$(CEVER);UNDER_CE;WIN32;WINCE;$(ARCHFAM);$(_ARCHFAM_);$(PLATFORMDEFINES)"
|
||||
RuntimeLibrary="0"
|
||||
TreatWChar_tAsBuiltInType="false"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCodeSignTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
<DeploymentTool
|
||||
ForceDirty="-1"
|
||||
RemoteDirectory=""
|
||||
RegisterOutput="0"
|
||||
AdditionalFiles=""
|
||||
/>
|
||||
<DebuggerTool
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\block.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\codebook.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\floor0.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\floor1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\info.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mapping0.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mdct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\registry.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\res012.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\sharedbook.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\synthesis.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\window.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\backends.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\block.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\codebook.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\codec_internal.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\config_types.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\ivorbiscodec.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\ivorbisfile.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\lsp_lookup.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mdct.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\mdct_lookup.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\misc.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\ogg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\os.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\os_types.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\registry.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\window.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\window_lookup.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
Loading…
Reference in New Issue
Block a user