Upgraded mpg123 and SQLite.

Added component selection in installer.
This commit is contained in:
Daniel Önnerby 2009-01-28 23:15:05 +00:00
parent 34d2d196be
commit 960918a130
13 changed files with 234 additions and 65612 deletions

View File

@ -11,8 +11,8 @@ SetCompressor /SOLID lzma
!define MUI_BGCOLOR "FFFFFF"
!define PROJECT_NAME "musikCube 2"
!define SUB_NAME "developers milestone 2"
!define INSTALLER_NAME "mC2dm2"
!define SUB_NAME "developers milestone 3"
!define INSTALLER_NAME "mC2dm3"
!define INSTALL_DIR "musikCube 2"
;----------------------------------------------------------------
@ -36,43 +36,70 @@ InstallDirRegKey HKCU "Software\${INSTALL_DIR}" ""
!insertmacro MUI_PAGE_LICENSE "..\LICENSE.txt"
!insertmacro MUI_PAGE_DIRECTORY
Page custom RemoveOldFilesPage RemoveOldFilesLeave ;Custom page
;!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
Section "mC2installation" main
Section "!mC2" main
SectionIn RO
SetShellVarContext current
SetOverwrite on
SetOutPath "$INSTDIR"
File /r "..\bin\release\mC2.exe"
File /r "..\bin\release\musikServer.exe"
File /r "..\LICENSE.txt"
File /r "..\bin\release\resources"
SetOutPath "$INSTDIR\plugins"
Delete "*.dll"
File /r "..\bin\release\plugins\*.dll"
SetAutoClose false
File /r "..\bin\release\plugins\httpstream_plugin.dll"
File /r "..\bin\release\plugins\waveout.dll"
File /r "..\bin\release\plugins\taglib_plugin.dll"
IntCmpU $RemoveOldDatabases 0 DoNotRemoveDBFiles
; Remove the app data
RMDir /r "${MC2_DB_DIR}"
DoNotRemoveDBFiles:
CreateDirectory "$SMPROGRAMS\${PROJECT_NAME} ${SUB_NAME}"
CreateShortCut "$SMPROGRAMS\${PROJECT_NAME} ${SUB_NAME}\${PROJECT_NAME}.lnk" "$INSTDIR\mC2.exe"
CreateShortCut "$SMPROGRAMS\${PROJECT_NAME} ${SUB_NAME}\musikServer.lnk" "$INSTDIR\musikServer.exe"
SectionEnd
Section "musikServer"
SetShellVarContext current
SetOverwrite on
SetOutPath "$INSTDIR"
File /r "..\bin\release\musikServer.exe"
CreateShortCut "$SMPROGRAMS\${PROJECT_NAME} ${SUB_NAME}\musikServer.lnk" "$INSTDIR\musikServer.exe"
SectionEnd
SubSection Plugins plugins
Section "MP3 decoder"
SetOutPath "$INSTDIR\plugins"
File /r "..\bin\release\plugins\mpg123decoder.dll"
SectionEnd
Section "OGG decoder"
SetOutPath "$INSTDIR\plugins"
File /r "..\bin\release\plugins\oggdecoder.dll"
SectionEnd
Section "FLAC decoder"
SetOutPath "$INSTDIR\plugins"
File /r "..\bin\release\plugins\flacdecoder.dll"
SectionEnd
Section /o "BPM analyzer"
SetOutPath "$INSTDIR\plugins"
File /r "..\bin\release\plugins\bpm_analyzer.dll"
SectionEnd
Section /o "DSP echo test"
SetOutPath "$INSTDIR\plugins"
File /r "..\bin\release\plugins\dsp_example_echo.dll"
SectionEnd
SubSectionEnd
Section -Post
WriteRegStr HKCU "Software\${INSTALL_DIR}" "" $INSTDIR
WriteUninstaller "$INSTDIR\uninst.exe"

View File

@ -107,8 +107,8 @@ extern "C" {
** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z
** are the major version, minor version, and release number.
*/
#define SQLITE_VERSION "3.6.8"
#define SQLITE_VERSION_NUMBER 3006008
#define SQLITE_VERSION "3.6.10"
#define SQLITE_VERSION_NUMBER 3006010
/*
** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>

View File

@ -1,6 +1,6 @@
/******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite
** version 3.6.8. By combining all the individual C code files into this
** version 3.6.10. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a one translation
** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements
@ -17,7 +17,7 @@
** is also in a separate file. This file contains only code for the core
** SQLite library.
**
** This amalgamation was generated on 2009-01-12 15:45:58 UTC.
** This amalgamation was generated on 2009-01-15 16:00:39 UTC.
*/
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
@ -41,7 +41,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqliteInt.h,v 1.823 2009/01/10 16:15:22 drh Exp $
** @(#) $Id: sqliteInt.h,v 1.824 2009/01/14 23:03:41 drh Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_
@ -424,16 +424,22 @@
** where multiple cases go to the same block of code, testcase()
** can insure that all cases are evaluated.
**
** The TESTONLY macro is used to enclose variable declarations or
** other bits of code that are needed to support the arguments
** within testcase() macros.
*/
#ifdef SQLITE_COVERAGE_TEST
SQLITE_PRIVATE void sqlite3Coverage(int);
# define testcase(X) if( X ){ sqlite3Coverage(__LINE__); }
# define TESTONLY(X) X
#else
# define testcase(X)
#endif
/*
** The TESTONLY macro is used to enclose variable declarations or
** other bits of code that are needed to support the arguments
** within testcase() and assert() macros.
*/
#if !defined(NDEBUG) || defined(SQLITE_COVERAGE_TEST)
# define TESTONLY(X) X
#else
# define TESTONLY(X)
#endif
@ -603,8 +609,8 @@ extern "C" {
** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z
** are the major version, minor version, and release number.
*/
#define SQLITE_VERSION "3.6.8"
#define SQLITE_VERSION_NUMBER 3006008
#define SQLITE_VERSION "3.6.10"
#define SQLITE_VERSION_NUMBER 3006010
/*
** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>
@ -8748,7 +8754,7 @@ SQLITE_PRIVATE void sqlite3PCacheSetDefault(void);
** This header file is #include-ed by sqliteInt.h and thus ends up
** being included by every source file.
**
** $Id: os.h,v 1.106 2008/12/08 18:19:18 drh Exp $
** $Id: os.h,v 1.107 2009/01/14 23:03:41 drh Exp $
*/
#ifndef _SQLITE_OS_H_
#define _SQLITE_OS_H_
@ -8976,6 +8982,7 @@ SQLITE_PRIVATE int sqlite3OsLock(sqlite3_file*, int);
SQLITE_PRIVATE int sqlite3OsUnlock(sqlite3_file*, int);
SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut);
SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file*,int,void*);
#define SQLITE_FCNTL_DB_UNCHANGED 0xca093fa0
SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id);
SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics(sqlite3_file *id);
@ -21582,7 +21589,7 @@ SQLITE_API int sqlite3_os_end(void){
** * Definitions of sqlite3_vfs objects for all locking methods
** plus implementations of sqlite3_os_init() and sqlite3_os_end().
**
** $Id: os_unix.c,v 1.235 2009/01/09 21:41:17 drh Exp $
** $Id: os_unix.c,v 1.237 2009/01/15 04:30:03 drh Exp $
*/
#if SQLITE_OS_UNIX /* This file is used on unix only */
@ -21727,6 +21734,18 @@ struct unixFile {
int isDelete; /* Delete on close if true */
struct vxworksFileId *pId; /* Unique file ID */
#endif
#ifndef NDEBUG
/* The next group of variables are used to track whether or not the
** transaction counter in bytes 24-27 of database files are updated
** whenever any part of the database changes. An assertion fault will
** occur if a file is updated without also updating the transaction
** counter. This test is made to avoid new problems similar to the
** one described by ticket #3584.
*/
unsigned char transCntrChng; /* True if the transaction counter changed */
unsigned char dbUpdate; /* True if any part of database file changed */
unsigned char inNormalWrite; /* True if in a normal write operation */
#endif
#ifdef SQLITE_TEST
/* In test mode, increase the size of this structure a bit so that
** it is larger than the struct CrashFile defined in test6.c.
@ -23086,6 +23105,24 @@ static int unixLock(sqlite3_file *id, int locktype){
}
}
#ifndef NDEBUG
/* Set up the transaction-counter change checking flags when
** transitioning from a SHARED to a RESERVED lock. The change
** from SHARED to RESERVED marks the beginning of a normal
** write operation (not a hot journal rollback).
*/
if( rc==SQLITE_OK
&& pFile->locktype<=SHARED_LOCK
&& locktype==RESERVED_LOCK
){
pFile->transCntrChng = 0;
pFile->dbUpdate = 0;
pFile->inNormalWrite = 1;
}
#endif
if( rc==SQLITE_OK ){
pFile->locktype = locktype;
pLock->locktype = locktype;
@ -23135,6 +23172,23 @@ static int unixUnlock(sqlite3_file *id, int locktype){
SimulateIOErrorBenign(1);
SimulateIOError( h=(-1) )
SimulateIOErrorBenign(0);
#ifndef NDEBUG
/* When reducing a lock such that other processes can start
** reading the database file again, make sure that the
** transaction counter was updated if any part of the database
** file changed. If the transaction counter is not updated,
** other connections to the same file might not realize that
** the file has changed and hence might not know to flush their
** cache. The use of a stale cache can lead to database corruption.
*/
assert( pFile->inNormalWrite==0
|| pFile->dbUpdate==0
|| pFile->transCntrChng==1 );
pFile->inNormalWrite = 0;
#endif
if( locktype==SHARED_LOCK ){
lock.l_type = F_RDLCK;
lock.l_whence = SEEK_SET;
@ -24467,6 +24521,29 @@ static int unixWrite(
int wrote = 0;
assert( id );
assert( amt>0 );
#ifndef NDEBUG
/* If we are doing a normal write to a database file (as opposed to
** doing a hot-journal rollback or a write to some file other than a
** normal database file) then record the fact that the database
** has changed. If the transaction counter is modified, record that
** fact too.
*/
if( ((unixFile*)id)->inNormalWrite ){
unixFile *pFile = (unixFile*)id;
pFile->dbUpdate = 1; /* The database has been modified */
if( offset<=24 && offset+amt>=27 ){
char oldCntr[4];
SimulateIOErrorBenign(1);
seekAndRead(pFile, 24, oldCntr, 4);
SimulateIOErrorBenign(0);
if( memcmp(oldCntr, &((char*)pBuf)[24-offset], 4)!=0 ){
pFile->transCntrChng = 1; /* The transaction counter has changed */
}
}
}
#endif
while( amt>0 && (wrote = seekAndWrite((unixFile*)id, offset, pBuf, amt))>0 ){
amt -= wrote;
offset += wrote;
@ -24576,9 +24653,11 @@ static int full_fsync(int fd, int fullSync, int dataOnly){
#else
if( dataOnly ){
rc = fdatasync(fd);
if( OS_VXWORKS && rc==-1 && errno==ENOTSUP ){
#if OS_VXWORKS
if( rc==-1 && errno==ENOTSUP ){
rc = fsync(fd);
}
#endif
}else{
rc = fsync(fd);
}
@ -24726,6 +24805,17 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){
*(int*)pArg = ((unixFile*)id)->lastErrno;
return SQLITE_OK;
}
#ifndef NDEBUG
/* The pager calls this method to signal that it has done
** a rollback and that the database is therefore unchanged and
** it hence it is OK for the transaction change counter to be
** unchanged.
*/
case SQLITE_FCNTL_DB_UNCHANGED: {
((unixFile*)id)->dbUpdate = 0;
return SQLITE_OK;
}
#endif
#if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
case SQLITE_SET_LOCKPROXYFILE:
case SQLITE_GET_LOCKPROXYFILE: {
@ -30447,6 +30537,8 @@ SQLITE_PRIVATE void sqlite3PcacheStats(
**
** Big chunks of rowid/next-ptr pairs are allocated at a time, to
** reduce the malloc overhead.
**
** $Id: rowset.c,v 1.3 2009/01/13 20:14:16 drh Exp $
*/
/*
@ -30679,7 +30771,7 @@ SQLITE_PRIVATE int sqlite3RowSetNext(RowSet *p, i64 *pRowid){
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.548 2009/01/11 17:00:02 drh Exp $
** @(#) $Id: pager.c,v 1.551 2009/01/14 23:03:41 drh Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
@ -31645,10 +31737,7 @@ static int addToSavepointBitvecs(Pager *pPager, Pgno pgno){
*/
static void pager_unlock(Pager *pPager){
if( !pPager->exclusiveMode ){
int rc = osUnlock(pPager->fd, NO_LOCK);
if( rc ) pPager->errCode = rc;
pPager->dbSizeValid = 0;
IOTRACE(("UNLOCK %p\n", pPager))
int rc;
/* Always close the journal file when dropping the database lock.
** Otherwise, another connection with journal_mode=delete might
@ -31663,6 +31752,11 @@ static void pager_unlock(Pager *pPager){
pPager->pAlwaysRollback = 0;
}
rc = osUnlock(pPager->fd, NO_LOCK);
if( rc ) pPager->errCode = rc;
pPager->dbSizeValid = 0;
IOTRACE(("UNLOCK %p\n", pPager))
/* If Pager.errCode is set, the contents of the pager cache cannot be
** trusted. Now that the pager file is unlocked, the contents of the
** cache can be discarded and the error code safely cleared.
@ -31763,6 +31857,7 @@ static int pager_end_transaction(Pager *pPager, int hasMaster){
if( !pPager->exclusiveMode ){
rc2 = osUnlock(pPager->fd, SHARED_LOCK);
pPager->state = PAGER_SHARED;
pPager->changeCountDone = 0;
}else if( pPager->state==PAGER_SYNCED ){
pPager->state = PAGER_EXCLUSIVE;
}
@ -32380,6 +32475,16 @@ static int pager_playback(Pager *pPager, int isHot){
assert( 0 );
end_playback:
/* Following a rollback, the database file should be back in its original
** state prior to the start of the transaction, so invoke the
** SQLITE_FCNTL_DB_UNCHANGED file-control method to disable the
** assertion that the transaction counter was modified.
*/
assert(
pPager->fd->pMethods==0 ||
sqlite3OsFileControl(pPager->fd,SQLITE_FCNTL_DB_UNCHANGED,0)>=SQLITE_OK
);
if( rc==SQLITE_OK ){
zMaster = pPager->pTmpSpace;
rc = readMasterJournal(pPager->jfd, zMaster, pPager->pVfs->mxPathname+1);
@ -48619,7 +48724,7 @@ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt *pStmt, int op, int resetFlag){
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
** $Id: vdbe.c,v 1.810 2009/01/05 22:30:39 drh Exp $
** $Id: vdbe.c,v 1.811 2009/01/14 00:55:10 drh Exp $
*/
/*
@ -52572,6 +52677,7 @@ case OP_Last: { /* jump */
rc = sqlite3BtreeLast(pCrsr, &res);
pC->nullRow = (u8)res;
pC->deferredMoveto = 0;
pC->rowidIsValid = 0;
pC->cacheStatus = CACHE_STALE;
if( res && pOp->p2>0 ){
pc = pOp->p2 - 1;
@ -52622,6 +52728,7 @@ case OP_Rewind: { /* jump */
pC->atFirst = res==0 ?1:0;
pC->deferredMoveto = 0;
pC->cacheStatus = CACHE_STALE;
pC->rowidIsValid = 0;
}else{
res = 1;
}
@ -70040,7 +70147,7 @@ SQLITE_PRIVATE int sqlite3AutoLoadExtensions(sqlite3 *db){
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
** $Id: pragma.c,v 1.200 2009/01/09 21:41:17 drh Exp $
** $Id: pragma.c,v 1.201 2009/01/13 20:14:16 drh Exp $
*/
/* Ignore this whole file if pragmas are disabled
@ -70552,7 +70659,7 @@ SQLITE_PRIVATE void sqlite3Pragma(
** PRAGMA [database.]journal_size_limit
** PRAGMA [database.]journal_size_limit=N
**
** Get or set the (boolean) value of the database 'auto-vacuum' parameter.
** Get or set the size limit on rollback journal files.
*/
if( sqlite3StrICmp(zLeft,"journal_size_limit")==0 ){
Pager *pPager = sqlite3BtreePager(pDb->pBt);
@ -70574,7 +70681,8 @@ SQLITE_PRIVATE void sqlite3Pragma(
** PRAGMA [database.]auto_vacuum
** PRAGMA [database.]auto_vacuum=N
**
** Get or set the (boolean) value of the database 'auto-vacuum' parameter.
** Get or set the value of the database 'auto-vacuum' parameter.
** The value is one of: 0 NONE 1 FULL 2 INCREMENTAL
*/
#ifndef SQLITE_OMIT_AUTOVACUUM
if( sqlite3StrICmp(zLeft,"auto_vacuum")==0 ){
@ -79368,7 +79476,7 @@ SQLITE_PRIVATE void sqlite3VtabMakeWritable(Parse *pParse, Table *pTab){
** so is applicable. Because this module is responsible for selecting
** indices, you might also think of this module as the "query optimizer".
**
** $Id: where.c,v 1.363 2009/01/10 15:34:12 drh Exp $
** $Id: where.c,v 1.364 2009/01/14 00:55:10 drh Exp $
*/
/*
@ -81197,6 +81305,7 @@ static void bestIndex(
WhereClause *pOrWC = &pTerm->u.pOrInfo->wc;
WhereTerm *pOrTerm;
int j;
int sortable = 0;
double rTotal = 0;
nRow = 0;
for(j=0, pOrTerm=pOrWC->a; j<pOrWC->nTerm; j++, pOrTerm++){
@ -81216,6 +81325,14 @@ static void bestIndex(
nRow += sTermCost.nRow;
if( rTotal>=pCost->rCost ) break;
}
if( pOrderBy!=0 ){
if( sortableByRowid(iCur, pOrderBy, pWC->pMaskSet, &rev) && !rev ){
sortable = 1;
}else{
rTotal += nRow*estLog(nRow);
WHERETRACE(("... sorting increases OR cost to %.9g\n", rTotal));
}
}
WHERETRACE(("... multi-index OR cost=%.9g nrow=%.9g\n",
rTotal, nRow));
if( rTotal<pCost->rCost ){
@ -81223,10 +81340,7 @@ static void bestIndex(
pCost->nRow = nRow;
pCost->plan.wsFlags = WHERE_MULTI_OR;
pCost->plan.u.pTerm = pTerm;
if( pOrderBy!=0
&& sortableByRowid(iCur, pOrderBy, pWC->pMaskSet, &rev)
&& !rev
){
if( sortable ){
pCost->plan.wsFlags = WHERE_ORDERBY|WHERE_MULTI_OR;
}
}
@ -89498,8 +89612,8 @@ SQLITE_API int sqlite3_test_control(int op, ...){
**
**
**** Segment merging ****
** To amortize update costs, segments are groups into levels and
** merged in matches. Each increase in level represents exponentially
** To amortize update costs, segments are grouped into levels and
** merged in batches. Each increase in level represents exponentially
** more documents.
**
** New documents (actually, document updates) are tokenized and

View File

@ -1,3 +1,14 @@
2009-01-10 14:45 thor
* tags/1.6.4: tagging 1.6.4 ... going to include the ntom / bad
frame fill fix
2008-12-20 16:32 thor
* tags/1.6.3/ChangeLog: yeah, adding it again... so that the one
here is at least not outdated... do not get used to full
changelog in svn
2008-12-20 15:57 thor
* tags/1.6.3/NEWS, tags/1.6.3/configure.ac: fix fifo default

View File

@ -1,3 +1,8 @@
1.6.4
---
- Fix NtoM resampling behaviour with the broken frame fillup (especiall false alarms after seeking).
As a side effect, the resampled output now should be consistent with seeks (always the same sample value at a certain sample offset).
1.6.3
---

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.63 for mpg123 1.6.3.
# Generated by GNU Autoconf 2.63 for mpg123 1.6.4.
#
# Report bugs to <mpg123-devel@lists.sourceforge.net>.
#
@ -746,8 +746,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='mpg123'
PACKAGE_TARNAME='mpg123'
PACKAGE_VERSION='1.6.3'
PACKAGE_STRING='mpg123 1.6.3'
PACKAGE_VERSION='1.6.4'
PACKAGE_STRING='mpg123 1.6.4'
PACKAGE_BUGREPORT='mpg123-devel@lists.sourceforge.net'
ac_unique_file="src/mpg123.c"
@ -1606,7 +1606,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures mpg123 1.6.3 to adapt to many kinds of systems.
\`configure' configures mpg123 1.6.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1677,7 +1677,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of mpg123 1.6.3:";;
short | recursive ) echo "Configuration of mpg123 1.6.4:";;
esac
cat <<\_ACEOF
@ -1851,7 +1851,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
mpg123 configure 1.6.3
mpg123 configure 1.6.4
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -1865,7 +1865,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by mpg123 $as_me 1.6.3, which was
It was created by mpg123 $as_me 1.6.4, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@ -2233,7 +2233,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
LIBMPG123_VERSION=11:3:11
LIBMPG123_VERSION=11:4:11
@ -2693,7 +2693,7 @@ fi
# Define the identity of the package.
PACKAGE='mpg123'
VERSION='1.6.3'
VERSION='1.6.4'
cat >>confdefs.h <<_ACEOF
@ -23969,7 +23969,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by mpg123 $as_me 1.6.3, which was
This file was extended by mpg123 $as_me 1.6.4, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -24032,7 +24032,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
mpg123 config.status 1.6.3
mpg123 config.status 1.6.4
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View File

@ -10,8 +10,8 @@ AC_PREREQ(2.57)
dnl ############# Initialisation
AC_INIT([mpg123], [1.6.3], [mpg123-devel@lists.sourceforge.net])
LIBMPG123_VERSION=11:3:11
AC_INIT([mpg123], [1.6.4], [mpg123-devel@lists.sourceforge.net])
LIBMPG123_VERSION=11:4:11
AC_SUBST(LIBMPG123_VERSION)
AC_CONFIG_SRCDIR(src/mpg123.c)

View File

@ -4,7 +4,7 @@
# - devel packages for alsa, sdl, etc... to build the respective output modules.
Summary: The fast console mpeg audio decoder/player.
Name: mpg123
Version: 1.6.3
Version: 1.6.4
Release: 1
URL: http://www.mpg123.org/
License: GPL

View File

@ -9,7 +9,9 @@
#define HAVE_STDLIB_H
#define HAVE_STRING_H
#define INDEX_SIZE 10000
#define FRAME_INDEX
#define GAPLESS
/* We want some frame index, eh? */
#define FRAME_INDEX 1
#define INDEX_SIZE 1000
/* also gapless playback! */
#define GAPLESS 1

File diff suppressed because it is too large Load Diff

View File

@ -561,6 +561,9 @@ static int get_next_frame(mpg123_handle *mh)
debug1("ignoring frame %li", (long)mh->num);
/* Decoder structure must be current! decode_update has been called before... */
(mh->do_layer)(mh); mh->buffer.fill = 0;
/* The ignored decoding may have failed. Make sure ntom stays consistent. */
if(mh->down_sample == 3) ntom_set_ntom(mh, mh->num+1);
mh->to_ignore = mh->to_decode = FALSE;
}
/* Read new frame data; possibly breaking out here for MPG123_NEED_MORE. */
@ -625,6 +628,7 @@ static int get_next_frame(mpg123_handle *mh)
void decode_the_frame(mpg123_handle *fr)
{
size_t needed_bytes = samples_to_bytes(fr, frame_outs(fr, fr->num+1)-frame_outs(fr, fr->num));
fr->clip += (fr->do_layer)(fr);
/* There could be less data than promised. */
if(fr->buffer.fill < needed_bytes)
@ -634,6 +638,8 @@ void decode_the_frame(mpg123_handle *fr)
/* One could do a loop with individual samples instead... but zero is zero. */
memset(fr->buffer.data + fr->buffer.fill, 0, needed_bytes - fr->buffer.fill);
fr->buffer.fill = needed_bytes;
/* ntom_val will be wrong when the decoding wasn't carried out completely */
if(fr->down_sample == 3) ntom_set_ntom(fr, fr->num+1);
}
}
@ -903,13 +909,20 @@ static int do_the_seek(mpg123_handle *mh)
int b;
off_t fnum = SEEKFRAME(mh);
mh->buffer.fill = 0;
if(mh->num < mh->firstframe) mh->to_decode = FALSE;
if(mh->num == fnum && mh->to_decode) return MPG123_OK;
if(mh->num == fnum-1)
{
mh->to_decode = FALSE;
return MPG123_OK;
}
if(mh->down_sample == 3)
{
ntom_set_ntom(mh, fnum);
debug3("fixed ntom for frame %"OFF_P" to %i, num=%"OFF_P, fnum, mh->ntom_val[0], mh->num);
}
b = mh->rd->seek_frame(mh, fnum);
debug1("seek_frame returned: %i", b);
if(b<0) return b;

View File

@ -7,6 +7,7 @@
#ifndef MPG123_MSVC_H
#define MPG123_MSVC_H
#include <tchar.h>
#include <stdlib.h>
#include <sys/types.h>

View File

@ -259,10 +259,6 @@
RelativePath=".\mpg123\src\libmpg123\decode_sse3d.h"
>
</File>
<File
RelativePath=".\mpg123\src\libmpg123\dnoise.c"
>
</File>
<File
RelativePath=".\mpg123\src\libmpg123\equalizer.c"
>