summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BUILD6
-rw-r--r--Jamfile4
-rw-r--r--Jamrules6
-rw-r--r--THANKS21
-rw-r--r--TODO10
-rw-r--r--TRANSLATIONS4
-rw-r--r--core/AviMux.c10
-rw-r--r--core/Fifo.c49
-rw-r--r--core/Fifo.h4
-rw-r--r--core/HandBrake.c62
-rw-r--r--core/LpcmDec.c17
-rw-r--r--core/Thread.c6
-rw-r--r--core/Thread.h13
-rw-r--r--doc/faq.txt9
-rw-r--r--gtk2/callbacks.c12
-rw-r--r--macosx/Controller.mm10
-rw-r--r--macosx/English.lproj/InfoPlist.stringsbin520 -> 496 bytes
-rw-r--r--macosx/HandBrake.xcode/project.pbxproj6
-rw-r--r--macosx/i18n/de.strings (renamed from macosx/i18n/German.strings)bin10126 -> 10126 bytes
-rw-r--r--macosx/i18n/es.stringsbin0 -> 10238 bytes
-rw-r--r--macosx/i18n/fr.strings (renamed from macosx/i18n/French.strings)bin10100 -> 10100 bytes
-rw-r--r--macosx/i18n/it.stringsbin10236 -> 10240 bytes
-rw-r--r--macosx/i18n/pt.strings183
-rw-r--r--test/test.c4
24 files changed, 344 insertions, 92 deletions
diff --git a/BUILD b/BUILD
index 40da5e7ec..056eb929a 100644
--- a/BUILD
+++ b/BUILD
@@ -1,4 +1,4 @@
-$Id: BUILD,v 1.2 2004/02/13 13:45:50 titer Exp $
+$Id: BUILD,v 1.4 2004/03/16 15:57:03 titer Exp $
BUILD file for HandBrake <http://handbrake.m0k.org/>
@@ -10,6 +10,8 @@ Step 1: get jam
Jam <http://www.perforce.com/jam/jam.html> is a make replacement.
Get it for your operating system:
+ + BeOS: get <http://tfs.cs.tu-berlin.de/~bonefish/download/jam/jam.zip>
+ (the jam used by OBOS). Also, gcc 2.95.3 is needed.
+ OS X: get <http://handbrake.m0k.org/files/jam-2.5rc3-OSX.zip> and
copy jam to /usr/local/bin/. Do not use the modified jam shipped with
the developer tools (/Developer/Private/jam).
@@ -21,6 +23,8 @@ Step 2 (optional): set custom compiler flags
If you want to optimize the build for a specific CPU, edit the Jamrules
file and modify the "OPTIM = ..." line by adding the needed flags.
+In case you modify this line later, make sure you run `jam -a' in order
+to force jam to rebuild everything with the new flags.
Step 3: build
=============
diff --git a/Jamfile b/Jamfile
index b4a8aca70..7691d8ec9 100644
--- a/Jamfile
+++ b/Jamfile
@@ -1,4 +1,4 @@
-# $Id: Jamfile,v 1.40 2004/03/08 11:32:48 titer Exp $
+# $Id: Jamfile,v 1.41 2004/03/15 17:08:37 titer Exp $
#
# This file is part of the HandBrake source code.
# Homepage: <http://handbrake.m0k.org/>.
@@ -25,7 +25,7 @@ if $(OS) = BEOS
-I$(TOP)/core -I$(TOP)/beos/liblayout -g -Wall ;
LINKLIBS on HandBrake = $(LINKLIBS) -L$(TOP)/lib -llayout -lbe ;
LinkLibraries HandBrake : $(HB_LIBS) ;
- Main HandBrake : $(SOURCES_BEOS) ;
+# Main HandBrake : $(SOURCES_BEOS) ;
}
# OS X
diff --git a/Jamrules b/Jamrules
index 0eb0cac77..4debdea9e 100644
--- a/Jamrules
+++ b/Jamrules
@@ -8,10 +8,12 @@ LINK = g++ ;
OPTIM = -O3 -funroll-loops ;
# HandBrake defines
-HB_VERSION = 0.6.0-test3 ;
+HB_VERSION = 0.6.0 ;
DEFINES = HB_$(OS) HB_VERSION=\\\"$(HB_VERSION)\\\" ;
#DEFINES += HB_NOMMX ;
+LANGUAGES = fr de it pl ru nl es pt ;
+
# OS-specific
if $(OS) = BEOS
{
@@ -104,7 +106,7 @@ actions BuildOSXApp
$(RM) $(1) && \
( cd macosx && xcodebuild ) && \
cp -r macosx/build/HandBrake.app $(1) && \
- for i in French German it pl ru nl; do \
+ for i in $(LANGUAGES) ; do \
( cd $(1)/Contents/Resources && \
cp -r English.lproj $i.lproj && \
cp ../../../macosx/i18n/$i.strings \
diff --git a/THANKS b/THANKS
index 065d09e5f..4644df099 100644
--- a/THANKS
+++ b/THANKS
@@ -1,9 +1,16 @@
-$Id: THANKS,v 1.7 2004/03/04 17:57:17 titer Exp $
+$Id: THANKS,v 1.11 2004/03/22 19:54:04 titer Exp $
THANKS file for HandBrake <http://handbrake.m0k.org/>
+Several people noticeably contributed to HandBrake development without
+writing code (submitting/checking translations, DVD samples, etc).
+Let's thank them here!
+
+Sorted by chronological order:
+
Omar Ahmad Bhatti
- + Intensive beta testing, suggestions
+ + Intensive beta testing, suggestions. Convinced me to port HandBrake
+ to OS X, which finally was a pretty good idea.
Hanna Bauer
Adrien Marquette
@@ -12,6 +19,7 @@ Adrien Marquette
Paul B�n�chet
Luidgi Esposito
Andrea Gianarro
+Emilio Gelosi
+ Italian translation
Adam
@@ -23,3 +31,12 @@ Nik Roby
Leendert
+ Dutch translation
+Eric Kornblum
+ + Sent me a sample DVD with LPCM tracks so I could add support for it
+
+migol Superkid
+ + Spanish translation
+
+pgjw
+ + Portuguese translation
+
diff --git a/TODO b/TODO
index 03c46213a..c6542e0de 100644
--- a/TODO
+++ b/TODO
@@ -1,15 +1,12 @@
-$Id: TODO,v 1.32 2004/03/08 11:32:48 titer Exp $
+$Id: TODO,v 1.33 2004/03/12 14:22:19 titer Exp $
TODO file for HandBrake <http://handbrake.m0k.org/>
This is a roadmap for future releases of HandBrake. It has to be taken
as an indication, as it may change as any time.
-0.6.0
- + Make sure the deadlock at the end of the rip is gone
-
-Maybe in 0.6.0
- + New, up-to-date BeOS GUI [if I get some help]
+0.6.x
+ + Up-to-date BeOS GUI
0.7.x
+ Homemade resampler
@@ -18,6 +15,7 @@ Maybe in 0.6.0
+ Subtitle support
+ Rip only a few chapters or rip X seconds from a given starting point
+ Allow to launch rips of several titles
+ + Drop libdvdplay
Maybe in 0.7.x
+ MPEG audio decoding [if I have a DVD to test it]
diff --git a/TRANSLATIONS b/TRANSLATIONS
index 63e140253..4ca546b84 100644
--- a/TRANSLATIONS
+++ b/TRANSLATIONS
@@ -1,4 +1,4 @@
-$Id: TRANSLATIONS,v 1.1 2004/03/08 12:22:46 titer Exp $
+$Id: TRANSLATIONS,v 1.2 2004/03/22 18:20:30 titer Exp $
TRANSLATIONS file for HandBrake <http://handbrake.m0k.org/>
@@ -16,5 +16,5 @@ your language. You can get it (for the latest release) at
Edit it with Xcode, save it to HandBrake/macosx/i18n/xx.strings (where
'xx' are the two letters representing your language), then add 'xx' to
-the language list in the Jamrules file (in the 'BuildOSXApp' action).
+the language list in the Jamrules file.
diff --git a/core/AviMux.c b/core/AviMux.c
index e106f8383..444d77adc 100644
--- a/core/AviMux.c
+++ b/core/AviMux.c
@@ -1,4 +1,4 @@
-/* $Id: AviMux.c,v 1.16 2004/02/18 19:36:35 titer Exp $
+/* $Id: AviMux.c,v 1.17 2004/03/16 16:11:29 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -161,7 +161,11 @@ void HBAviMuxClose( HBAviMux ** _a )
a->die = 1;
HBThreadClose( &a->thread );
+#ifndef HB_CYGWIN
file = fopen( a->title->file, "r" );
+#else
+ file = fopen( a->title->file, "rb" );
+#endif
if( file )
{
fseek( file, 0, SEEK_END );
@@ -194,7 +198,11 @@ static void AviMuxThread( void * _a )
/* Open destination file */
HBLog( "HBAviMux: opening %s", title->file );
+#ifndef HB_CYGWIN
if( !( a->file = fopen( title->file, "w" ) ) )
+#else
+ if( !( a->file = fopen( title->file, "wb" ) ) )
+#endif
{
HBLog( "HBAviMux: fopen() failed" );
HBErrorOccured( a->handle, HB_ERROR_AVI_WRITE );
diff --git a/core/Fifo.c b/core/Fifo.c
index 7e7433e01..5c32c59a1 100644
--- a/core/Fifo.c
+++ b/core/Fifo.c
@@ -1,4 +1,4 @@
-/* $Id: Fifo.c,v 1.12 2004/03/04 17:35:52 titer Exp $
+/* $Id: Fifo.c,v 1.14 2004/03/17 10:35:06 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -22,43 +22,36 @@ HBBuffer * HBBufferInit( int size )
b->size = size;
#if defined( HB_BEOS ) || defined( HB_LINUX )
- if( !( b->data = memalign( 16, size ) ) )
- {
- HBLog( "HBBufferInit: malloc() failed, gonna crash" );
- free( b );
- return NULL;
- }
+ b->data = memalign( 16, size );
#elif defined( HB_MACOSX )
- if( !( b->dataOrig = malloc( size + 15 ) ) )
+ /* OS X's malloc returns 16-bytes aligned memory */
+ b->data = malloc( size );
+#elif defined( HB_CYGWIN )
+ b->dataOrig = malloc( size + 15 );
+ b->data = b->dataOrig + 15;
+ b->data -= (long) b->data & 15;
+#endif
+
+ if( !b->data )
{
HBLog( "HBBufferInit: malloc() failed, gonna crash" );
free( b );
return NULL;
}
- b->data = b->dataOrig + 15;
- b->data -= (long) b->data & 15;
-#elif defined( HB_CYGWIN )
- /* TODO */
-#endif
-
- b->position = 0.0;
return b;
}
void HBBufferReAlloc( HBBuffer * b, int size )
{
-#if defined( HB_BEOS ) || defined( HB_LINUX )
- b->data = realloc( b->data, size );
-#elif defined( HB_MACOSX )
- /* Ugly */
- uint8_t * new = malloc( size );
- memcpy( new, b->data, b->size );
- free( b->dataOrig );
- b->dataOrig = new;
- b->data = new;
+ /* We don't care about alignment here, realloc is only used in the
+ AVI muxer anyway */
+#if defined( HB_BEOS ) || defined( HB_LINUX ) || defined( HB_MACOSX )
+ b->data = realloc( b->data, size );
#elif defined( HB_CYGWIN )
- /* TODO */
+ int alignment = b->data - b->dataOrig;
+ b->dataOrig = realloc( b->dataOrig, size + alignment );
+ b->data = b->dataOrig + alignment;
#endif
b->alloc = size;
@@ -72,12 +65,10 @@ void HBBufferClose( HBBuffer ** _b )
{
HBBuffer * b = *_b;
-#if defined( HB_BEOS ) || defined( HB_LINUX )
+#if defined( HB_BEOS ) || defined( HB_LINUX ) || defined( HB_MACOSX )
free( b->data );
-#elif defined( HB_MACOSX )
- free( b->dataOrig );
#elif defined( HB_CYGWIN )
- /* TODO */
+ free( b->dataOrig );
#endif
free( b );
diff --git a/core/Fifo.h b/core/Fifo.h
index daca41d0e..264a7eeb3 100644
--- a/core/Fifo.h
+++ b/core/Fifo.h
@@ -1,4 +1,4 @@
-/* $Id: Fifo.h,v 1.11 2004/02/24 21:55:53 titer Exp $
+/* $Id: Fifo.h,v 1.13 2004/03/17 10:35:06 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -16,7 +16,7 @@ struct HBBuffer
int alloc;
int size;
uint8_t * data;
-#if defined( HB_MACOSX )
+#if defined( HB_CYGWIN )
uint8_t * dataOrig;
#endif
float position;
diff --git a/core/HandBrake.c b/core/HandBrake.c
index 5eca5a78d..9c88b37c6 100644
--- a/core/HandBrake.c
+++ b/core/HandBrake.c
@@ -1,4 +1,4 @@
-/* $Id: HandBrake.c,v 1.44 2004/03/08 11:32:48 titer Exp $
+/* $Id: HandBrake.c,v 1.47 2004/03/21 22:58:41 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -38,6 +38,7 @@ struct HBHandle
float avgFrameRate;
int remainingTime;
+ HBLock * lock;
HBLock * pauseLock;
volatile int die;
HBThread * thread;
@@ -92,6 +93,7 @@ HBHandle * HBInit( int debug, int cpuCount )
}
}
+ h->lock = HBLockInit();
h->pauseLock = HBLockInit();
h->thread = HBThreadInit( "libhb", HandBrakeThread, h,
HB_NORMAL_PRIORITY );
@@ -100,12 +102,16 @@ HBHandle * HBInit( int debug, int cpuCount )
void HBSetCallbacks( HBHandle * h, HBCallbacks callbacks )
{
+ HBLockLock( h->lock );
h->cb = callbacks;
+ HBLockUnlock( h->lock );
}
void HBScanDVD( HBHandle * h, const char * dvd, int title )
{
+ HBLockLock( h->lock );
h->scan = HBScanInit( h, dvd, title );
+ HBLockUnlock( h->lock );
}
void HBStartRip( HBHandle * h, HBTitle * title )
@@ -113,6 +119,8 @@ void HBStartRip( HBHandle * h, HBTitle * title )
int i;
HBAudio * audio;
+ HBLockLock( h->lock );
+
h->beginDate = HBGetDate();
h->lastPosUpdate = 0;
h->lastFpsUpdate = 0;
@@ -122,7 +130,7 @@ void HBStartRip( HBHandle * h, HBTitle * title )
FixPictureSettings( title );
/* Video fifos */
- title->inFifo = HBFifoInit( 1024 );
+ title->inFifo = HBFifoInit( 2048 );
title->rawFifo = HBFifoInit( 1 );
title->scaledFifo = HBFifoInit( 1 );
title->outFifo = HBFifoInit( 1 );
@@ -142,7 +150,7 @@ void HBStartRip( HBHandle * h, HBTitle * title )
audio = HBListItemAt( title->ripAudioList, i );
/* Audio fifos */
- audio->inFifo = HBFifoInit( 1024 );
+ audio->inFifo = HBFifoInit( 2048 );
audio->rawFifo = HBFifoInit( 1 );
audio->outFifo = HBFifoInit( 4 ); /* At least 4 for Vorbis */
@@ -176,25 +184,33 @@ void HBStartRip( HBHandle * h, HBTitle * title )
}
h->curTitle = title;
+
+ HBLockUnlock( h->lock );
}
void HBPauseRip( HBHandle * h )
{
+ HBLockLock( h->lock );
h->pauseDate = HBGetDate();
HBLockLock( h->pauseLock );
+ HBLockUnlock( h->lock );
}
void HBResumeRip( HBHandle * h )
{
+ HBLockLock( h->lock );
h->beginDate += HBGetDate() - h->pauseDate;
h->lastPosUpdate += HBGetDate() - h->pauseDate;
h->lastFpsUpdate += HBGetDate() - h->pauseDate;
HBLockUnlock( h->pauseLock );
+ HBLockUnlock( h->lock );
}
void HBStopRip( HBHandle * h )
{
+ HBLockLock( h->lock );
h->stopRip = 1;
+ HBLockUnlock( h->lock );
}
uint8_t * HBGetPreview( HBHandle * h, HBTitle * t, int picture )
@@ -401,6 +417,7 @@ void HBClose( HBHandle ** _h )
sprintf( command, "rm -f /tmp/HB.%d.*", h->pid );
system( command );
+ HBLockClose( &h->lock );
HBLockClose( &h->pauseLock );
free( h );
@@ -421,8 +438,10 @@ void HBScanning( HBHandle * h, int title, int titleCount )
void HBScanDone( HBHandle * h, HBList * titleList )
{
+ HBLockLock( h->lock );
h->stopScan = 1;
h->titleList = titleList;
+ HBLockUnlock( h->lock );
h->cb.scanDone( h->cb.data, titleList );
}
@@ -433,7 +452,9 @@ int HBGetPid( HBHandle * h )
void HBDone( HBHandle * h )
{
+ HBLockLock( h->lock );
h->ripDone = 1;
+ HBLockUnlock( h->lock );
}
void HBPosition( HBHandle * h, float position )
@@ -454,7 +475,9 @@ void HBPosition( HBHandle * h, float position )
}
if( HBGetDate() - h->lastPosUpdate < 200000 )
+ {
return;
+ }
h->lastPosUpdate = HBGetDate();
@@ -478,7 +501,9 @@ void HBPosition( HBHandle * h, float position )
void HBErrorOccured( HBHandle * h, int error )
{
+ HBLockLock( h->lock );
h->error = error;
+ HBLockUnlock( h->lock );
}
/* Local functions */
@@ -490,17 +515,23 @@ static void HandBrakeThread( void * _h )
while( !h->die )
{
+ HBLockLock( h->lock );
+
if( h->stopScan )
{
HBScanClose( &h->scan );
h->stopScan = 0;
+ HBLockUnlock( h->lock );
+ continue;
}
if( h->stopRip )
{
_StopRip( h );
- h->cb.ripDone( h->cb.data, HB_CANCELED );
h->stopRip = 0;
+ HBLockUnlock( h->lock );
+ h->cb.ripDone( h->cb.data, HB_CANCELED );
+ continue;
}
if( h->ripDone )
@@ -528,23 +559,31 @@ static void HandBrakeThread( void * _h )
break;
}
}
+ if( ok )
+ {
+ break;
+ }
HBSnooze( 5000 );
}
HBSnooze( 500000 );
_StopRip( h );
- h->cb.ripDone( h->cb.data, HB_SUCCESS );
-
h->ripDone = 0;
+ HBLockUnlock( h->lock );
+ h->cb.ripDone( h->cb.data, HB_SUCCESS );
+ continue;
}
if( h->error )
{
_StopRip( h );
- h->cb.ripDone( h->cb.data, h->error );
h->error = 0;
+ HBLockUnlock( h->lock );
+ h->cb.ripDone( h->cb.data, h->error );
+ continue;
}
+ HBLockUnlock( h->lock );
HBSnooze( 10000 );
}
}
@@ -555,6 +594,11 @@ static void _StopRip( HBHandle * h )
HBAudio * audio;
int i;
+ if( !title )
+ {
+ return;
+ }
+
/* Stop input and work threads */
HBDVDReadClose( &title->dvdRead );
for( i = 0; i < h->cpuCount; i++ )
@@ -594,10 +638,8 @@ static void _StopRip( HBHandle * h )
HBFifoClose( &title->scaledFifo );
HBFifoClose( &title->outFifo );
- for( i = 0; i < HBListCount( title->ripAudioList ); i++ )
+ while( ( audio = HBListItemAt( title->ripAudioList, 0 ) ) )
{
- audio = HBListItemAt( title->ripAudioList, i );
-
/* Audio work objects */
if( audio->inCodec == HB_CODEC_AC3 )
HBAc3DecClose( &audio->decoder );
diff --git a/core/LpcmDec.c b/core/LpcmDec.c
index 53b56d8f2..e39db3ade 100644
--- a/core/LpcmDec.c
+++ b/core/LpcmDec.c
@@ -1,4 +1,4 @@
-/* $Id: LpcmDec.c,v 1.1 2004/03/08 11:32:48 titer Exp $
+/* $Id: LpcmDec.c,v 1.2 2004/03/08 15:04:40 fenrir Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -66,6 +66,16 @@ void HBLpcmDecClose( HBWork ** _l )
*_l = NULL;
}
+static int16_t Swap16( int16_t * p )
+{
+ uint8_t tmp[2];
+
+ tmp[0] = ((uint8_t*)p)[1];
+ tmp[1] = ((uint8_t*)p)[0];
+
+ return *(int16_t*)tmp;
+}
+
static int LpcmDecWork( HBWork * w )
{
HBLpcmDec * l = (HBLpcmDec*) w;
@@ -137,8 +147,13 @@ static int LpcmDecWork( HBWork * w )
for( i = 0; i < samples; i++ )
{
+#ifdef SYS_MACOSX
l->rawBuffer->left[i] = (float) int16data[2*i] * l->sampleLevel;
l->rawBuffer->right[i] = (float) int16data[2*i+1] * l->sampleLevel;
+#else
+ l->rawBuffer->left[i] = (float) Swap16(&int16data[2*i]) * l->sampleLevel;
+ l->rawBuffer->right[i] = (float) Swap16(&int16data[2*i+1]) * l->sampleLevel;
+#endif
}
HBBufferClose( &lpcmBuffer );
diff --git a/core/Thread.c b/core/Thread.c
index b5635116e..8c63b2423 100644
--- a/core/Thread.c
+++ b/core/Thread.c
@@ -1,4 +1,4 @@
-/* $Id: Thread.c,v 1.12 2004/03/04 17:57:17 titer Exp $
+/* $Id: Thread.c,v 1.13 2004/03/16 16:14:03 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -164,7 +164,7 @@ HBCond * HBCondInit()
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
pthread_cond_init( &c->cond, NULL );
#elif defined( HB_CYGWIN )
- /* TODO */
+ c->event = CreateEvent( NULL, FALSE, FALSE, NULL );
#endif
return c;
@@ -178,7 +178,7 @@ void HBCondClose( HBCond ** _c )
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
pthread_cond_destroy( &c->cond );
#elif defined( HB_CYGWIN )
- /* TODO */
+ CloseHandle( c->event );
#endif
free( c );
diff --git a/core/Thread.h b/core/Thread.h
index 7f975d84b..bf343214d 100644
--- a/core/Thread.h
+++ b/core/Thread.h
@@ -1,4 +1,4 @@
-/* $Id: Thread.h,v 1.9 2004/02/19 17:59:13 titer Exp $
+/* $Id: Thread.h,v 1.10 2004/03/16 16:14:03 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -93,11 +93,11 @@ static inline void HBLockUnlock( HBLock * l )
struct HBCond
{
#if defined( HB_BEOS )
- int thread;
+ int thread;
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
- pthread_cond_t cond;
+ pthread_cond_t cond;
#elif defined( HB_CYGWIN )
- /* TODO */
+ HANDLE event;
#endif
};
@@ -113,7 +113,8 @@ static inline void HBCondWait( HBCond * c, HBLock * lock )
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
pthread_cond_wait( &c->cond, &lock->mutex );
#elif defined( HB_CYGWIN )
- /* TODO */
+ SignalObjectAndWait( lock->mutex, c->event, INFINITE, FALSE );
+ WaitForSingleObject( lock->mutex, INFINITE );
#endif
}
@@ -136,7 +137,7 @@ static inline void HBCondSignal( HBCond * c )
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
pthread_cond_signal( &c->cond );
#elif defined( HB_CYGWIN )
- /* TODO */
+ PulseEvent( c->event );
#endif
}
diff --git a/doc/faq.txt b/doc/faq.txt
index 17c4a21d3..049dd5780 100644
--- a/doc/faq.txt
+++ b/doc/faq.txt
@@ -1,4 +1,4 @@
-$Id: faq.txt,v 1.11 2004/03/03 16:53:44 titer Exp $
+$Id: faq.txt,v 1.12 2004/03/16 15:57:03 titer Exp $
<h2>HandBrake FAQ</h2>
@@ -66,9 +66,10 @@ and IFO files), HandBrake won't open single VOB files.</p>
<h4>1.4. Why does HandBrake get stuck at 100%?</h4>
<p>When ripping to an mp4 file, HandBrake (actually libmp4v2) optimizes
the file and makes it compliant at the end of the rip. This might take
-some time with big files. Also, make sure you have enough space
-available on your hard drive before you start (twice the asked size) or
-you might end with an unreadable file.</p>
+some time with big files (usually, a few minutes for a 700 MB file).
+Also, make sure you have enough space available on your hard drive
+before you start (twice the asked size) or you might end with an
+unreadable file.</p>
<h3>2. Features</h3>
diff --git a/gtk2/callbacks.c b/gtk2/callbacks.c
index 04a140678..82373429a 100644
--- a/gtk2/callbacks.c
+++ b/gtk2/callbacks.c
@@ -478,15 +478,15 @@ void on_button_start_clicked( GtkButton *button,
audio->outBitrate = i_ab;
if( title->mux == HB_MUX_AVI )
{
- audio->codec = HB_CODEC_MP3;
+ audio->outCodec = HB_CODEC_MP3;
}
else if( title->mux == HB_MUX_MP4 )
{
- audio->codec = HB_CODEC_AAC;
+ audio->outCodec = HB_CODEC_AAC;
}
else if( title->mux == HB_MUX_OGM )
{
- audio->codec = HB_CODEC_VORBIS;
+ audio->outCodec = HB_CODEC_VORBIS;
}
HBListAdd( title->ripAudioList, audio );
}
@@ -499,15 +499,15 @@ void on_button_start_clicked( GtkButton *button,
audio->outBitrate = i_ab;
if( title->mux == HB_MUX_AVI )
{
- audio->codec = HB_CODEC_MP3;
+ audio->outCodec = HB_CODEC_MP3;
}
else if( title->mux == HB_MUX_MP4 )
{
- audio->codec = HB_CODEC_AAC;
+ audio->outCodec = HB_CODEC_AAC;
}
else if( title->mux == HB_MUX_OGM )
{
- audio->codec = HB_CODEC_VORBIS;
+ audio->outCodec = HB_CODEC_VORBIS;
}
HBListAdd( title->ripAudioList, audio );
}
diff --git a/macosx/Controller.mm b/macosx/Controller.mm
index 1a3655d4b..8f6e94d2e 100644
--- a/macosx/Controller.mm
+++ b/macosx/Controller.mm
@@ -1,4 +1,4 @@
-/* $Id: Controller.mm,v 1.29 2004/03/08 12:39:49 titer Exp $
+/* $Id: Controller.mm,v 1.30 2004/03/12 14:22:19 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -756,26 +756,18 @@ static void _RipDone( void * data, int result );
[fRipEncoderPopUp setEnabled: NO];
[fRipVideoMatrix setEnabled: NO];
[fRipTwoPassCheck setEnabled: NO];
-
- [fRipAudBitPopUp setEnabled: YES];
}
else if( format == 3 )
{
[fRipEncoderPopUp setEnabled: YES];
[fRipVideoMatrix setEnabled: YES];
[fRipTwoPassCheck setEnabled: YES];
-
-#if 0
- /* Can't set Vorbis bitrate */
- [fRipAudBitPopUp setEnabled: NO];
-#endif
}
else
{
[fRipEncoderPopUp setEnabled: YES];
[fRipVideoMatrix setEnabled: YES];
[fRipTwoPassCheck setEnabled: YES];
- [fRipAudBitPopUp setEnabled: YES];
}
[self VideoMatrixChanged: self];
}
diff --git a/macosx/English.lproj/InfoPlist.strings b/macosx/English.lproj/InfoPlist.strings
index 8040503df..0807e3bbc 100644
--- a/macosx/English.lproj/InfoPlist.strings
+++ b/macosx/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/macosx/HandBrake.xcode/project.pbxproj b/macosx/HandBrake.xcode/project.pbxproj
index 9c1b883bd..41b955ca1 100644
--- a/macosx/HandBrake.xcode/project.pbxproj
+++ b/macosx/HandBrake.xcode/project.pbxproj
@@ -301,7 +301,7 @@
<key>CFBundleExecutable</key>
<string>HandBrake</string>
<key>CFBundleGetInfoString</key>
- <string>HandBrake 0.6.0-test3 - By Eric Petit &lt;[email protected]&gt;</string>
+ <string>HandBrake 0.6.0 - By Eric Petit &lt;[email protected]&gt;</string>
<key>CFBundleIconFile</key>
<string>HandBrake.icns</string>
<key>CFBundleIdentifier</key>
@@ -313,11 +313,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>0.6.0-test3</string>
+ <string>0.6.0</string>
<key>CFBundleSignature</key>
<string>HB##</string>
<key>CFBundleVersion</key>
- <string>0.6.0-test3</string>
+ <string>0.6.0</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
diff --git a/macosx/i18n/German.strings b/macosx/i18n/de.strings
index 7ab175789..7ab175789 100644
--- a/macosx/i18n/German.strings
+++ b/macosx/i18n/de.strings
Binary files differ
diff --git a/macosx/i18n/es.strings b/macosx/i18n/es.strings
new file mode 100644
index 000000000..1bbce67e8
--- /dev/null
+++ b/macosx/i18n/es.strings
Binary files differ
diff --git a/macosx/i18n/French.strings b/macosx/i18n/fr.strings
index c1218f28c..c1218f28c 100644
--- a/macosx/i18n/French.strings
+++ b/macosx/i18n/fr.strings
Binary files differ
diff --git a/macosx/i18n/it.strings b/macosx/i18n/it.strings
index 26587fa3a..115eab928 100644
--- a/macosx/i18n/it.strings
+++ b/macosx/i18n/it.strings
Binary files differ
diff --git a/macosx/i18n/pt.strings b/macosx/i18n/pt.strings
new file mode 100644
index 000000000..a9048acdf
--- /dev/null
+++ b/macosx/i18n/pt.strings
@@ -0,0 +1,183 @@
+/* No comment provided by engineer. */
+"2-pass encoding" = "Codificar em 2 passagens";
+
+/* No comment provided by engineer. */
+"Audio" = "Audio";
+
+/* No comment provided by engineer. */
+"Autocrop" = "Cortado";
+
+/* No comment provided by engineer. */
+"AVI file / H264 video / MP3 audio" = "AVI file / H264 video / MP3 audio";
+
+/* No comment provided by engineer. */
+"AVI file / MPEG-4 video / MP3 audio" = "AVI file / MPEG-4 video / MP3 audio";
+
+/* No comment provided by engineer. */
+"Bitrate" = "Bitrate";
+
+/* No comment provided by engineer. */
+"Bitrate (kbps)" = "Bitrate (kbps)";
+
+/* No comment provided by engineer. */
+"Bottom cropping" = "Cortado do final";
+
+/* No comment provided by engineer. */
+"Browse" = "Visualizar";
+
+/* No comment provided by engineer. */
+"Cancel" = "Cancelar";
+
+/* No comment provided by engineer. */
+"Cancel - Are you sure?" = "Cancelar - Tem a certeza?";
+
+/* No comment provided by engineer. */
+"Canceled." = "Cancelado.";
+
+/* No comment provided by engineer. */
+"Close" = "Fechar";
+
+/* No comment provided by engineer. */
+"Crop & Scale..." = "Cortar e Redimensionar...";
+
+/* No comment provided by engineer. */
+"Custom (kbps)" = " Normal em (kbps)";
+
+/* No comment provided by engineer. */
+"Deinterlace picture" = "Deinterlace imagem";
+
+/* No comment provided by engineer. */
+"Detected volume" = "Volume detectado";
+
+/* No comment provided by engineer. */
+"Do you want to overwrite %@?" = "Quer reescrever %@?";
+
+/* No comment provided by engineer. */
+"DVD Folder" = "Pasta do DVD";
+
+/* No comment provided by engineer. */
+"DVD title" = "Titulo do DVD";
+
+/* No comment provided by engineer. */
+"Encoding won't be recoverable." = "A codificacao nao pode ser recuperada.";
+
+/* No comment provided by engineer. */
+"Encoding: %.2f %% (pass %d of %d)" = "Codificao em progresso: %.2f %% (passagem %d of %d)";
+
+/* No comment provided by engineer. */
+"File" = "Ficheiro";
+
+/* No comment provided by engineer. */
+"File already exists" = "O ficheiro ja existe";
+
+/* No comment provided by engineer. */
+"Final size: %dx%d" = "Tamanho do ficheiro: %dx%d";
+
+/* No comment provided by engineer. */
+"General" = "Geral";
+
+/* No comment provided by engineer. */
+"Invalid secondary language" = "Secunda lingua invalida";
+
+/* No comment provided by engineer. */
+"Invalid video bitrate" = "Video bitrate invalido";
+
+/* No comment provided by engineer. */
+"Invalid volume, try again" = "volume invalido, tente novamente";
+
+/* No comment provided by engineer. */
+"Language 1" = "Lingua 1";
+
+/* No comment provided by engineer. */
+"Language 2 (optional)" = "Lingua 2 (optional)";
+
+/* No comment provided by engineer. */
+"Left cropping" = "Cortado a esquerda";
+
+/* No comment provided by engineer. */
+"MP4 file / MPEG-4 video / AAC audio" = "MP4 file / MPEG-4 video / AAC audio";
+
+/* No comment provided by engineer. */
+"MPEG-4 encoder" = "MPEG-4 encoder";
+
+/* No comment provided by engineer. */
+"Next" = "Proximo";
+
+/* No comment provided by engineer. */
+"No" = "Nao";
+
+/* No comment provided by engineer. */
+"None" = "Nao existente";
+
+/* No comment provided by engineer. */
+"OGM file / MPEG-4 video / Vorbis audio" = "OGM file / MPEG-4 video / Vorbis audio";
+
+/* No comment provided by engineer. */
+"Ooops" = "Bolas";
+
+/* No comment provided by engineer. */
+"Open" = "Aberto";
+
+/* No comment provided by engineer. */
+"Opening device..." = "Abertura em curso...";
+
+/* No comment provided by engineer. */
+"Output format" = "Formato de Output";
+
+/* No comment provided by engineer. */
+"Pause" = "Pausa";
+
+/* No comment provided by engineer. */
+"Picture width" = "Tamanho da figura";
+
+/* No comment provided by engineer. */
+"Previous" = "Anterior";
+
+/* No comment provided by engineer. */
+"Resume" = "Resumo";
+
+/* No comment provided by engineer. */
+"Right cropping" = "Cortado a direita";
+
+/* No comment provided by engineer. */
+"Rip" = "Rip";
+
+/* No comment provided by engineer. */
+"Rip completed." = "Rip completado.";
+
+/* No comment provided by engineer. */
+"Scanning title %d of %d..." = "Exminar o titulo %d of %d...";
+
+/* No comment provided by engineer. */
+"Select a DVD:" = "Selecione o DVD:";
+
+/* No comment provided by engineer. */
+"Speed: %.2f fps (avg %.2f fps), %02dh%02dm%02ds remaining" = "Velocidade: %.2f fps (avg %.2f fps), %02dh%02dm%02ds restante";
+
+/* No comment provided by engineer. */
+"Target size (MB)" = "Tamanho a atingir (MB)";
+
+/* No comment provided by engineer. */
+"Top cropping" = "Cortado ao topo";
+
+/* No comment provided by engineer. */
+"Useless OpenGL effects" = "Efeitos inuteis do OpenGL";
+
+/* No comment provided by engineer. */
+"Video" = "Video";
+
+/* No comment provided by engineer. */
+"Video bitrate is too high." = "Video bitrate e muito alto";
+
+/* No comment provided by engineer. */
+"Video bitrate is too low." = "Video bitrate e muito baixo.";
+
+/* No comment provided by engineer. */
+"Welcome to HandBrake" = "Bemvindo ao HandBrake";
+
+/* No comment provided by engineer. */
+"Yes" = "Sim";
+
+/* No comment provided by engineer. */
+"You can't encode the same audio track twice." = "Nao se pode codificar a mesma facha de audio duas vezes.";
+
diff --git a/test/test.c b/test/test.c
index 8dc6732b3..67b9450a9 100644
--- a/test/test.c
+++ b/test/test.c
@@ -1,4 +1,4 @@
-/* $Id: test.c,v 1.27 2004/03/08 11:32:50 titer Exp $
+/* $Id: test.c,v 1.28 2004/03/22 19:18:57 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -473,8 +473,6 @@ static void ScanDone( void * data, HBList * titleList )
audio->outBitrate = abitrate;
audio->outCodec = acodec;
HBListAdd( title->ripAudioList, audio );
-
- tmp++;
}
}
if( size )