-$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/>
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).
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
=============
-# $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/>.
-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
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
{
$(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 \
-$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
Paul Bénéchet
Luidgi Esposito
Andrea Gianarro
+Emilio Gelosi
+ Italian translation
Adam
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
+
-$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
+ 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]
-$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/>
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.
-/* $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/>.
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 );
/* 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 );
-/* $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/>.
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;
{
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 );
-/* $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/>.
int alloc;
int size;
uint8_t * data;
-#if defined( HB_MACOSX )
+#if defined( HB_CYGWIN )
uint8_t * dataOrig;
#endif
float position;
-/* $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/>.
float avgFrameRate;
int remainingTime;
+ HBLock * lock;
HBLock * pauseLock;
volatile int die;
HBThread * thread;
}
}
+ h->lock = HBLockInit();
h->pauseLock = HBLockInit();
h->thread = HBThreadInit( "libhb", HandBrakeThread, h,
HB_NORMAL_PRIORITY );
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 )
int i;
HBAudio * audio;
+ HBLockLock( h->lock );
+
h->beginDate = HBGetDate();
h->lastPosUpdate = 0;
h->lastFpsUpdate = 0;
FixPictureSettings( title );
/* Video fifos */
- title->inFifo = HBFifoInit( 1024 );
+ title->inFifo = HBFifoInit( 2048 );
title->rawFifo = HBFifoInit( 1 );
title->scaledFifo = HBFifoInit( 1 );
title->outFifo = HBFifoInit( 1 );
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 */
}
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 )
sprintf( command, "rm -f /tmp/HB.%d.*", h->pid );
system( command );
+ HBLockClose( &h->lock );
HBLockClose( &h->pauseLock );
free( h );
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 );
}
void HBDone( HBHandle * h )
{
+ HBLockLock( h->lock );
h->ripDone = 1;
+ HBLockUnlock( h->lock );
}
void HBPosition( HBHandle * h, float position )
}
if( HBGetDate() - h->lastPosUpdate < 200000 )
+ {
return;
+ }
h->lastPosUpdate = HBGetDate();
void HBErrorOccured( HBHandle * h, int error )
{
+ HBLockLock( h->lock );
h->error = error;
+ HBLockUnlock( h->lock );
}
/* Local functions */
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 )
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 );
}
}
HBAudio * audio;
int i;
+ if( !title )
+ {
+ return;
+ }
+
/* Stop input and work threads */
HBDVDReadClose( &title->dvdRead );
for( i = 0; i < h->cpuCount; i++ )
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 );
-/* $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/>.
*_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;
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 );
-/* $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/>.
#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;
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
pthread_cond_destroy( &c->cond );
#elif defined( HB_CYGWIN )
- /* TODO */
+ CloseHandle( c->event );
#endif
free( c );
-/* $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/>.
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
};
#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
}
#elif defined( HB_MACOSX ) || defined( HB_LINUX )
pthread_cond_signal( &c->cond );
#elif defined( HB_CYGWIN )
- /* TODO */
+ PulseEvent( c->event );
#endif
}
-$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>
<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>
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 );
}
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 );
}
-/* $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/>.
[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];
}
<key>CFBundleExecutable</key>
<string>HandBrake</string>
<key>CFBundleGetInfoString</key>
- <string>HandBrake 0.6.0-test3 - By Eric Petit <titer@m0k.org></string>
+ <string>HandBrake 0.6.0 - By Eric Petit <titer@m0k.org></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>
--- /dev/null
+/* 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.";
+
-/* $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/>.
audio->outBitrate = abitrate;
audio->outCodec = acodec;
HBListAdd( title->ripAudioList, audio );
-
- tmp++;
}
}
if( size )