libvorbis: New version 1.3.5
This commit is contained in:
parent
98f23d27a4
commit
644e9076bb
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2002-2008 Xiph.org Foundation
|
||||
Copyright (c) 2002-2015 Xiph.org Foundation
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: bark scale utility
|
||||
last mod: $Id: barkmel.c 16037 2009-05-26 21:10:58Z xiphmont $
|
||||
last mod: $Id: barkmel.c 19454 2015-03-02 22:39:28Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: PCM data vector blocking, windowing and dis/reassembly
|
||||
last mod: $Id: block.c 17561 2010-10-23 10:34:24Z xiphmont $
|
||||
last mod: $Id: block.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
Handle windowing, overlap-add, etc of the PCM vectors. This is made
|
||||
more amusing by Vorbis' current two allowed block sizes.
|
||||
|
@ -31,16 +31,6 @@
|
|||
#include "registry.h"
|
||||
#include "misc.h"
|
||||
|
||||
static int ilog2(unsigned int v){
|
||||
int ret=0;
|
||||
if(v)--v;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/* pcm accumulator examples (not exhaustive):
|
||||
|
||||
<-------------- lW ---------------->
|
||||
|
@ -184,14 +174,19 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){
|
|||
private_state *b=NULL;
|
||||
int hs;
|
||||
|
||||
if(ci==NULL) return 1;
|
||||
if(ci==NULL||
|
||||
ci->modes<=0||
|
||||
ci->blocksizes[0]<64||
|
||||
ci->blocksizes[1]<ci->blocksizes[0]){
|
||||
return 1;
|
||||
}
|
||||
hs=ci->halfrate_flag;
|
||||
|
||||
memset(v,0,sizeof(*v));
|
||||
b=v->backend_state=_ogg_calloc(1,sizeof(*b));
|
||||
|
||||
v->vi=vi;
|
||||
b->modebits=ilog2(ci->modes);
|
||||
b->modebits=ov_ilog(ci->modes-1);
|
||||
|
||||
b->transform[0]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[0]));
|
||||
b->transform[1]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[1]));
|
||||
|
@ -204,8 +199,14 @@ static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){
|
|||
mdct_init(b->transform[1][0],ci->blocksizes[1]>>hs);
|
||||
|
||||
/* Vorbis I uses only window type 0 */
|
||||
b->window[0]=ilog2(ci->blocksizes[0])-6;
|
||||
b->window[1]=ilog2(ci->blocksizes[1])-6;
|
||||
/* note that the correct computation below is technically:
|
||||
b->window[0]=ov_ilog(ci->blocksizes[0]-1)-6;
|
||||
b->window[1]=ov_ilog(ci->blocksizes[1]-1)-6;
|
||||
but since blocksizes are always powers of two,
|
||||
the below is equivalent.
|
||||
*/
|
||||
b->window[0]=ov_ilog(ci->blocksizes[0])-7;
|
||||
b->window[1]=ov_ilog(ci->blocksizes[1])-7;
|
||||
|
||||
if(encp){ /* encode/decode differ here */
|
||||
|
||||
|
@ -771,14 +772,14 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
|
|||
if(v->lW){
|
||||
if(v->W){
|
||||
/* large/large */
|
||||
float *w=_vorbis_window_get(b->window[1]-hs);
|
||||
const float *w=_vorbis_window_get(b->window[1]-hs);
|
||||
float *pcm=v->pcm[j]+prevCenter;
|
||||
float *p=vb->pcm[j];
|
||||
for(i=0;i<n1;i++)
|
||||
pcm[i]=pcm[i]*w[n1-i-1] + p[i]*w[i];
|
||||
}else{
|
||||
/* large/small */
|
||||
float *w=_vorbis_window_get(b->window[0]-hs);
|
||||
const float *w=_vorbis_window_get(b->window[0]-hs);
|
||||
float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2;
|
||||
float *p=vb->pcm[j];
|
||||
for(i=0;i<n0;i++)
|
||||
|
@ -787,7 +788,7 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
|
|||
}else{
|
||||
if(v->W){
|
||||
/* small/large */
|
||||
float *w=_vorbis_window_get(b->window[0]-hs);
|
||||
const float *w=_vorbis_window_get(b->window[0]-hs);
|
||||
float *pcm=v->pcm[j]+prevCenter;
|
||||
float *p=vb->pcm[j]+n1/2-n0/2;
|
||||
for(i=0;i<n0;i++)
|
||||
|
@ -796,7 +797,7 @@ int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
|
|||
pcm[i]=p[i];
|
||||
}else{
|
||||
/* small/small */
|
||||
float *w=_vorbis_window_get(b->window[0]-hs);
|
||||
const float *w=_vorbis_window_get(b->window[0]-hs);
|
||||
float *pcm=v->pcm[j]+prevCenter;
|
||||
float *p=vb->pcm[j];
|
||||
for(i=0;i<n0;i++)
|
||||
|
@ -1035,7 +1036,7 @@ int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){
|
|||
|
||||
}
|
||||
|
||||
float *vorbis_window(vorbis_dsp_state *v,int W){
|
||||
const float *vorbis_window(vorbis_dsp_state *v,int W){
|
||||
vorbis_info *vi=v->vi;
|
||||
codec_setup_info *ci=vi->codec_setup;
|
||||
int hs=ci->halfrate_flag;
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
SUBDIRS = coupled uncoupled floor
|
|
@ -1,514 +0,0 @@
|
|||
# Makefile.in generated by automake 1.10.2 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 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@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@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 = lib/books
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
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)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
html-recursive info-recursive install-data-recursive \
|
||||
install-dvi-recursive install-exec-recursive \
|
||||
install-html-recursive install-info-recursive \
|
||||
install-pdf-recursive install-ps-recursive install-recursive \
|
||||
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
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@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
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_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_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 = @docdir@
|
||||
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@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
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_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = coupled uncoupled floor
|
||||
all: all-recursive
|
||||
|
||||
.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 lib/books/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/books/Makefile
|
||||
.PRECIOUS: 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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
*k*) failcom='fail=yes';; \
|
||||
esac; \
|
||||
done; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
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 $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am check check-am clean clean-generic clean-libtool \
|
||||
ctags ctags-recursive distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am 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 installdirs-am maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-generic \
|
||||
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
|
||||
uninstall uninstall-am
|
||||
|
||||
# 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:
|
|
@ -1,3 +0,0 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
EXTRA_DIST = res_books_stereo.h res_books_51.h
|
|
@ -1,356 +0,0 @@
|
|||
# Makefile.in generated by automake 1.10.2 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 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@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@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 = lib/books/coupled
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
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)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
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@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
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_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_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 = @docdir@
|
||||
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@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
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_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = res_books_stereo.h res_books_51.h
|
||||
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 lib/books/coupled/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/books/coupled/Makefile
|
||||
.PRECIOUS: 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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
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 $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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
|
||||
installdirs:
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am 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 uninstall uninstall-am
|
||||
|
||||
# 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:
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +0,0 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
EXTRA_DIST = floor_books.h
|
|
@ -1,356 +0,0 @@
|
|||
# Makefile.in generated by automake 1.10.2 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 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@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@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 = lib/books/floor
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
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)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
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@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
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_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_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 = @docdir@
|
||||
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@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
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_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = floor_books.h
|
||||
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 lib/books/floor/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/books/floor/Makefile
|
||||
.PRECIOUS: 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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
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 $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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
|
||||
installdirs:
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am 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 uninstall uninstall-am
|
||||
|
||||
# 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:
|
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +0,0 @@
|
|||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
EXTRA_DIST = res_books_uncoupled.h
|
|
@ -1,356 +0,0 @@
|
|||
# Makefile.in generated by automake 1.10.2 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008 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@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@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 = lib/books/uncoupled
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
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)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMTAR = @AMTAR@
|
||||
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@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
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_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_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 = @docdir@
|
||||
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@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
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_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
EXTRA_DIST = res_books_uncoupled.h
|
||||
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 lib/books/uncoupled/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu lib/books/uncoupled/Makefile
|
||||
.PRECIOUS: 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
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
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 $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$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
|
||||
installdirs:
|
||||
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:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
distclean distclean-generic distclean-libtool distdir dvi \
|
||||
dvi-am html html-am info info-am install install-am \
|
||||
install-data install-data-am 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 uninstall uninstall-am
|
||||
|
||||
# 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:
|
File diff suppressed because it is too large
Load Diff
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: basic codebook pack/unpack/code/decode operations
|
||||
last mod: $Id: codebook.c 17553 2010-10-21 17:54:26Z tterribe $
|
||||
last mod: $Id: codebook.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -53,16 +53,16 @@ int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){
|
|||
oggpack_write(opb,c->lengthlist[0]-1,5); /* 1 to 32 */
|
||||
|
||||
for(i=1;i<c->entries;i++){
|
||||
long this=c->lengthlist[i];
|
||||
long last=c->lengthlist[i-1];
|
||||
char this=c->lengthlist[i];
|
||||
char last=c->lengthlist[i-1];
|
||||
if(this>last){
|
||||
for(j=last;j<this;j++){
|
||||
oggpack_write(opb,i-count,_ilog(c->entries-count));
|
||||
oggpack_write(opb,i-count,ov_ilog(c->entries-count));
|
||||
count=i;
|
||||
}
|
||||
}
|
||||
}
|
||||
oggpack_write(opb,i-count,_ilog(c->entries-count));
|
||||
oggpack_write(opb,i-count,ov_ilog(c->entries-count));
|
||||
|
||||
}else{
|
||||
/* length random. Again, we don't code the codeword itself, just
|
||||
|
@ -159,7 +159,7 @@ static_codebook *vorbis_staticbook_unpack(oggpack_buffer *opb){
|
|||
s->entries=oggpack_read(opb,24);
|
||||
if(s->entries==-1)goto _eofout;
|
||||
|
||||
if(_ilog(s->dim)+_ilog(s->entries)>24)goto _eofout;
|
||||
if(ov_ilog(s->dim)+ov_ilog(s->entries)>24)goto _eofout;
|
||||
|
||||
/* codeword ordering.... length ordered or unordered? */
|
||||
switch((int)oggpack_read(opb,1)){
|
||||
|
@ -203,7 +203,7 @@ static_codebook *vorbis_staticbook_unpack(oggpack_buffer *opb){
|
|||
s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries);
|
||||
|
||||
for(i=0;i<s->entries;){
|
||||
long num=oggpack_read(opb,_ilog(s->entries-i));
|
||||
long num=oggpack_read(opb,ov_ilog(s->entries-i));
|
||||
if(num==-1)goto _eofout;
|
||||
if(length>32 || num>s->entries-i ||
|
||||
(num>0 && (num-1)>>(length-1)>1)){
|
||||
|
@ -312,6 +312,12 @@ STIN long decode_packed_entry_number(codebook *book, oggpack_buffer *b){
|
|||
hi=book->used_entries;
|
||||
}
|
||||
|
||||
/* Single entry codebooks use a firsttablen of 1 and a
|
||||
dec_maxlength of 1. If a single-entry codebook gets here (due to
|
||||
failure to read one bit above), the next look attempt will also
|
||||
fail and we'll correctly kick out instead of trying to walk the
|
||||
underformed tree */
|
||||
|
||||
lok = oggpack_look(b, read);
|
||||
|
||||
while(lok<0 && read>1)
|
||||
|
@ -367,6 +373,7 @@ long vorbis_book_decode(codebook *book, oggpack_buffer *b){
|
|||
}
|
||||
|
||||
/* returns 0 on OK or -1 on eof *************************************/
|
||||
/* decode vector / dim granularity gaurding is done in the upper layer */
|
||||
long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
||||
if(book->used_entries>0){
|
||||
int step=n/book->dim;
|
||||
|
@ -386,6 +393,7 @@ long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
|||
return(0);
|
||||
}
|
||||
|
||||
/* decode vector / dim granularity gaurding is done in the upper layer */
|
||||
long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
||||
if(book->used_entries>0){
|
||||
int i,j,entry;
|
||||
|
@ -431,6 +439,9 @@ long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
|||
return(0);
|
||||
}
|
||||
|
||||
/* unlike the others, we guard against n not being an integer number
|
||||
of <dim> internally rather than in the upper layer (called only by
|
||||
floor0) */
|
||||
long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){
|
||||
if(book->used_entries>0){
|
||||
int i,j,entry;
|
||||
|
@ -440,15 +451,15 @@ long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){
|
|||
entry = decode_packed_entry_number(book,b);
|
||||
if(entry==-1)return(-1);
|
||||
t = book->valuelist+entry*book->dim;
|
||||
for (j=0;j<book->dim;)
|
||||
for (j=0;i<n && j<book->dim;){
|
||||
a[i++]=t[j++];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
int i,j;
|
||||
int i;
|
||||
|
||||
for(i=0;i<n;){
|
||||
for (j=0;j<book->dim;)
|
||||
a[i++]=0.f;
|
||||
a[i++]=0.f;
|
||||
}
|
||||
}
|
||||
return(0);
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: basic shared codebook operations
|
||||
last mod: $Id: codebook.h 17030 2010-03-25 06:52:55Z xiphmont $
|
||||
last mod: $Id: codebook.h 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -34,14 +34,14 @@
|
|||
*/
|
||||
|
||||
typedef struct static_codebook{
|
||||
long dim; /* codebook dimensions (elements per vector) */
|
||||
long entries; /* codebook entries */
|
||||
long *lengthlist; /* codeword lengths in bits */
|
||||
long dim; /* codebook dimensions (elements per vector) */
|
||||
long entries; /* codebook entries */
|
||||
char *lengthlist; /* codeword lengths in bits */
|
||||
|
||||
/* mapping ***************************************************************/
|
||||
int maptype; /* 0=none
|
||||
1=implicitly populated values from map column
|
||||
2=listed arbitrary values */
|
||||
int maptype; /* 0=none
|
||||
1=implicitly populated values from map column
|
||||
2=listed arbitrary values */
|
||||
|
||||
/* The below does a linear, single monotonic sequence mapping. */
|
||||
long q_min; /* packed 32 bit float; quant value 0 maps to minval */
|
||||
|
@ -89,7 +89,6 @@ extern float *_book_logdist(const static_codebook *b,float *vals);
|
|||
extern float _float32_unpack(long val);
|
||||
extern long _float32_pack(float val);
|
||||
extern int _best(codebook *book, float *a, int step);
|
||||
extern int _ilog(unsigned int v);
|
||||
extern long _book_maptype1_quantvals(const static_codebook *b);
|
||||
|
||||
extern int vorbis_book_besterror(codebook *book,float *a,int step,int addmul);
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: floor backend 0 implementation
|
||||
last mod: $Id: floor0.c 17558 2010-10-22 00:24:41Z tterribe $
|
||||
last mod: $Id: floor0.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -147,6 +147,9 @@ static vorbis_look_floor *floor0_look(vorbis_dsp_state *vd,
|
|||
vorbis_info_floor *i){
|
||||
vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
|
||||
vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(*look));
|
||||
|
||||
(void)vd;
|
||||
|
||||
look->m=info->order;
|
||||
look->ln=info->barkmap;
|
||||
look->vi=info;
|
||||
|
@ -165,7 +168,7 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){
|
|||
if(ampraw>0){ /* also handles the -1 out of data case */
|
||||
long maxval=(1<<info->ampbits)-1;
|
||||
float amp=(float)ampraw/maxval*info->ampdB;
|
||||
int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks));
|
||||
int booknum=oggpack_read(&vb->opb,ov_ilog(info->numbooks));
|
||||
|
||||
if(booknum!=-1 && booknum<info->numbooks){ /* be paranoid */
|
||||
codec_setup_info *ci=vb->vd->vi->codec_setup;
|
||||
|
@ -177,10 +180,9 @@ static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){
|
|||
vector */
|
||||
float *lsp=_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+b->dim+1));
|
||||
|
||||
for(j=0;j<look->m;j+=b->dim)
|
||||
if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim)==-1)goto eop;
|
||||
if(vorbis_book_decodev_set(b,lsp,&vb->opb,look->m)==-1)goto eop;
|
||||
for(j=0;j<look->m;){
|
||||
for(k=0;k<b->dim;k++,j++)lsp[j]+=last;
|
||||
for(k=0;j<look->m && k<b->dim;k++,j++)lsp[j]+=last;
|
||||
last=lsp[j-1];
|
||||
}
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: floor backend 1 implementation
|
||||
last mod: $Id: floor1.c 17555 2010-10-21 18:14:51Z tterribe $
|
||||
last mod: $Id: floor1.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -72,25 +72,6 @@ static void floor1_free_look(vorbis_look_floor *i){
|
|||
}
|
||||
}
|
||||
|
||||
static int ilog(unsigned int v){
|
||||
int ret=0;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int ilog2(unsigned int v){
|
||||
int ret=0;
|
||||
if(v)--v;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){
|
||||
vorbis_info_floor1 *info=(vorbis_info_floor1 *)i;
|
||||
int j,k;
|
||||
|
@ -117,8 +98,10 @@ static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){
|
|||
|
||||
/* save out the post list */
|
||||
oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */
|
||||
oggpack_write(opb,ilog2(maxposit),4);
|
||||
rangebits=ilog2(maxposit);
|
||||
/* maxposit cannot legally be less than 1; this is encode-side, we
|
||||
can assume our setup is OK */
|
||||
oggpack_write(opb,ov_ilog(maxposit-1),4);
|
||||
rangebits=ov_ilog(maxposit-1);
|
||||
|
||||
for(j=0,k=0;j<info->partitions;j++){
|
||||
count+=info->class_dim[info->partitionclass[j]];
|
||||
|
@ -167,6 +150,7 @@ static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){
|
|||
|
||||
for(j=0,k=0;j<info->partitions;j++){
|
||||
count+=info->class_dim[info->partitionclass[j]];
|
||||
if(count>VIF_POSIT) goto err_out;
|
||||
for(;k<count;k++){
|
||||
int t=info->postlist[k+2]=oggpack_read(opb,rangebits);
|
||||
if(t<0 || t>=(1<<rangebits))
|
||||
|
@ -202,6 +186,8 @@ static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,
|
|||
vorbis_look_floor1 *look=_ogg_calloc(1,sizeof(*look));
|
||||
int i,j,n=0;
|
||||
|
||||
(void)vd;
|
||||
|
||||
look->vi=info;
|
||||
look->n=info->postlist[1];
|
||||
|
||||
|
@ -851,9 +837,9 @@ int floor1_encode(oggpack_buffer *opb,vorbis_block *vb,
|
|||
|
||||
/* beginning/end post */
|
||||
look->frames++;
|
||||
look->postbits+=ilog(look->quant_q-1)*2;
|
||||
oggpack_write(opb,out[0],ilog(look->quant_q-1));
|
||||
oggpack_write(opb,out[1],ilog(look->quant_q-1));
|
||||
look->postbits+=ov_ilog(look->quant_q-1)*2;
|
||||
oggpack_write(opb,out[0],ov_ilog(look->quant_q-1));
|
||||
oggpack_write(opb,out[1],ov_ilog(look->quant_q-1));
|
||||
|
||||
|
||||
/* partition by partition */
|
||||
|
@ -869,7 +855,9 @@ int floor1_encode(oggpack_buffer *opb,vorbis_block *vb,
|
|||
|
||||
/* generate the partition's first stage cascade value */
|
||||
if(csubbits){
|
||||
int maxval[8];
|
||||
int maxval[8]={0,0,0,0,0,0,0,0}; /* gcc's static analysis
|
||||
issues a warning without
|
||||
initialization */
|
||||
for(k=0;k<csub;k++){
|
||||
int booknum=info->class_subbook[class][k];
|
||||
if(booknum<0){
|
||||
|
@ -977,8 +965,8 @@ static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
|
|||
if(oggpack_read(&vb->opb,1)==1){
|
||||
int *fit_value=_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value));
|
||||
|
||||
fit_value[0]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
|
||||
fit_value[1]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
|
||||
fit_value[0]=oggpack_read(&vb->opb,ov_ilog(look->quant_q-1));
|
||||
fit_value[1]=oggpack_read(&vb->opb,ov_ilog(look->quant_q-1));
|
||||
|
||||
/* partition by partition */
|
||||
for(i=0,j=2;i<info->partitions;i++){
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: maintain the info structure, info <-> header packets
|
||||
last mod: $Id: info.c 17584 2010-11-01 19:26:16Z xiphmont $
|
||||
last mod: $Id: info.c 19441 2015-01-21 01:17:41Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -31,20 +31,10 @@
|
|||
#include "misc.h"
|
||||
#include "os.h"
|
||||
|
||||
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.2"
|
||||
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20101101 (Schaufenugget)"
|
||||
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.5"
|
||||
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)"
|
||||
|
||||
/* helpers */
|
||||
static int ilog2(unsigned int v){
|
||||
int ret=0;
|
||||
if(v)--v;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){
|
||||
|
||||
while(bytes--){
|
||||
|
@ -272,7 +262,6 @@ static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){
|
|||
static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
|
||||
codec_setup_info *ci=vi->codec_setup;
|
||||
int i;
|
||||
if(!ci)return(OV_EFAULT);
|
||||
|
||||
/* codebooks */
|
||||
ci->books=oggpack_read(opb,8)+1;
|
||||
|
@ -411,6 +400,10 @@ int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op)
|
|||
/* um... we didn't get the initial header */
|
||||
return(OV_EBADHEADER);
|
||||
}
|
||||
if(vc->vendor!=NULL){
|
||||
/* previously initialized comment header */
|
||||
return(OV_EBADHEADER);
|
||||
}
|
||||
|
||||
return(_vorbis_unpack_comment(vc,&opb));
|
||||
|
||||
|
@ -419,6 +412,14 @@ int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op)
|
|||
/* um... we didn;t get the initial header or comments yet */
|
||||
return(OV_EBADHEADER);
|
||||
}
|
||||
if(vi->codec_setup==NULL){
|
||||
/* improperly initialized vorbis_info */
|
||||
return(OV_EFAULT);
|
||||
}
|
||||
if(((codec_setup_info *)vi->codec_setup)->books>0){
|
||||
/* previously initialized setup header */
|
||||
return(OV_EBADHEADER);
|
||||
}
|
||||
|
||||
return(_vorbis_unpack_books(vi,&opb));
|
||||
|
||||
|
@ -436,7 +437,11 @@ int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op)
|
|||
|
||||
static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){
|
||||
codec_setup_info *ci=vi->codec_setup;
|
||||
if(!ci)return(OV_EFAULT);
|
||||
if(!ci||
|
||||
ci->blocksizes[0]<64||
|
||||
ci->blocksizes[1]<ci->blocksizes[0]){
|
||||
return(OV_EFAULT);
|
||||
}
|
||||
|
||||
/* preamble */
|
||||
oggpack_write(opb,0x01,8);
|
||||
|
@ -451,8 +456,8 @@ static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){
|
|||
oggpack_write(opb,vi->bitrate_nominal,32);
|
||||
oggpack_write(opb,vi->bitrate_lower,32);
|
||||
|
||||
oggpack_write(opb,ilog2(ci->blocksizes[0]),4);
|
||||
oggpack_write(opb,ilog2(ci->blocksizes[1]),4);
|
||||
oggpack_write(opb,ov_ilog(ci->blocksizes[0]-1),4);
|
||||
oggpack_write(opb,ov_ilog(ci->blocksizes[1]-1),4);
|
||||
oggpack_write(opb,1,1);
|
||||
|
||||
return(0);
|
||||
|
@ -550,7 +555,10 @@ int vorbis_commentheader_out(vorbis_comment *vc,
|
|||
oggpack_buffer opb;
|
||||
|
||||
oggpack_writeinit(&opb);
|
||||
if(_vorbis_pack_comment(&opb,vc)) return OV_EIMPL;
|
||||
if(_vorbis_pack_comment(&opb,vc)){
|
||||
oggpack_writeclear(&opb);
|
||||
return OV_EIMPL;
|
||||
}
|
||||
|
||||
op->packet = _ogg_malloc(oggpack_bytes(&opb));
|
||||
memcpy(op->packet, opb.buffer, oggpack_bytes(&opb));
|
||||
|
@ -561,6 +569,7 @@ int vorbis_commentheader_out(vorbis_comment *vc,
|
|||
op->granulepos=0;
|
||||
op->packetno=1;
|
||||
|
||||
oggpack_writeclear(&opb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -574,7 +583,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
|||
oggpack_buffer opb;
|
||||
private_state *b=v->backend_state;
|
||||
|
||||
if(!b){
|
||||
if(!b||vi->channels<=0){
|
||||
ret=OV_EFAULT;
|
||||
goto err_out;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: LSP (also called LSF) conversion routines
|
||||
last mod: $Id: lsp.c 17538 2010-10-15 02:52:29Z tterribe $
|
||||
last mod: $Id: lsp.c 19453 2015-03-02 22:35:34Z xiphmont $
|
||||
|
||||
The LSP generation code is taken (with minimal modification and a
|
||||
few bugfixes) from "On the Computation of the LSP Frequencies" by
|
||||
|
@ -309,7 +309,6 @@ static int comp(const void *a,const void *b){
|
|||
#define EPSILON 10e-7
|
||||
static int Laguerre_With_Deflation(float *a,int ord,float *r){
|
||||
int i,m;
|
||||
double lastdelta=0.f;
|
||||
double *defl=alloca(sizeof(*defl)*(ord+1));
|
||||
for(i=0;i<=ord;i++)defl[i]=a[i];
|
||||
|
||||
|
@ -346,7 +345,6 @@ static int Laguerre_With_Deflation(float *a,int ord,float *r){
|
|||
if(delta<0.f)delta*=-1;
|
||||
|
||||
if(fabs(delta/new)<10e-12)break;
|
||||
lastdelta=delta;
|
||||
}
|
||||
|
||||
r[m-1]=new;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: channel mapping 0 implementation
|
||||
last mod: $Id: mapping0.c 17022 2010-03-25 03:45:42Z xiphmont $
|
||||
last mod: $Id: mapping0.c 19441 2015-01-21 01:17:41Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -45,16 +45,6 @@ static void mapping0_free_info(vorbis_info_mapping *i){
|
|||
}
|
||||
}
|
||||
|
||||
static int ilog(unsigned int v){
|
||||
int ret=0;
|
||||
if(v)--v;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm,
|
||||
oggpack_buffer *opb){
|
||||
int i;
|
||||
|
@ -78,8 +68,8 @@ static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm,
|
|||
oggpack_write(opb,info->coupling_steps-1,8);
|
||||
|
||||
for(i=0;i<info->coupling_steps;i++){
|
||||
oggpack_write(opb,info->coupling_mag[i],ilog(vi->channels));
|
||||
oggpack_write(opb,info->coupling_ang[i],ilog(vi->channels));
|
||||
oggpack_write(opb,info->coupling_mag[i],ov_ilog(vi->channels-1));
|
||||
oggpack_write(opb,info->coupling_ang[i],ov_ilog(vi->channels-1));
|
||||
}
|
||||
}else
|
||||
oggpack_write(opb,0,1);
|
||||
|
@ -104,6 +94,7 @@ static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb)
|
|||
vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info));
|
||||
codec_setup_info *ci=vi->codec_setup;
|
||||
memset(info,0,sizeof(*info));
|
||||
if(vi->channels<=0)goto err_out;
|
||||
|
||||
b=oggpack_read(opb,1);
|
||||
if(b<0)goto err_out;
|
||||
|
@ -119,8 +110,11 @@ static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb)
|
|||
info->coupling_steps=oggpack_read(opb,8)+1;
|
||||
if(info->coupling_steps<=0)goto err_out;
|
||||
for(i=0;i<info->coupling_steps;i++){
|
||||
int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels));
|
||||
int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels));
|
||||
/* vi->channels > 0 is enforced in the caller */
|
||||
int testM=info->coupling_mag[i]=
|
||||
oggpack_read(opb,ov_ilog(vi->channels-1));
|
||||
int testA=info->coupling_ang[i]=
|
||||
oggpack_read(opb,ov_ilog(vi->channels-1));
|
||||
|
||||
if(testM<0 ||
|
||||
testA<0 ||
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: miscellaneous prototypes
|
||||
last mod: $Id: misc.h 16227 2009-07-08 06:58:46Z xiphmont $
|
||||
last mod: $Id: misc.h 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -21,6 +21,7 @@
|
|||
|
||||
extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes);
|
||||
extern void _vorbis_block_ripcord(vorbis_block *vb);
|
||||
extern int ov_ilog(ogg_uint32_t v);
|
||||
|
||||
#ifdef ANALYSIS
|
||||
extern int analysis_noisy;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: toplevel residue templates for 32/44.1/48kHz uncoupled
|
||||
last mod: $Id$
|
||||
last mod: $Id: residue_44p51.h 19013 2013-11-12 04:04:50Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: toplevel settings for 44.1/48kHz 5.1 surround modes
|
||||
last mod: $Id$
|
||||
last mod: $Id: setup_44p51.h 19013 2013-11-12 04:04:50Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* 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.h 16227 2009-07-08 06:58:46Z xiphmont $
|
||||
last mod: $Id: os.h 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -119,8 +119,9 @@ static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise,
|
|||
|
||||
|
||||
/* MSVC inline assembly. 32 bit only; inline ASM isn't implemented in the
|
||||
* 64 bit compiler */
|
||||
#if defined(_MSC_VER) && !defined(_WIN64) && !defined(_WIN32_WCE) && !defined(WINDOWSPHONE_ENABLED)
|
||||
* 64 bit compiler and doesn't work on arm. */
|
||||
#if defined(_MSC_VER) && !defined(_WIN64) && \
|
||||
!defined(_WIN32_WCE) && !defined(_M_ARM)
|
||||
# define VORBIS_FPU_CONTROL
|
||||
|
||||
typedef ogg_int16_t vorbis_fpu_control;
|
||||
|
@ -135,9 +136,11 @@ static __inline int vorbis_ftoi(double f){
|
|||
}
|
||||
|
||||
static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){
|
||||
(void)fpu;
|
||||
}
|
||||
|
||||
static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){
|
||||
(void)fpu;
|
||||
}
|
||||
|
||||
#endif /* Special MSVC 32 bit implementation */
|
||||
|
@ -156,9 +159,11 @@ static __inline int vorbis_ftoi(double f){
|
|||
}
|
||||
|
||||
static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){
|
||||
(void)fpu;
|
||||
}
|
||||
|
||||
static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){
|
||||
(void)fpu;
|
||||
}
|
||||
|
||||
#endif /* Special MSVC x64 implementation */
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: psychoacoustics not including preecho
|
||||
last mod: $Id: psy.c 17569 2010-10-26 17:09:47Z xiphmont $
|
||||
last mod: $Id: psy.c 18077 2011-09-02 02:49:00Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -1020,7 +1020,9 @@ void _vp_couple_quantize_normalize(int blobno,
|
|||
int limit = g->coupling_pointlimit[p->vi->blockflag][blobno];
|
||||
float prepoint=stereo_threshholds[g->coupling_prepointamp[blobno]];
|
||||
float postpoint=stereo_threshholds[g->coupling_postpointamp[blobno]];
|
||||
#if 0
|
||||
float de=0.1*p->m_val; /* a blend of the AoTuV M2 and M3 code here and below */
|
||||
#endif
|
||||
|
||||
/* mdct is our raw mdct output, floor not removed. */
|
||||
/* inout passes in the ifloor, passes back quantized result */
|
||||
|
@ -1154,27 +1156,28 @@ void _vp_couple_quantize_normalize(int blobno,
|
|||
reM[j] += reA[j];
|
||||
qeM[j] = fabs(reM[j]);
|
||||
}else{
|
||||
#if 0
|
||||
/* AoTuV */
|
||||
/** @ M2 **
|
||||
The boost problem by the combination of noise normalization and point stereo is eased.
|
||||
However, this is a temporary patch.
|
||||
by Aoyumi @ 2004/04/18
|
||||
*/
|
||||
/*float derate = (1.0 - de*((float)(j-limit+i) / (float)(n-limit))); */
|
||||
/* elliptical
|
||||
float derate = (1.0 - de*((float)(j-limit+i) / (float)(n-limit)));
|
||||
/* elliptical */
|
||||
if(reM[j]+reA[j]<0){
|
||||
reM[j] = - (qeM[j] = (fabs(reM[j])+fabs(reA[j]))*derate*derate);
|
||||
}else{
|
||||
reM[j] = (qeM[j] = (fabs(reM[j])+fabs(reA[j]))*derate*derate);
|
||||
}*/
|
||||
|
||||
}
|
||||
#else
|
||||
/* elliptical */
|
||||
if(reM[j]+reA[j]<0){
|
||||
reM[j] = - (qeM[j] = fabs(reM[j])+fabs(reA[j]));
|
||||
}else{
|
||||
reM[j] = (qeM[j] = fabs(reM[j])+fabs(reA[j]));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
reA[j]=qeA[j]=0.f;
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: residue backend 0, 1 and 2 implementation
|
||||
last mod: $Id: res0.c 17556 2010-10-21 18:25:19Z tterribe $
|
||||
last mod: $Id: res0.c 19441 2015-01-21 01:17:41Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -152,15 +152,6 @@ void res0_free_look(vorbis_look_residue *i){
|
|||
}
|
||||
}
|
||||
|
||||
static int ilog(unsigned int v){
|
||||
int ret=0;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
static int icount(unsigned int v){
|
||||
int ret=0;
|
||||
while(v){
|
||||
|
@ -186,7 +177,7 @@ void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){
|
|||
bitmask of one indicates this partition class has bits to write
|
||||
this pass */
|
||||
for(j=0;j<info->partitions;j++){
|
||||
if(ilog(info->secondstages[j])>3){
|
||||
if(ov_ilog(info->secondstages[j])>3){
|
||||
/* yes, this is a minor hack due to not thinking ahead */
|
||||
oggpack_write(opb,info->secondstages[j],3);
|
||||
oggpack_write(opb,1,1);
|
||||
|
@ -284,7 +275,7 @@ vorbis_look_residue *res0_look(vorbis_dsp_state *vd,
|
|||
look->partbooks=_ogg_calloc(look->parts,sizeof(*look->partbooks));
|
||||
|
||||
for(j=0;j<look->parts;j++){
|
||||
int stages=ilog(info->secondstages[j]);
|
||||
int stages=ov_ilog(info->secondstages[j]);
|
||||
if(stages){
|
||||
if(stages>maxstage)maxstage=stages;
|
||||
look->partbooks[j]=_ogg_calloc(stages,sizeof(*look->partbooks[j]));
|
||||
|
@ -390,8 +381,13 @@ static int local_book_besterror(codebook *book,int *a){
|
|||
return(index);
|
||||
}
|
||||
|
||||
#ifdef TRAIN_RES
|
||||
static int _encodepart(oggpack_buffer *opb,int *vec, int n,
|
||||
codebook *book,long *acc){
|
||||
#else
|
||||
static int _encodepart(oggpack_buffer *opb,int *vec, int n,
|
||||
codebook *book){
|
||||
#endif
|
||||
int i,bits=0;
|
||||
int dim=book->dim;
|
||||
int step=n/dim;
|
||||
|
@ -534,12 +530,18 @@ static long **_2class(vorbis_block *vb,vorbis_look_residue *vl,int **in,
|
|||
}
|
||||
|
||||
static int _01forward(oggpack_buffer *opb,
|
||||
vorbis_block *vb,vorbis_look_residue *vl,
|
||||
vorbis_look_residue *vl,
|
||||
int **in,int ch,
|
||||
long **partword,
|
||||
#ifdef TRAIN_RES
|
||||
int (*encode)(oggpack_buffer *,int *,int,
|
||||
codebook *,long *),
|
||||
int submap){
|
||||
int submap
|
||||
#else
|
||||
int (*encode)(oggpack_buffer *,int *,int,
|
||||
codebook *)
|
||||
#endif
|
||||
){
|
||||
long i,j,k,s;
|
||||
vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl;
|
||||
vorbis_info_residue0 *info=look->info;
|
||||
|
@ -609,9 +611,8 @@ static int _01forward(oggpack_buffer *opb,
|
|||
codebook *statebook=look->partbooks[partword[j][i]][s];
|
||||
if(statebook){
|
||||
int ret;
|
||||
long *accumulator=NULL;
|
||||
|
||||
#ifdef TRAIN_RES
|
||||
long *accumulator=NULL;
|
||||
accumulator=look->training_data[s][partword[j][i]];
|
||||
{
|
||||
int l;
|
||||
|
@ -623,10 +624,12 @@ static int _01forward(oggpack_buffer *opb,
|
|||
look->training_max[s][partword[j][i]]=samples[l];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
ret=encode(opb,in[j]+offset,samples_per_partition,
|
||||
statebook,accumulator);
|
||||
#else
|
||||
ret=encode(opb,in[j]+offset,samples_per_partition,
|
||||
statebook);
|
||||
#endif
|
||||
|
||||
look->postbits+=ret;
|
||||
resbits[partword[j][i]]+=ret;
|
||||
|
@ -637,19 +640,6 @@ static int _01forward(oggpack_buffer *opb,
|
|||
}
|
||||
}
|
||||
|
||||
/*{
|
||||
long total=0;
|
||||
long totalbits=0;
|
||||
fprintf(stderr,"%d :: ",vb->mode);
|
||||
for(k=0;k<possible_partitions;k++){
|
||||
fprintf(stderr,"%ld/%1.2g, ",resvals[k],(float)resbits[k]/resvals[k]);
|
||||
total+=resvals[k];
|
||||
totalbits+=resbits[k];
|
||||
}
|
||||
|
||||
fprintf(stderr,":: %ld:%1.2g\n",total,(double)totalbits/total);
|
||||
}*/
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -729,12 +719,18 @@ int res0_inverse(vorbis_block *vb,vorbis_look_residue *vl,
|
|||
int res1_forward(oggpack_buffer *opb,vorbis_block *vb,vorbis_look_residue *vl,
|
||||
int **in,int *nonzero,int ch, long **partword, int submap){
|
||||
int i,used=0;
|
||||
(void)vb;
|
||||
for(i=0;i<ch;i++)
|
||||
if(nonzero[i])
|
||||
in[used++]=in[i];
|
||||
|
||||
if(used){
|
||||
return _01forward(opb,vb,vl,in,used,partword,_encodepart,submap);
|
||||
#ifdef TRAIN_RES
|
||||
return _01forward(opb,vl,in,used,partword,_encodepart,submap);
|
||||
#else
|
||||
(void)submap;
|
||||
return _01forward(opb,vl,in,used,partword,_encodepart);
|
||||
#endif
|
||||
}else{
|
||||
return(0);
|
||||
}
|
||||
|
@ -795,7 +791,12 @@ int res2_forward(oggpack_buffer *opb,
|
|||
}
|
||||
|
||||
if(used){
|
||||
return _01forward(opb,vb,vl,&work,1,partword,_encodepart,submap);
|
||||
#ifdef TRAIN_RES
|
||||
return _01forward(opb,vl,&work,1,partword,_encodepart,submap);
|
||||
#else
|
||||
(void)submap;
|
||||
return _01forward(opb,vl,&work,1,partword,_encodepart);
|
||||
#endif
|
||||
}else{
|
||||
return(0);
|
||||
}
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: basic shared codebook operations
|
||||
last mod: $Id: sharedbook.c 17030 2010-03-25 06:52:55Z xiphmont $
|
||||
last mod: $Id: sharedbook.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -26,13 +26,11 @@
|
|||
#include "scales.h"
|
||||
|
||||
/**** pack/unpack helpers ******************************************/
|
||||
int _ilog(unsigned int v){
|
||||
int ret=0;
|
||||
while(v){
|
||||
ret++;
|
||||
v>>=1;
|
||||
}
|
||||
return(ret);
|
||||
|
||||
int ov_ilog(ogg_uint32_t v){
|
||||
int ret;
|
||||
for(ret=0;v;ret++)v>>=1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 32 bit float (not IEEE; nonnormalized mantissa +
|
||||
|
@ -70,7 +68,7 @@ float _float32_unpack(long val){
|
|||
/* given a list of word lengths, generate a list of codewords. Works
|
||||
for length ordered or unordered, always assigns the lowest valued
|
||||
codewords first. Extended to handle unused entries (length 0) */
|
||||
ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
|
||||
ogg_uint32_t *_make_words(char *l,long n,long sparsecount){
|
||||
long i,j,count=0;
|
||||
ogg_uint32_t marker[33];
|
||||
ogg_uint32_t *r=_ogg_malloc((sparsecount?sparsecount:n)*sizeof(*r));
|
||||
|
@ -125,16 +123,15 @@ ogg_uint32_t *_make_words(long *l,long n,long sparsecount){
|
|||
if(sparsecount==0)count++;
|
||||
}
|
||||
|
||||
/* sanity check the huffman tree; an underpopulated tree must be
|
||||
rejected. The only exception is the one-node pseudo-nil tree,
|
||||
which appears to be underpopulated because the tree doesn't
|
||||
really exist; there's only one possible 'codeword' or zero bits,
|
||||
but the above tree-gen code doesn't mark that. */
|
||||
if(sparsecount != 1){
|
||||
/* any underpopulated tree must be rejected. */
|
||||
/* Single-entry codebooks are a retconned extension to the spec.
|
||||
They have a single codeword '0' of length 1 that results in an
|
||||
underpopulated tree. Shield that case from the underformed tree check. */
|
||||
if(!(count==1 && marker[2]==2)){
|
||||
for(i=1;i<33;i++)
|
||||
if(marker[i] & (0xffffffffUL>>(32-i))){
|
||||
_ogg_free(r);
|
||||
return(NULL);
|
||||
_ogg_free(r);
|
||||
return(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -313,9 +310,10 @@ static int sort32a(const void *a,const void *b){
|
|||
int vorbis_book_init_decode(codebook *c,const static_codebook *s){
|
||||
int i,j,n=0,tabn;
|
||||
int *sortindex;
|
||||
|
||||
memset(c,0,sizeof(*c));
|
||||
|
||||
/* count actually used entries */
|
||||
/* count actually used entries and find max length */
|
||||
for(i=0;i<s->entries;i++)
|
||||
if(s->lengthlist[i]>0)
|
||||
n++;
|
||||
|
@ -325,7 +323,6 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
|
|||
c->dim=s->dim;
|
||||
|
||||
if(n>0){
|
||||
|
||||
/* two different remappings go on here.
|
||||
|
||||
First, we collapse the likely sparse codebook down only to
|
||||
|
@ -361,7 +358,6 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
|
|||
c->codelist[sortindex[i]]=codes[i];
|
||||
_ogg_free(codes);
|
||||
|
||||
|
||||
c->valuelist=_book_unquantize(s,n,sortindex);
|
||||
c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index));
|
||||
|
||||
|
@ -370,51 +366,62 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
|
|||
c->dec_index[sortindex[n++]]=i;
|
||||
|
||||
c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths));
|
||||
for(n=0,i=0;i<s->entries;i++)
|
||||
if(s->lengthlist[i]>0)
|
||||
c->dec_codelengths[sortindex[n++]]=s->lengthlist[i];
|
||||
|
||||
c->dec_firsttablen=_ilog(c->used_entries)-4; /* this is magic */
|
||||
if(c->dec_firsttablen<5)c->dec_firsttablen=5;
|
||||
if(c->dec_firsttablen>8)c->dec_firsttablen=8;
|
||||
|
||||
tabn=1<<c->dec_firsttablen;
|
||||
c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable));
|
||||
c->dec_maxlength=0;
|
||||
|
||||
for(i=0;i<n;i++){
|
||||
if(c->dec_maxlength<c->dec_codelengths[i])
|
||||
c->dec_maxlength=c->dec_codelengths[i];
|
||||
if(c->dec_codelengths[i]<=c->dec_firsttablen){
|
||||
ogg_uint32_t orig=bitreverse(c->codelist[i]);
|
||||
for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++)
|
||||
c->dec_firsttable[orig|(j<<c->dec_codelengths[i])]=i+1;
|
||||
for(n=0,i=0;i<s->entries;i++)
|
||||
if(s->lengthlist[i]>0){
|
||||
c->dec_codelengths[sortindex[n++]]=s->lengthlist[i];
|
||||
if(s->lengthlist[i]>c->dec_maxlength)
|
||||
c->dec_maxlength=s->lengthlist[i];
|
||||
}
|
||||
}
|
||||
|
||||
/* now fill in 'unused' entries in the firsttable with hi/lo search
|
||||
hints for the non-direct-hits */
|
||||
{
|
||||
ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen);
|
||||
long lo=0,hi=0;
|
||||
if(n==1 && c->dec_maxlength==1){
|
||||
/* special case the 'single entry codebook' with a single bit
|
||||
fastpath table (that always returns entry 0 )in order to use
|
||||
unmodified decode paths. */
|
||||
c->dec_firsttablen=1;
|
||||
c->dec_firsttable=_ogg_calloc(2,sizeof(*c->dec_firsttable));
|
||||
c->dec_firsttable[0]=c->dec_firsttable[1]=1;
|
||||
|
||||
for(i=0;i<tabn;i++){
|
||||
ogg_uint32_t word=i<<(32-c->dec_firsttablen);
|
||||
if(c->dec_firsttable[bitreverse(word)]==0){
|
||||
while((lo+1)<n && c->codelist[lo+1]<=word)lo++;
|
||||
while( hi<n && word>=(c->codelist[hi]&mask))hi++;
|
||||
}else{
|
||||
c->dec_firsttablen=ov_ilog(c->used_entries)-4; /* this is magic */
|
||||
if(c->dec_firsttablen<5)c->dec_firsttablen=5;
|
||||
if(c->dec_firsttablen>8)c->dec_firsttablen=8;
|
||||
|
||||
/* we only actually have 15 bits per hint to play with here.
|
||||
In order to overflow gracefully (nothing breaks, efficiency
|
||||
just drops), encode as the difference from the extremes. */
|
||||
{
|
||||
unsigned long loval=lo;
|
||||
unsigned long hival=n-hi;
|
||||
tabn=1<<c->dec_firsttablen;
|
||||
c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable));
|
||||
|
||||
if(loval>0x7fff)loval=0x7fff;
|
||||
if(hival>0x7fff)hival=0x7fff;
|
||||
c->dec_firsttable[bitreverse(word)]=
|
||||
0x80000000UL | (loval<<15) | hival;
|
||||
for(i=0;i<n;i++){
|
||||
if(c->dec_codelengths[i]<=c->dec_firsttablen){
|
||||
ogg_uint32_t orig=bitreverse(c->codelist[i]);
|
||||
for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++)
|
||||
c->dec_firsttable[orig|(j<<c->dec_codelengths[i])]=i+1;
|
||||
}
|
||||
}
|
||||
|
||||
/* now fill in 'unused' entries in the firsttable with hi/lo search
|
||||
hints for the non-direct-hits */
|
||||
{
|
||||
ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen);
|
||||
long lo=0,hi=0;
|
||||
|
||||
for(i=0;i<tabn;i++){
|
||||
ogg_uint32_t word=i<<(32-c->dec_firsttablen);
|
||||
if(c->dec_firsttable[bitreverse(word)]==0){
|
||||
while((lo+1)<n && c->codelist[lo+1]<=word)lo++;
|
||||
while( hi<n && word>=(c->codelist[hi]&mask))hi++;
|
||||
|
||||
/* we only actually have 15 bits per hint to play with here.
|
||||
In order to overflow gracefully (nothing breaks, efficiency
|
||||
just drops), encode as the difference from the extremes. */
|
||||
{
|
||||
unsigned long loval=lo;
|
||||
unsigned long hival=n-hi;
|
||||
|
||||
if(loval>0x7fff)loval=0x7fff;
|
||||
if(hival>0x7fff)hival=0x7fff;
|
||||
c->dec_firsttable[bitreverse(word)]=
|
||||
0x80000000UL | (loval<<15) | hival;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: single-block PCM synthesis
|
||||
last mod: $Id: synthesis.c 17474 2010-09-30 03:41:41Z gmaxwell $
|
||||
last mod: $Id: synthesis.c 19441 2015-01-21 01:17:41Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -145,6 +145,11 @@ long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){
|
|||
oggpack_buffer opb;
|
||||
int mode;
|
||||
|
||||
if(ci==NULL || ci->modes<=0){
|
||||
/* codec setup not properly intialized */
|
||||
return(OV_EFAULT);
|
||||
}
|
||||
|
||||
oggpack_readinit(&opb,op->packet,op->bytes);
|
||||
|
||||
/* Check the packet type */
|
||||
|
@ -153,18 +158,9 @@ long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){
|
|||
return(OV_ENOTAUDIO);
|
||||
}
|
||||
|
||||
{
|
||||
int modebits=0;
|
||||
int v=ci->modes;
|
||||
while(v>1){
|
||||
modebits++;
|
||||
v>>=1;
|
||||
}
|
||||
|
||||
/* read our mode and pre/post windowsize */
|
||||
mode=oggpack_read(&opb,modebits);
|
||||
}
|
||||
if(mode==-1)return(OV_EBADPACKET);
|
||||
/* read our mode and pre/post windowsize */
|
||||
mode=oggpack_read(&opb,ov_ilog(ci->modes-1));
|
||||
if(mode==-1 || !ci->mode_param[mode])return(OV_EBADPACKET);
|
||||
return(ci->blocksizes[ci->mode_param[mode]->blockflag]);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,10 +3,6 @@
|
|||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265358979323846
|
||||
#endif
|
||||
|
||||
void usage(){
|
||||
fprintf(stderr,"tone <frequency_Hz>,[<amplitude>] [<frequency_Hz>,[<amplitude>]...]\n");
|
||||
exit(1);
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: simple programmatic interface for encoder mode setup
|
||||
last mod: $Id: vorbisenc.c 17028 2010-03-25 05:22:15Z xiphmont $
|
||||
last mod: $Id: vorbisenc.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -903,8 +903,12 @@ int vorbis_encode_setup_vbr(vorbis_info *vi,
|
|||
long channels,
|
||||
long rate,
|
||||
float quality){
|
||||
codec_setup_info *ci=vi->codec_setup;
|
||||
highlevel_encode_setup *hi=&ci->hi;
|
||||
codec_setup_info *ci;
|
||||
highlevel_encode_setup *hi;
|
||||
if(rate<=0) return OV_EINVAL;
|
||||
|
||||
ci=vi->codec_setup;
|
||||
hi=&ci->hi;
|
||||
|
||||
quality+=.0000001;
|
||||
if(quality>=1.)quality=.9999;
|
||||
|
@ -948,9 +952,14 @@ int vorbis_encode_setup_managed(vorbis_info *vi,
|
|||
long nominal_bitrate,
|
||||
long min_bitrate){
|
||||
|
||||
codec_setup_info *ci=vi->codec_setup;
|
||||
highlevel_encode_setup *hi=&ci->hi;
|
||||
double tnominal=nominal_bitrate;
|
||||
codec_setup_info *ci;
|
||||
highlevel_encode_setup *hi;
|
||||
double tnominal;
|
||||
if(rate<=0) return OV_EINVAL;
|
||||
|
||||
ci=vi->codec_setup;
|
||||
hi=&ci->hi;
|
||||
tnominal=nominal_bitrate;
|
||||
|
||||
if(nominal_bitrate<=0.){
|
||||
if(max_bitrate>0.){
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: stdio-based convenience library for opening/seeking/decoding
|
||||
last mod: $Id: vorbisfile.c 17573 2010-10-27 14:53:59Z xiphmont $
|
||||
last mod: $Id: vorbisfile.c 19457 2015-03-03 00:15:29Z giles $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -80,11 +80,14 @@ static long _get_data(OggVorbis_File *vf){
|
|||
/* save a tiny smidge of verbosity to make the code more readable */
|
||||
static int _seek_helper(OggVorbis_File *vf,ogg_int64_t offset){
|
||||
if(vf->datasource){
|
||||
if(!(vf->callbacks.seek_func)||
|
||||
(vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET) == -1)
|
||||
return OV_EREAD;
|
||||
vf->offset=offset;
|
||||
ogg_sync_reset(&vf->oy);
|
||||
/* only seek if the file position isn't already there */
|
||||
if(vf->offset != offset){
|
||||
if(!(vf->callbacks.seek_func)||
|
||||
(vf->callbacks.seek_func)(vf->datasource, offset, SEEK_SET) == -1)
|
||||
return OV_EREAD;
|
||||
vf->offset=offset;
|
||||
ogg_sync_reset(&vf->oy);
|
||||
}
|
||||
}else{
|
||||
/* shouldn't happen unless someone writes a broken callback */
|
||||
return OV_EFAULT;
|
||||
|
@ -138,14 +141,12 @@ static ogg_int64_t _get_next_page(OggVorbis_File *vf,ogg_page *og,
|
|||
}
|
||||
}
|
||||
|
||||
/* find the latest page beginning before the current stream cursor
|
||||
position. Much dirtier than the above as Ogg doesn't have any
|
||||
backward search linkage. no 'readp' as it will certainly have to
|
||||
read. */
|
||||
/* find the latest page beginning before the passed in position. Much
|
||||
dirtier than the above as Ogg doesn't have any backward search
|
||||
linkage. no 'readp' as it will certainly have to read. */
|
||||
/* returns offset or OV_EREAD, OV_FAULT */
|
||||
static ogg_int64_t _get_prev_page(OggVorbis_File *vf,ogg_page *og){
|
||||
ogg_int64_t begin=vf->offset;
|
||||
ogg_int64_t end=begin;
|
||||
static ogg_int64_t _get_prev_page(OggVorbis_File *vf,ogg_int64_t begin,ogg_page *og){
|
||||
ogg_int64_t end = begin;
|
||||
ogg_int64_t ret;
|
||||
ogg_int64_t offset=-1;
|
||||
|
||||
|
@ -220,11 +221,10 @@ static int _lookup_page_serialno(ogg_page *og, long *serialno_list, int n){
|
|||
info of last page of the matching serial number instead of the very
|
||||
last page. If no page of the specified serialno is seen, it will
|
||||
return the info of last page and alter *serialno. */
|
||||
static ogg_int64_t _get_prev_page_serial(OggVorbis_File *vf,
|
||||
static ogg_int64_t _get_prev_page_serial(OggVorbis_File *vf, ogg_int64_t begin,
|
||||
long *serial_list, int serial_n,
|
||||
int *serialno, ogg_int64_t *granpos){
|
||||
ogg_page og;
|
||||
ogg_int64_t begin=vf->offset;
|
||||
ogg_int64_t end=begin;
|
||||
ogg_int64_t ret;
|
||||
|
||||
|
@ -438,9 +438,11 @@ static ogg_int64_t _initial_pcmoffset(OggVorbis_File *vf, vorbis_info *vi){
|
|||
while((result=ogg_stream_packetout(&vf->os,&op))){
|
||||
if(result>0){ /* ignore holes */
|
||||
long thisblock=vorbis_packet_blocksize(vi,&op);
|
||||
if(lastblock!=-1)
|
||||
accumulated+=(lastblock+thisblock)>>2;
|
||||
lastblock=thisblock;
|
||||
if(thisblock>=0){
|
||||
if(lastblock!=-1)
|
||||
accumulated+=(lastblock+thisblock)>>2;
|
||||
lastblock=thisblock;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -494,10 +496,10 @@ static int _bisect_forward_serialno(OggVorbis_File *vf,
|
|||
down to (or just started with) a single link. Now we need to
|
||||
find the last vorbis page belonging to the first vorbis stream
|
||||
for this link. */
|
||||
|
||||
searched = end;
|
||||
while(endserial != serialno){
|
||||
endserial = serialno;
|
||||
vf->offset=_get_prev_page_serial(vf,currentno_list,currentnos,&endserial,&endgran);
|
||||
searched=_get_prev_page_serial(vf,searched,currentno_list,currentnos,&endserial,&endgran);
|
||||
}
|
||||
|
||||
vf->links=m+1;
|
||||
|
@ -518,10 +520,15 @@ static int _bisect_forward_serialno(OggVorbis_File *vf,
|
|||
|
||||
}else{
|
||||
|
||||
/* last page is not in the starting stream's serial number list,
|
||||
so we have multiple links. Find where the stream that begins
|
||||
our bisection ends. */
|
||||
|
||||
long *next_serialno_list=NULL;
|
||||
int next_serialnos=0;
|
||||
vorbis_info vi;
|
||||
vorbis_comment vc;
|
||||
int testserial = serialno+1;
|
||||
|
||||
/* the below guards against garbage seperating the last and
|
||||
first pages of two links. */
|
||||
|
@ -534,10 +541,8 @@ static int _bisect_forward_serialno(OggVorbis_File *vf,
|
|||
bisect=(searched+endsearched)/2;
|
||||
}
|
||||
|
||||
if(bisect != vf->offset){
|
||||
ret=_seek_helper(vf,bisect);
|
||||
if(ret)return(ret);
|
||||
}
|
||||
ret=_seek_helper(vf,bisect);
|
||||
if(ret)return(ret);
|
||||
|
||||
last=_get_next_page(vf,&og,-1);
|
||||
if(last==OV_EREAD)return(OV_EREAD);
|
||||
|
@ -550,28 +555,22 @@ static int _bisect_forward_serialno(OggVorbis_File *vf,
|
|||
}
|
||||
|
||||
/* Bisection point found */
|
||||
|
||||
/* for the time being, fetch end PCM offset the simple way */
|
||||
{
|
||||
int testserial = serialno+1;
|
||||
vf->offset = next;
|
||||
while(testserial != serialno){
|
||||
testserial = serialno;
|
||||
vf->offset=_get_prev_page_serial(vf,currentno_list,currentnos,&testserial,&searchgran);
|
||||
}
|
||||
searched = next;
|
||||
while(testserial != serialno){
|
||||
testserial = serialno;
|
||||
searched = _get_prev_page_serial(vf,searched,currentno_list,currentnos,&testserial,&searchgran);
|
||||
}
|
||||
|
||||
if(vf->offset!=next){
|
||||
ret=_seek_helper(vf,next);
|
||||
if(ret)return(ret);
|
||||
}
|
||||
ret=_seek_helper(vf,next);
|
||||
if(ret)return(ret);
|
||||
|
||||
ret=_fetch_headers(vf,&vi,&vc,&next_serialno_list,&next_serialnos,NULL);
|
||||
if(ret)return(ret);
|
||||
serialno = vf->os.serialno;
|
||||
dataoffset = vf->offset;
|
||||
|
||||
/* this will consume a page, however the next bistection always
|
||||
/* this will consume a page, however the next bisection always
|
||||
starts with a raw seek */
|
||||
pcmoffset = _initial_pcmoffset(vf,&vi);
|
||||
|
||||
|
@ -638,11 +637,11 @@ static int _open_seekable2(OggVorbis_File *vf){
|
|||
/* Get the offset of the last page of the physical bitstream, or, if
|
||||
we're lucky the last vorbis page of this link as most OggVorbis
|
||||
files will contain a single logical bitstream */
|
||||
end=_get_prev_page_serial(vf,vf->serialnos+2,vf->serialnos[1],&endserial,&endgran);
|
||||
end=_get_prev_page_serial(vf,vf->end,vf->serialnos+2,vf->serialnos[1],&endserial,&endgran);
|
||||
if(end<0)return(end);
|
||||
|
||||
/* now determine bitstream structure recursively */
|
||||
if(_bisect_forward_serialno(vf,0,dataoffset,vf->offset,endgran,endserial,
|
||||
if(_bisect_forward_serialno(vf,0,dataoffset,end,endgran,endserial,
|
||||
vf->serialnos+2,vf->serialnos[1],0)<0)return(OV_EREAD);
|
||||
|
||||
vf->offsets[0]=0;
|
||||
|
@ -1055,7 +1054,11 @@ int ov_halfrate_p(OggVorbis_File *vf){
|
|||
/* Only partially open the vorbis file; test for Vorbisness, and load
|
||||
the headers for the first chain. Do not seek (although test for
|
||||
seekability). Use ov_test_open to finish opening the file, else
|
||||
ov_clear to close/free it. Same return codes as open. */
|
||||
ov_clear to close/free it. Same return codes as open.
|
||||
|
||||
Note that vorbisfile does _not_ take ownership of the file if the
|
||||
call fails; the calling applicaiton is responsible for closing the file
|
||||
if this call returns an error. */
|
||||
|
||||
int ov_test_callbacks(void *f,OggVorbis_File *vf,
|
||||
const char *initial,long ibytes,ov_callbacks callbacks)
|
||||
|
@ -1417,22 +1420,41 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){
|
|||
if(pos>=total)break;
|
||||
}
|
||||
|
||||
/* search within the logical bitstream for the page with the highest
|
||||
pcm_pos preceding (or equal to) pos. There is a danger here;
|
||||
missing pages or incorrect frame number information in the
|
||||
bitstream could make our task impossible. Account for that (it
|
||||
would be an error condition) */
|
||||
/* Search within the logical bitstream for the page with the highest
|
||||
pcm_pos preceding pos. If we're looking for a position on the
|
||||
first page, bisection will halt without finding our position as
|
||||
it's before the first explicit granulepos fencepost. That case is
|
||||
handled separately below.
|
||||
|
||||
There is a danger here; missing pages or incorrect frame number
|
||||
information in the bitstream could make our task impossible.
|
||||
Account for that (it would be an error condition) */
|
||||
|
||||
/* new search algorithm originally by HB (Nicholas Vinen) */
|
||||
|
||||
/* new search algorithm by HB (Nicholas Vinen) */
|
||||
{
|
||||
ogg_int64_t end=vf->offsets[link+1];
|
||||
ogg_int64_t begin=vf->offsets[link];
|
||||
ogg_int64_t begin=vf->dataoffsets[link];
|
||||
ogg_int64_t begintime = vf->pcmlengths[link*2];
|
||||
ogg_int64_t endtime = vf->pcmlengths[link*2+1]+begintime;
|
||||
ogg_int64_t target=pos-total+begintime;
|
||||
ogg_int64_t best=begin;
|
||||
ogg_int64_t best=-1;
|
||||
int got_page=0;
|
||||
|
||||
ogg_page og;
|
||||
|
||||
/* if we have only one page, there will be no bisection. Grab the page here */
|
||||
if(begin==end){
|
||||
result=_seek_helper(vf,begin);
|
||||
if(result) goto seek_error;
|
||||
|
||||
result=_get_next_page(vf,&og,1);
|
||||
if(result<0) goto seek_error;
|
||||
|
||||
got_page=1;
|
||||
}
|
||||
|
||||
/* bisection loop */
|
||||
while(begin<end){
|
||||
ogg_int64_t bisect;
|
||||
|
||||
|
@ -1447,51 +1469,80 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){
|
|||
bisect=begin;
|
||||
}
|
||||
|
||||
if(bisect!=vf->offset){
|
||||
result=_seek_helper(vf,bisect);
|
||||
if(result) goto seek_error;
|
||||
}
|
||||
result=_seek_helper(vf,bisect);
|
||||
if(result) goto seek_error;
|
||||
|
||||
/* read loop within the bisection loop */
|
||||
while(begin<end){
|
||||
result=_get_next_page(vf,&og,end-vf->offset);
|
||||
if(result==OV_EREAD) goto seek_error;
|
||||
if(result<0){
|
||||
/* there is no next page! */
|
||||
if(bisect<=begin+1)
|
||||
end=begin; /* found it */
|
||||
/* No bisection left to perform. We've either found the
|
||||
best candidate already or failed. Exit loop. */
|
||||
end=begin;
|
||||
else{
|
||||
/* We tried to load a fraction of the last page; back up a
|
||||
bit and try to get the whole last page */
|
||||
if(bisect==0) goto seek_error;
|
||||
bisect-=CHUNKSIZE;
|
||||
|
||||
/* don't repeat/loop on a read we've already performed */
|
||||
if(bisect<=begin)bisect=begin+1;
|
||||
|
||||
/* seek and cntinue bisection */
|
||||
result=_seek_helper(vf,bisect);
|
||||
if(result) goto seek_error;
|
||||
}
|
||||
}else{
|
||||
ogg_int64_t granulepos;
|
||||
got_page=1;
|
||||
|
||||
/* got a page. analyze it */
|
||||
/* only consider pages from primary vorbis stream */
|
||||
if(ogg_page_serialno(&og)!=vf->serialnos[link])
|
||||
continue;
|
||||
|
||||
/* only consider pages with the granulepos set */
|
||||
granulepos=ogg_page_granulepos(&og);
|
||||
if(granulepos==-1)continue;
|
||||
|
||||
if(granulepos<target){
|
||||
/* this page is a successful candidate! Set state */
|
||||
|
||||
best=result; /* raw offset of packet with granulepos */
|
||||
begin=vf->offset; /* raw offset of next page */
|
||||
begintime=granulepos;
|
||||
|
||||
/* if we're before our target but within a short distance,
|
||||
don't bisect; read forward */
|
||||
if(target-begintime>44100)break;
|
||||
bisect=begin; /* *not* begin + 1 */
|
||||
|
||||
bisect=begin; /* *not* begin + 1 as above */
|
||||
}else{
|
||||
if(bisect<=begin+1)
|
||||
end=begin; /* found it */
|
||||
else{
|
||||
if(end==vf->offset){ /* we're pretty close - we'd be stuck in */
|
||||
|
||||
/* This is one of our pages, but the granpos is
|
||||
post-target; it is not a bisection return
|
||||
candidate. (The only way we'd use it is if it's the
|
||||
first page in the stream; we handle that case later
|
||||
outside the bisection) */
|
||||
if(bisect<=begin+1){
|
||||
/* No bisection left to perform. We've either found the
|
||||
best candidate already or failed. Exit loop. */
|
||||
end=begin;
|
||||
}else{
|
||||
if(end==vf->offset){
|
||||
/* bisection read to the end; use the known page
|
||||
boundary (result) to update bisection, back up a
|
||||
little bit, and try again */
|
||||
end=result;
|
||||
bisect-=CHUNKSIZE; /* an endless loop otherwise. */
|
||||
bisect-=CHUNKSIZE;
|
||||
if(bisect<=begin)bisect=begin+1;
|
||||
result=_seek_helper(vf,bisect);
|
||||
if(result) goto seek_error;
|
||||
}else{
|
||||
/* Normal bisection */
|
||||
end=bisect;
|
||||
endtime=granulepos;
|
||||
break;
|
||||
|
@ -1502,9 +1553,46 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){
|
|||
}
|
||||
}
|
||||
|
||||
/* found our page. seek to it, update pcm offset. Easier case than
|
||||
raw_seek, don't keep packets preceding granulepos. */
|
||||
{
|
||||
/* Out of bisection: did it 'fail?' */
|
||||
if(best == -1){
|
||||
|
||||
/* Check the 'looking for data in first page' special case;
|
||||
bisection would 'fail' because our search target was before the
|
||||
first PCM granule position fencepost. */
|
||||
|
||||
if(got_page &&
|
||||
begin == vf->dataoffsets[link] &&
|
||||
ogg_page_serialno(&og)==vf->serialnos[link]){
|
||||
|
||||
/* Yes, this is the beginning-of-stream case. We already have
|
||||
our page, right at the beginning of PCM data. Set state
|
||||
and return. */
|
||||
|
||||
vf->pcm_offset=total;
|
||||
|
||||
if(link!=vf->current_link){
|
||||
/* Different link; dump entire decode machine */
|
||||
_decode_clear(vf);
|
||||
|
||||
vf->current_link=link;
|
||||
vf->current_serialno=vf->serialnos[link];
|
||||
vf->ready_state=STREAMSET;
|
||||
|
||||
}else{
|
||||
vorbis_synthesis_restart(&vf->vd);
|
||||
}
|
||||
|
||||
ogg_stream_reset_serialno(&vf->os,vf->current_serialno);
|
||||
ogg_stream_pagein(&vf->os,&og);
|
||||
|
||||
}else
|
||||
goto seek_error;
|
||||
|
||||
}else{
|
||||
|
||||
/* Bisection found our page. seek to it, update pcm offset. Easier case than
|
||||
raw_seek, don't keep packets preceding granulepos. */
|
||||
|
||||
ogg_page og;
|
||||
ogg_packet op;
|
||||
|
||||
|
@ -1534,23 +1622,23 @@ int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos){
|
|||
while(1){
|
||||
result=ogg_stream_packetpeek(&vf->os,&op);
|
||||
if(result==0){
|
||||
/* !!! the packet finishing this page originated on a
|
||||
preceding page. Keep fetching previous pages until we
|
||||
get one with a granulepos or without the 'continued' flag
|
||||
set. Then just use raw_seek for simplicity. */
|
||||
|
||||
result=_seek_helper(vf,best);
|
||||
if(result<0) goto seek_error;
|
||||
|
||||
while(1){
|
||||
result=_get_prev_page(vf,&og);
|
||||
/* No packet returned; we exited the bisection with 'best'
|
||||
pointing to a page with a granule position, so the packet
|
||||
finishing this page ('best') originated on a preceding
|
||||
page. Keep fetching previous pages until we get one with
|
||||
a granulepos or without the 'continued' flag set. Then
|
||||
just use raw_seek for simplicity. */
|
||||
/* Do not rewind past the beginning of link data; if we do,
|
||||
it's either a bug or a broken stream */
|
||||
result=best;
|
||||
while(result>vf->dataoffsets[link]){
|
||||
result=_get_prev_page(vf,result,&og);
|
||||
if(result<0) goto seek_error;
|
||||
if(ogg_page_serialno(&og)==vf->current_serialno &&
|
||||
(ogg_page_granulepos(&og)>-1 ||
|
||||
!ogg_page_continued(&og))){
|
||||
return ov_raw_seek(vf,result);
|
||||
}
|
||||
vf->offset=result;
|
||||
}
|
||||
}
|
||||
if(result<0){
|
||||
|
@ -2054,14 +2142,14 @@ long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int length,
|
|||
}
|
||||
}
|
||||
|
||||
extern float *vorbis_window(vorbis_dsp_state *v,int W);
|
||||
extern const float *vorbis_window(vorbis_dsp_state *v,int W);
|
||||
|
||||
static void _ov_splice(float **pcm,float **lappcm,
|
||||
int n1, int n2,
|
||||
int ch1, int ch2,
|
||||
float *w1, float *w2){
|
||||
const float *w1, const float *w2){
|
||||
int i,j;
|
||||
float *w=w1;
|
||||
const float *w=w1;
|
||||
int n=n1;
|
||||
|
||||
if(n1>n2){
|
||||
|
@ -2169,7 +2257,7 @@ int ov_crosslap(OggVorbis_File *vf1, OggVorbis_File *vf2){
|
|||
vorbis_info *vi1,*vi2;
|
||||
float **lappcm;
|
||||
float **pcm;
|
||||
float *w1,*w2;
|
||||
const float *w1,*w2;
|
||||
int n1,n2,i,ret,hs1,hs2;
|
||||
|
||||
if(vf1==vf2)return(0); /* degenerate case */
|
||||
|
@ -2223,7 +2311,7 @@ static int _ov_64_seek_lap(OggVorbis_File *vf,ogg_int64_t pos,
|
|||
vorbis_info *vi;
|
||||
float **lappcm;
|
||||
float **pcm;
|
||||
float *w1,*w2;
|
||||
const float *w1,*w2;
|
||||
int n1,n2,ch1,ch2,hs;
|
||||
int i,ret;
|
||||
|
||||
|
@ -2284,7 +2372,7 @@ static int _ov_d_seek_lap(OggVorbis_File *vf,double pos,
|
|||
vorbis_info *vi;
|
||||
float **lappcm;
|
||||
float **pcm;
|
||||
float *w1,*w2;
|
||||
const float *w1,*w2;
|
||||
int n1,n2,ch1,ch2,hs;
|
||||
int i,ret;
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
********************************************************************
|
||||
|
||||
function: window functions
|
||||
last mod: $Id: window.c 16227 2009-07-08 06:58:46Z xiphmont $
|
||||
last mod: $Id: window.c 19028 2013-12-02 23:23:39Z tterribe $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
|||
#include <math.h>
|
||||
#include "os.h"
|
||||
#include "misc.h"
|
||||
#include "window.h"
|
||||
|
||||
static const float vwin64[32] = {
|
||||
0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F,
|
||||
|
|
|
@ -11,14 +11,14 @@
|
|||
********************************************************************
|
||||
|
||||
function: window functions
|
||||
last mod: $Id: window.h 13293 2007-07-24 00:09:47Z xiphmont $
|
||||
last mod: $Id: window.h 19028 2013-12-02 23:23:39Z tterribe $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
#ifndef _V_WINDOW_
|
||||
#define _V_WINDOW_
|
||||
|
||||
extern float *_vorbis_window_get(int n);
|
||||
extern const float *_vorbis_window_get(int n);
|
||||
extern void _vorbis_apply_window(float *d,int *winno,long *blocksizes,
|
||||
int lW,int W,int nW);
|
||||
|
||||
|
|
Loading…
Reference in New Issue