Merge pull request #1971 from ChronoAndross/5_1-new
Update Vorbis from 1.3.2 to 1.3.6. Updating to this version addresses…
@@ -0,0 +1,40 @@
|
|||||||
|
*.o
|
||||||
|
*.lo
|
||||||
|
*.la
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
aclocal.m4
|
||||||
|
configure
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
autom4te.cache
|
||||||
|
compile
|
||||||
|
config.guess
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.h.in~
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
libtool
|
||||||
|
ltmain.sh
|
||||||
|
missing
|
||||||
|
stamp-h1
|
||||||
|
m4/libtool.m4
|
||||||
|
m4/ltoptions.m4
|
||||||
|
m4/ltsugar.m4
|
||||||
|
m4/ltversion.m4
|
||||||
|
m4/lt~obsolete.m4
|
||||||
|
libvorbis.spec
|
||||||
|
vorbis-uninstalled.pc
|
||||||
|
vorbis.pc
|
||||||
|
vorbisenc-uninstalled.pc
|
||||||
|
vorbisenc.pc
|
||||||
|
vorbisfile-uninstalled.pc
|
||||||
|
vorbisfile.pc
|
||||||
|
doc/Doxyfile
|
||||||
|
doc/doxygen-build.stamp
|
||||||
|
lib/test_sharedbook
|
||||||
|
test/test
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
language: c
|
||||||
|
|
||||||
|
compiler:
|
||||||
|
- gcc
|
||||||
|
- clang
|
||||||
|
|
||||||
|
env:
|
||||||
|
- BUILD_SYSTEM=AUTOTOOLS
|
||||||
|
- BUILD_SYSTEM=CMAKE
|
||||||
|
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- libogg-dev
|
||||||
|
|
||||||
|
script:
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "AUTOTOOLS" ]] ; then ./autogen.sh ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "AUTOTOOLS" ]] ; then ./configure ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "AUTOTOOLS" ]] ; then make -j2 V=1 distcheck ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "CMAKE" ]] ; then mkdir build ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "CMAKE" ]] ; then pushd build ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "CMAKE" ]] ; then cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "CMAKE" ]] ; then cmake --build . ; fi
|
||||||
|
- if [[ "$BUILD_SYSTEM" == "CMAKE" ]] ; then popd ; fi
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
def FlagsForFile(filename, **kwargs):
|
||||||
|
return {
|
||||||
|
'flags': [
|
||||||
|
'-x', 'c',
|
||||||
|
'-g', '-Wall', '-Wextra',
|
||||||
|
'-D_REENTRANT', '-D__NO_MATH_INLINES', '-fsigned-char'
|
||||||
|
],
|
||||||
|
}
|
||||||
@@ -1,4 +1,17 @@
|
|||||||
libvorbis 1.3.5 (unreleased) -- "Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)"
|
libvorbis 1.3.6 (2018-03-16) -- "Xiph.Org libVorbis I 20180316 (Now 100% fewer shells)"
|
||||||
|
|
||||||
|
* Fix CVE-2018-5146 - out-of-bounds write on codebook decoding.
|
||||||
|
* Fix CVE-2017-14632 - free() on unitialized data
|
||||||
|
* Fix CVE-2017-14633 - out-of-bounds read
|
||||||
|
* Fix bitrate metadata parsing.
|
||||||
|
* Fix out-of-bounds read in codebook parsing.
|
||||||
|
* Fix residue vector size in Vorbis I spec.
|
||||||
|
* Appveyor support
|
||||||
|
* Travis CI support
|
||||||
|
* Add secondary CMake build system.
|
||||||
|
* Build system fixes
|
||||||
|
|
||||||
|
libvorbis 1.3.5 (2015-03-03) -- "Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)"
|
||||||
|
|
||||||
* Tolerate single-entry codebooks.
|
* Tolerate single-entry codebooks.
|
||||||
* Fix decoder crash with invalid input.
|
* Fix decoder crash with invalid input.
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.8.7)
|
||||||
|
project(vorbis)
|
||||||
|
|
||||||
|
# Required modules
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CheckIncludeFiles)
|
||||||
|
|
||||||
|
# Build options
|
||||||
|
option(BUILD_SHARED_LIBS "Build shared library" OFF)
|
||||||
|
if(APPLE)
|
||||||
|
option(BUILD_FRAMEWORK "Build Framework bundle for OSX" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_FRAMEWORK)
|
||||||
|
set(BUILD_SHARED_LIBS TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Extract project version from configure.ac
|
||||||
|
file(READ configure.ac CONFIGURE_AC_CONTENTS)
|
||||||
|
string(REGEX MATCH "AC_INIT\\(\\[libvorbis\\],\\[([0-9]*).([0-9]*).([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
||||||
|
set(PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||||
|
set(PROJECT_VERSION_MINOR ${CMAKE_MATCH_2})
|
||||||
|
set(PROJECT_VERSION_PATCH ${CMAKE_MATCH_3})
|
||||||
|
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
|
||||||
|
|
||||||
|
# Helper function to get version-info
|
||||||
|
function(get_version_info result current_var_name age_var_name revision_var_name)
|
||||||
|
string(REGEX MATCH "${current_var_name}=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
||||||
|
set(VERSION_INFO_CURRENT ${CMAKE_MATCH_1})
|
||||||
|
|
||||||
|
string(REGEX MATCH "${age_var_name}=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
||||||
|
set(VERSION_INFO_AGE ${CMAKE_MATCH_1})
|
||||||
|
|
||||||
|
string(REGEX MATCH "${revision_var_name}=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
||||||
|
set(VERSION_INFO_REVISION ${CMAKE_MATCH_1})
|
||||||
|
|
||||||
|
math(EXPR VERSION_INFO_CURRENT_MINUS_AGE "${VERSION_INFO_CURRENT} - ${VERSION_INFO_AGE}")
|
||||||
|
|
||||||
|
set(${result} "${VERSION_INFO_CURRENT_MINUS_AGE}.${VERSION_INFO_AGE}.${VERSION_INFO_REVISION}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# Helper function to configure pkg-config files
|
||||||
|
function(configure_pkg_config_file pkg_config_file_in)
|
||||||
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(exec_prefix ${CMAKE_INSTALL_FULL_BINDIR})
|
||||||
|
set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||||
|
set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
||||||
|
set(VERSION ${PROJECT_VERSION})
|
||||||
|
string(REPLACE ".in" "" pkg_config_file ${pkg_config_file_in})
|
||||||
|
configure_file(${pkg_config_file_in} ${pkg_config_file} @ONLY)
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}")
|
||||||
|
|
||||||
|
# Find ogg dependency
|
||||||
|
if(NOT OGG_ROOT)
|
||||||
|
find_package(PkgConfig QUIET)
|
||||||
|
pkg_check_modules(PC_OGG QUIET ogg)
|
||||||
|
find_path(OGG_INCLUDE_DIRS NAMES ogg/ogg.h HINTS ${PC_OGG_INCLUDE_DIRS} PATH_SUFFIXES ogg)
|
||||||
|
find_library(OGG_LIBRARIES NAMES ogg HINTS ${PC_OGG_LIBRARY_DIRS})
|
||||||
|
else()
|
||||||
|
find_path(OGG_INCLUDE_DIRS NAMES ogg/ogg.h HINTS ${OGG_ROOT}/include PATH_SUFFIXES ogg)
|
||||||
|
find_library(OGG_LIBRARIES NAMES ogg HINTS ${OGG_ROOT}/lib ${OGG_ROOT}/lib64)
|
||||||
|
endif()
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(OGG DEFAULT_MSG OGG_INCLUDE_DIRS OGG_LIBRARIES)
|
||||||
|
|
||||||
|
add_subdirectory(lib)
|
||||||
|
|
||||||
|
configure_pkg_config_file(vorbis.pc.in)
|
||||||
|
configure_pkg_config_file(vorbisenc.pc.in)
|
||||||
|
configure_pkg_config_file(vorbisfile.pc.in)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/vorbis.pc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/vorbisenc.pc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/vorbisfile.pc
|
||||||
|
DESTINATION
|
||||||
|
${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||||
|
)
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2002-2015 Xiph.org Foundation
|
Copyright (c) 2002-2018 Xiph.org Foundation
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions
|
modification, are permitted provided that the following conditions
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
## Process this file with automake to produce Makefile.in
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
#AUTOMAKE_OPTIONS = 1.7 foreign dist-zip dist-bzip2
|
|
||||||
AUTOMAKE_OPTIONS = foreign 1.11 dist-zip dist-xz
|
AUTOMAKE_OPTIONS = foreign 1.11 dist-zip dist-xz
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = m4 include vq lib test doc
|
SUBDIRS = m4 include vq lib test doc
|
||||||
|
|
||||||
if BUILD_EXAMPLES
|
if BUILD_EXAMPLES
|
||||||
@@ -17,7 +18,7 @@ pkgconfig_DATA = vorbis.pc vorbisenc.pc vorbisfile.pc
|
|||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
CHANGES COPYING \
|
CHANGES COPYING \
|
||||||
todo.txt autogen.sh \
|
autogen.sh \
|
||||||
libvorbis.spec libvorbis.spec.in \
|
libvorbis.spec libvorbis.spec.in \
|
||||||
vorbis.m4 \
|
vorbis.m4 \
|
||||||
vorbis.pc.in vorbisenc.pc.in vorbisfile.pc.in \
|
vorbis.pc.in vorbisenc.pc.in vorbisfile.pc.in \
|
||||||
@@ -25,7 +26,7 @@ EXTRA_DIST = \
|
|||||||
vorbisenc-uninstalled.pc.in \
|
vorbisenc-uninstalled.pc.in \
|
||||||
vorbisfile-uninstalled.pc.in \
|
vorbisfile-uninstalled.pc.in \
|
||||||
symbian \
|
symbian \
|
||||||
macos macosx win32
|
macosx win32
|
||||||
|
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = --enable-docs
|
DISTCHECK_CONFIGURE_FLAGS = --enable-docs
|
||||||
|
|||||||
@@ -1,134 +0,0 @@
|
|||||||
********************************************************************
|
|
||||||
* *
|
|
||||||
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
|
||||||
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
|
||||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
|
||||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
|
||||||
* *
|
|
||||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 *
|
|
||||||
* by the Xiph.org Foundation, http://www.xiph.org/ *
|
|
||||||
* *
|
|
||||||
********************************************************************
|
|
||||||
|
|
||||||
Vorbis is a general purpose audio and music encoding format
|
|
||||||
contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond
|
|
||||||
MPEG audio layer 3. Unlike the MPEG sponsored formats (and other
|
|
||||||
proprietary formats such as RealAudio G2 and Windows' flavor of the
|
|
||||||
month), the Vorbis CODEC specification belongs to the public domain.
|
|
||||||
All the technical details are published and documented, and any
|
|
||||||
software entity may make full use of the format without license
|
|
||||||
fee, royalty or patent concerns.
|
|
||||||
|
|
||||||
This package contains:
|
|
||||||
|
|
||||||
* libvorbis, a BSD-style license software implementation of
|
|
||||||
the Vorbis specification by the Xiph.Org Foundation
|
|
||||||
(http://www.xiph.org/)
|
|
||||||
|
|
||||||
* libvorbisfile, a BSD-style license convenience library
|
|
||||||
built on Vorbis designed to simplify common uses
|
|
||||||
|
|
||||||
* libvorbisenc, a BSD-style license library that provides a simple,
|
|
||||||
programmatic encoding setup interface
|
|
||||||
|
|
||||||
* example code making use of libogg, libvorbis, libvorbisfile and
|
|
||||||
libvorbisenc
|
|
||||||
|
|
||||||
WHAT'S HERE:
|
|
||||||
|
|
||||||
This source distribution includes libvorbis and an example
|
|
||||||
encoder/player to demonstrate use of libvorbis as well as
|
|
||||||
documentation on the Ogg Vorbis audio coding format.
|
|
||||||
|
|
||||||
You'll need libogg (distributed separately) to compile this library.
|
|
||||||
A more comprehensive set of utilities is available in the vorbis-tools
|
|
||||||
package.
|
|
||||||
|
|
||||||
Directory:
|
|
||||||
|
|
||||||
./lib The source for the libraries, a BSD-license implementation
|
|
||||||
of the public domain Ogg Vorbis audio encoding format.
|
|
||||||
|
|
||||||
./include Library API headers
|
|
||||||
|
|
||||||
./debian Rules/spec files for building Debian .deb packages
|
|
||||||
|
|
||||||
./doc Vorbis documentation
|
|
||||||
|
|
||||||
./examples Example code illustrating programmatic use of libvorbis,
|
|
||||||
libvorbisfile and libvorbisenc
|
|
||||||
|
|
||||||
./mac Codewarrior project files and build tweaks for MacOS.
|
|
||||||
|
|
||||||
./macosx Project files for MacOS X.
|
|
||||||
|
|
||||||
./win32 Win32 projects files and build automation
|
|
||||||
|
|
||||||
./vq Internal utilities for training/building new LSP/residue
|
|
||||||
and auxiliary codebooks.
|
|
||||||
|
|
||||||
CONTACT:
|
|
||||||
|
|
||||||
The Ogg homepage is located at 'http://www.xiph.org/ogg/'.
|
|
||||||
Vorbis's homepage is located at 'http://www.xiph.org/vorbis/'.
|
|
||||||
Up to date technical documents, contact information, source code and
|
|
||||||
pre-built utilities may be found there.
|
|
||||||
|
|
||||||
The user website for Ogg Vorbis software and audio is http://vorbis.com/
|
|
||||||
|
|
||||||
BUILDING FROM TRUNK:
|
|
||||||
|
|
||||||
Development source is under subversion revision control at
|
|
||||||
https://svn.xiph.org/trunk/vorbis/. You will also need the
|
|
||||||
newest versions of autoconf, automake, libtool and pkg-config in
|
|
||||||
order to compile Vorbis from development source. A configure script
|
|
||||||
is provided for you in the source tarball distributions.
|
|
||||||
|
|
||||||
[update or checkout latest source]
|
|
||||||
./autogen.sh
|
|
||||||
make
|
|
||||||
|
|
||||||
and as root if desired:
|
|
||||||
|
|
||||||
make install
|
|
||||||
|
|
||||||
This will install the Vorbis libraries (static and shared) into
|
|
||||||
/usr/local/lib, includes into /usr/local/include and API manpages
|
|
||||||
(once we write some) into /usr/local/man.
|
|
||||||
|
|
||||||
Documentation building requires xsltproc and pdfxmltex.
|
|
||||||
|
|
||||||
BUILDING FROM TARBALL DISTRIBUTIONS:
|
|
||||||
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
|
|
||||||
and optionally (as root):
|
|
||||||
make install
|
|
||||||
|
|
||||||
BUILDING RPMS:
|
|
||||||
|
|
||||||
after normal configuring:
|
|
||||||
|
|
||||||
make dist
|
|
||||||
rpm -ta libvorbis-<version>.tar.gz
|
|
||||||
|
|
||||||
BUILDING ON MACOS 9:
|
|
||||||
|
|
||||||
Vorbis on MacOS 9 is built using Metroworks CodeWarrior. To build it,
|
|
||||||
first verify that the Ogg libraries are already built following the
|
|
||||||
instructions in the Ogg module README. Open vorbis/mac/libvorbis.mcp,
|
|
||||||
switch to the "Targets" pane, select everything, and make the project.
|
|
||||||
Do the same thing to build libvorbisenc.mcp, and libvorbisfile.mcp (in
|
|
||||||
that order). In vorbis/mac/Output you will now have both debug and final
|
|
||||||
versions of Vorbis shared libraries to link your projects against.
|
|
||||||
|
|
||||||
To build a project using Ogg Vorbis, add access paths to your
|
|
||||||
CodeWarrior project for the ogg/include, ogg/mac/Output,
|
|
||||||
vorbis/include, and vorbis/mac/Output folders. Be sure that
|
|
||||||
"interpret DOS and Unix paths" is turned on in your project; it can
|
|
||||||
be found in the "access paths" pane in your project settings. Now
|
|
||||||
simply add the shared libraries you need to your project (OggLib and
|
|
||||||
VorbisLib at least) and #include "ogg/ogg.h" and "vorbis/codec.h"
|
|
||||||
wherever you need to access Ogg and Vorbis functionality.
|
|
||||||
|
|
||||||
@@ -0,0 +1,149 @@
|
|||||||
|
# Vorbis
|
||||||
|
|
||||||
|
[](https://travis-ci.org/xiph/vorbis)
|
||||||
|
[](https://mf4.xiph.org/jenkins/job/libvorbis/)
|
||||||
|
[](https://ci.appveyor.com/project/rillian/vorbis)
|
||||||
|
|
||||||
|
Vorbis is a general purpose audio and music encoding format
|
||||||
|
contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond
|
||||||
|
MPEG audio layer 3. Unlike the MPEG sponsored formats (and other
|
||||||
|
proprietary formats such as RealAudio G2 and Windows' flavor of the
|
||||||
|
month), the Vorbis CODEC specification belongs to the public domain.
|
||||||
|
All the technical details are published and documented, and any
|
||||||
|
software entity may make full use of the format without license
|
||||||
|
fee, royalty or patent concerns.
|
||||||
|
|
||||||
|
This package contains:
|
||||||
|
|
||||||
|
- libvorbis, a BSD-style license software implementation of
|
||||||
|
the Vorbis specification by the Xiph.Org Foundation
|
||||||
|
(https://www.xiph.org/)
|
||||||
|
|
||||||
|
- libvorbisfile, a BSD-style license convenience library
|
||||||
|
built on Vorbis designed to simplify common uses
|
||||||
|
|
||||||
|
- libvorbisenc, a BSD-style license library that provides a simple,
|
||||||
|
programmatic encoding setup interface
|
||||||
|
|
||||||
|
- example code making use of libogg, libvorbis, libvorbisfile and
|
||||||
|
libvorbisenc
|
||||||
|
|
||||||
|
## What's here ##
|
||||||
|
|
||||||
|
This source distribution includes libvorbis and an example
|
||||||
|
encoder/player to demonstrate use of libvorbis as well as
|
||||||
|
documentation on the Ogg Vorbis audio coding format.
|
||||||
|
|
||||||
|
You'll need libogg (distributed separately) to compile this library.
|
||||||
|
A more comprehensive set of utilities is available in the vorbis-tools
|
||||||
|
package.
|
||||||
|
|
||||||
|
Directory:
|
||||||
|
|
||||||
|
- `lib` The source for the libraries, a BSD-license implementation of the public domain Ogg Vorbis audio encoding format.
|
||||||
|
|
||||||
|
- `include` Library API headers
|
||||||
|
|
||||||
|
- `debian` Rules/spec files for building Debian .deb packages
|
||||||
|
|
||||||
|
- `doc` Vorbis documentation
|
||||||
|
|
||||||
|
- `examples` Example code illustrating programmatic use of libvorbis, libvorbisfile and libvorbisenc
|
||||||
|
|
||||||
|
- `macosx` Project files for MacOS X.
|
||||||
|
|
||||||
|
- `win32` Win32 projects files and build automation
|
||||||
|
|
||||||
|
- `vq` Internal utilities for training/building new LSP/residue and auxiliary codebooks.
|
||||||
|
|
||||||
|
## Contact ##
|
||||||
|
|
||||||
|
The Ogg homepage is located at 'https://www.xiph.org/ogg/'.
|
||||||
|
Vorbis's homepage is located at 'https://www.xiph.org/vorbis/'.
|
||||||
|
Up to date technical documents, contact information, source code and
|
||||||
|
pre-built utilities may be found there.
|
||||||
|
|
||||||
|
The user website for Ogg Vorbis software and audio is http://vorbis.com/
|
||||||
|
|
||||||
|
## Building ##
|
||||||
|
|
||||||
|
#### Building from master ####
|
||||||
|
|
||||||
|
Development source is under git revision control at
|
||||||
|
https://git.xiph.org/vorbis.git. You will also need the
|
||||||
|
newest versions of autoconf, automake, libtool and pkg-config in
|
||||||
|
order to compile Vorbis from development source. A configure script
|
||||||
|
is provided for you in the source tarball distributions.
|
||||||
|
|
||||||
|
./autogen.sh
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
|
||||||
|
and as root if desired:
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
This will install the Vorbis libraries (static and shared) into
|
||||||
|
/usr/local/lib, includes into /usr/local/include and API manpages
|
||||||
|
(once we write some) into /usr/local/man.
|
||||||
|
|
||||||
|
Documentation building requires xsltproc and pdfxmltex.
|
||||||
|
|
||||||
|
#### Building from tarball distributions ####
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
|
||||||
|
and optionally (as root):
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
#### Building RPM packages ####
|
||||||
|
|
||||||
|
after normal configuring:
|
||||||
|
|
||||||
|
make dist
|
||||||
|
rpm -ta libvorbis-<version>.tar.gz
|
||||||
|
|
||||||
|
## Building with CMake ##
|
||||||
|
|
||||||
|
Ogg supports building using [CMake](http://www.cmake.org/). CMake is a meta build system that generates native projects for each platform.
|
||||||
|
To generate projects just run cmake replacing `YOUR-PROJECT-GENERATOR` with a proper generator from a list [here](http://www.cmake.org/cmake/help/v3.2/manual/cmake-generators.7.html):
|
||||||
|
|
||||||
|
cmake -G YOUR-PROJECT-GENERATOR .
|
||||||
|
|
||||||
|
Note that by default cmake generates projects that will build static libraries.
|
||||||
|
To generate projects that will build dynamic library use `BUILD_SHARED_LIBS` option like this:
|
||||||
|
|
||||||
|
cmake -G YOUR-PROJECT-GENERATOR -DBUILD_SHARED_LIBS=1 .
|
||||||
|
|
||||||
|
After projects are generated use them as usual
|
||||||
|
|
||||||
|
#### Building on Windows ####
|
||||||
|
|
||||||
|
Use proper generator for your Visual Studio version like:
|
||||||
|
|
||||||
|
cmake -G "Visual Studio 12 2013" .
|
||||||
|
|
||||||
|
#### Building on Mac OS X ####
|
||||||
|
|
||||||
|
Use Xcode generator. To build framework run:
|
||||||
|
|
||||||
|
cmake -G Xcode -DBUILD_FRAMEWORK=1 .
|
||||||
|
|
||||||
|
#### Building on Linux ####
|
||||||
|
|
||||||
|
Use Makefile generator which is default one.
|
||||||
|
|
||||||
|
cmake .
|
||||||
|
make
|
||||||
|
|
||||||
|
## License ##
|
||||||
|
|
||||||
|
THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.
|
||||||
|
USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS
|
||||||
|
GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE
|
||||||
|
IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.
|
||||||
|
|
||||||
|
THE OggVorbis SOURCE CODE IS COPYRIGHT (C) 1994-2018
|
||||||
|
by the Xiph.Org Foundation https://www.xiph.org/
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
image: Visual Studio 2015
|
||||||
|
configuration:
|
||||||
|
- Debug
|
||||||
|
|
||||||
|
platform:
|
||||||
|
- Win32
|
||||||
|
|
||||||
|
environment:
|
||||||
|
matrix:
|
||||||
|
- BUILD_SYSTEM: MSVC
|
||||||
|
- BUILD_SYSTEM: CMAKE
|
||||||
|
|
||||||
|
install:
|
||||||
|
- git clone -q https://github.com/xiph/ogg.git %APPVEYOR_BUILD_FOLDER%\..\libogg
|
||||||
|
- if "%BUILD_SYSTEM%"=="MSVC" msbuild "%APPVEYOR_BUILD_FOLDER%\..\libogg\win32\VS2015\libogg_static.sln" /m /v:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /property:Configuration=%CONFIGURATION%;Platform=%PLATFORM%
|
||||||
|
- if "%BUILD_SYSTEM%"=="CMAKE" mkdir "%APPVEYOR_BUILD_FOLDER%\..\libogg\build"
|
||||||
|
- if "%BUILD_SYSTEM%"=="CMAKE" pushd "%APPVEYOR_BUILD_FOLDER%\..\libogg\build"
|
||||||
|
- if "%BUILD_SYSTEM%"=="CMAKE" cmake -A "%PLATFORM%" -G "Visual Studio 14 2015" -DCMAKE_INSTALL_PREFIX="%APPVEYOR_BUILD_FOLDER%\..\libogg\install" ..
|
||||||
|
- if "%BUILD_SYSTEM%"=="CMAKE" cmake --build . --config "%CONFIGURATION%" --target install -- /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
||||||
|
- if "%BUILD_SYSTEM%"=="CMAKE" popd
|
||||||
|
|
||||||
|
before_build:
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" mkdir "%APPVEYOR_BUILD_FOLDER%\build"
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" pushd "%APPVEYOR_BUILD_FOLDER%\build"
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" cmake -A "%PLATFORM%" -G "Visual Studio 14 2015" -DOGG_ROOT=%APPVEYOR_BUILD_FOLDER%\..\libogg\install ..
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" popd
|
||||||
|
|
||||||
|
build_script:
|
||||||
|
- if "%BUILD_SYSTEM%"=="MSVC" msbuild "%APPVEYOR_BUILD_FOLDER%\win32\VS2010\vorbis_dynamic.sln" /m /v:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /property:Configuration=%CONFIGURATION%;Platform=%PLATFORM%
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" pushd "%APPVEYOR_BUILD_FOLDER%\build"
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" cmake --build . --config "%CONFIGURATION%" -- /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
||||||
|
- if "%BUILD_SYSTEM%" == "CMAKE" popd
|
||||||
@@ -1,129 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Run this to set up the build system: configure, makefiles, etc.
|
# Run this to set up the build system: configure, makefiles, etc.
|
||||||
# (based on the version in enlightenment's cvs)
|
set -e
|
||||||
|
|
||||||
package="vorbis"
|
package="vorbis"
|
||||||
|
|
||||||
ACLOCAL_FLAGS="-I m4"
|
|
||||||
|
|
||||||
olddir=`pwd`
|
|
||||||
srcdir=`dirname $0`
|
srcdir=`dirname $0`
|
||||||
test -z "$srcdir" && srcdir=.
|
test -n "$srcdir" && cd "$srcdir"
|
||||||
|
|
||||||
cd "$srcdir"
|
echo "Updating build configuration files for $package, please wait...."
|
||||||
DIE=0
|
|
||||||
|
|
||||||
echo "checking for autoconf... "
|
autoreconf -if
|
||||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
|
||||||
echo
|
|
||||||
echo "You must have autoconf installed to compile $package."
|
|
||||||
echo "Download the appropriate package for your distribution,"
|
|
||||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
|
||||||
DIE=1
|
|
||||||
}
|
|
||||||
|
|
||||||
VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/"
|
|
||||||
VERSIONMKMAJ="sed -e s/\([0-9][0-9]*\)[^0-9].*/\\1/"
|
|
||||||
VERSIONMKMIN="sed -e s/.*[0-9][0-9]*\.//"
|
|
||||||
|
|
||||||
# do we need automake?
|
|
||||||
if test -r Makefile.am; then
|
|
||||||
AM_OPTIONS=`fgrep AUTOMAKE_OPTIONS Makefile.am`
|
|
||||||
AM_NEEDED=`echo $AM_OPTIONS | $VERSIONGREP`
|
|
||||||
if test x"$AM_NEEDED" = "x$AM_OPTIONS"; then
|
|
||||||
AM_NEEDED=""
|
|
||||||
fi
|
|
||||||
if test -z $AM_NEEDED; then
|
|
||||||
echo -n "checking for automake... "
|
|
||||||
AUTOMAKE=automake
|
|
||||||
ACLOCAL=aclocal
|
|
||||||
if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
AUTOMAKE=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo -n "checking for automake $AM_NEEDED or later... "
|
|
||||||
majneeded=`echo $AM_NEEDED | $VERSIONMKMAJ`
|
|
||||||
minneeded=`echo $AM_NEEDED | $VERSIONMKMIN`
|
|
||||||
for am in automake-$AM_NEEDED automake$AM_NEEDED \
|
|
||||||
automake-1.10 automake-1.9 automake-1.8 automake-1.7 automake; do
|
|
||||||
($am --version < /dev/null > /dev/null 2>&1) || continue
|
|
||||||
ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP`
|
|
||||||
maj=`echo $ver | $VERSIONMKMAJ`
|
|
||||||
min=`echo $ver | $VERSIONMKMIN`
|
|
||||||
if test $maj -eq $majneeded -a $min -ge $minneeded; then
|
|
||||||
AUTOMAKE=$am
|
|
||||||
echo $AUTOMAKE
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
test -z $AUTOMAKE && echo "no"
|
|
||||||
echo -n "checking for aclocal $AM_NEEDED or later... "
|
|
||||||
for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED \
|
|
||||||
aclocal-1.10 aclocal-1.9 aclocal-1.8 aclocal-1.7 aclocal; do
|
|
||||||
($ac --version < /dev/null > /dev/null 2>&1) || continue
|
|
||||||
ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP`
|
|
||||||
maj=`echo $ver | $VERSIONMKMAJ`
|
|
||||||
min=`echo $ver | $VERSIONMKMIN`
|
|
||||||
if test $maj -eq $majneeded -a $min -ge $minneeded; then
|
|
||||||
ACLOCAL=$ac
|
|
||||||
echo $ACLOCAL
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
test -z $ACLOCAL && echo "no"
|
|
||||||
fi
|
|
||||||
test -z $AUTOMAKE || test -z $ACLOCAL && {
|
|
||||||
echo
|
|
||||||
echo "You must have automake installed to compile $package."
|
|
||||||
echo "Download the appropriate package for your distribution,"
|
|
||||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "checking for libtool... "
|
|
||||||
for LIBTOOLIZE in libtoolize glibtoolize nope; do
|
|
||||||
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break
|
|
||||||
done
|
|
||||||
if test x$LIBTOOLIZE = xnope; then
|
|
||||||
echo "nope."
|
|
||||||
LIBTOOLIZE=libtoolize
|
|
||||||
else
|
|
||||||
echo $LIBTOOLIZE
|
|
||||||
fi
|
|
||||||
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
|
|
||||||
echo
|
|
||||||
echo "You must have libtool installed to compile $package."
|
|
||||||
echo "Download the appropriate package for your system,"
|
|
||||||
echo "or get the source from one of the GNU ftp sites"
|
|
||||||
echo "listed in http://www.gnu.org/order/ftp.html"
|
|
||||||
DIE=1
|
|
||||||
}
|
|
||||||
|
|
||||||
if test "$DIE" -eq 1; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$*"; then
|
|
||||||
echo "I am going to run ./configure with no arguments - if you wish "
|
|
||||||
echo "to pass any to it, please specify them on the $0 command line."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Generating configuration files for $package, please wait...."
|
|
||||||
|
|
||||||
echo " $ACLOCAL $ACLOCAL_FLAGS"
|
|
||||||
$ACLOCAL $ACLOCAL_FLAGS || exit 1
|
|
||||||
echo " $LIBTOOLIZE --automake"
|
|
||||||
$LIBTOOLIZE --automake || exit 1
|
|
||||||
echo " autoheader"
|
|
||||||
autoheader || exit 1
|
|
||||||
echo " $AUTOMAKE --add-missing $AUTOMAKE_FLAGS"
|
|
||||||
$AUTOMAKE --add-missing $AUTOMAKE_FLAGS || exit 1
|
|
||||||
echo " autoconf"
|
|
||||||
autoconf || exit 1
|
|
||||||
|
|
||||||
cd $olddir
|
|
||||||
$srcdir/configure --enable-maintainer-mode "$@" && echo
|
|
||||||
|
|||||||
@@ -1,347 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Wrapper for compilers which do not understand '-c -o'.
|
|
||||||
|
|
||||||
scriptversion=2012-10-14.11; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
|
||||||
# Written by Tom Tromey <[email protected]>.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# This file is maintained in Automake, please report
|
|
||||||
# bugs to <[email protected]> or send patches to
|
|
||||||
# <[email protected]>.
|
|
||||||
|
|
||||||
nl='
|
|
||||||
'
|
|
||||||
|
|
||||||
# We need space, tab and new line, in precisely that order. Quoting is
|
|
||||||
# there to prevent tools from complaining about whitespace usage.
|
|
||||||
IFS=" "" $nl"
|
|
||||||
|
|
||||||
file_conv=
|
|
||||||
|
|
||||||
# func_file_conv build_file lazy
|
|
||||||
# Convert a $build file to $host form and store it in $file
|
|
||||||
# Currently only supports Windows hosts. If the determined conversion
|
|
||||||
# type is listed in (the comma separated) LAZY, no conversion will
|
|
||||||
# take place.
|
|
||||||
func_file_conv ()
|
|
||||||
{
|
|
||||||
file=$1
|
|
||||||
case $file in
|
|
||||||
/ | /[!/]*) # absolute file, and not a UNC file
|
|
||||||
if test -z "$file_conv"; then
|
|
||||||
# lazily determine how to convert abs files
|
|
||||||
case `uname -s` in
|
|
||||||
MINGW*)
|
|
||||||
file_conv=mingw
|
|
||||||
;;
|
|
||||||
CYGWIN*)
|
|
||||||
file_conv=cygwin
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
file_conv=wine
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
case $file_conv/,$2, in
|
|
||||||
*,$file_conv,*)
|
|
||||||
;;
|
|
||||||
mingw/*)
|
|
||||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
|
||||||
;;
|
|
||||||
cygwin/*)
|
|
||||||
file=`cygpath -m "$file" || echo "$file"`
|
|
||||||
;;
|
|
||||||
wine/*)
|
|
||||||
file=`winepath -w "$file" || echo "$file"`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# func_cl_dashL linkdir
|
|
||||||
# Make cl look for libraries in LINKDIR
|
|
||||||
func_cl_dashL ()
|
|
||||||
{
|
|
||||||
func_file_conv "$1"
|
|
||||||
if test -z "$lib_path"; then
|
|
||||||
lib_path=$file
|
|
||||||
else
|
|
||||||
lib_path="$lib_path;$file"
|
|
||||||
fi
|
|
||||||
linker_opts="$linker_opts -LIBPATH:$file"
|
|
||||||
}
|
|
||||||
|
|
||||||
# func_cl_dashl library
|
|
||||||
# Do a library search-path lookup for cl
|
|
||||||
func_cl_dashl ()
|
|
||||||
{
|
|
||||||
lib=$1
|
|
||||||
found=no
|
|
||||||
save_IFS=$IFS
|
|
||||||
IFS=';'
|
|
||||||
for dir in $lib_path $LIB
|
|
||||||
do
|
|
||||||
IFS=$save_IFS
|
|
||||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
|
||||||
found=yes
|
|
||||||
lib=$dir/$lib.dll.lib
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if test -f "$dir/$lib.lib"; then
|
|
||||||
found=yes
|
|
||||||
lib=$dir/$lib.lib
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if test -f "$dir/lib$lib.a"; then
|
|
||||||
found=yes
|
|
||||||
lib=$dir/lib$lib.a
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
IFS=$save_IFS
|
|
||||||
|
|
||||||
if test "$found" != yes; then
|
|
||||||
lib=$lib.lib
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# func_cl_wrapper cl arg...
|
|
||||||
# Adjust compile command to suit cl
|
|
||||||
func_cl_wrapper ()
|
|
||||||
{
|
|
||||||
# Assume a capable shell
|
|
||||||
lib_path=
|
|
||||||
shared=:
|
|
||||||
linker_opts=
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
if test -n "$eat"; then
|
|
||||||
eat=
|
|
||||||
else
|
|
||||||
case $1 in
|
|
||||||
-o)
|
|
||||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
|
||||||
eat=1
|
|
||||||
case $2 in
|
|
||||||
*.o | *.[oO][bB][jJ])
|
|
||||||
func_file_conv "$2"
|
|
||||||
set x "$@" -Fo"$file"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
func_file_conv "$2"
|
|
||||||
set x "$@" -Fe"$file"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
-I)
|
|
||||||
eat=1
|
|
||||||
func_file_conv "$2" mingw
|
|
||||||
set x "$@" -I"$file"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-I*)
|
|
||||||
func_file_conv "${1#-I}" mingw
|
|
||||||
set x "$@" -I"$file"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-l)
|
|
||||||
eat=1
|
|
||||||
func_cl_dashl "$2"
|
|
||||||
set x "$@" "$lib"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-l*)
|
|
||||||
func_cl_dashl "${1#-l}"
|
|
||||||
set x "$@" "$lib"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-L)
|
|
||||||
eat=1
|
|
||||||
func_cl_dashL "$2"
|
|
||||||
;;
|
|
||||||
-L*)
|
|
||||||
func_cl_dashL "${1#-L}"
|
|
||||||
;;
|
|
||||||
-static)
|
|
||||||
shared=false
|
|
||||||
;;
|
|
||||||
-Wl,*)
|
|
||||||
arg=${1#-Wl,}
|
|
||||||
save_ifs="$IFS"; IFS=','
|
|
||||||
for flag in $arg; do
|
|
||||||
IFS="$save_ifs"
|
|
||||||
linker_opts="$linker_opts $flag"
|
|
||||||
done
|
|
||||||
IFS="$save_ifs"
|
|
||||||
;;
|
|
||||||
-Xlinker)
|
|
||||||
eat=1
|
|
||||||
linker_opts="$linker_opts $2"
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
set x "$@" "$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
|
||||||
func_file_conv "$1"
|
|
||||||
set x "$@" -Tp"$file"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
|
||||||
func_file_conv "$1" mingw
|
|
||||||
set x "$@" "$file"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set x "$@" "$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
if test -n "$linker_opts"; then
|
|
||||||
linker_opts="-link$linker_opts"
|
|
||||||
fi
|
|
||||||
exec "$@" $linker_opts
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
eat=
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
'')
|
|
||||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
|
||||||
exit 1;
|
|
||||||
;;
|
|
||||||
-h | --h*)
|
|
||||||
cat <<\EOF
|
|
||||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
|
||||||
|
|
||||||
Wrapper for compilers which do not understand '-c -o'.
|
|
||||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
|
||||||
arguments, and rename the output as expected.
|
|
||||||
|
|
||||||
If you are trying to build a whole package this is not the
|
|
||||||
right script to run: please start by reading the file 'INSTALL'.
|
|
||||||
|
|
||||||
Report bugs to <[email protected]>.
|
|
||||||
EOF
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
-v | --v*)
|
|
||||||
echo "compile $scriptversion"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
|
||||||
func_cl_wrapper "$@" # Doesn't return...
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ofile=
|
|
||||||
cfile=
|
|
||||||
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
if test -n "$eat"; then
|
|
||||||
eat=
|
|
||||||
else
|
|
||||||
case $1 in
|
|
||||||
-o)
|
|
||||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
|
||||||
# So we strip '-o arg' only if arg is an object.
|
|
||||||
eat=1
|
|
||||||
case $2 in
|
|
||||||
*.o | *.obj)
|
|
||||||
ofile=$2
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set x "$@" -o "$2"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*.c)
|
|
||||||
cfile=$1
|
|
||||||
set x "$@" "$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set x "$@" "$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$ofile" || test -z "$cfile"; then
|
|
||||||
# If no '-o' option was seen then we might have been invoked from a
|
|
||||||
# pattern rule where we don't need one. That is ok -- this is a
|
|
||||||
# normal compilation that the losing compiler can handle. If no
|
|
||||||
# '.c' file was seen then we are probably linking. That is also
|
|
||||||
# ok.
|
|
||||||
exec "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Name of file we expect compiler to create.
|
|
||||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
|
||||||
|
|
||||||
# Create the lock directory.
|
|
||||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
|
||||||
# that we are using for the .o file. Also, base the name on the expected
|
|
||||||
# object file name, since that is what matters with a parallel build.
|
|
||||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
|
||||||
while true; do
|
|
||||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# FIXME: race condition here if user kills between mkdir and trap.
|
|
||||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
|
||||||
|
|
||||||
# Run the compile.
|
|
||||||
"$@"
|
|
||||||
ret=$?
|
|
||||||
|
|
||||||
if test -f "$cofile"; then
|
|
||||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
|
||||||
elif test -f "${cofile}bj"; then
|
|
||||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rmdir "$lockdir"
|
|
||||||
exit $ret
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# mode: shell-script
|
|
||||||
# sh-indentation: 2
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
|
||||||
|
|
||||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
|
||||||
systems. This function is required for `alloca.c' support on those systems.
|
|
||||||
*/
|
|
||||||
#undef CRAY_STACKSEG_END
|
|
||||||
|
|
||||||
/* Define to 1 if using `alloca.c'. */
|
|
||||||
#undef C_ALLOCA
|
|
||||||
|
|
||||||
/* Define to 1 if you have `alloca', as a function or macro. */
|
|
||||||
#undef HAVE_ALLOCA
|
|
||||||
|
|
||||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
|
||||||
*/
|
|
||||||
#undef HAVE_ALLOCA_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
||||||
#undef HAVE_DLFCN_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#undef HAVE_INTTYPES_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <memory.h> header file. */
|
|
||||||
#undef HAVE_MEMORY_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
|
||||||
#undef HAVE_STDINT_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
||||||
#undef HAVE_STDLIB_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
|
||||||
#undef HAVE_STRINGS_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <string.h> header file. */
|
|
||||||
#undef HAVE_STRING_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
||||||
#undef HAVE_SYS_STAT_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
||||||
#undef HAVE_SYS_TYPES_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
|
||||||
#undef HAVE_UNISTD_H
|
|
||||||
|
|
||||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
|
||||||
#undef LT_OBJDIR
|
|
||||||
|
|
||||||
/* Name of package */
|
|
||||||
#undef PACKAGE
|
|
||||||
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
|
||||||
#undef PACKAGE_BUGREPORT
|
|
||||||
|
|
||||||
/* Define to the full name of this package. */
|
|
||||||
#undef PACKAGE_NAME
|
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
|
||||||
#undef PACKAGE_STRING
|
|
||||||
|
|
||||||
/* Define to the one symbol short name of this package. */
|
|
||||||
#undef PACKAGE_TARNAME
|
|
||||||
|
|
||||||
/* Define to the home page for this package. */
|
|
||||||
#undef PACKAGE_URL
|
|
||||||
|
|
||||||
/* Define to the version of this package. */
|
|
||||||
#undef PACKAGE_VERSION
|
|
||||||
|
|
||||||
/* If using the C implementation of alloca, define if you know the
|
|
||||||
direction of stack growth for your system; otherwise it will be
|
|
||||||
automatically deduced at runtime.
|
|
||||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
|
||||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
|
||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
|
||||||
#undef STACK_DIRECTION
|
|
||||||
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
|
||||||
#undef STDC_HEADERS
|
|
||||||
|
|
||||||
/* Version number of package */
|
|
||||||
#undef VERSION
|
|
||||||
|
|
||||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
||||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
||||||
#ifndef __cplusplus
|
|
||||||
#undef inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
|
||||||
#undef size_t
|
|
||||||
@@ -5,7 +5,9 @@ dnl Initialization and Versioning
|
|||||||
dnl ------------------------------------------------
|
dnl ------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
AC_INIT([libvorbis],[1.3.5],[[email protected]])
|
AC_INIT([libvorbis],[1.3.6],[[email protected]])
|
||||||
|
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
AC_CONFIG_SRCDIR([lib/mdct.c])
|
AC_CONFIG_SRCDIR([lib/mdct.c])
|
||||||
|
|
||||||
@@ -17,6 +19,9 @@ AM_MAINTAINER_MODE
|
|||||||
dnl Add parameters for aclocal
|
dnl Add parameters for aclocal
|
||||||
AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
|
AC_SUBST(ACLOCAL_AMFLAGS, "-I m4")
|
||||||
|
|
||||||
|
dnl enable silent rules on automake 1.11 and later
|
||||||
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
dnl Library versioning
|
dnl Library versioning
|
||||||
dnl - library source changed -> increment REVISION
|
dnl - library source changed -> increment REVISION
|
||||||
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
|
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
|
||||||
@@ -45,9 +50,9 @@ AC_SUBST(VE_LIB_CURRENT)
|
|||||||
AC_SUBST(VE_LIB_REVISION)
|
AC_SUBST(VE_LIB_REVISION)
|
||||||
AC_SUBST(VE_LIB_AGE)
|
AC_SUBST(VE_LIB_AGE)
|
||||||
|
|
||||||
dnl --------------------------------------------------
|
dnl --------------------------------------------------
|
||||||
dnl Check for programs
|
dnl Check for programs
|
||||||
dnl --------------------------------------------------
|
dnl --------------------------------------------------
|
||||||
|
|
||||||
dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2"
|
dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2"
|
||||||
dnl if $CFLAGS is blank
|
dnl if $CFLAGS is blank
|
||||||
@@ -88,10 +93,10 @@ fi
|
|||||||
|
|
||||||
AM_CONDITIONAL(BUILD_DOCS, [test "x$enable_docs" = xyes])
|
AM_CONDITIONAL(BUILD_DOCS, [test "x$enable_docs" = xyes])
|
||||||
|
|
||||||
AC_ARG_ENABLE(examples,
|
AC_ARG_ENABLE(examples,
|
||||||
AS_HELP_STRING([--enable-examples], [build the examples]))
|
AS_HELP_STRING([--enable-examples], [build the examples]))
|
||||||
|
|
||||||
AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = xyes])
|
AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = xyes])
|
||||||
|
|
||||||
dnl --------------------------------------------------
|
dnl --------------------------------------------------
|
||||||
dnl Set build flags based on environment
|
dnl Set build flags based on environment
|
||||||
@@ -101,14 +106,14 @@ dnl Set some target options
|
|||||||
|
|
||||||
cflags_save="$CFLAGS"
|
cflags_save="$CFLAGS"
|
||||||
if test -z "$GCC"; then
|
if test -z "$GCC"; then
|
||||||
case $host in
|
case $host in
|
||||||
*-*-irix*)
|
*-*-irix*)
|
||||||
dnl If we're on IRIX, we wanna use cc even if gcc
|
dnl If we're on IRIX, we wanna use cc even if gcc
|
||||||
dnl is there (unless the user has overriden us)...
|
dnl is there (unless the user has overriden us)...
|
||||||
if test -z "$CC"; then
|
if test -z "$CC"; then
|
||||||
CC=cc
|
CC=cc
|
||||||
fi
|
fi
|
||||||
DEBUG="-g -signed"
|
DEBUG="-g -signed"
|
||||||
CFLAGS="-O2 -w -signed"
|
CFLAGS="-O2 -w -signed"
|
||||||
PROFILE="-p -g3 -O2 -signed" ;;
|
PROFILE="-p -g3 -O2 -signed" ;;
|
||||||
sparc-sun-solaris*)
|
sparc-sun-solaris*)
|
||||||
@@ -125,10 +130,10 @@ else
|
|||||||
AC_MSG_CHECKING([GCC version])
|
AC_MSG_CHECKING([GCC version])
|
||||||
GCC_VERSION=`$CC -dumpversion`
|
GCC_VERSION=`$CC -dumpversion`
|
||||||
AC_MSG_RESULT([$GCC_VERSION])
|
AC_MSG_RESULT([$GCC_VERSION])
|
||||||
case $host in
|
case $host in
|
||||||
*86-*-linux*)
|
*86-*-linux*)
|
||||||
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
|
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
|
||||||
CFLAGS="-O3 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char"
|
CFLAGS="-O3 -Wall -Wextra -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char"
|
||||||
# PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static"
|
# PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static"
|
||||||
PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline"
|
PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline"
|
||||||
|
|
||||||
@@ -171,10 +176,10 @@ else
|
|||||||
CFLAGS=${OPT}" -D__NO_MATH_INLINES"
|
CFLAGS=${OPT}" -D__NO_MATH_INLINES"
|
||||||
PROFILE=${PROFILE}" -D__NO_MATH_INLINES"
|
PROFILE=${PROFILE}" -D__NO_MATH_INLINES"
|
||||||
fi;;
|
fi;;
|
||||||
powerpc-*-linux*spe)
|
powerpc-*-linux*spe)
|
||||||
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
|
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
|
||||||
CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT"
|
CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -D_REENTRANT"
|
||||||
PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";;
|
PROFILE="-pg -g -O3 -ffast-math -mfused-madd -D_REENTRANT";;
|
||||||
powerpc-*-linux*)
|
powerpc-*-linux*)
|
||||||
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
|
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES"
|
||||||
CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT"
|
CFLAGS="-O3 -Wall -Wextra -ffast-math -mfused-madd -mcpu=750 -D_REENTRANT"
|
||||||
|
|||||||
@@ -0,0 +1,208 @@
|
|||||||
|
libvorbis (1.2.0.dfsg-3.1) unstable; urgency=high
|
||||||
|
|
||||||
|
* Non-maintainer upload by the security team
|
||||||
|
* Fix integer overflows (and possible DoS attacks) via crafted
|
||||||
|
OGG files (Closes: #482518)
|
||||||
|
Fixes: CVE-2008-1423, CVE-2008-1420, CVE-2008-1419
|
||||||
|
|
||||||
|
-- Steffen Joeris <[email protected]> Mon, 26 May 2008 12:48:06 +0000
|
||||||
|
|
||||||
|
libvorbis (1.2.0.dfsg-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Use dpkg-gensymbols, with symbol files obtained from Mole (stripping
|
||||||
|
debian revision and .dfsg suffix).
|
||||||
|
|
||||||
|
* Install upstream CHANGES file as changelog.gz. (Closes: #302037)
|
||||||
|
|
||||||
|
* Bump debian/compat to 5, and Standards-Version to 3.7.3 (no changes
|
||||||
|
needed).
|
||||||
|
|
||||||
|
* Use quilt.make in debian/rules.
|
||||||
|
|
||||||
|
-- Adeodato Simó <[email protected]> Thu, 27 Dec 2007 14:33:45 +0100
|
||||||
|
|
||||||
|
libvorbis (1.2.0.dfsg-2) unstable; urgency=high
|
||||||
|
|
||||||
|
* Bump shlibs for libvorbis0a due to new vorbis_synthesis_idheader header.
|
||||||
|
(Closes: #436083)
|
||||||
|
|
||||||
|
-- Adeodato Simó <[email protected]> Tue, 14 Aug 2007 20:55:54 +0200
|
||||||
|
|
||||||
|
libvorbis (1.2.0.dfsg-1) unstable; urgency=low
|
||||||
|
|
||||||
|
[ Adeodato Simó ]
|
||||||
|
* Use ${binary:Version} instead of ${Source-Version}.
|
||||||
|
|
||||||
|
[ Clint Adams ]
|
||||||
|
* New upstream release.
|
||||||
|
- Remove upstream_r13198-fix_segfault_in_ov_time_seek.diff .
|
||||||
|
* Bump shlibs for libvorbisfile3 to >= 1.2.0 due to new ov_fopen
|
||||||
|
function.
|
||||||
|
|
||||||
|
-- Clint Adams <[email protected]> Fri, 27 Jul 2007 02:57:44 -0400
|
||||||
|
|
||||||
|
libvorbis (1.1.2.dfsg-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Bump to Standards-Version 3.7.2.
|
||||||
|
* Add upstream_r13198-fix_segfault_in_ov_time_seek.diff. closes: #281995.
|
||||||
|
|
||||||
|
-- Clint Adams <[email protected]> Fri, 29 Jun 2007 09:46:12 -0400
|
||||||
|
|
||||||
|
libvorbis (1.1.2.dfsg-1.2) unstable; urgency=high
|
||||||
|
|
||||||
|
* Fix shlibs files for libvorbisenc and libvorbisfile, which were broken
|
||||||
|
by my first NMU to have dependencies for libvorbis0a. Closes: #395048
|
||||||
|
|
||||||
|
-- Joey Hess <[email protected]> Tue, 24 Oct 2006 19:55:19 -0400
|
||||||
|
|
||||||
|
libvorbis (1.1.2.dfsg-1.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* NMU
|
||||||
|
* Remove draft RFC files, as they are not under a free license.
|
||||||
|
Closes: #390660
|
||||||
|
* Repackage the source package without these files.
|
||||||
|
* Add README.Source documenting how the upstream source is repackaged.
|
||||||
|
* Modify dh_makeshlibs call to avoid generating a shlibs file that has
|
||||||
|
an unncessarily tight versioned dependency on this new pseudo-version
|
||||||
|
of libvorbis.
|
||||||
|
|
||||||
|
-- Joey Hess <[email protected]> Sun, 15 Oct 2006 17:21:37 -0400
|
||||||
|
|
||||||
|
libvorbis (1.1.2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Switch maintenance to the Debian Xiph.org Maintainers (alioth/pkg-xiph).
|
||||||
|
|
||||||
|
* New upstream release packaged. (Closes: #327586)
|
||||||
|
|
||||||
|
* Move HTML documentation from /usr/share/doc/libvorbis-dev itself to an
|
||||||
|
html/ subdirectory of it.
|
||||||
|
|
||||||
|
* Update debian/control:
|
||||||
|
+ drop unnecessary build-dependency on devscripts.
|
||||||
|
+ drop version restriction on debhelper and libogg-dev build-dependencies,
|
||||||
|
since they're already satisfied with stable.
|
||||||
|
|
||||||
|
* Overhaul debian/rules, and switch to quilt for patch management.
|
||||||
|
|
||||||
|
* Add debian/compat file, instead of exporting DH_COMPAT.
|
||||||
|
|
||||||
|
* Update download URL in debian/copyright.
|
||||||
|
|
||||||
|
* Add debian/watch file.
|
||||||
|
|
||||||
|
* Bumped Standards-Version to 3.6.2 (no changes required).
|
||||||
|
|
||||||
|
-- Adeodato Simó <[email protected]> Thu, 26 Jan 2006 01:35:39 +0100
|
||||||
|
|
||||||
|
libvorbis (1.1.0-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream.
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Thu, 17 Mar 2005 21:30:00 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0.1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream.
|
||||||
|
* Improved descriptions. (Closes: #166649)
|
||||||
|
* Updated DEB_BUILD_OPTIONS support. (Closes: #188464)
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Tue, 9 Dec 2003 01:00:00 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0.0-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Add libvorbis0 conflict to libvorbis0a.
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Wed, 12 Mar 2003 17:00:00 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0.0-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Rename libvorbis0 -> libvorbis0a to keep packages from upgrading to it
|
||||||
|
by mistake. (Closes: #156227, #156365, #161961, #171548, #172466,
|
||||||
|
#172469, #178756)
|
||||||
|
* GNU config automated update: config.sub (20020621 to 20030103),
|
||||||
|
config.guess (20020529 to 20030110)
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Sat, 8 Mar 2003 13:00:00 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0.0-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream.
|
||||||
|
* Split libvorbis package into libvorbis libvorbisenc libvorbisfile due to
|
||||||
|
shared object major versions going out of sync.
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Fri, 19 Jul 2002 09:00:00 -0500
|
||||||
|
|
||||||
|
libvorbis (1.0rc3-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream. (Closes: #121995, #123472)
|
||||||
|
* added autotools target (config.* updater) to rules
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Mon, 24 Dec 2001 11:00:00 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0rc2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream.
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Sun, 12 Aug 2001 22:00:00 -0500
|
||||||
|
|
||||||
|
libvorbis (1.0rc1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream. (Closes: #84977, #95330)
|
||||||
|
* Upstream says lame at fault. See bug details. (Closes: #98010)
|
||||||
|
* Fixed versioned depends.
|
||||||
|
* Changed clean method to distclean.
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Sun, 17 Jun 2001 20:00:00 -0500
|
||||||
|
|
||||||
|
libvorbis (1.0beta4-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream.
|
||||||
|
* Appears to be fixed, can't reproduce bug (closes: #78848)
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Mon, 26 Feb 2001 08:00:00 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0beta3-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fixed Build-Depends libogg-dev version dependency.
|
||||||
|
* Fixed Sections.
|
||||||
|
* Updated to Standards-Version to 3.5.1.0
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Sat, 17 Feb 2001 18:14:53 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0beta3-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Added dependency for libogg-dev (closes: #78262)
|
||||||
|
* Added dependency for libogg-dev (closes: #81432)
|
||||||
|
* Corrected development library package name (closes: #82464)
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Sat, 3 Feb 2001 13:29:30 -0600
|
||||||
|
|
||||||
|
libvorbis (1.0beta3-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New Maintainer.
|
||||||
|
* Upstream source was reorganized.
|
||||||
|
* Package split according to the upstream reorganization.
|
||||||
|
|
||||||
|
-- Christopher L Cheney <[email protected]> Tue, 31 Oct 2000 15:08:22 -0600
|
||||||
|
|
||||||
|
vorbis (1.0beta2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version. Closes: #67326, #68416
|
||||||
|
* Changed xmms-vorbis to Architechture: any. Closes: #67395
|
||||||
|
* Added Build-deps. Closes: #66628
|
||||||
|
* Moved vorbize to vorbis-tools along with oggenc and vorbiscomment
|
||||||
|
|
||||||
|
-- Michael Beattie <[email protected]> Wed, 9 Aug 2000 00:30:15 +1200
|
||||||
|
|
||||||
|
vorbis (1.0beta1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* First Beta, Ready for debian release.
|
||||||
|
|
||||||
|
-- Michael Beattie <[email protected]> Fri, 30 Jun 2000 19:26:59 +1200
|
||||||
|
|
||||||
|
vorbis (0.0-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Initial Release.
|
||||||
|
* Initial package, not placed in archive.
|
||||||
|
|
||||||
|
-- Michael Beattie <[email protected]> Mon, 26 Jun 2000 18:59:56 +1200
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
Source: libvorbis
|
||||||
|
Section: libs
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Christopher L Cheney <[email protected]>
|
||||||
|
Build-Depends: autotools-dev, debhelper (>> 4.0.18), devscripts, libogg-dev (>> 1.1.0)
|
||||||
|
Standards-Version: 3.6.1.0
|
||||||
|
|
||||||
|
Package: libvorbis0a
|
||||||
|
Architecture: any
|
||||||
|
Section: libs
|
||||||
|
Depends: ${shlibs:Depends}
|
||||||
|
Conflicts: libvorbis0
|
||||||
|
Replaces: libvorbis0
|
||||||
|
Description: The Vorbis General Audio Compression Codec
|
||||||
|
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free,
|
||||||
|
general-purpose compressed audio format for audio and music at fixed
|
||||||
|
and variable bitrates from 16 to 128 kbps/channel.
|
||||||
|
.
|
||||||
|
The Vorbis library is the primary Ogg Vorbis library.
|
||||||
|
|
||||||
|
Package: libvorbisenc2
|
||||||
|
Architecture: any
|
||||||
|
Section: libs
|
||||||
|
Depends: ${shlibs:Depends}
|
||||||
|
Conflicts: libvorbis0 (<< 1.0.0)
|
||||||
|
Replaces: libvorbis0 (<< 1.0.0)
|
||||||
|
Description: The Vorbis General Audio Compression Codec
|
||||||
|
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free,
|
||||||
|
general-purpose compressed audio format for audio and music at fixed
|
||||||
|
and variable bitrates from 16 to 128 kbps/channel.
|
||||||
|
.
|
||||||
|
The Vorbisenc library provides a convenient API for setting up an encoding
|
||||||
|
environment using libvorbis.
|
||||||
|
|
||||||
|
Package: libvorbisfile3
|
||||||
|
Architecture: any
|
||||||
|
Section: libs
|
||||||
|
Depends: ${shlibs:Depends}
|
||||||
|
Conflicts: libvorbis0 (<< 1.0.0)
|
||||||
|
Replaces: libvorbis0 (<< 1.0.0)
|
||||||
|
Description: The Vorbis General Audio Compression Codec
|
||||||
|
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free,
|
||||||
|
general-purpose compressed audio format for audio and music at fixed
|
||||||
|
and variable bitrates from 16 to 128 kbps/channel.
|
||||||
|
.
|
||||||
|
The Vorbisfile library provides a convenient high-level API for decoding
|
||||||
|
and basic manipulation of all Vorbis I audio streams.
|
||||||
|
|
||||||
|
Package: libvorbis-dev
|
||||||
|
Architecture: any
|
||||||
|
Section: libdevel
|
||||||
|
Depends: libogg-dev, libvorbis0a (= ${Source-Version}), libvorbisenc2 (= ${Source-Version}), libvorbisfile3 (= ${Source-Version})
|
||||||
|
Description: The Vorbis General Audio Compression Codec (development files)
|
||||||
|
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free,
|
||||||
|
general-purpose compressed audio format for audio and music at fixed
|
||||||
|
and variable bitrates from 16 to 128 kbps/channel.
|
||||||
|
.
|
||||||
|
This package contains the header files and documentation needed to develop
|
||||||
|
applications with libvorbis.
|
||||||
|
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
This package was debianized by Christopher L Cheney <[email protected]> on
|
||||||
|
Tue, 31 Oct 2000 15:08:22 -0600.
|
||||||
|
|
||||||
|
It was downloaded from http://www.vorbis.com/download_unix.psp
|
||||||
|
|
||||||
|
Upstream Author: Monty <[email protected]>
|
||||||
|
|
||||||
|
Copyright:
|
||||||
|
|
||||||
|
Copyright (c) 2002, Xiph.org Foundation
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
- Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
- Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
- Neither the name of the Xiph.org Foundation nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||||
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
debian/tmp/usr/share/doc/libvorbis-*/*
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
examples/*.c
|
||||||
|
examples/*.pl
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
debian/tmp/usr/include/vorbis/codec.h
|
||||||
|
debian/tmp/usr/include/vorbis/vorbisenc.h
|
||||||
|
debian/tmp/usr/include/vorbis/vorbisfile.h
|
||||||
|
debian/tmp/usr/lib/libvorbis.a
|
||||||
|
debian/tmp/usr/lib/libvorbis.la
|
||||||
|
debian/tmp/usr/lib/libvorbis.so
|
||||||
|
debian/tmp/usr/lib/libvorbisenc.a
|
||||||
|
debian/tmp/usr/lib/libvorbisenc.la
|
||||||
|
debian/tmp/usr/lib/libvorbisenc.so
|
||||||
|
debian/tmp/usr/lib/libvorbisfile.a
|
||||||
|
debian/tmp/usr/lib/libvorbisfile.la
|
||||||
|
debian/tmp/usr/lib/libvorbisfile.so
|
||||||
|
debian/tmp/usr/lib/pkgconfig/vorbis.pc
|
||||||
|
debian/tmp/usr/lib/pkgconfig/vorbisenc.pc
|
||||||
|
debian/tmp/usr/lib/pkgconfig/vorbisfile.pc
|
||||||
|
debian/tmp/usr/share/aclocal/vorbis.m4
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
debian/tmp/usr/lib/libvorbis.so.*
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
debian/tmp/usr/lib/libvorbisenc.so.*
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
debian/tmp/usr/lib/libvorbisfile.so.*
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
# Sample debian/rules that uses debhelper.
|
||||||
|
# GNU copyright 1997 to 1999 by Joey Hess.
|
||||||
|
#
|
||||||
|
# Modified to make a template file for a multi-binary package with separated
|
||||||
|
# build-arch and build-indep targets by Bill Allombert 2001
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
# This is the debhelper compatibility version to use.
|
||||||
|
export DH_COMPAT=4
|
||||||
|
|
||||||
|
# This has to be exported to make some magic below work.
|
||||||
|
export DH_OPTIONS
|
||||||
|
|
||||||
|
# These are used for cross-compiling and for saving the configure script
|
||||||
|
# from having to guess our platform (since we know it already)
|
||||||
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||||
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
|
objdir = $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
|
CFLAGS = -Wall -g
|
||||||
|
|
||||||
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
||||||
|
INSTALL_PROGRAM += -s
|
||||||
|
endif
|
||||||
|
|
||||||
|
configure: configure-stamp
|
||||||
|
configure-stamp:
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
# make build directory
|
||||||
|
mkdir $(objdir)
|
||||||
|
|
||||||
|
# run configure with build tree $(objdir)
|
||||||
|
# change ../configure to ../autogen.sh for CVS build
|
||||||
|
cd $(objdir) && \
|
||||||
|
../configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
|
||||||
|
--prefix=/usr --enable-static
|
||||||
|
|
||||||
|
touch configure-stamp
|
||||||
|
|
||||||
|
#Architecture
|
||||||
|
build: build-arch build-indep
|
||||||
|
|
||||||
|
build-arch: build-arch-stamp
|
||||||
|
build-arch-stamp: configure-stamp
|
||||||
|
|
||||||
|
cd $(objdir) && \
|
||||||
|
$(MAKE)
|
||||||
|
|
||||||
|
touch build-arch-stamp
|
||||||
|
|
||||||
|
build-indep: build-indep-stamp
|
||||||
|
build-indep-stamp: configure-stamp
|
||||||
|
|
||||||
|
# Add here commands to compile the indep part of the package.
|
||||||
|
#$(MAKE) doc
|
||||||
|
touch build-indep-stamp
|
||||||
|
|
||||||
|
debian-clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
|
||||||
|
dh_clean
|
||||||
|
|
||||||
|
clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
rm -f build-arch-stamp build-indep-stamp configure-stamp
|
||||||
|
|
||||||
|
# Remove build tree
|
||||||
|
rm -rf $(objdir)
|
||||||
|
|
||||||
|
# if Makefile exists run distclean
|
||||||
|
if test -f Makefile; then \
|
||||||
|
$(MAKE) distclean; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
#if test -d CVS; then \
|
||||||
|
$(MAKE) cvs-clean ;\
|
||||||
|
fi
|
||||||
|
|
||||||
|
dh_clean
|
||||||
|
|
||||||
|
install: install-indep install-arch
|
||||||
|
install-indep:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
# dh_clean -k -i
|
||||||
|
# dh_installdirs -i
|
||||||
|
|
||||||
|
# dh_install -i --list-missing
|
||||||
|
|
||||||
|
install-arch:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean -k -s
|
||||||
|
dh_installdirs -s
|
||||||
|
|
||||||
|
cd $(objdir) && \
|
||||||
|
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
|
||||||
|
|
||||||
|
dh_install -s --list-missing
|
||||||
|
|
||||||
|
# Must not depend on anything. This is to be called by
|
||||||
|
# binary-arch/binary-indep
|
||||||
|
# in another 'make' thread.
|
||||||
|
binary-common:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installchangelogs CHANGES
|
||||||
|
dh_installdocs
|
||||||
|
dh_installexamples
|
||||||
|
# dh_installmenu
|
||||||
|
# dh_installdebconf
|
||||||
|
# dh_installlogrotate
|
||||||
|
# dh_installemacsen
|
||||||
|
# dh_installpam
|
||||||
|
# dh_installmime
|
||||||
|
# dh_installinit
|
||||||
|
# dh_installcron
|
||||||
|
# dh_installinfo
|
||||||
|
dh_installman
|
||||||
|
dh_link
|
||||||
|
dh_strip
|
||||||
|
dh_compress
|
||||||
|
dh_fixperms
|
||||||
|
# dh_perl
|
||||||
|
# dh_python
|
||||||
|
dh_makeshlibs -V
|
||||||
|
dh_installdeb
|
||||||
|
dh_shlibdeps -ldebian/libvorbis0a/usr/lib
|
||||||
|
dh_gencontrol
|
||||||
|
dh_md5sums
|
||||||
|
dh_builddeb
|
||||||
|
|
||||||
|
# Build architecture independant packages using the common target.
|
||||||
|
binary-indep: build-indep install-indep
|
||||||
|
# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
|
||||||
|
|
||||||
|
# Build architecture dependant packages using the common target.
|
||||||
|
binary-arch: build-arch install-arch
|
||||||
|
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
|
||||||
|
|
||||||
|
binary: binary-arch binary-indep
|
||||||
|
.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
version=2
|
||||||
|
|
||||||
|
http://downloads.xiph.org/releases/vorbis/libvorbis-(.*)\.tar\.gz debian uupdate
|
||||||
@@ -1,791 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# depcomp - compile a program generating dependencies as side-effects
|
|
||||||
|
|
||||||
scriptversion=2013-05-30.07; # UTC
|
|
||||||
|
|
||||||
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
# any later version.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
|
||||||
# distribute this file as part of a program that contains a
|
|
||||||
# configuration script generated by Autoconf, you may include it under
|
|
||||||
# the same distribution terms that you use for the rest of that program.
|
|
||||||
|
|
||||||
# Originally written by Alexandre Oliva <[email protected]>.
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
'')
|
|
||||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
|
||||||
exit 1;
|
|
||||||
;;
|
|
||||||
-h | --h*)
|
|
||||||
cat <<\EOF
|
|
||||||
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
|
||||||
|
|
||||||
Run PROGRAMS ARGS to compile a file, generating dependencies
|
|
||||||
as side-effects.
|
|
||||||
|
|
||||||
Environment variables:
|
|
||||||
depmode Dependency tracking mode.
|
|
||||||
source Source file read by 'PROGRAMS ARGS'.
|
|
||||||
object Object file output by 'PROGRAMS ARGS'.
|
|
||||||
DEPDIR directory where to store dependencies.
|
|
||||||
depfile Dependency file to output.
|
|
||||||
tmpdepfile Temporary file to use when outputting dependencies.
|
|
||||||
libtool Whether libtool is used (yes/no).
|
|
||||||
|
|
||||||
Report bugs to <[email protected]>.
|
|
||||||
EOF
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
-v | --v*)
|
|
||||||
echo "depcomp $scriptversion"
|
|
||||||
exit $?
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Get the directory component of the given path, and save it in the
|
|
||||||
# global variables '$dir'. Note that this directory component will
|
|
||||||
# be either empty or ending with a '/' character. This is deliberate.
|
|
||||||
set_dir_from ()
|
|
||||||
{
|
|
||||||
case $1 in
|
|
||||||
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
|
||||||
*) dir=;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get the suffix-stripped basename of the given path, and save it the
|
|
||||||
# global variable '$base'.
|
|
||||||
set_base_from ()
|
|
||||||
{
|
|
||||||
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
|
||||||
}
|
|
||||||
|
|
||||||
# If no dependency file was actually created by the compiler invocation,
|
|
||||||
# we still have to create a dummy depfile, to avoid errors with the
|
|
||||||
# Makefile "include basename.Plo" scheme.
|
|
||||||
make_dummy_depfile ()
|
|
||||||
{
|
|
||||||
echo "#dummy" > "$depfile"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Factor out some common post-processing of the generated depfile.
|
|
||||||
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
|
||||||
aix_post_process_depfile ()
|
|
||||||
{
|
|
||||||
# If the compiler actually managed to produce a dependency file,
|
|
||||||
# post-process it.
|
|
||||||
if test -f "$tmpdepfile"; then
|
|
||||||
# Each line is of the form 'foo.o: dependency.h'.
|
|
||||||
# Do two passes, one to just change these to
|
|
||||||
# $object: dependency.h
|
|
||||||
# and one to simply output
|
|
||||||
# dependency.h:
|
|
||||||
# which is needed to avoid the deleted-header problem.
|
|
||||||
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
|
||||||
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
|
||||||
} > "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
else
|
|
||||||
make_dummy_depfile
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# A tabulation character.
|
|
||||||
tab=' '
|
|
||||||
# A newline character.
|
|
||||||
nl='
|
|
||||||
'
|
|
||||||
# Character ranges might be problematic outside the C locale.
|
|
||||||
# These definitions help.
|
|
||||||
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
|
||||||
lower=abcdefghijklmnopqrstuvwxyz
|
|
||||||
digits=0123456789
|
|
||||||
alpha=${upper}${lower}
|
|
||||||
|
|
||||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
|
||||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
|
||||||
depfile=${depfile-`echo "$object" |
|
|
||||||
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
|
||||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
|
||||||
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
|
|
||||||
# Avoid interferences from the environment.
|
|
||||||
gccflag= dashmflag=
|
|
||||||
|
|
||||||
# Some modes work just like other modes, but use different flags. We
|
|
||||||
# parameterize here, but still list the modes in the big case below,
|
|
||||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
|
||||||
# here, because this file can only contain one case statement.
|
|
||||||
if test "$depmode" = hp; then
|
|
||||||
# HP compiler uses -M and no extra arg.
|
|
||||||
gccflag=-M
|
|
||||||
depmode=gcc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$depmode" = dashXmstdout; then
|
|
||||||
# This is just like dashmstdout with a different argument.
|
|
||||||
dashmflag=-xM
|
|
||||||
depmode=dashmstdout
|
|
||||||
fi
|
|
||||||
|
|
||||||
cygpath_u="cygpath -u -f -"
|
|
||||||
if test "$depmode" = msvcmsys; then
|
|
||||||
# This is just like msvisualcpp but w/o cygpath translation.
|
|
||||||
# Just convert the backslash-escaped backslashes to single forward
|
|
||||||
# slashes to satisfy depend.m4
|
|
||||||
cygpath_u='sed s,\\\\,/,g'
|
|
||||||
depmode=msvisualcpp
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$depmode" = msvc7msys; then
|
|
||||||
# This is just like msvc7 but w/o cygpath translation.
|
|
||||||
# Just convert the backslash-escaped backslashes to single forward
|
|
||||||
# slashes to satisfy depend.m4
|
|
||||||
cygpath_u='sed s,\\\\,/,g'
|
|
||||||
depmode=msvc7
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$depmode" = xlc; then
|
|
||||||
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
|
||||||
gccflag=-qmakedep=gcc,-MF
|
|
||||||
depmode=gcc
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$depmode" in
|
|
||||||
gcc3)
|
|
||||||
## gcc 3 implements dependency tracking that does exactly what
|
|
||||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
|
||||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
|
||||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
|
||||||
## the command line argument order; so add the flags where they
|
|
||||||
## appear in depend2.am. Note that the slowdown incurred here
|
|
||||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case $arg in
|
|
||||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
|
||||||
*) set fnord "$@" "$arg" ;;
|
|
||||||
esac
|
|
||||||
shift # fnord
|
|
||||||
shift # $arg
|
|
||||||
done
|
|
||||||
"$@"
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
mv "$tmpdepfile" "$depfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
gcc)
|
|
||||||
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
|
||||||
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
|
||||||
## (see the conditional assignment to $gccflag above).
|
|
||||||
## There are various ways to get dependency output from gcc. Here's
|
|
||||||
## why we pick this rather obscure method:
|
|
||||||
## - Don't want to use -MD because we'd like the dependencies to end
|
|
||||||
## up in a subdir. Having to rename by hand is ugly.
|
|
||||||
## (We might end up doing this anyway to support other compilers.)
|
|
||||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
|
||||||
## -MM, not -M (despite what the docs say). Also, it might not be
|
|
||||||
## supported by the other compilers which use the 'gcc' depmode.
|
|
||||||
## - Using -M directly means running the compiler twice (even worse
|
|
||||||
## than renaming).
|
|
||||||
if test -z "$gccflag"; then
|
|
||||||
gccflag=-MD,
|
|
||||||
fi
|
|
||||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
# The second -e expression handles DOS-style file names with drive
|
|
||||||
# letters.
|
|
||||||
sed -e 's/^[^:]*: / /' \
|
|
||||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
|
||||||
## This next piece of magic avoids the "deleted header file" problem.
|
|
||||||
## The problem is that when a header file which appears in a .P file
|
|
||||||
## is deleted, the dependency causes make to die (because there is
|
|
||||||
## typically no way to rebuild the header). We avoid this by adding
|
|
||||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
|
||||||
## this for us directly.
|
|
||||||
## Some versions of gcc put a space before the ':'. On the theory
|
|
||||||
## that the space means something, we add a space to the output as
|
|
||||||
## well. hp depmode also adds that space, but also prefixes the VPATH
|
|
||||||
## to the object. Take care to not repeat it in the output.
|
|
||||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
|
||||||
## correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
tr ' ' "$nl" < "$tmpdepfile" \
|
|
||||||
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
|
||||||
| sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
hp)
|
|
||||||
# This case exists only to let depend.m4 do its work. It works by
|
|
||||||
# looking at the text of this script. This case will never be run,
|
|
||||||
# since it is checked for above.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
sgi)
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
|
||||||
else
|
|
||||||
"$@" -MDupdate "$tmpdepfile"
|
|
||||||
fi
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
|
|
||||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
# Clip off the initial element (the dependent). Don't try to be
|
|
||||||
# clever and replace this with sed code, as IRIX sed won't handle
|
|
||||||
# lines with more than a fixed number of characters (4096 in
|
|
||||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
|
||||||
# the IRIX cc adds comments like '#:fec' to the end of the
|
|
||||||
# dependency line.
|
|
||||||
tr ' ' "$nl" < "$tmpdepfile" \
|
|
||||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
|
||||||
| tr "$nl" ' ' >> "$depfile"
|
|
||||||
echo >> "$depfile"
|
|
||||||
# The second pass generates a dummy entry for each header file.
|
|
||||||
tr ' ' "$nl" < "$tmpdepfile" \
|
|
||||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
|
||||||
>> "$depfile"
|
|
||||||
else
|
|
||||||
make_dummy_depfile
|
|
||||||
fi
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
xlc)
|
|
||||||
# This case exists only to let depend.m4 do its work. It works by
|
|
||||||
# looking at the text of this script. This case will never be run,
|
|
||||||
# since it is checked for above.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
aix)
|
|
||||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
|
||||||
# in a .u file. In older versions, this file always lives in the
|
|
||||||
# current directory. Also, the AIX compiler puts '$object:' at the
|
|
||||||
# start of each line; $object doesn't have directory information.
|
|
||||||
# Version 6 uses the directory in both cases.
|
|
||||||
set_dir_from "$object"
|
|
||||||
set_base_from "$object"
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
tmpdepfile1=$dir$base.u
|
|
||||||
tmpdepfile2=$base.u
|
|
||||||
tmpdepfile3=$dir.libs/$base.u
|
|
||||||
"$@" -Wc,-M
|
|
||||||
else
|
|
||||||
tmpdepfile1=$dir$base.u
|
|
||||||
tmpdepfile2=$dir$base.u
|
|
||||||
tmpdepfile3=$dir$base.u
|
|
||||||
"$@" -M
|
|
||||||
fi
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
|
|
||||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
|
||||||
do
|
|
||||||
test -f "$tmpdepfile" && break
|
|
||||||
done
|
|
||||||
aix_post_process_depfile
|
|
||||||
;;
|
|
||||||
|
|
||||||
tcc)
|
|
||||||
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
|
||||||
# FIXME: That version still under development at the moment of writing.
|
|
||||||
# Make that this statement remains true also for stable, released
|
|
||||||
# versions.
|
|
||||||
# It will wrap lines (doesn't matter whether long or short) with a
|
|
||||||
# trailing '\', as in:
|
|
||||||
#
|
|
||||||
# foo.o : \
|
|
||||||
# foo.c \
|
|
||||||
# foo.h \
|
|
||||||
#
|
|
||||||
# It will put a trailing '\' even on the last line, and will use leading
|
|
||||||
# spaces rather than leading tabs (at least since its commit 0394caf7
|
|
||||||
# "Emit spaces for -MD").
|
|
||||||
"$@" -MD -MF "$tmpdepfile"
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
|
||||||
# We have to change lines of the first kind to '$object: \'.
|
|
||||||
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
|
||||||
# And for each line of the second kind, we have to emit a 'dep.h:'
|
|
||||||
# dummy dependency, to avoid the deleted-header problem.
|
|
||||||
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
## The order of this option in the case statement is important, since the
|
|
||||||
## shell code in configure will try each of these formats in the order
|
|
||||||
## listed in this file. A plain '-MD' option would be understood by many
|
|
||||||
## compilers, so we must ensure this comes after the gcc and icc options.
|
|
||||||
pgcc)
|
|
||||||
# Portland's C compiler understands '-MD'.
|
|
||||||
# Will always output deps to 'file.d' where file is the root name of the
|
|
||||||
# source file under compilation, even if file resides in a subdirectory.
|
|
||||||
# The object file name does not affect the name of the '.d' file.
|
|
||||||
# pgcc 10.2 will output
|
|
||||||
# foo.o: sub/foo.c sub/foo.h
|
|
||||||
# and will wrap long lines using '\' :
|
|
||||||
# foo.o: sub/foo.c ... \
|
|
||||||
# sub/foo.h ... \
|
|
||||||
# ...
|
|
||||||
set_dir_from "$object"
|
|
||||||
# Use the source, not the object, to determine the base name, since
|
|
||||||
# that's sadly what pgcc will do too.
|
|
||||||
set_base_from "$source"
|
|
||||||
tmpdepfile=$base.d
|
|
||||||
|
|
||||||
# For projects that build the same source file twice into different object
|
|
||||||
# files, the pgcc approach of using the *source* file root name can cause
|
|
||||||
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
|
||||||
# the same $tmpdepfile.
|
|
||||||
lockdir=$base.d-lock
|
|
||||||
trap "
|
|
||||||
echo '$0: caught signal, cleaning up...' >&2
|
|
||||||
rmdir '$lockdir'
|
|
||||||
exit 1
|
|
||||||
" 1 2 13 15
|
|
||||||
numtries=100
|
|
||||||
i=$numtries
|
|
||||||
while test $i -gt 0; do
|
|
||||||
# mkdir is a portable test-and-set.
|
|
||||||
if mkdir "$lockdir" 2>/dev/null; then
|
|
||||||
# This process acquired the lock.
|
|
||||||
"$@" -MD
|
|
||||||
stat=$?
|
|
||||||
# Release the lock.
|
|
||||||
rmdir "$lockdir"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
# If the lock is being held by a different process, wait
|
|
||||||
# until the winning process is done or we timeout.
|
|
||||||
while test -d "$lockdir" && test $i -gt 0; do
|
|
||||||
sleep 1
|
|
||||||
i=`expr $i - 1`
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
i=`expr $i - 1`
|
|
||||||
done
|
|
||||||
trap - 1 2 13 15
|
|
||||||
if test $i -le 0; then
|
|
||||||
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
|
||||||
echo "$0: check lockdir '$lockdir'" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
# Each line is of the form `foo.o: dependent.h',
|
|
||||||
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
|
||||||
# Do two passes, one to just change these to
|
|
||||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
|
||||||
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
|
||||||
# Some versions of the HPUX 10.20 sed can't process this invocation
|
|
||||||
# correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
|
||||||
| sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
hp2)
|
|
||||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
|
||||||
# compilers, which have integrated preprocessors. The correct option
|
|
||||||
# to use with these is +Maked; it writes dependencies to a file named
|
|
||||||
# 'foo.d', which lands next to the object file, wherever that
|
|
||||||
# happens to be.
|
|
||||||
# Much of this is similar to the tru64 case; see comments there.
|
|
||||||
set_dir_from "$object"
|
|
||||||
set_base_from "$object"
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
tmpdepfile1=$dir$base.d
|
|
||||||
tmpdepfile2=$dir.libs/$base.d
|
|
||||||
"$@" -Wc,+Maked
|
|
||||||
else
|
|
||||||
tmpdepfile1=$dir$base.d
|
|
||||||
tmpdepfile2=$dir$base.d
|
|
||||||
"$@" +Maked
|
|
||||||
fi
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
|
|
||||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
|
||||||
do
|
|
||||||
test -f "$tmpdepfile" && break
|
|
||||||
done
|
|
||||||
if test -f "$tmpdepfile"; then
|
|
||||||
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
|
||||||
# Add 'dependent.h:' lines.
|
|
||||||
sed -ne '2,${
|
|
||||||
s/^ *//
|
|
||||||
s/ \\*$//
|
|
||||||
s/$/:/
|
|
||||||
p
|
|
||||||
}' "$tmpdepfile" >> "$depfile"
|
|
||||||
else
|
|
||||||
make_dummy_depfile
|
|
||||||
fi
|
|
||||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
|
||||||
;;
|
|
||||||
|
|
||||||
tru64)
|
|
||||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
|
||||||
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
|
||||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
|
||||||
# dependencies in 'foo.d' instead, so we check for that too.
|
|
||||||
# Subdirectories are respected.
|
|
||||||
set_dir_from "$object"
|
|
||||||
set_base_from "$object"
|
|
||||||
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
# Libtool generates 2 separate objects for the 2 libraries. These
|
|
||||||
# two compilations output dependencies in $dir.libs/$base.o.d and
|
|
||||||
# in $dir$base.o.d. We have to check for both files, because
|
|
||||||
# one of the two compilations can be disabled. We should prefer
|
|
||||||
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
|
||||||
# automatically cleaned when .libs/ is deleted, while ignoring
|
|
||||||
# the former would cause a distcleancheck panic.
|
|
||||||
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
|
||||||
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
|
||||||
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
|
||||||
"$@" -Wc,-MD
|
|
||||||
else
|
|
||||||
tmpdepfile1=$dir$base.d
|
|
||||||
tmpdepfile2=$dir$base.d
|
|
||||||
tmpdepfile3=$dir$base.d
|
|
||||||
"$@" -MD
|
|
||||||
fi
|
|
||||||
|
|
||||||
stat=$?
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
|
|
||||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
|
||||||
do
|
|
||||||
test -f "$tmpdepfile" && break
|
|
||||||
done
|
|
||||||
# Same post-processing that is required for AIX mode.
|
|
||||||
aix_post_process_depfile
|
|
||||||
;;
|
|
||||||
|
|
||||||
msvc7)
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
showIncludes=-Wc,-showIncludes
|
|
||||||
else
|
|
||||||
showIncludes=-showIncludes
|
|
||||||
fi
|
|
||||||
"$@" $showIncludes > "$tmpdepfile"
|
|
||||||
stat=$?
|
|
||||||
grep -v '^Note: including file: ' "$tmpdepfile"
|
|
||||||
if test $stat -ne 0; then
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
exit $stat
|
|
||||||
fi
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
# The first sed program below extracts the file names and escapes
|
|
||||||
# backslashes for cygpath. The second sed program outputs the file
|
|
||||||
# name when reading, but also accumulates all include files in the
|
|
||||||
# hold buffer in order to output them again at the end. This only
|
|
||||||
# works with sed implementations that can handle large buffers.
|
|
||||||
sed < "$tmpdepfile" -n '
|
|
||||||
/^Note: including file: *\(.*\)/ {
|
|
||||||
s//\1/
|
|
||||||
s/\\/\\\\/g
|
|
||||||
p
|
|
||||||
}' | $cygpath_u | sort -u | sed -n '
|
|
||||||
s/ /\\ /g
|
|
||||||
s/\(.*\)/'"$tab"'\1 \\/p
|
|
||||||
s/.\(.*\) \\/\1:/
|
|
||||||
H
|
|
||||||
$ {
|
|
||||||
s/.*/'"$tab"'/
|
|
||||||
G
|
|
||||||
p
|
|
||||||
}' >> "$depfile"
|
|
||||||
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
msvc7msys)
|
|
||||||
# This case exists only to let depend.m4 do its work. It works by
|
|
||||||
# looking at the text of this script. This case will never be run,
|
|
||||||
# since it is checked for above.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
#nosideeffect)
|
|
||||||
# This comment above is used by automake to tell side-effect
|
|
||||||
# dependency tracking mechanisms from slower ones.
|
|
||||||
|
|
||||||
dashmstdout)
|
|
||||||
# Important note: in order to support this mode, a compiler *must*
|
|
||||||
# always write the preprocessed file to stdout, regardless of -o.
|
|
||||||
"$@" || exit $?
|
|
||||||
|
|
||||||
# Remove the call to Libtool.
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test "X$1" != 'X--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove '-o $object'.
|
|
||||||
IFS=" "
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case $arg in
|
|
||||||
-o)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
$object)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"
|
|
||||||
shift # fnord
|
|
||||||
shift # $arg
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
test -z "$dashmflag" && dashmflag=-M
|
|
||||||
# Require at least two characters before searching for ':'
|
|
||||||
# in the target name. This is to cope with DOS-style filenames:
|
|
||||||
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
|
||||||
"$@" $dashmflag |
|
|
||||||
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
|
||||||
rm -f "$depfile"
|
|
||||||
cat < "$tmpdepfile" > "$depfile"
|
|
||||||
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
|
||||||
# correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
tr ' ' "$nl" < "$tmpdepfile" \
|
|
||||||
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
|
||||||
| sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
dashXmstdout)
|
|
||||||
# This case only exists to satisfy depend.m4. It is never actually
|
|
||||||
# run, as this mode is specially recognized in the preamble.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
makedepend)
|
|
||||||
"$@" || exit $?
|
|
||||||
# Remove any Libtool call
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test "X$1" != 'X--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
# X makedepend
|
|
||||||
shift
|
|
||||||
cleared=no eat=no
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case $cleared in
|
|
||||||
no)
|
|
||||||
set ""; shift
|
|
||||||
cleared=yes ;;
|
|
||||||
esac
|
|
||||||
if test $eat = yes; then
|
|
||||||
eat=no
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
case "$arg" in
|
|
||||||
-D*|-I*)
|
|
||||||
set fnord "$@" "$arg"; shift ;;
|
|
||||||
# Strip any option that makedepend may not understand. Remove
|
|
||||||
# the object too, otherwise makedepend will parse it as a source file.
|
|
||||||
-arch)
|
|
||||||
eat=yes ;;
|
|
||||||
-*|$object)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"; shift ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
|
||||||
touch "$tmpdepfile"
|
|
||||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
|
||||||
rm -f "$depfile"
|
|
||||||
# makedepend may prepend the VPATH from the source file name to the object.
|
|
||||||
# No need to regex-escape $object, excess matching of '.' is harmless.
|
|
||||||
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
|
||||||
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
|
||||||
# correctly. Breaking it into two sed invocations is a workaround.
|
|
||||||
sed '1,2d' "$tmpdepfile" \
|
|
||||||
| tr ' ' "$nl" \
|
|
||||||
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
|
||||||
| sed -e 's/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
|
||||||
;;
|
|
||||||
|
|
||||||
cpp)
|
|
||||||
# Important note: in order to support this mode, a compiler *must*
|
|
||||||
# always write the preprocessed file to stdout.
|
|
||||||
"$@" || exit $?
|
|
||||||
|
|
||||||
# Remove the call to Libtool.
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test "X$1" != 'X--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove '-o $object'.
|
|
||||||
IFS=" "
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case $arg in
|
|
||||||
-o)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
$object)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"
|
|
||||||
shift # fnord
|
|
||||||
shift # $arg
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
"$@" -E \
|
|
||||||
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
|
||||||
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
|
||||||
| sed '$ s: \\$::' > "$tmpdepfile"
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
cat < "$tmpdepfile" >> "$depfile"
|
|
||||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
msvisualcpp)
|
|
||||||
# Important note: in order to support this mode, a compiler *must*
|
|
||||||
# always write the preprocessed file to stdout.
|
|
||||||
"$@" || exit $?
|
|
||||||
|
|
||||||
# Remove the call to Libtool.
|
|
||||||
if test "$libtool" = yes; then
|
|
||||||
while test "X$1" != 'X--mode=compile'; do
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
IFS=" "
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
case "$arg" in
|
|
||||||
-o)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
$object)
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
|
||||||
set fnord "$@"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
set fnord "$@" "$arg"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
"$@" -E 2>/dev/null |
|
|
||||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
|
||||||
rm -f "$depfile"
|
|
||||||
echo "$object : \\" > "$depfile"
|
|
||||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
|
||||||
echo "$tab" >> "$depfile"
|
|
||||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
|
||||||
rm -f "$tmpdepfile"
|
|
||||||
;;
|
|
||||||
|
|
||||||
msvcmsys)
|
|
||||||
# This case exists only to let depend.m4 do its work. It works by
|
|
||||||
# looking at the text of this script. This case will never be run,
|
|
||||||
# since it is checked for above.
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
|
|
||||||
none)
|
|
||||||
exec "$@"
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "Unknown depmode $depmode" 1>&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
# Local Variables:
|
|
||||||
# mode: shell-script
|
|
||||||
# sh-indentation: 2
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Introduction and Description} \label{vorbis:spec:intro}
|
\section{Introduction and Description} \label{vorbis:spec:intro}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Bitpacking Convention} \label{vorbis:spec:bitpacking}
|
\section{Bitpacking Convention} \label{vorbis:spec:bitpacking}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Probability Model and Codebooks} \label{vorbis:spec:codebook}
|
\section{Probability Model and Codebooks} \label{vorbis:spec:codebook}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Codec Setup and Packet Decode} \label{vorbis:spec:codec}
|
\section{Codec Setup and Packet Decode} \label{vorbis:spec:codec}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{comment field and header specification} \label{vorbis:spec:comment}
|
\section{comment field and header specification} \label{vorbis:spec:comment}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Floor type 0 setup and decode} \label{vorbis:spec:floor0}
|
\section{Floor type 0 setup and decode} \label{vorbis:spec:floor0}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Floor type 1 setup and decode} \label{vorbis:spec:floor1}
|
\section{Floor type 1 setup and decode} \label{vorbis:spec:floor1}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Residue setup and decode} \label{vorbis:spec:residue}
|
\section{Residue setup and decode} \label{vorbis:spec:residue}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
@@ -270,8 +269,8 @@ process.
|
|||||||
1) [actual\_size] = current blocksize/2;
|
1) [actual\_size] = current blocksize/2;
|
||||||
2) if residue encoding is format 2
|
2) if residue encoding is format 2
|
||||||
3) [actual\_size] = [actual\_size] * [ch];
|
3) [actual\_size] = [actual\_size] * [ch];
|
||||||
4) [limit\_residue\_begin] = maximum of ([residue\_begin],[actual\_size]);
|
4) [limit\_residue\_begin] = minimum of ([residue\_begin],[actual\_size]);
|
||||||
5) [limit\_residue\_end] = maximum of ([residue\_end],[actual\_size]);
|
5) [limit\_residue\_end] = minimum of ([residue\_end],[actual\_size]);
|
||||||
\end{programlisting}
|
\end{programlisting}
|
||||||
|
|
||||||
The following convenience values are conceptually useful to clarifying
|
The following convenience values are conceptually useful to clarifying
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Helper equations} \label{vorbis:spec:helper}
|
\section{Helper equations} \label{vorbis:spec:helper}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Tables} \label{vorbis:spec:tables}
|
\section{Tables} \label{vorbis:spec:tables}
|
||||||
|
|
||||||
\subsection{floor1\_inverse\_dB\_table} \label{vorbis:spec:floor1:inverse:dB:table}
|
\subsection{floor1\_inverse\_dB\_table} \label{vorbis:spec:floor1:inverse:dB:table}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ static_docs = \
|
|||||||
# bits needed by the spec
|
# bits needed by the spec
|
||||||
SPEC_PNG = \
|
SPEC_PNG = \
|
||||||
components.png \
|
components.png \
|
||||||
fish_xiph_org.png \
|
|
||||||
floor1-1.png \
|
floor1-1.png \
|
||||||
floor1-2.png \
|
floor1-2.png \
|
||||||
floor1-3.png \
|
floor1-3.png \
|
||||||
@@ -39,7 +38,22 @@ SPEC_PNG = \
|
|||||||
residue-pack.png \
|
residue-pack.png \
|
||||||
residue2.png \
|
residue2.png \
|
||||||
window1.png \
|
window1.png \
|
||||||
window2.png
|
window2.png \
|
||||||
|
Vorbis_I_spec0x.png \
|
||||||
|
Vorbis_I_spec1x.png \
|
||||||
|
Vorbis_I_spec2x.png \
|
||||||
|
Vorbis_I_spec3x.png \
|
||||||
|
Vorbis_I_spec4x.png \
|
||||||
|
Vorbis_I_spec5x.png \
|
||||||
|
Vorbis_I_spec6x.png \
|
||||||
|
Vorbis_I_spec7x.png \
|
||||||
|
Vorbis_I_spec8x.png \
|
||||||
|
Vorbis_I_spec9x.png \
|
||||||
|
Vorbis_I_spec10x.png \
|
||||||
|
Vorbis_I_spec11x.png \
|
||||||
|
Vorbis_I_spec12x.png \
|
||||||
|
Vorbis_I_spec13x.png \
|
||||||
|
Vorbis_I_spec14x.png
|
||||||
|
|
||||||
SPEC_TEX = \
|
SPEC_TEX = \
|
||||||
Vorbis_I_spec.tex \
|
Vorbis_I_spec.tex \
|
||||||
@@ -77,14 +91,13 @@ CLEANFILES = $(SPEC_TEX:%.tex=%.aux) \
|
|||||||
Vorbis_I_spec.lg Vorbis_I_spec.log \
|
Vorbis_I_spec.lg Vorbis_I_spec.log \
|
||||||
Vorbis_I_spec.out Vorbis_I_spec.tmp \
|
Vorbis_I_spec.out Vorbis_I_spec.tmp \
|
||||||
Vorbis_I_spec.toc Vorbis_I_spec.xref \
|
Vorbis_I_spec.toc Vorbis_I_spec.xref \
|
||||||
Vorbis_I_spec*.png \
|
|
||||||
zzVorbis_I_spec.ps
|
zzVorbis_I_spec.ps
|
||||||
DISTCLEANFILES = $(built_docs)
|
DISTCLEANFILES = $(built_docs)
|
||||||
|
|
||||||
|
|
||||||
# explicit rules for generating docs
|
# explicit rules for generating docs
|
||||||
if BUILD_DOCS
|
if BUILD_DOCS
|
||||||
Vorbis_I_spec.html Vorbis_I_spec.css: $(SPEC_TEX) $(SPEC_PNG)
|
Vorbis_I_spec.html Vorbis_I_spec.css: $(SPEC_TEX) $(SPEC_PNG) fish_xiph_org.png
|
||||||
htlatex $<
|
htlatex $<
|
||||||
|
|
||||||
Vorbis_I_spec.pdf: $(SPEC_TEX) $(SPEC_PNG)
|
Vorbis_I_spec.pdf: $(SPEC_TEX) $(SPEC_PNG)
|
||||||
@@ -107,7 +120,7 @@ doxygen-build.stamp: Doxyfile $(top_srcdir)/include/vorbis/*.h
|
|||||||
touch doxygen-build.stamp
|
touch doxygen-build.stamp
|
||||||
else
|
else
|
||||||
doxygen-build.stamp:
|
doxygen-build.stamp:
|
||||||
echo "*** Warning: Doxygen not found; documentation will not be built."
|
echo "*** Warning: Documentation build is disabled."
|
||||||
touch doxygen-build.stamp
|
touch doxygen-build.stamp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -9737,7 +9737,7 @@ class="cmtt-8"> </span><span
|
|||||||
class="cmtt-8"> 4)</span><span
|
class="cmtt-8"> 4)</span><span
|
||||||
class="cmtt-8"> [limit\_residue\_begin]</span><span
|
class="cmtt-8"> [limit\_residue\_begin]</span><span
|
||||||
class="cmtt-8"> =</span><span
|
class="cmtt-8"> =</span><span
|
||||||
class="cmtt-8"> maximum</span><span
|
class="cmtt-8"> minimum</span><span
|
||||||
class="cmtt-8"> of</span><span
|
class="cmtt-8"> of</span><span
|
||||||
class="cmtt-8"> ([residue\_begin],[actual\_size]);</span>
|
class="cmtt-8"> ([residue\_begin],[actual\_size]);</span>
|
||||||
<br class="fancyvrb" /><a
|
<br class="fancyvrb" /><a
|
||||||
@@ -9749,7 +9749,7 @@ class="cmtt-8"> </span><span
|
|||||||
class="cmtt-8"> 5)</span><span
|
class="cmtt-8"> 5)</span><span
|
||||||
class="cmtt-8"> [limit\_residue\_end]</span><span
|
class="cmtt-8"> [limit\_residue\_end]</span><span
|
||||||
class="cmtt-8"> =</span><span
|
class="cmtt-8"> =</span><span
|
||||||
class="cmtt-8"> maximum</span><span
|
class="cmtt-8"> minimum</span><span
|
||||||
class="cmtt-8"> of</span><span
|
class="cmtt-8"> of</span><span
|
||||||
class="cmtt-8"> ([residue\_end],[actual\_size]);</span></div>
|
class="cmtt-8"> ([residue\_end],[actual\_size]);</span></div>
|
||||||
<!--l. 277--><p class="noindent" >The following convenience values are conceptually useful to clarifying the decode process:
|
<!--l. 277--><p class="noindent" >The following convenience values are conceptually useful to clarifying the decode process:
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
% $Id$
|
|
||||||
\documentclass[12pt,paper=a4]{scrartcl}
|
\documentclass[12pt,paper=a4]{scrartcl}
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 557 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Embedding Vorbis into an Ogg stream} \label{vorbis:over:ogg}
|
\section{Embedding Vorbis into an Ogg stream} \label{vorbis:over:ogg}
|
||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section{Vorbis encapsulation in RTP} \label{vorbis:over:rtp}
|
\section{Vorbis encapsulation in RTP} \label{vorbis:over:rtp}
|
||||||
|
|
||||||
% TODO: Include draft-rtp.xml somehow?
|
% TODO: Include draft-rtp.xml somehow?
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
% -*- mode: latex; TeX-master: "Vorbis_I_spec"; -*-
|
||||||
%!TEX root = Vorbis_I_spec.tex
|
%!TEX root = Vorbis_I_spec.tex
|
||||||
% $Id$
|
|
||||||
\section*{Colophon}
|
\section*{Colophon}
|
||||||
|
|
||||||
\includegraphics[width=5cm]{fish_xiph_org}
|
\includegraphics[width=5cm]{fish_xiph_org}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
libvorbis release checklist.
|
||||||
|
|
||||||
|
- Bump vendor string for encoder changes in lib/info.c
|
||||||
|
- Bump release version and sonames in configure.ac
|
||||||
|
- Update CHANGES.
|
||||||
|
- Update overall copyright dates on COPYING and README.
|
||||||
|
- Verify everything is committed.
|
||||||
|
- Tag release: `git tag -S v1.x.y` Paste the CHANGES entry as a tag msg.
|
||||||
|
- Verify 'make distcheck' works.
|
||||||
|
- Publish the tag: `git push --tags`
|
||||||
|
- Copy source packages to a checkout of https://svn.xiph.org/releases/vorbis/
|
||||||
|
- Add the packages to the repo and update checksum files there.
|
||||||
|
- Update https://xiph.org/downloads/
|
||||||
|
- Update topic in the #vorbis irc channel on freenode.net.
|
||||||
|
- Post announcement to https://xiph.org/press/ and link from front page.
|
||||||
|
- Announce new release to mailing list.
|
||||||
@@ -72,7 +72,7 @@ li {
|
|||||||
|
|
||||||
<h1>Ogg Vorbis I format specification: comment field and header specification</h1>
|
<h1>Ogg Vorbis I format specification: comment field and header specification</h1>
|
||||||
|
|
||||||
<h1>Overview</h1>
|
<h1 id="overview">Overview</h1>
|
||||||
|
|
||||||
<p>The Vorbis text comment header is the second (of three) header
|
<p>The Vorbis text comment header is the second (of three) header
|
||||||
packets that begin a Vorbis bitstream. It is meant for short, text
|
packets that begin a Vorbis bitstream. It is meant for short, text
|
||||||
@@ -92,9 +92,9 @@ they turn out to be, eg:</p>
|
|||||||
opening for Moxy Früvous, 1997"
|
opening for Moxy Früvous, 1997"
|
||||||
</p></blockquote>
|
</p></blockquote>
|
||||||
|
|
||||||
<h1>Comment encoding</h1>
|
<h1 id="commentencoding">Comment encoding</h1>
|
||||||
|
|
||||||
<h2>Structure</h2>
|
<h2 id="structure">Structure</h2>
|
||||||
|
|
||||||
<p>The comment header logically is a list of eight-bit-clean vectors; the
|
<p>The comment header logically is a list of eight-bit-clean vectors; the
|
||||||
number of vectors is bounded to 2^32-1 and the length of each vector
|
number of vectors is bounded to 2^32-1 and the length of each vector
|
||||||
@@ -122,7 +122,7 @@ set the vendor string to "Xiph.Org libVorbis I 20020717".</p>
|
|||||||
9) done.
|
9) done.
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2>Content vector format</h2>
|
<h2 id="vectorformat">Content vector format</h2>
|
||||||
|
|
||||||
<p>The comment vectors are structured similarly to a UNIX environment variable.
|
<p>The comment vectors are structured similarly to a UNIX environment variable.
|
||||||
That is, comment fields consist of a field name and a corresponding value and
|
That is, comment fields consist of a field name and a corresponding value and
|
||||||
@@ -144,7 +144,7 @@ this equals sign is used to terminate the field name.</li>
|
|||||||
field contents to the end of the field.</li>
|
field contents to the end of the field.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Field names</h3>
|
<h3 id="fieldnames">Field names</h3>
|
||||||
|
|
||||||
<p>Below is a proposed, minimal list of standard field names with a
|
<p>Below is a proposed, minimal list of standard field names with a
|
||||||
description of intended use. No single or group of field names is
|
description of intended use. No single or group of field names is
|
||||||
@@ -216,7 +216,7 @@ ISRC intro page</a> for more information on ISRC numbers.</dd>
|
|||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<h3>Implications</h3>
|
<h3 id="implications">Implications</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Field names should not be 'internationalized'; this is a
|
<li>Field names should not be 'internationalized'; this is a
|
||||||
@@ -244,7 +244,7 @@ well know artists; the following is permissible, and encouraged:
|
|||||||
</pre></li>
|
</pre></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Encoding</h2>
|
<h2 id="encoding">Encoding</h2>
|
||||||
|
|
||||||
<p>The comment header comprises the entirety of the second bitstream
|
<p>The comment header comprises the entirety of the second bitstream
|
||||||
header packet. Unlike the first bitstream header packet, it is not
|
header packet. Unlike the first bitstream header packet, it is not
|
||||||
|
|||||||
@@ -2,30 +2,30 @@
|
|||||||
|
|
||||||
AUTOMAKE_OPTIONS = foreign
|
AUTOMAKE_OPTIONS = foreign
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@
|
|
||||||
|
|
||||||
noinst_PROGRAMS = decoder_example encoder_example chaining_example\
|
noinst_PROGRAMS = decoder_example encoder_example chaining_example\
|
||||||
vorbisfile_example seeking_example
|
vorbisfile_example seeking_example
|
||||||
|
|
||||||
EXTRA_DIST = frameview.pl
|
EXTRA_DIST = frameview.pl
|
||||||
|
|
||||||
|
AM_CPPFLAGS = -I$(top_srcdir)/include @OGG_CFLAGS@
|
||||||
|
|
||||||
# uncomment to build static executables from the example code
|
# uncomment to build static executables from the example code
|
||||||
#LDFLAGS = -all-static
|
#LDFLAGS = -all-static
|
||||||
|
|
||||||
decoder_example_SOURCES = decoder_example.c
|
decoder_example_SOURCES = decoder_example.c
|
||||||
decoder_example_LDADD = $(top_builddir)/lib/libvorbis.la
|
decoder_example_LDADD = $(top_builddir)/lib/libvorbis.la @OGG_LIBS@
|
||||||
|
|
||||||
encoder_example_SOURCES = encoder_example.c
|
encoder_example_SOURCES = encoder_example.c
|
||||||
encoder_example_LDADD = $(top_builddir)/lib/libvorbisenc.la $(top_builddir)/lib/libvorbis.la
|
encoder_example_LDADD = $(top_builddir)/lib/libvorbisenc.la $(top_builddir)/lib/libvorbis.la @OGG_LIBS@
|
||||||
|
|
||||||
chaining_example_SOURCES = chaining_example.c
|
chaining_example_SOURCES = chaining_example.c
|
||||||
chaining_example_LDADD = $(top_builddir)/lib/libvorbisfile.la $(top_builddir)/lib/libvorbis.la
|
chaining_example_LDADD = $(top_builddir)/lib/libvorbisfile.la $(top_builddir)/lib/libvorbis.la @OGG_LIBS@
|
||||||
|
|
||||||
vorbisfile_example_SOURCES = vorbisfile_example.c
|
vorbisfile_example_SOURCES = vorbisfile_example.c
|
||||||
vorbisfile_example_LDADD = $(top_builddir)/lib/libvorbisfile.la $(top_builddir)/lib/libvorbis.la
|
vorbisfile_example_LDADD = $(top_builddir)/lib/libvorbisfile.la $(top_builddir)/lib/libvorbis.la @OGG_LIBS@
|
||||||
|
|
||||||
seeking_example_SOURCES = seeking_example.c
|
seeking_example_SOURCES = seeking_example.c
|
||||||
seeking_example_LDADD = $(top_builddir)/lib/libvorbisfile.la $(top_builddir)/lib/libvorbis.la
|
seeking_example_LDADD = $(top_builddir)/lib/libvorbisfile.la $(top_builddir)/lib/libvorbis.la @OGG_LIBS@
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
$(MAKE) all CFLAGS="@DEBUG@"
|
$(MAKE) all CFLAGS="@DEBUG@"
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: illustrate simple use of chained bitstream and vorbisfile.a
|
function: illustrate simple use of chained bitstream and vorbisfile.a
|
||||||
last mod: $Id: chaining_example.c 16243 2009-07-10 02:49:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: simple example decoder
|
function: simple example decoder
|
||||||
last mod: $Id: decoder_example.c 16243 2009-07-10 02:49:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
@@ -75,7 +74,7 @@ int main(){
|
|||||||
/********** Decode setup ************/
|
/********** Decode setup ************/
|
||||||
|
|
||||||
ogg_sync_init(&oy); /* Now we can read pages */
|
ogg_sync_init(&oy); /* Now we can read pages */
|
||||||
|
|
||||||
while(1){ /* we repeat if the bitstream is chained */
|
while(1){ /* we repeat if the bitstream is chained */
|
||||||
int eos=0;
|
int eos=0;
|
||||||
int i;
|
int i;
|
||||||
@@ -89,60 +88,60 @@ int main(){
|
|||||||
buffer=ogg_sync_buffer(&oy,4096);
|
buffer=ogg_sync_buffer(&oy,4096);
|
||||||
bytes=fread(buffer,1,4096,stdin);
|
bytes=fread(buffer,1,4096,stdin);
|
||||||
ogg_sync_wrote(&oy,bytes);
|
ogg_sync_wrote(&oy,bytes);
|
||||||
|
|
||||||
/* Get the first page. */
|
/* Get the first page. */
|
||||||
if(ogg_sync_pageout(&oy,&og)!=1){
|
if(ogg_sync_pageout(&oy,&og)!=1){
|
||||||
/* have we simply run out of data? If so, we're done. */
|
/* have we simply run out of data? If so, we're done. */
|
||||||
if(bytes<4096)break;
|
if(bytes<4096)break;
|
||||||
|
|
||||||
/* error case. Must not be Vorbis data */
|
/* error case. Must not be Vorbis data */
|
||||||
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
|
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the serial number and set up the rest of decode. */
|
/* Get the serial number and set up the rest of decode. */
|
||||||
/* serialno first; use it to set up a logical stream */
|
/* serialno first; use it to set up a logical stream */
|
||||||
ogg_stream_init(&os,ogg_page_serialno(&og));
|
ogg_stream_init(&os,ogg_page_serialno(&og));
|
||||||
|
|
||||||
/* extract the initial header from the first page and verify that the
|
/* extract the initial header from the first page and verify that the
|
||||||
Ogg bitstream is in fact Vorbis data */
|
Ogg bitstream is in fact Vorbis data */
|
||||||
|
|
||||||
/* I handle the initial header first instead of just having the code
|
/* I handle the initial header first instead of just having the code
|
||||||
read all three Vorbis headers at once because reading the initial
|
read all three Vorbis headers at once because reading the initial
|
||||||
header is an easy way to identify a Vorbis bitstream and it's
|
header is an easy way to identify a Vorbis bitstream and it's
|
||||||
useful to see that functionality seperated out. */
|
useful to see that functionality seperated out. */
|
||||||
|
|
||||||
vorbis_info_init(&vi);
|
vorbis_info_init(&vi);
|
||||||
vorbis_comment_init(&vc);
|
vorbis_comment_init(&vc);
|
||||||
if(ogg_stream_pagein(&os,&og)<0){
|
if(ogg_stream_pagein(&os,&og)<0){
|
||||||
/* error; stream version mismatch perhaps */
|
/* error; stream version mismatch perhaps */
|
||||||
fprintf(stderr,"Error reading first page of Ogg bitstream data.\n");
|
fprintf(stderr,"Error reading first page of Ogg bitstream data.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ogg_stream_packetout(&os,&op)!=1){
|
if(ogg_stream_packetout(&os,&op)!=1){
|
||||||
/* no page? must not be vorbis */
|
/* no page? must not be vorbis */
|
||||||
fprintf(stderr,"Error reading initial header packet.\n");
|
fprintf(stderr,"Error reading initial header packet.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(vorbis_synthesis_headerin(&vi,&vc,&op)<0){
|
if(vorbis_synthesis_headerin(&vi,&vc,&op)<0){
|
||||||
/* error case; not a vorbis header */
|
/* error case; not a vorbis header */
|
||||||
fprintf(stderr,"This Ogg bitstream does not contain Vorbis "
|
fprintf(stderr,"This Ogg bitstream does not contain Vorbis "
|
||||||
"audio data.\n");
|
"audio data.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* At this point, we're sure we're Vorbis. We've set up the logical
|
/* At this point, we're sure we're Vorbis. We've set up the logical
|
||||||
(Ogg) bitstream decoder. Get the comment and codebook headers and
|
(Ogg) bitstream decoder. Get the comment and codebook headers and
|
||||||
set up the Vorbis decoder */
|
set up the Vorbis decoder */
|
||||||
|
|
||||||
/* The next two packets in order are the comment and codebook headers.
|
/* The next two packets in order are the comment and codebook headers.
|
||||||
They're likely large and may span multiple pages. Thus we read
|
They're likely large and may span multiple pages. Thus we read
|
||||||
and submit data until we get our two packets, watching that no
|
and submit data until we get our two packets, watching that no
|
||||||
pages are missing. If a page is missing, error out; losing a
|
pages are missing. If a page is missing, error out; losing a
|
||||||
header page is the only place where missing data is fatal. */
|
header page is the only place where missing data is fatal. */
|
||||||
|
|
||||||
i=0;
|
i=0;
|
||||||
while(i<2){
|
while(i<2){
|
||||||
while(i<2){
|
while(i<2){
|
||||||
@@ -181,7 +180,7 @@ int main(){
|
|||||||
}
|
}
|
||||||
ogg_sync_wrote(&oy,bytes);
|
ogg_sync_wrote(&oy,bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Throw the comments plus a few lines about the bitstream we're
|
/* Throw the comments plus a few lines about the bitstream we're
|
||||||
decoding */
|
decoding */
|
||||||
{
|
{
|
||||||
@@ -193,7 +192,7 @@ int main(){
|
|||||||
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi.channels,vi.rate);
|
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi.channels,vi.rate);
|
||||||
fprintf(stderr,"Encoded by: %s\n\n",vc.vendor);
|
fprintf(stderr,"Encoded by: %s\n\n",vc.vendor);
|
||||||
}
|
}
|
||||||
|
|
||||||
convsize=4096/vi.channels;
|
convsize=4096/vi.channels;
|
||||||
|
|
||||||
/* OK, got and parsed all three headers. Initialize the Vorbis
|
/* OK, got and parsed all three headers. Initialize the Vorbis
|
||||||
@@ -204,7 +203,7 @@ int main(){
|
|||||||
proceed in parallel. We could init
|
proceed in parallel. We could init
|
||||||
multiple vorbis_block structures
|
multiple vorbis_block structures
|
||||||
for vd here */
|
for vd here */
|
||||||
|
|
||||||
/* The rest is just a straight decode loop until end of stream */
|
/* The rest is just a straight decode loop until end of stream */
|
||||||
while(!eos){
|
while(!eos){
|
||||||
while(!eos){
|
while(!eos){
|
||||||
@@ -218,7 +217,7 @@ int main(){
|
|||||||
this point */
|
this point */
|
||||||
while(1){
|
while(1){
|
||||||
result=ogg_stream_packetout(&os,&op);
|
result=ogg_stream_packetout(&os,&op);
|
||||||
|
|
||||||
if(result==0)break; /* need more data */
|
if(result==0)break; /* need more data */
|
||||||
if(result<0){ /* missing or corrupt data at this page position */
|
if(result<0){ /* missing or corrupt data at this page position */
|
||||||
/* no reason to complain; already complained above */
|
/* no reason to complain; already complained above */
|
||||||
@@ -226,21 +225,21 @@ int main(){
|
|||||||
/* we have a packet. Decode it */
|
/* we have a packet. Decode it */
|
||||||
float **pcm;
|
float **pcm;
|
||||||
int samples;
|
int samples;
|
||||||
|
|
||||||
if(vorbis_synthesis(&vb,&op)==0) /* test for success! */
|
if(vorbis_synthesis(&vb,&op)==0) /* test for success! */
|
||||||
vorbis_synthesis_blockin(&vd,&vb);
|
vorbis_synthesis_blockin(&vd,&vb);
|
||||||
/*
|
/*
|
||||||
|
|
||||||
**pcm is a multichannel float vector. In stereo, for
|
**pcm is a multichannel float vector. In stereo, for
|
||||||
example, pcm[0] is left, and pcm[1] is right. samples is
|
example, pcm[0] is left, and pcm[1] is right. samples is
|
||||||
the size of each channel. Convert the float values
|
the size of each channel. Convert the float values
|
||||||
(-1.<=range<=1.) to whatever PCM format and write it out */
|
(-1.<=range<=1.) to whatever PCM format and write it out */
|
||||||
|
|
||||||
while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){
|
while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){
|
||||||
int j;
|
int j;
|
||||||
int clipflag=0;
|
int clipflag=0;
|
||||||
int bout=(samples<convsize?samples:convsize);
|
int bout=(samples<convsize?samples:convsize);
|
||||||
|
|
||||||
/* convert floats to 16 bit signed ints (host order) and
|
/* convert floats to 16 bit signed ints (host order) and
|
||||||
interleave */
|
interleave */
|
||||||
for(i=0;i<vi.channels;i++){
|
for(i=0;i<vi.channels;i++){
|
||||||
@@ -265,17 +264,17 @@ int main(){
|
|||||||
ptr+=vi.channels;
|
ptr+=vi.channels;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(clipflag)
|
if(clipflag)
|
||||||
fprintf(stderr,"Clipping in frame %ld\n",(long)(vd.sequence));
|
fprintf(stderr,"Clipping in frame %ld\n",(long)(vd.sequence));
|
||||||
|
|
||||||
|
|
||||||
fwrite(convbuffer,2*vi.channels,bout,stdout);
|
fwrite(convbuffer,2*vi.channels,bout,stdout);
|
||||||
|
|
||||||
vorbis_synthesis_read(&vd,bout); /* tell libvorbis how
|
vorbis_synthesis_read(&vd,bout); /* tell libvorbis how
|
||||||
many samples we
|
many samples we
|
||||||
actually consumed */
|
actually consumed */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(ogg_page_eos(&og))eos=1;
|
if(ogg_page_eos(&og))eos=1;
|
||||||
@@ -288,10 +287,10 @@ int main(){
|
|||||||
if(bytes==0)eos=1;
|
if(bytes==0)eos=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ogg_page and ogg_packet structs always point to storage in
|
/* ogg_page and ogg_packet structs always point to storage in
|
||||||
libvorbis. They're never freed or manipulated directly */
|
libvorbis. They're never freed or manipulated directly */
|
||||||
|
|
||||||
vorbis_block_clear(&vb);
|
vorbis_block_clear(&vb);
|
||||||
vorbis_dsp_clear(&vd);
|
vorbis_dsp_clear(&vd);
|
||||||
}else{
|
}else{
|
||||||
@@ -300,7 +299,7 @@ int main(){
|
|||||||
|
|
||||||
/* clean up this logical bitstream; before exit we see if we're
|
/* clean up this logical bitstream; before exit we see if we're
|
||||||
followed by another [chained] */
|
followed by another [chained] */
|
||||||
|
|
||||||
ogg_stream_clear(&os);
|
ogg_stream_clear(&os);
|
||||||
vorbis_comment_clear(&vc);
|
vorbis_comment_clear(&vc);
|
||||||
vorbis_info_clear(&vi); /* must be called last */
|
vorbis_info_clear(&vi); /* must be called last */
|
||||||
@@ -308,7 +307,7 @@ int main(){
|
|||||||
|
|
||||||
/* OK, clean up the framer */
|
/* OK, clean up the framer */
|
||||||
ogg_sync_clear(&oy);
|
ogg_sync_clear(&oy);
|
||||||
|
|
||||||
fprintf(stderr,"Done.\n");
|
fprintf(stderr,"Done.\n");
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: simple example encoder
|
function: simple example encoder
|
||||||
last mod: $Id: encoder_example.c 16946 2010-03-03 16:12:40Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: illustrate seeking, and test it too
|
function: illustrate seeking, and test it too
|
||||||
last mod: $Id: seeking_example.c 19164 2014-06-18 06:33:58Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
@@ -214,7 +213,7 @@ int main(){
|
|||||||
{
|
{
|
||||||
fprintf(stderr,"testing time page seeking to random places in %f seconds....\n",
|
fprintf(stderr,"testing time page seeking to random places in %f seconds....\n",
|
||||||
timelength);
|
timelength);
|
||||||
|
|
||||||
for(i=0;i<1000;i++){
|
for(i=0;i<1000;i++){
|
||||||
double val=(double)rand()/RAND_MAX*timelength;
|
double val=(double)rand()/RAND_MAX*timelength;
|
||||||
fprintf(stderr,"\r\t%d [time position %f]... ",i,val);
|
fprintf(stderr,"\r\t%d [time position %f]... ",i,val);
|
||||||
@@ -233,7 +232,7 @@ int main(){
|
|||||||
{
|
{
|
||||||
fprintf(stderr,"testing time exact seeking to random places in %f seconds....\n",
|
fprintf(stderr,"testing time exact seeking to random places in %f seconds....\n",
|
||||||
timelength);
|
timelength);
|
||||||
|
|
||||||
for(i=0;i<1000;i++){
|
for(i=0;i<1000;i++){
|
||||||
double val=(double)rand()/RAND_MAX*timelength;
|
double val=(double)rand()/RAND_MAX*timelength;
|
||||||
fprintf(stderr,"\r\t%d [time position %f]... ",i,val);
|
fprintf(stderr,"\r\t%d [time position %f]... ",i,val);
|
||||||
@@ -252,7 +251,7 @@ int main(){
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr,"\r \nOK.\n\n");
|
fprintf(stderr,"\r \nOK.\n\n");
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: simple example decoder using vorbisfile
|
function: simple example decoder using vorbisfile
|
||||||
last mod: $Id: vorbisfile_example.c 16328 2009-07-24 01:51:10Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
@@ -38,7 +37,7 @@ int main(){
|
|||||||
int current_section;
|
int current_section;
|
||||||
|
|
||||||
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
|
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
|
||||||
/* Beware the evil ifdef. We avoid these where we can, but this one we
|
/* Beware the evil ifdef. We avoid these where we can, but this one we
|
||||||
cannot. Don't add any more, you'll probably go to hell if you do. */
|
cannot. Don't add any more, you'll probably go to hell if you do. */
|
||||||
_setmode( _fileno( stdin ), _O_BINARY );
|
_setmode( _fileno( stdin ), _O_BINARY );
|
||||||
_setmode( _fileno( stdout ), _O_BINARY );
|
_setmode( _fileno( stdout ), _O_BINARY );
|
||||||
@@ -63,7 +62,7 @@ int main(){
|
|||||||
(long)ov_pcm_total(&vf,-1));
|
(long)ov_pcm_total(&vf,-1));
|
||||||
fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
|
fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
|
||||||
}
|
}
|
||||||
|
|
||||||
while(!eof){
|
while(!eof){
|
||||||
long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,2,1,¤t_section);
|
long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,2,1,¤t_section);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
@@ -86,7 +85,7 @@ int main(){
|
|||||||
|
|
||||||
/* cleanup */
|
/* cleanup */
|
||||||
ov_clear(&vf);
|
ov_clear(&vf);
|
||||||
|
|
||||||
fprintf(stderr,"Done.\n");
|
fprintf(stderr,"Done.\n");
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: libvorbis codec headers
|
function: libvorbis codec headers
|
||||||
last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: vorbis encode-engine setup
|
function: vorbis encode-engine setup
|
||||||
last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: stdio-based convenience library for opening/seeking/decoding
|
function: stdio-based convenience library for opening/seeking/decoding
|
||||||
last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -1,527 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# install - install a program, script, or datafile
|
|
||||||
|
|
||||||
scriptversion=2011-11-20.07; # UTC
|
|
||||||
|
|
||||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
|
||||||
# following copyright and license.
|
|
||||||
#
|
|
||||||
# Copyright (C) 1994 X Consortium
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to
|
|
||||||
# deal in the Software without restriction, including without limitation the
|
|
||||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
|
||||||
# sell copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice shall be included in
|
|
||||||
# all copies or substantial portions of the Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
|
||||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
|
||||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
#
|
|
||||||
# Except as contained in this notice, the name of the X Consortium shall not
|
|
||||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
|
||||||
# ings in this Software without prior written authorization from the X Consor-
|
|
||||||
# tium.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# FSF changes to this file are in the public domain.
|
|
||||||
#
|
|
||||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
|
||||||
# 'make' implicit rules from creating a file called install from it
|
|
||||||
# when there is no Makefile.
|
|
||||||
#
|
|
||||||
# This script is compatible with the BSD install script, but was written
|
|
||||||
# from scratch.
|
|
||||||
|
|
||||||
nl='
|
|
||||||
'
|
|
||||||
IFS=" "" $nl"
|
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
|
||||||
|
|
||||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
|
||||||
doit=${DOITPROG-}
|
|
||||||
if test -z "$doit"; then
|
|
||||||
doit_exec=exec
|
|
||||||
else
|
|
||||||
doit_exec=$doit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Put in absolute file names if you don't have them in your path;
|
|
||||||
# or use environment vars.
|
|
||||||
|
|
||||||
chgrpprog=${CHGRPPROG-chgrp}
|
|
||||||
chmodprog=${CHMODPROG-chmod}
|
|
||||||
chownprog=${CHOWNPROG-chown}
|
|
||||||
cmpprog=${CMPPROG-cmp}
|
|
||||||
cpprog=${CPPROG-cp}
|
|
||||||
mkdirprog=${MKDIRPROG-mkdir}
|
|
||||||
mvprog=${MVPROG-mv}
|
|
||||||
rmprog=${RMPROG-rm}
|
|
||||||
stripprog=${STRIPPROG-strip}
|
|
||||||
|
|
||||||
posix_glob='?'
|
|
||||||
initialize_posix_glob='
|
|
||||||
test "$posix_glob" != "?" || {
|
|
||||||
if (set -f) 2>/dev/null; then
|
|
||||||
posix_glob=
|
|
||||||
else
|
|
||||||
posix_glob=:
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
'
|
|
||||||
|
|
||||||
posix_mkdir=
|
|
||||||
|
|
||||||
# Desired mode of installed file.
|
|
||||||
mode=0755
|
|
||||||
|
|
||||||
chgrpcmd=
|
|
||||||
chmodcmd=$chmodprog
|
|
||||||
chowncmd=
|
|
||||||
mvcmd=$mvprog
|
|
||||||
rmcmd="$rmprog -f"
|
|
||||||
stripcmd=
|
|
||||||
|
|
||||||
src=
|
|
||||||
dst=
|
|
||||||
dir_arg=
|
|
||||||
dst_arg=
|
|
||||||
|
|
||||||
copy_on_change=false
|
|
||||||
no_target_directory=
|
|
||||||
|
|
||||||
usage="\
|
|
||||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
|
||||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
|
||||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
|
||||||
or: $0 [OPTION]... -d DIRECTORIES...
|
|
||||||
|
|
||||||
In the 1st form, copy SRCFILE to DSTFILE.
|
|
||||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
|
||||||
In the 4th, create DIRECTORIES.
|
|
||||||
|
|
||||||
Options:
|
|
||||||
--help display this help and exit.
|
|
||||||
--version display version info and exit.
|
|
||||||
|
|
||||||
-c (ignored)
|
|
||||||
-C install only if different (preserve the last data modification time)
|
|
||||||
-d create directories instead of installing files.
|
|
||||||
-g GROUP $chgrpprog installed files to GROUP.
|
|
||||||
-m MODE $chmodprog installed files to MODE.
|
|
||||||
-o USER $chownprog installed files to USER.
|
|
||||||
-s $stripprog installed files.
|
|
||||||
-t DIRECTORY install into DIRECTORY.
|
|
||||||
-T report an error if DSTFILE is a directory.
|
|
||||||
|
|
||||||
Environment variables override the default commands:
|
|
||||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
|
||||||
RMPROG STRIPPROG
|
|
||||||
"
|
|
||||||
|
|
||||||
while test $# -ne 0; do
|
|
||||||
case $1 in
|
|
||||||
-c) ;;
|
|
||||||
|
|
||||||
-C) copy_on_change=true;;
|
|
||||||
|
|
||||||
-d) dir_arg=true;;
|
|
||||||
|
|
||||||
-g) chgrpcmd="$chgrpprog $2"
|
|
||||||
shift;;
|
|
||||||
|
|
||||||
--help) echo "$usage"; exit $?;;
|
|
||||||
|
|
||||||
-m) mode=$2
|
|
||||||
case $mode in
|
|
||||||
*' '* | *' '* | *'
|
|
||||||
'* | *'*'* | *'?'* | *'['*)
|
|
||||||
echo "$0: invalid mode: $mode" >&2
|
|
||||||
exit 1;;
|
|
||||||
esac
|
|
||||||
shift;;
|
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2"
|
|
||||||
shift;;
|
|
||||||
|
|
||||||
-s) stripcmd=$stripprog;;
|
|
||||||
|
|
||||||
-t) dst_arg=$2
|
|
||||||
# Protect names problematic for 'test' and other utilities.
|
|
||||||
case $dst_arg in
|
|
||||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
|
||||||
esac
|
|
||||||
shift;;
|
|
||||||
|
|
||||||
-T) no_target_directory=true;;
|
|
||||||
|
|
||||||
--version) echo "$0 $scriptversion"; exit $?;;
|
|
||||||
|
|
||||||
--) shift
|
|
||||||
break;;
|
|
||||||
|
|
||||||
-*) echo "$0: invalid option: $1" >&2
|
|
||||||
exit 1;;
|
|
||||||
|
|
||||||
*) break;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
|
||||||
# When -d is used, all remaining arguments are directories to create.
|
|
||||||
# When -t is used, the destination is already specified.
|
|
||||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
|
||||||
for arg
|
|
||||||
do
|
|
||||||
if test -n "$dst_arg"; then
|
|
||||||
# $@ is not empty: it contains at least $arg.
|
|
||||||
set fnord "$@" "$dst_arg"
|
|
||||||
shift # fnord
|
|
||||||
fi
|
|
||||||
shift # arg
|
|
||||||
dst_arg=$arg
|
|
||||||
# Protect names problematic for 'test' and other utilities.
|
|
||||||
case $dst_arg in
|
|
||||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $# -eq 0; then
|
|
||||||
if test -z "$dir_arg"; then
|
|
||||||
echo "$0: no input file specified." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# It's OK to call 'install-sh -d' without argument.
|
|
||||||
# This can happen when creating conditional directories.
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$dir_arg"; then
|
|
||||||
do_exit='(exit $ret); exit $ret'
|
|
||||||
trap "ret=129; $do_exit" 1
|
|
||||||
trap "ret=130; $do_exit" 2
|
|
||||||
trap "ret=141; $do_exit" 13
|
|
||||||
trap "ret=143; $do_exit" 15
|
|
||||||
|
|
||||||
# Set umask so as not to create temps with too-generous modes.
|
|
||||||
# However, 'strip' requires both read and write access to temps.
|
|
||||||
case $mode in
|
|
||||||
# Optimize common cases.
|
|
||||||
*644) cp_umask=133;;
|
|
||||||
*755) cp_umask=22;;
|
|
||||||
|
|
||||||
*[0-7])
|
|
||||||
if test -z "$stripcmd"; then
|
|
||||||
u_plus_rw=
|
|
||||||
else
|
|
||||||
u_plus_rw='% 200'
|
|
||||||
fi
|
|
||||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
|
||||||
*)
|
|
||||||
if test -z "$stripcmd"; then
|
|
||||||
u_plus_rw=
|
|
||||||
else
|
|
||||||
u_plus_rw=,u+rw
|
|
||||||
fi
|
|
||||||
cp_umask=$mode$u_plus_rw;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
for src
|
|
||||||
do
|
|
||||||
# Protect names problematic for 'test' and other utilities.
|
|
||||||
case $src in
|
|
||||||
-* | [=\(\)!]) src=./$src;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test -n "$dir_arg"; then
|
|
||||||
dst=$src
|
|
||||||
dstdir=$dst
|
|
||||||
test -d "$dstdir"
|
|
||||||
dstdir_status=$?
|
|
||||||
else
|
|
||||||
|
|
||||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
|
||||||
# might cause directories to be created, which would be especially bad
|
|
||||||
# if $src (and thus $dsttmp) contains '*'.
|
|
||||||
if test ! -f "$src" && test ! -d "$src"; then
|
|
||||||
echo "$0: $src does not exist." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$dst_arg"; then
|
|
||||||
echo "$0: no destination specified." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
dst=$dst_arg
|
|
||||||
|
|
||||||
# If destination is a directory, append the input filename; won't work
|
|
||||||
# if double slashes aren't ignored.
|
|
||||||
if test -d "$dst"; then
|
|
||||||
if test -n "$no_target_directory"; then
|
|
||||||
echo "$0: $dst_arg: Is a directory" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
dstdir=$dst
|
|
||||||
dst=$dstdir/`basename "$src"`
|
|
||||||
dstdir_status=0
|
|
||||||
else
|
|
||||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
|
||||||
dstdir=`
|
|
||||||
(dirname "$dst") 2>/dev/null ||
|
|
||||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
|
||||||
X"$dst" : 'X\(//\)[^/]' \| \
|
|
||||||
X"$dst" : 'X\(//\)$' \| \
|
|
||||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
|
||||||
echo X"$dst" |
|
|
||||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
/^X\(\/\/\)[^/].*/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
/^X\(\/\/\)$/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
/^X\(\/\).*/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
s/.*/./; q'
|
|
||||||
`
|
|
||||||
|
|
||||||
test -d "$dstdir"
|
|
||||||
dstdir_status=$?
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
obsolete_mkdir_used=false
|
|
||||||
|
|
||||||
if test $dstdir_status != 0; then
|
|
||||||
case $posix_mkdir in
|
|
||||||
'')
|
|
||||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
|
||||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
|
||||||
umask=`umask`
|
|
||||||
case $stripcmd.$umask in
|
|
||||||
# Optimize common cases.
|
|
||||||
*[2367][2367]) mkdir_umask=$umask;;
|
|
||||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
|
||||||
|
|
||||||
*[0-7])
|
|
||||||
mkdir_umask=`expr $umask + 22 \
|
|
||||||
- $umask % 100 % 40 + $umask % 20 \
|
|
||||||
- $umask % 10 % 4 + $umask % 2
|
|
||||||
`;;
|
|
||||||
*) mkdir_umask=$umask,go-w;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# With -d, create the new directory with the user-specified mode.
|
|
||||||
# Otherwise, rely on $mkdir_umask.
|
|
||||||
if test -n "$dir_arg"; then
|
|
||||||
mkdir_mode=-m$mode
|
|
||||||
else
|
|
||||||
mkdir_mode=
|
|
||||||
fi
|
|
||||||
|
|
||||||
posix_mkdir=false
|
|
||||||
case $umask in
|
|
||||||
*[123567][0-7][0-7])
|
|
||||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
|
||||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
|
||||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
|
||||||
|
|
||||||
if (umask $mkdir_umask &&
|
|
||||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
if test -z "$dir_arg" || {
|
|
||||||
# Check for POSIX incompatibilities with -m.
|
|
||||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
|
||||||
# other-writable bit of parent directory when it shouldn't.
|
|
||||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
|
||||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
|
||||||
case $ls_ld_tmpdir in
|
|
||||||
d????-?r-*) different_mode=700;;
|
|
||||||
d????-?--*) different_mode=755;;
|
|
||||||
*) false;;
|
|
||||||
esac &&
|
|
||||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
|
||||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
|
||||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
then posix_mkdir=:
|
|
||||||
fi
|
|
||||||
rmdir "$tmpdir/d" "$tmpdir"
|
|
||||||
else
|
|
||||||
# Remove any dirs left behind by ancient mkdir implementations.
|
|
||||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
|
||||||
fi
|
|
||||||
trap '' 0;;
|
|
||||||
esac;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if
|
|
||||||
$posix_mkdir && (
|
|
||||||
umask $mkdir_umask &&
|
|
||||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
|
||||||
)
|
|
||||||
then :
|
|
||||||
else
|
|
||||||
|
|
||||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
|
||||||
# or it failed possibly due to a race condition. Create the
|
|
||||||
# directory the slow way, step by step, checking for races as we go.
|
|
||||||
|
|
||||||
case $dstdir in
|
|
||||||
/*) prefix='/';;
|
|
||||||
[-=\(\)!]*) prefix='./';;
|
|
||||||
*) prefix='';;
|
|
||||||
esac
|
|
||||||
|
|
||||||
eval "$initialize_posix_glob"
|
|
||||||
|
|
||||||
oIFS=$IFS
|
|
||||||
IFS=/
|
|
||||||
$posix_glob set -f
|
|
||||||
set fnord $dstdir
|
|
||||||
shift
|
|
||||||
$posix_glob set +f
|
|
||||||
IFS=$oIFS
|
|
||||||
|
|
||||||
prefixes=
|
|
||||||
|
|
||||||
for d
|
|
||||||
do
|
|
||||||
test X"$d" = X && continue
|
|
||||||
|
|
||||||
prefix=$prefix$d
|
|
||||||
if test -d "$prefix"; then
|
|
||||||
prefixes=
|
|
||||||
else
|
|
||||||
if $posix_mkdir; then
|
|
||||||
(umask=$mkdir_umask &&
|
|
||||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
|
||||||
# Don't fail if two instances are running concurrently.
|
|
||||||
test -d "$prefix" || exit 1
|
|
||||||
else
|
|
||||||
case $prefix in
|
|
||||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
|
||||||
*) qprefix=$prefix;;
|
|
||||||
esac
|
|
||||||
prefixes="$prefixes '$qprefix'"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
prefix=$prefix/
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -n "$prefixes"; then
|
|
||||||
# Don't fail if two instances are running concurrently.
|
|
||||||
(umask $mkdir_umask &&
|
|
||||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
|
||||||
test -d "$dstdir" || exit 1
|
|
||||||
obsolete_mkdir_used=true
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$dir_arg"; then
|
|
||||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
|
||||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
|
||||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
|
||||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
|
||||||
else
|
|
||||||
|
|
||||||
# Make a couple of temp file names in the proper directory.
|
|
||||||
dsttmp=$dstdir/_inst.$$_
|
|
||||||
rmtmp=$dstdir/_rm.$$_
|
|
||||||
|
|
||||||
# Trap to clean up those temp files at exit.
|
|
||||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
|
||||||
|
|
||||||
# Copy the file name to the temp name.
|
|
||||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits.
|
|
||||||
#
|
|
||||||
# If any of these fail, we abort the whole thing. If we want to
|
|
||||||
# ignore errors from any of these, just make sure not to ignore
|
|
||||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
|
||||||
#
|
|
||||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
|
||||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
|
||||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
|
||||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
|
||||||
|
|
||||||
# If -C, don't bother to copy if it wouldn't change the file.
|
|
||||||
if $copy_on_change &&
|
|
||||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
|
||||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
|
||||||
|
|
||||||
eval "$initialize_posix_glob" &&
|
|
||||||
$posix_glob set -f &&
|
|
||||||
set X $old && old=:$2:$4:$5:$6 &&
|
|
||||||
set X $new && new=:$2:$4:$5:$6 &&
|
|
||||||
$posix_glob set +f &&
|
|
||||||
|
|
||||||
test "$old" = "$new" &&
|
|
||||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
|
||||||
then
|
|
||||||
rm -f "$dsttmp"
|
|
||||||
else
|
|
||||||
# Rename the file to the real destination.
|
|
||||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
|
||||||
|
|
||||||
# The rename failed, perhaps because mv can't rename something else
|
|
||||||
# to itself, or perhaps because mv is so ancient that it does not
|
|
||||||
# support -f.
|
|
||||||
{
|
|
||||||
# Now remove or move aside any old file at destination location.
|
|
||||||
# We try this two ways since rm can't unlink itself on some
|
|
||||||
# systems and the destination file might be busy for other
|
|
||||||
# reasons. In this case, the final cleanup might fail but the new
|
|
||||||
# file should still install successfully.
|
|
||||||
{
|
|
||||||
test ! -f "$dst" ||
|
|
||||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
|
||||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
|
||||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
|
||||||
} ||
|
|
||||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
|
||||||
(exit 1); exit 1
|
|
||||||
}
|
|
||||||
} &&
|
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
|
||||||
$doit $mvcmd "$dsttmp" "$dst"
|
|
||||||
}
|
|
||||||
fi || exit 1
|
|
||||||
|
|
||||||
trap '' 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Local variables:
|
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
|
||||||
# time-stamp-start: "scriptversion="
|
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
|
||||||
# time-stamp-time-zone: "UTC"
|
|
||||||
# time-stamp-end: "; # UTC"
|
|
||||||
# End:
|
|
||||||
@@ -0,0 +1,108 @@
|
|||||||
|
set(VORBIS_PUBLIC_HEADERS
|
||||||
|
../include/vorbis/codec.h
|
||||||
|
../include/vorbis/vorbisenc.h
|
||||||
|
../include/vorbis/vorbisfile.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set(VORBIS_HEADERS
|
||||||
|
envelope.h
|
||||||
|
lpc.h
|
||||||
|
lsp.h
|
||||||
|
codebook.h
|
||||||
|
misc.h
|
||||||
|
psy.h
|
||||||
|
masking.h
|
||||||
|
os.h
|
||||||
|
mdct.h
|
||||||
|
smallft.h
|
||||||
|
highlevel.h
|
||||||
|
registry.h
|
||||||
|
scales.h
|
||||||
|
window.h
|
||||||
|
lookup.h
|
||||||
|
lookup_data.h
|
||||||
|
codec_internal.h
|
||||||
|
backends.h
|
||||||
|
bitrate.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set(VORBIS_SOURCES
|
||||||
|
mdct.c
|
||||||
|
smallft.c
|
||||||
|
block.c
|
||||||
|
envelope.c
|
||||||
|
window.c
|
||||||
|
lsp.c
|
||||||
|
lpc.c
|
||||||
|
analysis.c
|
||||||
|
synthesis.c
|
||||||
|
psy.c
|
||||||
|
info.c
|
||||||
|
floor1.c
|
||||||
|
floor0.c
|
||||||
|
res0.c
|
||||||
|
mapping0.c
|
||||||
|
registry.c
|
||||||
|
codebook.c
|
||||||
|
sharedbook.c
|
||||||
|
lookup.c
|
||||||
|
bitrate.c
|
||||||
|
)
|
||||||
|
|
||||||
|
set(VORBISFILE_SOURCES
|
||||||
|
vorbisfile.c
|
||||||
|
)
|
||||||
|
|
||||||
|
set(VORBISENC_SOURCES
|
||||||
|
vorbisenc.c
|
||||||
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
list(APPEND VORBIS_SOURCES vorbisenc.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
list(APPEND VORBIS_SOURCES ../win32/vorbis.def)
|
||||||
|
list(APPEND VORBISENC_SOURCES ../win32/vorbisenc.def)
|
||||||
|
list(APPEND VORBISFILE_SOURCES ../win32/vorbisfile.def)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include_directories(../include)
|
||||||
|
include_directories(.)
|
||||||
|
include_directories(${OGG_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
if (NOT BUILD_FRAMEWORK)
|
||||||
|
add_library(vorbis ${VORBIS_HEADERS} ${VORBIS_SOURCES})
|
||||||
|
add_library(vorbisenc ${VORBISENC_SOURCES})
|
||||||
|
add_library(vorbisfile ${VORBISFILE_SOURCES})
|
||||||
|
|
||||||
|
get_version_info(VORBIS_VERSION_INFO "V_LIB_CURRENT" "V_LIB_AGE" "V_LIB_REVISION")
|
||||||
|
set_target_properties(vorbis PROPERTIES SOVERSION ${VORBIS_VERSION_INFO})
|
||||||
|
get_version_info(VORBISENC_VERSION_INFO "VE_LIB_CURRENT" "VE_LIB_AGE" "VE_LIB_REVISION")
|
||||||
|
set_target_properties(vorbisenc PROPERTIES SOVERSION ${VORBISENC_VERSION_INFO})
|
||||||
|
get_version_info(VORBISFILE_VERSION_INFO "VF_LIB_CURRENT" "VF_LIB_AGE" "VF_LIB_REVISION")
|
||||||
|
set_target_properties(vorbisfile PROPERTIES SOVERSION ${VORBISFILE_VERSION_INFO})
|
||||||
|
|
||||||
|
target_link_libraries(vorbis ${OGG_LIBRARIES})
|
||||||
|
target_link_libraries(vorbisenc ${OGG_LIBRARIES} vorbis)
|
||||||
|
target_link_libraries(vorbisfile ${OGG_LIBRARIES} vorbis)
|
||||||
|
|
||||||
|
install(FILES ${VORBIS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/vorbis)
|
||||||
|
|
||||||
|
install(TARGETS vorbis RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
install(TARGETS vorbisenc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
install(TARGETS vorbisfile RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
else()
|
||||||
|
add_library(vorbis ${VORBIS_PUBLIC_HEADERS} ${VORBIS_HEADERS} ${VORBIS_SOURCES} ${VORBISFILE_SOURCES} ${VORBISENC_SOURCES})
|
||||||
|
set_target_properties(vorbis PROPERTIES
|
||||||
|
FRAMEWORK TRUE
|
||||||
|
FRAMEWORK_VERSION ${PROJECT_VERSION}
|
||||||
|
MACOSX_FRAMEWORK_IDENTIFIER org.xiph.vorbis
|
||||||
|
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${PROJECT_VERSION}
|
||||||
|
MACOSX_FRAMEWORK_BUNDLE_VERSION ${PROJECT_VERSION}
|
||||||
|
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
|
||||||
|
PUBLIC_HEADER "${VORBIS_PUBLIC_HEADERS}"
|
||||||
|
OUTPUT_NAME Vorbis
|
||||||
|
)
|
||||||
|
target_link_libraries(vorbis ${OGG_LIBRARIES})
|
||||||
|
endif()
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
SUBDIRS = modes books
|
SUBDIRS = modes books
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/include @OGG_CFLAGS@
|
AM_CPPFLAGS = -I$(top_srcdir)/include @OGG_CFLAGS@
|
||||||
|
|
||||||
lib_LTLIBRARIES = libvorbis.la libvorbisfile.la libvorbisenc.la
|
lib_LTLIBRARIES = libvorbis.la libvorbisfile.la libvorbisenc.la
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: single-block PCM analysis mode dispatch
|
function: single-block PCM analysis mode dispatch
|
||||||
last mod: $Id: analysis.c 16226 2009-07-08 06:43:49Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
function: libvorbis backend and mapping structures; needed for
|
function: libvorbis backend and mapping structures; needed for
|
||||||
static mode headers
|
static mode headers
|
||||||
last mod: $Id: backends.h 16962 2010-03-11 07:30:34Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: bark scale utility
|
function: bark scale utility
|
||||||
last mod: $Id: barkmel.c 19454 2015-03-02 22:39:28Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: bitrate tracking and management
|
function: bitrate tracking and management
|
||||||
last mod: $Id: bitrate.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: bitrate tracking and management
|
function: bitrate tracking and management
|
||||||
last mod: $Id: bitrate.h 13293 2007-07-24 00:09:47Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: PCM data vector blocking, windowing and dis/reassembly
|
function: PCM data vector blocking, windowing and dis/reassembly
|
||||||
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
|
Handle windowing, overlap-add, etc of the PCM vectors. This is made
|
||||||
more amusing by Vorbis' current two allowed block sizes.
|
more amusing by Vorbis' current two allowed block sizes.
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
*
|
*
|
||||||
* function: static codebooks for 5.1 surround
|
* function: static codebooks for 5.1 surround
|
||||||
* last modified: $Id: res_books_51.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
*
|
*
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: static codebooks autogenerated by huff/huffbuld
|
function: static codebooks autogenerated by huff/huffbuld
|
||||||
last modified: $Id: res_books_stereo.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: static codebooks autogenerated by huff/huffbuld
|
function: static codebooks autogenerated by huff/huffbuld
|
||||||
last modified: $Id: floor_books.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: static codebooks autogenerated by huff/huffbuld
|
function: static codebooks autogenerated by huff/huffbuld
|
||||||
last modified: $Id: res_books_uncoupled.h 19057 2014-01-22 12:32:31Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: basic codebook pack/unpack/code/decode operations
|
function: basic codebook pack/unpack/code/decode operations
|
||||||
last mod: $Id: codebook.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
@@ -387,7 +386,7 @@ long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
|||||||
t[i] = book->valuelist+entry[i]*book->dim;
|
t[i] = book->valuelist+entry[i]*book->dim;
|
||||||
}
|
}
|
||||||
for(i=0,o=0;i<book->dim;i++,o+=step)
|
for(i=0,o=0;i<book->dim;i++,o+=step)
|
||||||
for (j=0;j<step;j++)
|
for (j=0;o+j<n && j<step;j++)
|
||||||
a[o+j]+=t[j][i];
|
a[o+j]+=t[j][i];
|
||||||
}
|
}
|
||||||
return(0);
|
return(0);
|
||||||
@@ -399,41 +398,12 @@ long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){
|
|||||||
int i,j,entry;
|
int i,j,entry;
|
||||||
float *t;
|
float *t;
|
||||||
|
|
||||||
if(book->dim>8){
|
for(i=0;i<n;){
|
||||||
for(i=0;i<n;){
|
entry = decode_packed_entry_number(book,b);
|
||||||
entry = decode_packed_entry_number(book,b);
|
if(entry==-1)return(-1);
|
||||||
if(entry==-1)return(-1);
|
t = book->valuelist+entry*book->dim;
|
||||||
t = book->valuelist+entry*book->dim;
|
for(j=0;i<n && j<book->dim;)
|
||||||
for (j=0;j<book->dim;)
|
a[i++]+=t[j++];
|
||||||
a[i++]+=t[j++];
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
for(i=0;i<n;){
|
|
||||||
entry = decode_packed_entry_number(book,b);
|
|
||||||
if(entry==-1)return(-1);
|
|
||||||
t = book->valuelist+entry*book->dim;
|
|
||||||
j=0;
|
|
||||||
switch((int)book->dim){
|
|
||||||
case 8:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 7:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 6:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 5:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 4:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 3:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 2:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 1:
|
|
||||||
a[i++]+=t[j++];
|
|
||||||
case 0:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(0);
|
return(0);
|
||||||
@@ -471,12 +441,13 @@ long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch,
|
|||||||
long i,j,entry;
|
long i,j,entry;
|
||||||
int chptr=0;
|
int chptr=0;
|
||||||
if(book->used_entries>0){
|
if(book->used_entries>0){
|
||||||
for(i=offset/ch;i<(offset+n)/ch;){
|
int m=(offset+n)/ch;
|
||||||
|
for(i=offset/ch;i<m;){
|
||||||
entry = decode_packed_entry_number(book,b);
|
entry = decode_packed_entry_number(book,b);
|
||||||
if(entry==-1)return(-1);
|
if(entry==-1)return(-1);
|
||||||
{
|
{
|
||||||
const float *t = book->valuelist+entry*book->dim;
|
const float *t = book->valuelist+entry*book->dim;
|
||||||
for (j=0;j<book->dim;j++){
|
for (j=0;i<m && j<book->dim;j++){
|
||||||
a[chptr++][i]+=t[j];
|
a[chptr++][i]+=t[j];
|
||||||
if(chptr==ch){
|
if(chptr==ch){
|
||||||
chptr=0;
|
chptr=0;
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: basic shared codebook operations
|
function: basic shared codebook operations
|
||||||
last mod: $Id: codebook.h 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: libvorbis codec headers
|
function: libvorbis codec headers
|
||||||
last mod: $Id: codec_internal.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: PCM data envelope analysis
|
function: PCM data envelope analysis
|
||||||
last mod: $Id: envelope.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: PCM data envelope analysis and manipulation
|
function: PCM data envelope analysis and manipulation
|
||||||
last mod: $Id: envelope.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: floor backend 0 implementation
|
function: floor backend 0 implementation
|
||||||
last mod: $Id: floor0.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: floor backend 1 implementation
|
function: floor backend 1 implementation
|
||||||
last mod: $Id: floor1.c 19457 2015-03-03 00:15:29Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: highlevel encoder setup struct separated out for vorbisenc clarity
|
function: highlevel encoder setup struct separated out for vorbisenc clarity
|
||||||
last mod: $Id: highlevel.h 17195 2010-05-05 21:49:51Z giles $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: maintain the info structure, info <-> header packets
|
function: maintain the info structure, info <-> header packets
|
||||||
last mod: $Id: info.c 19441 2015-01-21 01:17:41Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
@@ -31,8 +30,8 @@
|
|||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.5"
|
#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.6"
|
||||||
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)"
|
#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20180316 (Now 100% fewer shells)"
|
||||||
|
|
||||||
/* helpers */
|
/* helpers */
|
||||||
static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){
|
static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){
|
||||||
@@ -65,11 +64,13 @@ void vorbis_comment_add(vorbis_comment *vc,const char *comment){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){
|
void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){
|
||||||
char *comment=alloca(strlen(tag)+strlen(contents)+2); /* +2 for = and \0 */
|
/* Length for key and value +2 for = and \0 */
|
||||||
|
char *comment=_ogg_malloc(strlen(tag)+strlen(contents)+2);
|
||||||
strcpy(comment, tag);
|
strcpy(comment, tag);
|
||||||
strcat(comment, "=");
|
strcat(comment, "=");
|
||||||
strcat(comment, contents);
|
strcat(comment, contents);
|
||||||
vorbis_comment_add(vc, comment);
|
vorbis_comment_add(vc, comment);
|
||||||
|
_ogg_free(comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is more or less the same as strncasecmp - but that doesn't exist
|
/* This is more or less the same as strncasecmp - but that doesn't exist
|
||||||
@@ -88,27 +89,30 @@ char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count){
|
|||||||
long i;
|
long i;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
||||||
char *fulltag = alloca(taglen+ 1);
|
char *fulltag = _ogg_malloc(taglen+1);
|
||||||
|
|
||||||
strcpy(fulltag, tag);
|
strcpy(fulltag, tag);
|
||||||
strcat(fulltag, "=");
|
strcat(fulltag, "=");
|
||||||
|
|
||||||
for(i=0;i<vc->comments;i++){
|
for(i=0;i<vc->comments;i++){
|
||||||
if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
|
if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
|
||||||
if(count == found)
|
if(count == found) {
|
||||||
/* We return a pointer to the data, not a copy */
|
/* We return a pointer to the data, not a copy */
|
||||||
return vc->user_comments[i] + taglen;
|
_ogg_free(fulltag);
|
||||||
else
|
return vc->user_comments[i] + taglen;
|
||||||
|
} else {
|
||||||
found++;
|
found++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_ogg_free(fulltag);
|
||||||
return NULL; /* didn't find anything */
|
return NULL; /* didn't find anything */
|
||||||
}
|
}
|
||||||
|
|
||||||
int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
|
int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
|
||||||
int i,count=0;
|
int i,count=0;
|
||||||
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
int taglen = strlen(tag)+1; /* +1 for the = we append */
|
||||||
char *fulltag = alloca(taglen+1);
|
char *fulltag = _ogg_malloc(taglen+1);
|
||||||
strcpy(fulltag,tag);
|
strcpy(fulltag,tag);
|
||||||
strcat(fulltag, "=");
|
strcat(fulltag, "=");
|
||||||
|
|
||||||
@@ -117,6 +121,7 @@ int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_ogg_free(fulltag);
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,9 +211,9 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
|
|||||||
vi->channels=oggpack_read(opb,8);
|
vi->channels=oggpack_read(opb,8);
|
||||||
vi->rate=oggpack_read(opb,32);
|
vi->rate=oggpack_read(opb,32);
|
||||||
|
|
||||||
vi->bitrate_upper=oggpack_read(opb,32);
|
vi->bitrate_upper=(ogg_int32_t)oggpack_read(opb,32);
|
||||||
vi->bitrate_nominal=oggpack_read(opb,32);
|
vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32);
|
||||||
vi->bitrate_lower=oggpack_read(opb,32);
|
vi->bitrate_lower=(ogg_int32_t)oggpack_read(opb,32);
|
||||||
|
|
||||||
ci->blocksizes[0]=1<<oggpack_read(opb,4);
|
ci->blocksizes[0]=1<<oggpack_read(opb,4);
|
||||||
ci->blocksizes[1]=1<<oggpack_read(opb,4);
|
ci->blocksizes[1]=1<<oggpack_read(opb,4);
|
||||||
@@ -583,7 +588,8 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
|||||||
oggpack_buffer opb;
|
oggpack_buffer opb;
|
||||||
private_state *b=v->backend_state;
|
private_state *b=v->backend_state;
|
||||||
|
|
||||||
if(!b||vi->channels<=0){
|
if(!b||vi->channels<=0||vi->channels>256){
|
||||||
|
b = NULL;
|
||||||
ret=OV_EFAULT;
|
ret=OV_EFAULT;
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
@@ -642,7 +648,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
|||||||
memset(op_code,0,sizeof(*op_code));
|
memset(op_code,0,sizeof(*op_code));
|
||||||
|
|
||||||
if(b){
|
if(b){
|
||||||
oggpack_writeclear(&opb);
|
if(vi->channels>0)oggpack_writeclear(&opb);
|
||||||
if(b->header)_ogg_free(b->header);
|
if(b->header)_ogg_free(b->header);
|
||||||
if(b->header1)_ogg_free(b->header1);
|
if(b->header1)_ogg_free(b->header1);
|
||||||
if(b->header2)_ogg_free(b->header2);
|
if(b->header2)_ogg_free(b->header2);
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup based functions
|
function: lookup based functions
|
||||||
last mod: $Id: lookup.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup based functions
|
function: lookup based functions
|
||||||
last mod: $Id: lookup.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup data; generated by lookups.pl; edit there
|
function: lookup data; generated by lookups.pl; edit there
|
||||||
last mod: $Id: lookup_data.h 16037 2009-05-26 21:10:58Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ print <<'EOD';
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: lookup data; generated by lookups.pl; edit there
|
function: lookup data; generated by lookups.pl; edit there
|
||||||
last mod: $Id: lookups.pl 13293 2007-07-24 00:09:47Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LPC low level routines
|
function: LPC low level routines
|
||||||
last mod: $Id: lpc.c 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LPC low level routines
|
function: LPC low level routines
|
||||||
last mod: $Id: lpc.h 16037 2009-05-26 21:10:58Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LSP (also called LSF) conversion routines
|
function: LSP (also called LSF) conversion routines
|
||||||
last mod: $Id: lsp.c 19453 2015-03-02 22:35:34Z xiphmont $
|
|
||||||
|
|
||||||
The LSP generation code is taken (with minimal modification and a
|
The LSP generation code is taken (with minimal modification and a
|
||||||
few bugfixes) from "On the Computation of the LSP Frequencies" by
|
few bugfixes) from "On the Computation of the LSP Frequencies" by
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
********************************************************************
|
********************************************************************
|
||||||
|
|
||||||
function: LSP (also called LSF) conversion routines
|
function: LSP (also called LSF) conversion routines
|
||||||
last mod: $Id: lsp.h 16227 2009-07-08 06:58:46Z xiphmont $
|
|
||||||
|
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
|
||||||
|
|||||||