summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BUILD13
-rw-r--r--Jamfile77
-rw-r--r--Jamrules119
-rw-r--r--NEWS5
-rw-r--r--core/Jamfile66
-rw-r--r--core/LpcmDec.c6
-rw-r--r--macosx/English.lproj/InfoPlist.stringsbin496 -> 90 bytes
-rw-r--r--macosx/HandBrake.xcode/project.pbxproj17
8 files changed, 159 insertions, 144 deletions
diff --git a/BUILD b/BUILD
index 056eb929a..6eb184e86 100644
--- a/BUILD
+++ b/BUILD
@@ -1,10 +1,13 @@
-$Id: BUILD,v 1.4 2004/03/16 15:57:03 titer Exp $
+$Id: BUILD,v 1.5 2004/03/29 00:28:39 titer Exp $
BUILD file for HandBrake <http://handbrake.m0k.org/>
Building HandBrake
==================
+You can build HandBrake on BeOS, MacOS X and Linux. If you'd like to
+port it to another OS, email me ([email protected]).
+
Step 1: get jam
===============
@@ -23,12 +26,14 @@ 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.
+
+In case you modify this line later: `jam clean' does not remove the
+compiled contrib librairies. Therefore, make sure you run
+`jam clean-all; jam' or `jam -a' in order to force jam to rebuild
+everything with the new flags.
Step 3: build
=============
Run `jam'. This will build every library HandBrake requires, then
HandBrake itself.
-
diff --git a/Jamfile b/Jamfile
index 7691d8ec9..026b3441f 100644
--- a/Jamfile
+++ b/Jamfile
@@ -1,4 +1,4 @@
-# $Id: Jamfile,v 1.41 2004/03/15 17:08:37 titer Exp $
+# $Id: Jamfile,v 1.42 2004/03/29 00:28:39 titer Exp $
#
# This file is part of the HandBrake source code.
# Homepage: <http://handbrake.m0k.org/>.
@@ -6,56 +6,65 @@
SubDir TOP ;
-HB_PACKAGES = ;
-HB_LIBS = libhb.a liba52.a libavcodec.a libdvdplay.a libdvdread.a
- libdvdcss.a libfaac.a libmp3lame.a libmp4v2.a libmpeg2.a
- libvorbis.a libvorbisenc.a libogg.a libx264.a
- libxvidcore.a ;
+# libhb + contrib libraries
+HB_LIBS = libhb.a liba52.a libavcodec.a libdvdplay.a libdvdread.a
+ libdvdcss.a libfaac.a libmp3lame.a libmp4v2.a libmpeg2.a
+ libvorbis.a libvorbisenc.a libogg.a libx264.a libxvidcore.a ;
+
+# Interfaces
+TEST_BIN = HBTest ;
+TEST_SRC = test/test.c ;
+BEOS_BIN = HandBrake ;
+BEOS_SRC = beos/HBApp.cpp beos/HBWindow.cpp ;
+GTK2_BIN = gtk2HB ;
+GTK2_SRC = gtk2/main.c gtk2/callbacks.c gtk2/interface.c gtk2/support.c ;
+GUI_BIN = $(TEST_BIN) $(BEOS_BIN) $(GTK2_BIN) ;
+GUI_SRC = $(TEST_SRC) $(BEOS_SRC) $(GTK2_SRC) ;
# CLI app
-ObjectCcFlags test/test.c : -I$(TOP)/core -g -Wall ;
-LinkLibraries HBTest : $(HB_LIBS) ;
-Main HBTest : test/test.c ;
+Main $(TEST_BIN) : $(TEST_SRC) ;
-# BeOS
if $(OS) = BEOS
{
- SOURCES_BEOS = beos/HBApp.cpp beos/HBWindow.cpp ;
- ObjectC++Flags $(SOURCES_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) ;
+ # Avoid multichar warnings caused by BeOS system headers
+ CCFLAGS = -Wno-multichar ;
+ C++FLAGS = -Wno-multichar ;
+
+ SystemLibraries HandBrake : -lbe ;
+ # BeOS GUI is broken at the moment
+ # Main HandBrake : $(SRC_BEOS) ;
}
-# OS X
if $(OS) = MACOSX
{
- # Build the app
- OSXApp HandBrake.app ;
- Depends HandBrake.app : $(HB_LIBS) macosx/Controller.h
- macosx/Controller.mm macosx/PictureGLView.h
- macosx/PictureGLView.mm ;
- Depends all : HandBrake.app ;
+ # Needed to clean HandBrake.app
+ RM = rm -rf ;
+
+ OSX_SRC = macosx/Controller.h macosx/Controller.mm
+ macosx/PictureGLView.h macosx/PictureGLView.mm
+ macosx/TargetSizeField.h macosx/TargetSizeField.mm
+ macosx/main.mm ;
+
+ OSXApp HandBrake.app : $(OSX_SRC) $(HB_LIBS) ;
# Package
- OSXPackage HandBrake-$(HB_VERSION)-OSX.zip ;
- Depends HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
- HB_PACKAGES += HandBrake-$(HB_VERSION)-OSX.zip ;
+ OSXPackage HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
+ PACKAGES += HandBrake-$(HB_VERSION)-OSX.zip ;
}
-# GTK2
if $(OS) = LINUX
{
- SOURCES_GTK2 = gtk2/main.c gtk2/callbacks.c gtk2/interface.c
- gtk2/support.c ;
- ObjectCcFlags $(SOURCES_GTK2) :
- -I$(TOP)/core `pkg-config gtk+-2.0 --cflags` ;
- LINKLIBS on gtk2HB = $(LINKLIBS) `pkg-config gtk+-2.0 --libs` ;
- LinkLibraries gtk2HB : $(HB_LIBS) ;
- Main gtk2HB : $(SOURCES_GTK2) ;
+ SystemLibraries $(TEST_BIN) : -lpthread ;
+ SystemLibraries $(GTK2_BIN) : -lpthread `pkg-config gtk+-2.0 --libs` ;
+ ObjectCcFlags $(GTK2_SRC) : `pkg-config gtk+-2.0 --cflags` ;
+ Main $(GTK2_BIN) : $(GTK2_SRC) ;
}
+ObjectHdrs $(GUI_SRC) : $(TOP)/core ;
+ObjectCcFlags $(GUI_SRC) : -g -Wall ;
+ObjectC++Flags $(GUI_SRC) : -g -Wall ;
+LinkLibraries $(GUI_BIN) : $(HB_LIBS) ;
+
# Packages
NotFile package ;
Depends package : $(HB_PACKAGES) ;
diff --git a/Jamrules b/Jamrules
index 4debdea9e..a82ee7a7a 100644
--- a/Jamrules
+++ b/Jamrules
@@ -1,41 +1,23 @@
# Compilers & flags
-CC = gcc ;
-C++ = g++ ;
-CCFLAGS = $(CFLAGS) ;
-C++FLAGS = $(CFLAGS) ;
-AS = nasm -f elf ;
-LINK = g++ ;
-OPTIM = -O3 -funroll-loops ;
+CC = gcc ;
+C++ = g++ ;
+AS = nasm -f elf ;
+LINK = g++ ;
+OPTIM = -O3 -funroll-loops ;
-# HandBrake defines
-HB_VERSION = 0.6.0 ;
+HB_VERSION = 0.6.1 ;
DEFINES = HB_$(OS) HB_VERSION=\\\"$(HB_VERSION)\\\" ;
-#DEFINES += HB_NOMMX ;
+LANGUAGES = fr de it pl ru nl es pt ;
-LANGUAGES = fr de it pl ru nl es pt ;
+NotFile clean-contrib clean-all ;
+Always clean-contrib ;
+Depends clean-all : clean clean-contrib ;
-# OS-specific
-if $(OS) = BEOS
-{
- CCFLAGS += -Wno-multichar ;
- C++FLAGS += -Wno-multichar ;
-}
-else if $(OS) = LINUX
-{
- LINKLIBS = -lpthread ;
-}
-else if $(OS) = MACOSX
-{
- # To clean HandBrake.app
- RM = rm -rf ;
-}
-
-# Contrib* rules: mostly the same than Jambase rules, except
-# * Targets aren't cleaned by jam clean (to prevent from deleting
+# _Object: same as Jambase's Object, except
+# * those aren't cleaned by 'jam clean' (to prevent from deleting
# every contrib library by accident)
-# * ContribObject handles *.asm files
-# * Temporary *.o files aren't removed
-rule ContribObject
+# * it handles *.asm files
+rule _Object
{
MakeLocate $(<) : $(LOCATE_TARGET) ;
SEARCH on $(>) = $(SEARCH_SOURCE) ;
@@ -51,33 +33,28 @@ rule ContribObject
case .asm : As $(<) : $(>) ;
case .nas : As $(<) : $(>) ;
case .c : Cc $(<) : $(>) ;
- case .C : C++ $(<) : $(>) ;
- case .cc : C++ $(<) : $(>) ;
case .cpp : C++ $(<) : $(>) ;
- case .f : Fortran $(<) : $(>) ;
- case .l : Cc $(<) : $(<:S=.c) ;
- Lex $(<:S=.c) : $(>) ;
- case .s : As $(<) : $(>) ;
- case .y : Cc $(<) : $(<:S=$(YACCGEN)) ;
- Yacc $(<:S=$(YACCGEN)) : $(>) ;
- case * : UserObject $(<) : $(>) ;
}
}
-rule ContribObjects
+# _Objects: use _Object
+rule _Objects
{
local _i ;
for _i in [ FGristFiles $(<) ]
{
- ContribObject $(_i:S=$(SUFOBJ)) : $(_i) ;
+ _Object $(_i:S=$(SUFOBJ)) : $(_i) ;
Depends obj : $(_i:S=$(SUFOBJ)) ;
}
}
-rule ContribLibrary
+
+# Simplified LibraryFromObjects which doesn't clean the target library
+# nor the temporary .o files
+rule _Library
{
local _l _s ;
_s = [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
_l = $(<:S=$(SUFLIB)) ;
- ContribObjects $(>) ;
+ _Objects $(>) ;
Depends obj : $(_s) ;
MakeLocate $(_l) $(_l)($(_s:BS)) : $(LOCATE_TARGET) ;
Depends $(_l) : $(_s) ;
@@ -86,40 +63,50 @@ rule ContribLibrary
Depends lib : $(_l) ;
}
-# Custom Library rule: same as ContribLibrary, except 'jam clean'
-# removes built objects
+# ContribLibrary: library cleaned by 'jam clean-contrib'
+rule ContribLibrary
+{
+ _Library $(<) : $(>) ;
+ Clean clean-contrib : [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
+ Clean clean-contrib : $(<:S=$(SUFLIB)) ;
+}
+
+# Library: library cleaned by 'jam clean'
rule Library
{
- ContribLibrary $(<) : $(>) ;
+ _Library $(<) : $(>) ;
Clean clean : [ FGristFiles $(>:S=$(SUFOBJ)) ] ;
Clean clean : $(<:S=$(SUFLIB)) ;
}
# Build HandBrake.app using Xcode
rule OSXApp
-{
- Clean clean : $(1) macosx/build ;
- BuildOSXApp $(1) ;
+{
+ Depends exe : $(<) ;
+ Depends $(<) : $(>) ;
+ Clean clean : $(1) macosx/build ;
+ BuildOSXApp $(<) ;
}
actions BuildOSXApp
{
- $(RM) $(1) && \
+ $(RM) $(<) && \
( cd macosx && xcodebuild ) && \
- cp -r macosx/build/HandBrake.app $(1) && \
+ cp -r macosx/build/HandBrake.app $(<) && \
for i in $(LANGUAGES) ; do \
- ( cd $(1)/Contents/Resources && \
+ ( cd $(<)/Contents/Resources && \
cp -r English.lproj $i.lproj && \
cp ../../../macosx/i18n/$i.strings \
$i.lproj/Localizable.strings ) \
done ;
}
rule OSXPackage
-{
- BuildOSXPackage $(1) ;
+{
+ Depends $(<) : $(>) ;
+ BuildOSXPackage $(<) ;
}
actions BuildOSXPackage
{
- rm -rf $(1) "HandBrake $(HB_VERSION)" && \
+ rm -rf $(<) "HandBrake $(HB_VERSION)" && \
mkdir "HandBrake $(HB_VERSION)" && \
cp AUTHORS "HandBrake $(HB_VERSION)/AUTHORS.txt" && \
cp COPYING "HandBrake $(HB_VERSION)/COPYING.txt" && \
@@ -128,7 +115,23 @@ actions BuildOSXPackage
( cd doc && ./genhtml.sh ) && \
cp doc/faq.html "HandBrake $(HB_VERSION)/FAQ.html" && \
cp -r HandBrake.app "HandBrake $(HB_VERSION)" && \
- zip -9 -r $(1) "HandBrake $(HB_VERSION)" && \
+ zip -9 -r $(<) "HandBrake $(HB_VERSION)" && \
rm -rf "HandBrake $(HB_VERSION)"
}
+rule SystemLibraries
+{
+ LINKLIBS on [ FAppendSuffix $(<) : $(SUFEXE) ] += $(>) ;
+}
+
+# Jambase's ObjectHdrs doesn't seem to work when ObjectHdrs is called
+# several times on a file, and it doesn't works for asm files. Fixed
+# here.
+rule ObjectHdrs
+{
+ local s = [ FGristFiles $(<:S=$(SUFOBJ)) ] ;
+ HDRS on $(s) += $(>) ;
+ ASHDRS on $(s) += [ FIncludes $(>) ] ;
+ CCHDRS on $(s) += [ FIncludes $(>) ] ;
+}
+
diff --git a/NEWS b/NEWS
index 5c4fd6232..0930a1eda 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,10 @@
-$Id: NEWS,v 1.12 2004/03/08 11:32:48 titer Exp $
+$Id: NEWS,v 1.13 2004/03/29 00:28:39 titer Exp $
NEWS file for HandBrake <http://handbrake.m0k.org/>
+Changes between 0.6.0 and 0.6.1
+ + Fixed LPCM endianness issue
+
Changes between 0.5.2 and 0.6.0
+ MP4 and OGM output
+ AAC and Vorbis encoding
diff --git a/core/Jamfile b/core/Jamfile
index 949e24388..992dc5cf8 100644
--- a/core/Jamfile
+++ b/core/Jamfile
@@ -1,4 +1,4 @@
-# $Id: Jamfile,v 1.6 2004/03/08 11:32:48 titer Exp $
+# $Id: Jamfile,v 1.7 2004/03/29 00:28:42 titer Exp $
#
# This file is part of the HandBrake source code.
# Homepage: <http://handbrake.m0k.org/>.
@@ -6,43 +6,33 @@
SubDir TOP core ;
-SOURCES_HBCORE =
-Ac3Dec.c
-AviMux.c
-DVDRead.c
-FaacEnc.c
-FfmpegEnc.c
-Fifo.c
-HandBrake.c
-LpcmDec.c
-MadDec.c
-Mp3Enc.c
-Mp4Mux.c
-Mpeg2Dec.c
-OgmMux.c
-Scale.c
-Scan.c
-Thread.c
-Utils.c
-VorbisEnc.c
-Work.c
-X264Enc.c
-XvidEnc.c ;
+LIBHB_SRC =
+ Ac3Dec.c AviMux.c DVDRead.c FaacEnc.c FfmpegEnc.c Fifo.c HandBrake.c
+ LpcmDec.c MadDec.c Mp3Enc.c Mp4Mux.c Mpeg2Dec.c OgmMux.c Scale.c
+ Scan.c Thread.c Utils.c VorbisEnc.c Work.c X264Enc.c XvidEnc.c ;
-ObjectCcFlags $(SOURCES_HBCORE) :
- -I$(TOP)/contrib/liba52
- -I$(TOP)/contrib/libavcodec
- -I$(TOP)/contrib/libdvdplay
- -I$(TOP)/contrib/libdvdread
- -I$(TOP)/contrib/libfaac
- -I$(TOP)/contrib/libmp3lame
- -I$(TOP)/contrib/libmp4v2
- -I$(TOP)/contrib/libmpeg2
- -I$(TOP)/contrib/libogg
- -I$(TOP)/contrib/libvorbis
- -I$(TOP)/contrib/libx264
- -I$(TOP)/contrib/libxvidcore
- -g -Wall ;
+Library libhb : $(LIBHB_SRC) ;
-Library libhb.a : $(SOURCES_HBCORE) ;
+# Sadly, we might want to debug our code
+ObjectCcFlags $(LIBHB_SRC) : -g -Wall ;
+
+# Needed includes
+ObjectHdrs Ac3Dec.c : $(TOP)/contrib/liba52 ;
+ObjectHdrs FfmpegEnc.c
+ HandBrake.c
+ Scale.c : $(TOP)/contrib/libavcodec ;
+ObjectHdrs DVDRead.c
+ Scan.c : $(TOP)/contrib/libdvdplay ;
+ObjectHdrs DVDRead.c
+ Scan.c : $(TOP)/contrib/libdvdread ;
+ObjectHdrs FaacEnc.c : $(TOP)/contrib/libfaac ;
+ObjectHdrs Mp3Enc.c : $(TOP)/contrib/libmp3lame ;
+ObjectHdrs Mp4Mux.c : $(TOP)/contrib/libmp4v2 ;
+ObjectHdrs Mpeg2Dec.c
+ Scan.c : $(TOP)/contrib/libmpeg2 ;
+ObjectHdrs OgmMux.c
+ VorbisEnc.c : $(TOP)/contrib/libogg ;
+ObjectHdrs VorbisEnc.c : $(TOP)/contrib/libvorbis ;
+ObjectHdrs X264Enc.c : $(TOP)/contrib/libx264 ;
+ObjectHdrs XvidEnc.c : $(TOP)/contrib/libxvidcore ;
diff --git a/core/LpcmDec.c b/core/LpcmDec.c
index e39db3ade..519b4868a 100644
--- a/core/LpcmDec.c
+++ b/core/LpcmDec.c
@@ -1,4 +1,4 @@
-/* $Id: LpcmDec.c,v 1.2 2004/03/08 15:04:40 fenrir Exp $
+/* $Id: LpcmDec.c,v 1.3 2004/03/29 00:29:41 titer Exp $
This file is part of the HandBrake source code.
Homepage: <http://handbrake.m0k.org/>.
@@ -66,6 +66,7 @@ void HBLpcmDecClose( HBWork ** _l )
*_l = NULL;
}
+#ifndef HB_MACOSX
static int16_t Swap16( int16_t * p )
{
uint8_t tmp[2];
@@ -75,6 +76,7 @@ static int16_t Swap16( int16_t * p )
return *(int16_t*)tmp;
}
+#endif
static int LpcmDecWork( HBWork * w )
{
@@ -147,7 +149,7 @@ static int LpcmDecWork( HBWork * w )
for( i = 0; i < samples; i++ )
{
-#ifdef SYS_MACOSX
+#ifdef HB_MACOSX
l->rawBuffer->left[i] = (float) int16data[2*i] * l->sampleLevel;
l->rawBuffer->right[i] = (float) int16data[2*i+1] * l->sampleLevel;
#else
diff --git a/macosx/English.lproj/InfoPlist.strings b/macosx/English.lproj/InfoPlist.strings
index 0807e3bbc..f1eb09da3 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 41b955ca1..4b5a9117c 100644
--- a/macosx/HandBrake.xcode/project.pbxproj
+++ b/macosx/HandBrake.xcode/project.pbxproj
@@ -298,10 +298,10 @@
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
+ <key>CFBundleDisplayName</key>
+ <string>HandBrake</string>
<key>CFBundleExecutable</key>
<string>HandBrake</string>
- <key>CFBundleGetInfoString</key>
- <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,13 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>0.6.0</string>
+ <string>0.6.1</string>
<key>CFBundleSignature</key>
<string>HB##</string>
<key>CFBundleVersion</key>
- <string>0.6.0</string>
+ <string>0.6.1</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>By Eric Petit &lt;[email protected]&gt;</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
@@ -406,13 +408,14 @@
);
buildSettings = {
COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = "0.6.1";
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 3;
- LIBRARY_SEARCH_PATHS = "../core ../contrib/lib";
- OPTIMIZATION_CFLAGS = "-O3";
- ZERO_LINK = YES;
+ LIBRARY_SEARCH_PATHS = ../core;
+ OPTIMIZATION_CFLAGS = "-O0";
+ ZERO_LINK = NO;
};
isa = PBXBuildStyle;
name = Development;