Built SDL2_image and _mixer static

This commit is contained in:
2022-09-30 15:49:16 -04:00
parent e2605bf6c1
commit 1dec4347e0
4473 changed files with 1964551 additions and 9 deletions

View File

@ -0,0 +1,11 @@
## Process this file with automake to produce Makefile.in
docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc
doc_DATA = changes.html examples.html index.html ovectl_ratemanage2_arg.html \
ovectl_ratemanage_arg.html overview.html reference.html style.css\
vorbis_encode_ctl.html vorbis_encode_init.html vorbis_encode_setup_init.html \
vorbis_encode_setup_managed.html vorbis_encode_setup_vbr.html \
vorbis_encode_init_vbr.html
EXTRA_DIST = $(doc_DATA)

View File

@ -0,0 +1,524 @@
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = doc/vorbisenc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/add_cflags.m4 \
$(top_srcdir)/m4/ogg.m4 $(top_srcdir)/m4/pkg.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(docdir)"
DATA = $(doc_DATA)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG = @DEBUG@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
GREP = @GREP@
HAVE_DOXYGEN = @HAVE_DOXYGEN@
HTLATEX = @HTLATEX@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBTOOL_DEPS = @LIBTOOL_DEPS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OGG_CFLAGS = @OGG_CFLAGS@
OGG_LIBS = @OGG_LIBS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDFLATEX = @PDFLATEX@
PKG_CONFIG = @PKG_CONFIG@
PROFILE = @PROFILE@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
VE_LIB_AGE = @VE_LIB_AGE@
VE_LIB_CURRENT = @VE_LIB_CURRENT@
VE_LIB_REVISION = @VE_LIB_REVISION@
VF_LIB_AGE = @VF_LIB_AGE@
VF_LIB_CURRENT = @VF_LIB_CURRENT@
VF_LIB_REVISION = @VF_LIB_REVISION@
VORBIS_LIBS = @VORBIS_LIBS@
V_LIB_AGE = @V_LIB_AGE@
V_LIB_CURRENT = @V_LIB_CURRENT@
V_LIB_REVISION = @V_LIB_REVISION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)/vorbisenc
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pthread_lib = @pthread_lib@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
doc_DATA = changes.html examples.html index.html ovectl_ratemanage2_arg.html \
ovectl_ratemanage_arg.html overview.html reference.html style.css\
vorbis_encode_ctl.html vorbis_encode_init.html vorbis_encode_setup_init.html \
vorbis_encode_setup_managed.html vorbis_encode_setup_vbr.html \
vorbis_encode_init_vbr.html
EXTRA_DIST = $(doc_DATA)
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/vorbisenc/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/vorbisenc/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
install-docDATA: $(doc_DATA)
@$(NORMAL_INSTALL)
@list='$(doc_DATA)'; test -n "$(docdir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
done
uninstall-docDATA:
@$(NORMAL_UNINSTALL)
@list='$(doc_DATA)'; test -n "$(docdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
tags TAGS:
ctags CTAGS:
cscope cscopelist:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(DATA)
installdirs:
for dir in "$(DESTDIR)$(docdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-docDATA
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-docDATA
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
cscopelist-am ctags-am distclean distclean-generic \
distclean-libtool distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am \
install-docDATA install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
uninstall-am uninstall-docDATA
.PRECIOUS: Makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,104 @@
<html>
<head>
<title>libvorbisenc - 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>Libvorbisenc API changes 1.0 through 1.1</h1>
This document describes API additions to libvorbisenc between release
1.0 and 1.1.
<h2>1.0.1</h2>
The programming API and binary application ABI are unchanged and fully
forward/backward compatible between release 1.0 and 1.0.1. Libvorbis,
libvorbisenc and libvorbisfile must match versions amongst themselves,
however.
<h2>1.1</h2>
The binary ABI from release 1.0.1 to 1.1 is backward compatible;
applications linked against libvorbis/libvorbisenc 1.0 and 1.0.1 will
continue to function correctly when upgrading the libvorbis and
libvorbisenc dynamic libraries without re-linking. <p>
Release 1.1 adds several possible requests to the libvorbisenc <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> call in order to
reflect the shift to <a href="overview.html#BBR">bit-reservoir style
bitrate management</a>. In addition, several <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> requests are
deprecated (but functional) as they are redered semantically obsolete
by the <a href="overview.html#BBR">new bitrate management</a>.<p>
<h3>Deprecated in 1.1</h3>
These calls are still available to older codebases to preserve
compatability; the fields of the <a
href="ovectl_ratemanage_arg.html">ovectl_ratemanage_arg</a> argument
are mapped as closely as possible to the fields of the new <a
href="ovectl_ratemanage2_arg.html">ovectl_ratemanage2_arg</a>
structure.
<dl>
<dt><a href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE_GET">OV_ECTL_RATEMANAGE_GET</a>:<dd> Use <a
href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_GET">OV_ECTL_RATEMANAGE2_GET</a>
instead.
<dt><a href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE_SET">OV_ECTL_RATEMANAGE_SET</a>:<dd> Use <a
href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_SET">OV_ECTL_RATEMANAGE2_SET</a>
instead.
<dt><a href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE_AVG">OV_ECTL_RATEMANAGE_AVG</a>:<dd> Use <a
href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_SET">OV_ECTL_RATEMANAGE2_SET</a>
instead.
<dt><a href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE_HARD">OV_ECTL_RATEMANAGE_HARD</a>:<dd> Use <a
href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_SET">OV_ECTL_RATEMANAGE2_SET</a>
instead.
</dl>
<h3>Newly added in 1.1</h3>
The following calls are added in 1.1 to semantically reflect movement
to a <a href="overview.html#BBR">bit-reservoir-based bitrate
management</a> scheme by introducing the <a
href="ovectl_ratemanage2_arg.html">ovectl_ratemanage2_arg</a>
structure in order to better represent the abilities of the bitrate
manager.<p>
<dl>
<dt><a href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_GET">OV_ECTL_RATEMANAGE2_GET</a><dd>
Used to query the current state of bitrate management setup.
<dt><a href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_SET">OV_ECTL_RATEMANAGE2_SET</a><dd>
Used to set or alter bitrate management settings.
</dl>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,133 @@
<html>
<head>
<title>libvorbisenc - 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>Libvorbisenc Setup Examples</h1>
VBR is always the recommended mode for Vorbis encoding when
there's no need to impose bitrate constraints. True VBR encoding will
always produce the most consistent quality output as well as the
highest quality for a the bits used.
<p>The following code examples prepare a
<a href="../libvorbis/vorbis_info.html">vorbis_info</a> structure for encoding
use with libvorbis.<p>
<h2>Example: encoding using a VBR quality mode</h2>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc><td><pre><b>
vorbis_info_init(&vi);
/*********************************************************************
Encoding using a VBR quality mode. The usable range is -.1
(lowest quality, smallest file) to 1.0 (highest quality, largest file).
Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR
*********************************************************************/
ret = vorbis_encode_init_vbr(&vi,2,44100,.4);
/*********************************************************************
do not continue if setup failed; this can happen if we ask for a
mode that libVorbis does not support (eg, too low a quality mode, etc,
will return 'OV_EIMPL')
*********************************************************************/
if(ret) exit(1);
</b></pre></td></tr></table>
<h2>Example: encoding using average bitrate (ABR)</h2>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc><td><pre><b>
vorbis_info_init(&vi);
/*********************************************************************
Encoding using an average bitrate mode (ABR).
example: 44kHz stereo coupled, average 128kbps ABR
*********************************************************************/
ret = vorbis_encode_init(&vi,2,44100,-1,128000,-1);
/*********************************************************************
do not continue if setup failed; this can happen if we ask for a
mode that libVorbis does not support (eg, too low a bitrate, etc,
will return 'OV_EIMPL')
*********************************************************************/
if(ret) exit(1);
</b></pre></td></tr></table>
<h2>Example: encoding using constant bitrate (CBR)</h2>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc><td><pre><b>
vorbis_info_init(&vi);
/*********************************************************************
Encoding using a constant bitrate mode (CBR).
example: 44kHz stereo coupled, average 128kbps CBR
*********************************************************************/
ret = vorbis_encode_init(&vi,2,44100,128000,128000,128000);
/*********************************************************************
do not continue if setup failed; this can happen if we ask for a
mode that libVorbis does not support (eg, too low a bitrate, etc,
will return 'OV_EIMPL')
*********************************************************************/
if(ret) exit(1);
</b></pre></td></tr></table>
<h2>Example: encoding using VBR selected by approximate bitrate</h2>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc><td><pre><b>
vorbis_info_init(&vi);
/*********************************************************************
Encode using a quality mode, but select that quality mode by asking for
an approximate bitrate. This is not ABR, it is true VBR, but selected
using the bitrate interface, and then turning bitrate management off:
*********************************************************************/
ret = ( vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1) ||
vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE2_SET,NULL) ||
vorbis_encode_setup_init(&vi));
/*********************************************************************
do not continue if setup failed; this can happen if we ask for a
mode that libVorbis does not support (eg, too low a bitrate, etc,
will return 'OV_EIMPL')
*********************************************************************/
if(ret) exit(1);
</b></pre></td></tr></table>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,40 @@
<html>
<head>
<title>libvorbisenc - 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>Libvorbisenc Documentation</h1>
<p>
Libvorbisenc is a convenient API for setting up an encoding environment using libvorbis. Libvorbisenc encapsulates the actions needed to set up the encoder properly.
<p>
<a href="overview.html">libvorbisenc api overview</a><br>
<a href="reference.html">libvorbisenc api reference</a><br>
<a href="changes.html">libvorbisenc api changes from 1.0 and 1.0.1</a><br>
<a href="examples.html">libvorbisenc encode setup examples</a><br>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,92 @@
<html>
<head>
<title>vorbis - datatype - ovectl_ratemanage2_arg</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>ovectl_ratemanage2_arg</h1>
<p><i>declared in "vorbis/vorbisenc.h"</i></p>
<p>
The ovectl_ratemanage2_arg structure is used with <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> and the OV_ECTL_RATEMANAGE2_GET and
OV_ECTL_RATEMANAGE2_SET calls in order to query and modify specifics
of the encoder's bitrate management configuration.
<p>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>struct ovectl_ratemanage2_arg {
int management_active;
long bitrate_limit_min_kbps;
long bitrate_limit_max_kbps;
long bitrate_limit_reservoir_bits;
double bitrate_limit_reservoir_bias;
long bitrate_average_kbps;
double bitrate_average_damping;
};</b></pre>
</td>
</tr>
</table>
<h3>Relevant Struct Members</h3>
<dl>
<dt><i>management_active</i></dt>
<dd>nonzero if bitrate management is active</dd>
<dt><i>bitrate_limit_min_kbps</i></dt>
<dd>Lower allowed bitrate limit in kilobits per second</dd>
<dt><i>bitrate_limit_max_kbps</i></dt>
<dd>Upper allowed bitrate limit in kilobits per second</dd>
<dt><i>bitrate_limit_reservoir_bits</i></dt>
<dd>Size of the bitrate reservoir in bits</dd>
<dt><i>bitrate_limit_reservoir_bias</i></dt>
<dd>Regulates the bitrate reservoir's preferred fill level in a range
from 0.0 to 1.0; 0.0 tries to bank bits to buffer against future
bitrate spikes, 1.0 buffers against future sudden drops in
instantaneous bitrate. Default is 0.1 </dd>
<dt><i>bitrate_average_kbps</i></dt>
<dd>Average bitrate setting in kilobits per second</dd>
<dt><i>bitrate_average_damping</i></dt> <dd>Slew rate limit setting
for average bitrate adjustment; sets the minimum time in seconds the
bitrate tracker may swing from one extreme to the other when boosting
or damping average bitrate.</dd>
</dl>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,92 @@
<html>
<head>
<title>vorbis - datatype - ovectl_ratemanage_arg</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>ovectl_ratemanage_arg</h1>
<p><i>declared in "vorbis/vorbisenc.h"</i></p>
<p>
The ovectl_ratemanage_arg structure is used with <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> and the OV_ECTL_RATEMANAGE_GET,
OV_ECTL_RATEMANAGE_SET, OV_ECTL_RATEMANAGE_AVG,
OV_ECTL_RATEMANAGE_HARD calls in order to query and modify specifics
of the encoder's bitrate management configuration. Note that this is
a deprecated interface; please use vorbis_encode_ctl() with the <a
href="ovectl_ratemanage2_arg.html">ovectl_ratemanage2_arg</a> struct
and OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in new
code.
<p>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>struct ovectl_ratemanage_arg {
int management_active;
long bitrate_hard_min;
long bitrate_hard_max;
double bitrate_hard_window;
long bitrate_av_lo;
long bitrate_av_hi;
double bitrate_av_window;
double bitrate_av_window_center;
};</b></pre>
</td>
</tr>
</table>
<h3>Relevant Struct Members</h3>
<dl>
<dt><i>management_active</i></dt>
<dd>nonzero if bitrate management is active</dd>
<dt><i>bitrate_hard_min</i></dt>
<dd>hard lower limit (in kilobits per second) below which the stream bitrate will never be allowed for any given bitrate_hard_window seconds of time.</dd>
<dt><i>bitrate_hard_max</i></dt>
<dd>hard upper limit (in kilobits per second) above which the stream bitrate will never be allowed for any given bitrate_hard_window seconds of time.</dd>
<dt><i>bitrate_hard_window</i></dt>
<dd>the window period (in seconds) used to regulate the hard bitrate minimum and maximum</dd>
<dt><i>bitrate_av_lo</i></dt>
<dd>soft lower limit (in kilobits per second) below which the average bitrate tracker will start nudging the bitrate higher.</dd>
<dt><i>bitrate_av_hi</i></dt>
<dd>soft upper limit (in kilobits per second) above which the average bitrate tracker will start nudging the bitrate lower.</dd>
<dt><i>bitrate_av_window</i></dt>
<dd>the window period (in seconds) used to regulate the average bitrate minimum and maximum.</dd>
<dt><i>bitrate_av_window_center</i></dt>
<dd>Regulates the relative centering of the average and hard windows; in libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but followed the average window regulation. In libvorbis 1.1 a bit-reservoir interface replaces the old windowing interface; the older windowing interface is simulated and this field has no effect.</dd>
</dl>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,382 @@
<html>
<head>
<title>libvorbisenc - 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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>Libvorbisenc API Overview</h1>
<p>Libvorbisenc is an encoding convenience library intended to
encapsulate the elaborate setup that libvorbis requires for encoding.
Libvorbisenc gives easy access to all high-level adjustments an
application may require when encoding and also exposes some low-level
tuning parameters to allow applications to make detailed adjustments
to the encoding process. <p>
All the <b>libvorbisenc</b> routines are declared in "vorbis/vorbisenc.h".
<em>Note: libvorbis and libvorbisenc always
encode in a single pass. Thus, all possible encoding setups will work
properly with live input and produce streams that decode properly when
streamed. See the subsection titled <a href="#BBR">"managed bitrate
modes"</a> for details on setting limits on bitrate usage when Vorbis
streams are used in a limited-bandwidth environment.</em>
<h2>workflow</h2>
<p>Libvorbisenc is used only during encoder setup; its function
is to automate initialization of a multitude of settings in a
<tt>vorbis_info</tt> structure which libvorbis then uses as a reference
during the encoding process. Libvorbisenc plays no part in the
encoding process after setup.
<p>Encode setup using libvorbisenc consists of three steps:
<ol>
<li>high-level initialization of a <tt>vorbis_info</tt> structure by
calling one of <a
href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a> or <a
href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
with the basic input audio parameters (rate and channels) and the
basic desired encoded audio output parameters (VBR quality or ABR/CBR
bitrate)<p>
<li>optional adjustment of the basic setup defaults using <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a><p>
<li>calling <a
href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a> to
finalize the high-level setup into the detailed low-level reference
values needed by libvorbis to encode audio. The <tt>vorbis_info</tt>
structure is then ready to use for encoding by libvorbis.<p>
</ol>
These three steps can be collapsed into a single call by using <a
href="vorbis_encode_init_vbr.html">vorbis_encode_init_vbr</a> to set up a
quality-based VBR stream or <a
href="vorbis_encode_init.html">vorbis_encode_init</a> to set up a managed
bitrate (ABR or CBR) stream.<p>
<h2>adjustable encoding parameters</h2>
<h3>input audio parameters</h3>
<p>
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td><b>parameter</b></td>
<td><b>description</b></td>
</tr>
<tr valign=top>
<td>sampling rate</td>
<td>
The sampling rate (in samples per second) of the input audio. Common examples are 8000 for telephony, 44100 for CD audio and 48000 for DAT. Note that a mono sample (one center value) and a stereo sample (one left value and one right value) both are a single sample.
</td>
</tr>
<tr valign=top>
<td>channels</td>
<td>
The number of channels encoded in each input sample. By default,
stereo input modes (two channels) are 'coupled' by Vorbis 1.1 such
that the stereo relationship between the samples is taken into account
when encoding. Stereo coupling my be disabled by using <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> with <a
href="vorbis_encode_ctl.html#OV_ECTL_COUPLE_SET">OV_ECTL_COUPLE_SET</a>.
</td>
</tr>
</table>
<h3>quality and VBR modes</h3>
Vorbis is natively a VBR codec; a user requests a given constant
<em>quality</em> and the encoder keeps the encoding quality constant
while allowing the bitrate to vary. 'Quality' modes (Variable BitRate)
will always produce the most consistent encoding results as well as
the highest quality for the amount of bits used.
<p>
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td><b>parameter</b></td>
<td><b>description</b></td>
</tr>
<tr valign=top>
<td>quality</td>
<td>
A decimal float value requesting a desired quality. Libvorbisenc 1.1 allows quality requests in the range of -0.1 (lowest quality, smallest files) through +1.0 (highest-quality, largest files). Quality -0.1 is intended as an ultra-low setting in which low bitrate is much more important than quality consistency. Quality settings 0.0 and above are intended to produce consistent results at all times.
</td>
</tr>
</table>
<a name="BBR">
<h3>managed bitrate modes</h3>
Although the Vorbis codec is natively VBR, libvorbis includes
infrastructure for 'managing' the bitrate of streams by setting
minimum and maximum usage constraints, as well as functionality for
nudging a stream toward a desired average value. These features
should <em>only</em> be used when there is a requirement to limit
bitrate in some way. Although the difference is usually slight,
managed bitrate modes will always produce output inferior to VBR
(given equal bitrate usage). Setting overly or impossibly tight
bitrate management requirements can affect output quality dramatically
for the worse.<p>
Beginning in libvorbis 1.1, bitrate management is implemented using a
<em>bit-reservoir</em> algorithm. The encoder has a fixed-size
reservoir used as a 'savings account' in encoding. When a frame is
smaller than the target rate, the unused bits go into the reservoir so
that they may be used by future frames. When a frame is larger than
target bitrate, it draws 'banked' bits out of the reservoir. Encoding
is managed so that the reservoir never goes negative (when a maximum
bitrate is specified) or fills beyond a fixed limit (when a minimum
bitrate is specified). An 'average bitrate' request is used as the
set-point in a long-range bitrate tracker which adjusts the encoder's
aggressiveness up or down depending on whether or not frames are coming
in larger or smaller than the requested average point.
<p>
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td><b>parameter</b></td>
<td><b>description</b></td>
</tr>
<tr valign=top>
<td>maximum bitrate</td> <td> The maximum allowed bitrate, set in bits
per second. If the bitrate would otherwise rise such that oversized
frames would underflow the bit-reservoir by consuming banked bits,
bitrate management will force the encoder to use fewer bits per frame
by encoding with a more aggressive psychoacoustic model.<p> This
setting is a hard limit; the bitstream will never be allowed, under
any circumstances, to increase above the specified bitrate over the
average period set by the reservoir; it may momentarily rise over if
inspected on a granularity much finer than the average period across
the reservoir. Normally, the encoder will conserve bits gracefully by
using more aggressive psychoacoustics to shrink a frame when forced
to. However, if the encoder runs out of means of gracefully shrinking
a frame, it will simply take the smallest frame it can otherwise
generate and truncate it to the maximum allowed length. Note that
this is not an error and although it will obviously adversely affect
audio quality, a Vorbis decoder will be able to decode a truncated
frame into audio.
</td>
</tr>
<tr valign=top>
<td>average bitrate</td>
<td>
The average desired bitrate of a stream, set
in bits per second. Average bitrate is tracked via a reservoir like
minimum and maximum bitrate, however the averaging reservior does not
impose a hard limit; it is used to nudge the bitrate toward the
desired average by slowly adjusting the psychoacoustic aggressiveness.
As such, the reservoir size does not affect the average bitrate
behavior. Because this setting alone is not used to impose hard
bitrate limits, the bitrate of a stream produced using only the
<tt>average bitrate</tt> constraint will track the average over time
but not necessarily adhere strictly to that average for any given
period. Should a strict localized average be required, <tt>average
bitrate</tt> should be used along with <tt>minimum bitrate</tt> and
<tt>maximum bitrate</tt>.
</td>
</tr>
<tr valign=top>
<td>minimum bitrate</td>
<td>
The minimum allowed bitrate, set in bits per second. If
the bitrate would otherwise fall such that undersized frames would
overflow the bit-reservoir with unused bits, bitrate management will
force the encoder to use more bits per frame by encoding with a less
aggressive psychoacoustic model.<p> This setting is a hard limit; the
bitstream will never be allowed, under any circumstances, to drop
below the specified bitrate over the average period set by the
reservoir; it may momentarily fall under if inspected on a granularity
much finer than the average period across the reservoir. Normally,
the encoder will fill out undersided frames with additional useful
coding information by increasing the perceived quality of the stream.
If the encoder runs out of useful ways to consume more bits, it will
pad frames out with zeroes.
</td>
</tr>
<tr valign=top>
<td>reservoir size</td> <td> The size of the minimum/maximum bitrate
tracking reservoir, set in bits. The reservoir is used as a 'bit
bank' to average out localized surges and dips in bitrate while
providing predictable, guaranteed buffering behavior for streams to be
used in situations with constrained transport bandwidth. The default
setting is two seconds of average bitrate.<p>
When a single frame is larger than the maximum allowed overall
bitrate, the bits are 'borrowed' from the bitrate reservoir; if the
reservoir contains insufficient bits to cover the defecit, the encoder
must find some way to reduce the frame size. <p>
When a frame is under the minimum limit, the surplus bits are placed
into the reservoir, banking them for future use. If the reservoir is
already full of banked bits, the encoder is forced to find some way to
make the frame larger.<p>
If the frame size is between the minimum and maximum rates (thus
implying the minimum and maximum allowed rates are different), the
reservoir gravitates toward a fill point configured by the
<tt>reservoir bias</tt> setting described next. If the reservoir is
fuller than the fill point (a 'surplus of surplus'), the encoder will
consume a number bits from the reservoir equal to the number of the
bits by which the frame exceeds minimum size. If the reservoir is
emptier than the fillpoint (a 'surplus of defecit'), bits are returned
to the reservoir equaling the current frame's number of bits under the
maximum frame size. The idea of the fill point is to buffer against
both underruns and overruns, by trying to hold the reservoir to a
middle course.
</td>
</tr>
<tr valign=top>
<td>reservoir bias</td>
<td>
Reservoir bias is a setting between 0.0 and 1.0 that biases bitrate
management toward smoothing bitrate spikes (0.0) or bitrate peaks
(1.0); the default setting is 0.1.<p>
Using settings toward 0.0 causes the bitrate manager to hoard bits in
the bit reservoir such that there is a large pool of banked surplus to
draw upon during short spikes in bitrate. As a result, the encoder
will react less aggressively and less drastically to curtail framesize
during brief surges in bitrate.<p>
Using settings toward 1.0 causes the bitrate manager to empty the bit
reservoir such that there is a large buffer available to store surplus
bits during sudden drops in bitrate. As a result, the encoder will
react less aggressively and less drastically to support minimum frame
sizes during drops in bitrate and will tend not to store any extra
bits in the reservoir for future bitrate spikes.<p>
</td>
</tr>
<tr valign=top>
<td>average track damping</td>
<td>
A decimal value, in seconds, that controls how quickly the average
bitrate tracker is allowed to slew from enforcing minimum frame sizes
to maximum framesizes and vice versa. Default value is 1.5
seconds.<p>
When the 'average bitrate' setting is in use, the average bitrate
tracker uses an unbounded reservoir to track overall bitrate-to-date
in the stream. When bitrates are too low, the tracker will try to
nudge bitrates up and when the bitrate is too high, nudge it down.
The damping value regulates the maximum strength of the nudge; it
describes, in seconds, how quickly the tracker may transition from an
extreme nudge in one direction to an extreme nudge in the other.<p>
</td>
</tr>
</table>
<h3>encoding model adjustments</h3>
The <a href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> call provides
a generalized interface for making encoding setup adjustments to the
basic high-level setup provided by <a
href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a> or <a
href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>.
In reality, these two calls use <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> internally, and <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> can be used to adjust
most of the parameters set by other calls.<p>
In Vorbis 1.1, <a href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> can
adjust the following additional parameters not described elsewhere:
<p>
<table border=1 color=black width=50% cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td><b>parameter</b></td>
<td><b>description</b></td>
</tr>
<tr valign=top>
<td>management mode</td> <td> Configures whether or not bitrate
management is in use or not. Normally, this value is set implicitly
during encoding setup; however, the supported means of selecting a
quality mode by bitrate (that is, requesting a true VBR stream, but
doing so by asking for an approximate bitrate) is to use <a
href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
and then to explicitly turn off bitrate management by calling <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> with <a
href="vorbis_encode_ctl.html#OV_ECTL_RATEMANAGE2_SET">OV_ECTL_RATEMANAGE2_SET</a>
</td>
</tr>
<tr valign=top>
<td>coupling</td> <td> Stereo encoding (and in the future, surround
encodings) are normally encoded assuming the channels form a stereo
image and that lossy-stereo modelling is appropriate; this is called
'coupling'. Stereo coupling may be explicitly enabled or disabled.
</td>
</tr>
<tr valign=top>
<td>lowpass</td> <td> Sets the hard lowpass of a given encoding mode;
this may be used to conserve a few bits in high-rate audio that has
limited bandwidth, or in testing of the encoder's acoustic model. The
encoder is generally already configured with ideal lowpasses (if any
at all) for given modes; use of this parameter is strongly discouraged
if the point is to try to 'improve' a given encoding mode for general
encoding.
</td>
</tr>
<tr valign=top>
<td>impulse coding aggressiveness</td> <td>By default, libvorbis
attempts to compromise between preventing wide bitrate swings and
high-resolution impulse coding (which is required for the crispest
possible attacks, but also requires a relatively large momentary
bitrate increase). This parameter allows an application to tune the
compromise or eliminate it; A value of 0.0 indicates normal behavior
while a value of -15.0 requests maximum possible impulse
resolution.</td>
</tr>
</table>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,54 @@
<html>
<head>
<title>Vorbisfile 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>vorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>Vorbisenc API Reference</h1>
<h2>Data Structures</h2>
<p>
<a href="../libvorbis/vorbis_info.html">vorbis_info</a> (from <a href="../libvorbis/index.html">libvorbis</a>)<br>
<a href="ovectl_ratemanage_arg.html">ovectl_ratemanage_arg</a><br>
<a href="ovectl_ratemanage2_arg.html">ovectl_ratemanage2_arg</a><br>
</p>
<h2>Encoder Setup</h2>
<p>
<a href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a><br>
<a href="vorbis_encode_init.html">vorbis_encode_init()</a><br>
<a href="vorbis_encode_init_vbr.html">vorbis_encode_init_vbr()</a><br>
<a href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a><br>
<a href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a><br>
<a href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a><br>
</p>
<p>The actual encoding is done using the <a href="../libvorbis/index.html">libvorbis API</a>.</p>
<br>
<br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View 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 }

View File

@ -0,0 +1,183 @@
<html>
<head>
<title>libvorbisenc - function - vorbis_encode_ctl</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>vorbis_encode_ctl</h1>
<p><i>declared in "vorbis/vorbisenc.h";</i></p>
<p>This function implements a generic interface to miscellaneous
encoder settings similar to the clasasic UNIX 'ioctl()' system call.
Applications may use vorbis_encode_ctl() to query or set bitrate
management or quality mode details by using one of several
<i>request</i> arguments detailed below. Vorbis_encode_ctl() must be
called after one of <a
href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
or <a
href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a>.
When used to modify settings, vorbis_encode_ctl() must be called
before <a
href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a>.
<p>
<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>
extern int vorbis_encode_ctl(vorbis_info *vi,int request,void *arg);
</b></pre>
</td>
</tr>
</table>
<h3>Parameters</h3>
<dl>
<dt><i>vi</i></dt>
<dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd><p>
<dt><i>request</i></dt>
<dd>Specifies the desired action; possible request fields are detailed below.</dd><p>
<dt><i>arg</i></dt>
<dd>void * pointing to a data structure matching the request argument.</dd><p>
</dl><p>
<h3>Requests</h3>
<dl>
<dt><i>OV_ECTL_RATEMANAGE2_GET</i></dt>
<dd><b>Argument: <a href="ovectl_ratemanage2_arg.html">struct
ovectl_ratemanage2_arg *</a></b><br> Used to query the current
encoder bitrate management setting. Also used to initialize fields of
an ovectl_ratemanage2_arg structure for use with
OV_ECTL_RATEMANAGE2_SET.</dd><p>
<dt><i>OV_ECTL_RATEMANAGE2_SET</i></dt>
<dd><b>Argument: <a href="ovectl_ratemanage2_arg.html">struct
ovectl_ratemanage2_arg *</a></b><br> Used to set the current
encoder bitrate management settings to the values listed in the
ovectl_ratemanage2_arg. Passing a NULL pointer will disable bitrate
management.
</dd><p>
<dt><i>OV_ECTL_LOWPASS_GET</i></dt>
<dd><b>Argument: double *</b><br> Returns the current encoder hard-lowpass
setting (kHz) in the double pointed to by arg.
</dd><p>
<dt><i>OV_ECTL_LOWPASS_SET</i></dt>
<dd><b>Argument: double *</b><br> Sets the encoder hard-lowpass to the value
(kHz) pointed to by arg. Valid lowpass settings range from 2 to 99.
</dd><p>
<dt><i>OV_ECTL_IBLOCK_GET</i></dt>
<dd><b>Argument: double *</b><br> Returns the current encoder impulse
block setting in the double pointed to by arg.</dd><p>
<dt><i>OV_ECTL_IBLOCK_SET</i></dt> <dd><b>Argument: double *</b><br> Sets
the impulse block bias to the the value pointed to by arg; valid range
is -15.0 to 0.0 [default]. A negative impulse block bias will direct
to encoder to use more bits when incoding short blocks that contain
strong impulses, thus improving the accuracy of impulse encoding.</dd><p>
<dt><i>OV_ECTL_COUPLING_GET</i></dt>
<dd><b>Argument: int *</b><br>
Returns the current encoder coupling enabled/disabled
setting in the int pointed to by arg.
</dd><p>
<dt><i>OV_ECTL_COUPLING_SET</i></dt>
<dd><b>Argument: int *</b><br>
Enables/disables channel coupling in multichannel encoding according to arg.
*arg of zero disables all channel coupling, nonzero allows the encoder to use
coupling if a coupled mode is available for the input. At present, coupling
is available for stereo and 5.1 input modes.
</dd><p>
<dt><i>OV_ECTL_RATEMANAGE_GET [deprecated]</i></dt>
<dd>
<b>Argument: <a href="ovectl_ratemanage_arg.html">struct
ovectl_ratemanage_arg *</a></b><br> Old interface to querying bitrate
management settings; deprecated after move to bit-reservoir style
management in 1.1 rendered this interface partially obsolete. Please
use OV_ECTL_RATEMANGE2_GET instead.
</dd><p>
<dt><i>OV_ECTL_RATEMANAGE_SET [deprecated]</i></dt>
<dd>
<b>Argument: <a href="ovectl_ratemanage_arg.html">struct
ovectl_ratemanage_arg *</a></b><br> Old interface to modifying bitrate
management settings; deprecated after move to bit-reservoir style
management in 1.1 rendered this interface partially obsolete. Please
use OV_ECTL_RATEMANGE2_SET instead.
</dd><p>
<dt><i>OV_ECTL_RATEMANAGE_AVG [deprecated]</i></dt>
<dd>
<b>Argument: <a href="ovectl_ratemanage_arg.html">struct
ovectl_ratemanage_arg *</a></b><br> Old interface to setting
average-bitrate encoding mode; deprecated after move to bit-reservoir
style management in 1.1 rendered this interface partially obsolete.
Please use OV_ECTL_RATEMANGE2_SET instead.
</dd><p>
<dt><i>OV_ECTL_RATEMANAGE_HARD [deprecated]</i></dt>
<dd>
<b>Argument: <a href="ovectl_ratemanage_arg.html">struct
ovectl_ratemanage_arg *</a></b><br> Old interface to setting
bounded-bitrate encoding modes; deprecated after move to bit-reservoir
style management in 1.1 rendered this interface partially obsolete.
Please use OV_ECTL_RATEMANGE2_SET instead.
</dd><p>
</dl>
<h3>Return Values</h3> vorbis_encode_ctl() returns zero on success,
placing any further return information (such as the result of a query)
into the storage pointed to by <i>*arg</i>. On error,
vorbis_encode_ctl() may return one of the following error codes:
<dl>
<dt>OV_EINVAL</dt><dd>Invalid argument, or an attempt to modify a
setting after calling <a
href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a>.</dd><p>
<dt>OV_EIMPL</dt><dd>Unimplemented or unknown request</dd><p>
</dl>
<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,88 @@
<html>
<head>
<title>libvorbisenc - function - vorbis_encode_init</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>vorbis_encode_init</h1>
<p><i>declared in "vorbis/vorbisenc.h";</i></p>
<p>This is the primary function within libvorbisenc for setting up managed bitrate modes.
<p>Before this function is called, the <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct should be initialized by using vorbis_info_init() from the libvorbis API. After encoding, vorbis_info_clear should be called.
<p>The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set constraints for the encoded file. This function uses these settings to select the appropriate encoding mode and set it up.
<p>
<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>
extern int vorbis_encode_init(<a href="../libvorbis/vorbis_info.html">vorbis_info</a> *vi,
long channels,
long rate,
long max_bitrate,
long nominal_bitrate,
long min_bitrate);
</b></pre>
</td>
</tr>
</table>
<h3>Parameters</h3>
<dl>
<dt><i>vi</i></dt>
<dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd>
<dt><i>channels</i></dt>
<dd>The number of channels to be encoded.</dd>
<dt><i>rate</i></dt>
<dd>The sampling rate of the source audio.</dd>
<dt><i>max_bitrate</i></dt>
<dd>Desired maximum bitrate (limit). -1 indicates unset.</dd>
<dt><i>nominal_bitrate</i></dt>
<dd>Desired average, or central, bitrate. -1 indicates unset.</dd>
<dt><i>min_bitrate</i></dt>
<dd>Desired minimum bitrate. -1 indicates unset.</dd>
</dl>
<h3>Return Values</h3>
<blockquote>
<li>
0 for success</li>
<li>less than zero for failure:</li>
<ul>
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
<li>OV_EINVAL - Invalid setup request, eg, out of range argument. </li>
<li>OV_EIMPL - Unimplemented mode; unable to comply with bitrate request.</li>
</ul>
</blockquote>
<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,81 @@
<html>
<head>
<title>libvorbisenc - function - vorbis_encode_init_vbr</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>vorbis_encode_init_vbr</h1>
<p><i>declared in "vorbis/vorbisenc.h";</i></p>
<p>This is the primary function within libvorbisenc for setting up variable bitrate ("quality" based) modes.
<p>Before this function is called, the <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct should be initialized by using vorbis_info_init() from the libvorbis API. After encoding, vorbis_info_clear should be called.
<p>
<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>
extern int vorbis_encode_init_vbr(<a href="../libvorbis/vorbis_info.html">vorbis_info</a> *vi,
long channels,
long rate,
float base_quality);
</b></pre>
</td>
</tr>
</table>
<h3>Parameters</h3>
<dl>
<dt><i>vi</i></dt>
<dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd>
<dt><i>channels</i></dt>
<dd>The number of channels to be encoded.</dd>
<dt><i>rate</i></dt>
<dd>The sampling rate of the source audio.</dd>
<dt><i>base_quality</i></dt>
<dd>Desired quality level, currently from -0.1 to 1.0 (lo to hi).</dd>
</dl>
<h3>Return Values</h3>
<blockquote>
<li>
0 for success</li>
<li>less than zero for failure:</li>
<ul>
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
<li>OV_EINVAL - Invalid setup request, eg, out of range argument. </li>
<li>OV_EIMPL - Unimplemented mode; unable to comply with quality level request.</li>
</ul>
</blockquote>
<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,88 @@
<html>
<head>
<title>libvorbisenc - function - vorbis_encode_setup_init</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>vorbis_encode_setup_init</h1>
<p><i>declared in "vorbis/vorbisenc.h";</i></p>
<p>This function performs the last stage of three-step encoding setup, as described in the API overview under <a href="overview.html#BBR">managed bitrate modes</a>.
<p>Before this function is called, the <a
href="../libvorbis/vorbis_info.html">vorbis_info</a> struct should be initialized
by using vorbis_info_init() from the libvorbis API, one of <a
href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
or <a
href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a>
called to initialize the high-level encoding setup, and <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> called if
necessary to make encoding setup changes. vorbis_encode_setup_init()
finalizes the highlevel encoding structure into a complete encoding
setup after which the application may make no further setup changes.<p>
After encoding, vorbis_info_clear should be called.
<p>
<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>
extern int vorbis_encode_setup_init(<a href="../libvorbis/vorbis_info.html">vorbis_info</a> *vi);
</b></pre>
</td>
</tr>
</table>
<h3>Parameters</h3>
<dl>
<dt><i>vi</i></dt>
<dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd>
</dl>
<h3>Return Values</h3>
<blockquote>
<li>
0 for success</li>
<li>less than zero for failure:</li>
<ul>
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
<li>OV_EINVAL - Attempt to use vorbis_encode_setup_init() without first calling one of <a
href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
or <a
href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a>
to initialize the high-level encoding setup
</li>
</ul>
</blockquote>
<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,102 @@
<html>
<head>
<title>libvorbisenc - function - vorbis_encode_setup_managed</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>vorbis_encode_setup_managed</h1>
<p><i>declared in "vorbis/vorbisenc.h";</i></p>
<p>This function performs step-one of a three-step bitrate-managed
encode setup. It functions similarly to the one-step setup performed
by <a href="vorbis_encode_init.html">vorbis_encode_init()</a> but
allows an application to make further encode setup tweaks using <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> before finally
calling <a
href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a> to
complete the setup process.
<p>Before this function is called, the <a
href="../libvorbis/vorbis_info.html">vorbis_info</a> struct should be initialized
by using vorbis_info_init() from the libvorbis API. After encoding,
vorbis_info_clear should be called.
<p>The max_bitrate, nominal_bitrate, and min_bitrate settings are used
to set constraints for the encoded file. This function uses these
settings to select the appropriate encoding mode and set it up.
<p>
<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>
extern int vorbis_encode_init(<a href="../libvorbis/vorbis_info.html">vorbis_info</a> *vi,
long channels,
long rate,
long max_bitrate,
long nominal_bitrate,
long min_bitrate);
</b></pre>
</td>
</tr>
</table>
<h3>Parameters</h3>
<dl>
<dt><i>vi</i></dt>
<dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd>
<dt><i>channels</i></dt>
<dd>The number of channels to be encoded.</dd>
<dt><i>rate</i></dt>
<dd>The sampling rate of the source audio.</dd>
<dt><i>max_bitrate</i></dt>
<dd>Desired maximum bitrate (limit). -1 indicates unset.</dd>
<dt><i>nominal_bitrate</i></dt>
<dd>Desired average, or central, bitrate. -1 indicates unset.</dd>
<dt><i>min_bitrate</i></dt>
<dd>Desired minimum bitrate. -1 indicates unset.</dd>
</dl>
<h3>Return Values</h3>
<blockquote>
<li>
0 for success</li>
<li>less than zero for failure:</li>
<ul>
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
<li>OV_EINVAL - Invalid setup request, eg, out of range argument. </li>
<li>OV_EIMPL - Unimplemented mode; unable to comply with bitrate request.</li>
</ul>
</blockquote>
<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,90 @@
<html>
<head>
<title>libvorbisenc - function - vorbis_encode_setup_vbr</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>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
<h1>vorbis_encode_setup_vbr</h1>
<p><i>declared in "vorbis/vorbisenc.h";</i></p>
<p>This function performs step-one of a three-step variable bitrate
(quality-based) encode setup. It functions similarly to the one-step
setup performed by <a
href="vorbis_encode_init_vbr.html">vorbis_encode_init_vbr()</a> but
allows an application to make further encode setup tweaks using <a
href="vorbis_encode_ctl.html">vorbis_encode_ctl()</a> before finally
calling <a
href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a> to
complete the setup process.
<p>Before this function is called, the <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct should be initialized by using vorbis_info_init() from the libvorbis API. After encoding, vorbis_info_clear should be called.
<p>
<br><br>
<table border=0 color=black cellspacing=0 cellpadding=7>
<tr bgcolor=#cccccc>
<td>
<pre><b>
extern int vorbis_encode_init_vbr(<a href="../libvorbis/vorbis_info.html">vorbis_info</a> *vi,
long channels,
long rate,
float base_quality);
</b></pre>
</td>
</tr>
</table>
<h3>Parameters</h3>
<dl>
<dt><i>vi</i></dt>
<dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd>
<dt><i>channels</i></dt>
<dd>The number of channels to be encoded.</dd>
<dt><i>rate</i></dt>
<dd>The sampling rate of the source audio.</dd>
<dt><i>base_quality</i></dt>
<dd>Desired quality level, currently from -0.1 to 1.0 (lo to hi).</dd>
</dl>
<h3>Return Values</h3>
<blockquote>
<li>
0 for success</li>
<li>less than zero for failure:</li>
<ul>
<li>OV_EFAULT - Internal logic fault; indicates a bug or heap/stack corruption.</li>
<li>OV_EINVAL - Invalid setup request, eg, out of range argument. </li>
<li>OV_EIMPL - Unimplemented mode; unable to comply with quality level request.</li>
</ul>
</blockquote>
<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>libvorbisenc documentation</p></td>
<td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
</tr>
</table>
</body>
</html>