OSDN Git Service

HandBrake 0.6.0
authorroot <root@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 14 Jan 2006 13:30:07 +0000 (13:30 +0000)
committerroot <root@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 14 Jan 2006 13:30:07 +0000 (13:30 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@13 b64f7644-9d1e-0410-96f1-a4d463321fa5

24 files changed:
BUILD
Jamfile
Jamrules
THANKS
TODO
TRANSLATIONS
core/AviMux.c
core/Fifo.c
core/Fifo.h
core/HandBrake.c
core/LpcmDec.c
core/Thread.c
core/Thread.h
doc/faq.txt
gtk2/callbacks.c
macosx/Controller.mm
macosx/English.lproj/InfoPlist.strings
macosx/HandBrake.xcode/project.pbxproj
macosx/i18n/de.strings [moved from macosx/i18n/German.strings with 100% similarity]
macosx/i18n/es.strings [new file with mode: 0644]
macosx/i18n/fr.strings [moved from macosx/i18n/French.strings with 100% similarity]
macosx/i18n/it.strings
macosx/i18n/pt.strings [new file with mode: 0644]
test/test.c

diff --git a/BUILD b/BUILD
index 40da5e7..056eb92 100644 (file)
--- 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 b4a8aca..7691d8e 100644 (file)
--- 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
index 0eb0cac..4debdea 100644 (file)
--- 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 065d09e..4644df0 100644 (file)
--- 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 03c4621..c6542e0 100644 (file)
--- 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]
index 63e1402..4ca546b 100644 (file)
@@ -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.
 
index e106f83..444d77a 100644 (file)
@@ -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 );
index 7e7433e..5c32c59 100644 (file)
@@ -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 );
 
index daca41d..264a7ee 100644 (file)
@@ -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;
index 5eca5a7..9c88b37 100644 (file)
@@ -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 );
index 53b56d8..e39db3a 100644 (file)
@@ -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 );
index b563511..8c63b24 100644 (file)
@@ -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 );
 
index 7f975d8..bf34321 100644 (file)
@@ -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
 }
 
index 17c4a21..049dd57 100644 (file)
@@ -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>
 
index 04a1406..8237342 100644 (file)
@@ -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 );
         }
index 1a3655d..8f6e94d 100644 (file)
@@ -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];
 }
index 8040503..0807e3b 100644 (file)
Binary files a/macosx/English.lproj/InfoPlist.strings and b/macosx/English.lproj/InfoPlist.strings differ
index 9c1b883..41b955c 100644 (file)
        <key>CFBundleExecutable</key>
        <string>HandBrake</string>
        <key>CFBundleGetInfoString</key>
-       <string>HandBrake 0.6.0-test3 - By Eric Petit &lt;titer@m0k.org&gt;</string>
+       <string>HandBrake 0.6.0 - By Eric Petit &lt;titer@m0k.org&gt;</string>
        <key>CFBundleIconFile</key>
        <string>HandBrake.icns</string>
        <key>CFBundleIdentifier</key>
        <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/es.strings b/macosx/i18n/es.strings
new file mode 100644 (file)
index 0000000..1bbce67
Binary files /dev/null and b/macosx/i18n/es.strings differ
index 26587fa..115eab9 100644 (file)
Binary files a/macosx/i18n/it.strings and b/macosx/i18n/it.strings differ
diff --git a/macosx/i18n/pt.strings b/macosx/i18n/pt.strings
new file mode 100644 (file)
index 0000000..a9048ac
--- /dev/null
@@ -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.";
+
index 8dc6732..67b9450 100644 (file)
@@ -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 )