OSDN Git Service

Merge the 5.1 branch into the trunk.
authorprigaux <prigaux@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Tue, 6 Mar 2007 21:15:55 +0000 (21:15 +0000)
committerprigaux <prigaux@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Tue, 6 Mar 2007 21:15:55 +0000 (21:15 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@422 b64f7644-9d1e-0410-96f1-a4d463321fa5

95 files changed:
AUTHORS
BUILD
BuildContribsDarwin.sh
DownloadMacOsXContribBinaries.sh
Jamfile
MP4toMOV/MP4toMOV.app/Contents/Frameworks/RBQT.rbx_0.128.dylib [new file with mode: 0644]
MP4toMOV/MP4toMOV.app/Contents/Info.plist [new file with mode: 0644]
MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV [new file with mode: 0755]
MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib [new file with mode: 0644]
MP4toMOV/MP4toMOV.app/Contents/PkgInfo [new file with mode: 0644]
MP4toMOV/MP4toMOV.rbp [new file with mode: 0644]
MP4toMOV/README [new file with mode: 0644]
MacOsXContribBinariesVersion.txt
Makefile
Makefile.config [new file with mode: 0644]
contrib/Jamfile
contrib/Makefile [new file with mode: 0644]
contrib/patch-ffmpeg-macintel.patch [deleted file]
contrib/patch-libdvdread.patch [deleted file]
contrib/patch-libquicktime.patch [new file with mode: 0644]
contrib/patch-mpeg4ip.patch [new file with mode: 0644]
contrib/patch-x264-linux.patch [new file with mode: 0644]
contrib/version_a52dec.txt
contrib/version_faac.txt
contrib/version_ffmpeg.txt
contrib/version_lame.txt
contrib/version_libdvdcss.txt
contrib/version_libdvdread.txt
contrib/version_libogg.txt
contrib/version_libsamplerate.txt
contrib/version_libvorbis.txt
contrib/version_mpeg2dec.txt
contrib/version_mpeg4ip.txt
contrib/version_qt.txt [new file with mode: 0644]
contrib/version_x264.txt
contrib/version_xvidcore.txt
contrib/version_zlib.txt [new file with mode: 0644]
libhb/Jamfile [moved from libmediafork/Jamfile with 52% similarity]
libhb/Makefile [moved from libmediafork/Makefile with 76% similarity]
libhb/common.c [moved from libmediafork/common.c with 100% similarity]
libhb/common.h [moved from libmediafork/common.h with 86% similarity]
libhb/deca52.c [moved from libmediafork/deca52.c with 78% similarity]
libhb/decavcodec.c [moved from libmediafork/decavcodec.c with 99% similarity]
libhb/declpcm.c [moved from libmediafork/declpcm.c with 98% similarity]
libhb/decmpeg2.c [moved from libmediafork/decmpeg2.c with 99% similarity]
libhb/decsub.c [moved from libmediafork/decsub.c with 99% similarity]
libhb/demuxmpeg.c [moved from libmediafork/demuxmpeg.c with 99% similarity]
libhb/dvd.c [moved from libmediafork/dvd.c with 97% similarity]
libhb/encavcodec.c [moved from libmediafork/encavcodec.c with 99% similarity]
libhb/encfaac.c [moved from libmediafork/encfaac.c with 82% similarity]
libhb/enclame.c [moved from libmediafork/enclame.c with 99% similarity]
libhb/encvorbis.c [moved from libmediafork/encvorbis.c with 99% similarity]
libhb/encx264.c [moved from libmediafork/encx264.c with 78% similarity]
libhb/encxvid.c [moved from libmediafork/encxvid.c with 99% similarity]
libhb/fifo.c [moved from libmediafork/fifo.c with 99% similarity]
libhb/hb.c [moved from libmediafork/mediafork.c with 99% similarity]
libhb/hb.h [moved from libmediafork/mediafork.h with 100% similarity]
libhb/internal.h [moved from libmediafork/internal.h with 100% similarity]
libhb/ipodutil.cpp [moved from libmediafork/ipodutil.cpp with 100% similarity]
libhb/lang.h [moved from libmediafork/lang.h with 100% similarity]
libhb/muxavi.c [moved from libmediafork/muxavi.c with 99% similarity]
libhb/muxcommon.c [moved from libmediafork/muxcommon.c with 99% similarity]
libhb/muxmp4.c [moved from libmediafork/muxmp4.c with 67% similarity]
libhb/muxogm.c [moved from libmediafork/muxogm.c with 99% similarity]
libhb/ports.c [moved from libmediafork/ports.c with 99% similarity]
libhb/ports.h [moved from libmediafork/ports.h with 98% similarity]
libhb/reader.c [moved from libmediafork/reader.c with 99% similarity]
libhb/render.c [moved from libmediafork/render.c with 99% similarity]
libhb/scan.c [moved from libmediafork/scan.c with 97% similarity]
libhb/sync.c [moved from libmediafork/sync.c with 93% similarity]
libhb/update.c [moved from libmediafork/update.c with 99% similarity]
libhb/work.c [moved from libmediafork/work.c with 82% similarity]
macosx/Controller.h
macosx/Controller.mm
macosx/DriveDetector.m
macosx/English.lproj/MainMenu.nib/classes.nib
macosx/English.lproj/MainMenu.nib/info.nib
macosx/English.lproj/MainMenu.nib/keyedobjects.nib
macosx/ExpressController.h
macosx/HandBrake.icns [new file with mode: 0644]
macosx/HandBrake.plist [new file with mode: 0644]
macosx/HandBrake.xcodeproj/pri.mode1 [new file with mode: 0644]
macosx/HandBrake.xcodeproj/pri.pbxuser [new file with mode: 0644]
macosx/HandBrake.xcodeproj/project.pbxproj [moved from macosx/MediaFork.xcodeproj/project.pbxproj with 71% similarity]
macosx/MediaFork.plist [deleted file]
macosx/PictureController.h
macosx/PictureGLView.h
macosx/PrefsController.h
macosx/PrefsController.m
macosx/QueueController.h
macosx/ScanController.h
macosx/localize.sh
test/BUILDSHARED
test/Makefile
test/test.c

diff --git a/AUTHORS b/AUTHORS
index 1c26aa4..6139b52 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,59 +1,68 @@
-AUTHORS file for HandBrake <http://handbrake.m0k.org/>
-
-Eric Petit <titer@m0k.org>
- + Core (construct, multithreading, BeOS/OS X/Linux ports)
- + MPEG demuxer
- + MPEG-2, AC3 and MPGA decoders (w/ libmpeg2/liba52/libavcodec)
- + LPCM "decoder"
- + MPEG-4, MP3 and AAC encoders (w/ libavcodec/libxvidcore/libmp3lame/
-   libfaac)
- + AC-3 pass-through
- + AVI muxer
- + MP4 muxer (w/ libmp4v2)
- + BeOS interface
- + OS X interface
- + French translation
-
-Laurent Aimar <fenrir@via.ecp.fr>
- + H264 and Vorbis encoders (w/ libx264/libvorbis)
- + OGG/OGM muxer (w/ libogg)
- + Gtk2 interface
- + wxWidgets interface
-
-John Allen (?) <johnallenemail@gmail.com> (johnallen)
- + Core enhancements
- + Threading enhancements
- + Simplified Mac OS X GUI
-
-Joe Crain <joe@dynaflashtech.net> (dynaflash)
- + Mac OS X GUI enhancements/rewrite
-
-Rodney Hester <rhester@multics.dynalias.com> (rhester)
- + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support
-
-Benjamin Lake <me@benlake.org> (benlake)
- + Mac OS X GUI enhancements/rewrite
-
-Chris Long <chris.long@mac.com> (chrislong)
- + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support
-
-Philippe Rigaux <pri@nopapers.org> (prigaux)
- + 3rd party library integration
- + Mac OS X GUI enhancements
- + PAR/anamorphic support
- + Universal binary build process
- + Conversion from jam to make for compiles
-
-Jonathon Rubin <jb.rubin@gmail.com> (jbrjake)
- + Massive core enhancements
- + Significant improvements to H.264 support
-
-Scott <srae88@gmail.com> (sr55)
- + Windows GUI
- + mpeg4ip patches for cygwin compile
-
-Unknown <handbrake@addey.com> (maurj)
- + AAC audio improvements
-
-Unknown <mirkwood07@gmail.com> (mirkwood)
- + Windows CLI port
+AUTHORS file for MediaFork <http://mediafork.dynalias.com/>\r
+\r
+Originally forked from HandBrake <http://handbrake.m0k.org/>\r
+\r
+Eric Petit <titer@m0k.org>\r
+ + Core (construct, multithreading, BeOS/OS X/Linux ports)\r
+ + MPEG demuxer\r
+ + MPEG-2, AC3 and MPGA decoders (w/ libmpeg2/liba52/libavcodec)\r
+ + LPCM "decoder"\r
+ + MPEG-4, MP3 and AAC encoders (w/ libavcodec/libxvidcore/libmp3lame/\r
+   libfaac)\r
+ + AC-3 pass-through\r
+ + AVI muxer\r
+ + MP4 muxer (w/ libmp4v2)\r
+ + BeOS interface\r
+ + OS X interface\r
+ + French translation\r
+\r
+Laurent Aimar <fenrir@via.ecp.fr>\r
+ + H264 and Vorbis encoders (w/ libx264/libvorbis)\r
+ + OGG/OGM muxer (w/ libogg)\r
+ + Gtk2 interface\r
+ + wxWidgets interface\r
+\r
+John Allen (?) <johnallenemail@gmail.com> (johnallen)\r
+ + Core enhancements\r
+ + Threading enhancements\r
+ + Simplified Mac OS X GUI\r
+\r
+Joe Crain <joe@dynaflashtech.net> (dynaflash)\r
+ + Mac OS X GUI enhancements/rewrite\r
+\r
+Rodney Hester <rhester@multics.dynalias.com> (rhester)\r
+ + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support\r
+\r
+Benjamin Lake <me@benlake.org> (benlake)\r
+ + Mac OS X GUI enhancements/rewrite\r
+\r
+Chris Lee <clee@kde.org>\r
+ + PAR/anamorphic support\r
+ + dvdread enhancements\r
+ + Linux GUI\r
+\r
+Chris Long <chris.long@mac.com> (chrislong)\r
+ + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support\r
+\r
+Philippe Rigaux <pri@nopapers.org> (prigaux)\r
+ + 3rd party library integration\r
+ + Mac OS X GUI enhancements\r
+ + PAR/anamorphic support\r
+ + Universal binary build process\r
+ + Conversion from jam to make for compiles\r
+\r
+Jonathon Rubin <jb.rubin@gmail.com> (jbrjake)\r
+ + Massive core enhancements\r
+ + Significant improvements to H.264 support\r
+\r
+Scott <sr55ww@googlemail.com> (sr55)\r
+ + Windows GUI\r
+ + mpeg4ip patches for cygwin compile\r
+\r
+Maurj <mediafork@maurj.com> (maurj)\r
+ + 6-channel AAC audio from 5.1 source\r
+ + mono AAC audio from mono source\r
+ + PAR/anamorphic support in mp4 file format\r
+\r
+Unknown <mirkwood07@gmail.com> (mirkwood)\r
+ + Windows CLI port\r
diff --git a/BUILD b/BUILD
index 8f4788a..87cfc9f 100644 (file)
--- a/BUILD
+++ b/BUILD
@@ -2,8 +2,8 @@ $Id: BUILD,v 1.11 2005/10/23 01:35:59 titer Exp $
 
 BUILD file for HandBrake <http://handbrake.m0k.org/>
 
-Building HandBrake
-==================
+Building HandBrake with jam
+===========================
 
 You can build HandBrake on BeOS, MacOS X, Linux, and on Windows using Cygwin.
 If you'd like to port it to another OS, email me (titer@m0k.org).
@@ -45,13 +45,47 @@ Step 2: build
 Run `./configure && jam'. This will build every library HandBrake
 requires, then HandBrake itself.
 
+-----------------------------------------------------------------------------------------------------
 
-Experimental UB build on MacOsX
-===============================
+Building HandBrake with make
+============================
+
+Step 1: get needed tools
+========================
+
++ gcc and g++
+    There are usually included in your OS' dev tools. On BeOS/Zeta, the
+    default gcc isn't enough, gcc 2.95.3 is required.
+
++ nasm (Only for x86. On Mac OS X Intel, Xcode 2.4.1 include it)
+
+Cygwin setup:
+    There are a couple extra things required to make the code build for Cygwin.
+    Make sure you have /bin and /usr/bin on your path *first*, before
+    the Windows paths.  Otherwise the Cygwin find.exe won't be used, and
+    lame won't build.
+    Also, I have not tried to build this with MinGW, I've only built it with
+    the Cygwin environment, so you should build with Cygwin gcc and dev tools.
+    Unfortunately this means you need to have cygwin1.dll around to run the
+    HBTest.exe program, but that's the way it is for now, until I get time
+    to try building it with MinGW.  If you want to try making it work with
+    MinGW, then go for it!
+
+
+
+
+Step 2: configuration
+=====================
+
+The HB_BUILD and HB_VERSION are defined in a single file, the Makefile correct the values in Xcode too.
+
+The file where the informations are stored is Makefile.config
+
+Step 3: build
+=============
 
 Run `make'. This will build libmediafork, MediaFork and MediaForkCLI as Universal Binary.
 This build method use precompiled contrib libraries. Script to build those binaries are provided too.
 All the build is handled by Xcode 2.4.1, should work on powerPC and Intel Macs.
 
 
-
index c523c69..0631cc7 100755 (executable)
@@ -33,7 +33,7 @@
 export VERSION=$1
 export IP=$2
 export USERNAME=$3
-export REPOS=svn://multics.dynalias.com/HandBrake/trunk/
+export REPOS=svn://svn.m0k.org/HandBrake/branches/0.8.0_beta2_5.1
 # ##########################################################################
 # Launch the build on the foreign system
 # ##########################################################################
@@ -55,13 +55,22 @@ cd foreign
 mkdir lib
 cd lib
 scp $USERNAME@$IP:/Users/$USERNAME/MFBUILDTMP/contrib/lib/*a .
+scp -rp $USERNAME@$IP:/Users/$USERNAME/MFBUILDTMP/contrib/lib/libquicktime .
 for lib in `ls *.a`
 do     
-       echo ... lipo: $lib
+       echo ... lipo contrib libraries: $lib
        lipo -create $lib ../../native/lib/$lib -output ../../lib/$lib
 done;
+mkdir ../../lib/libquicktime
+cd libquicktime
+for lib in `ls *.so`
+do
+       echo ... lipo libquicktime plugins: $lib
+        lipo -create $lib ../../../native/lib/libquicktime/$lib -output ../../../lib/libquicktime/$lib
+done;
 
-cd ../..
+cd ../../..
 echo $VERSION > DarwinContribVersion.txt
 echo Creating contribbin-darwin-$VERSION.tar.gz
 tar zcvf contribbin-darwin-$VERSION.tar.gz lib include  DarwinContribVersion.txt
index b8df222..29e2828 100755 (executable)
@@ -10,10 +10,12 @@ if [ -f contrib/DarwinContribVersion.txt ]; then
   fi
 fi
 
-HOST=download.mediafork.dynalias.com
+HOST=download.m0k.org
+#HOST=download.mediafork.dynalias.com
+#HOST=sr55.ashosted.com
 FILE=contribbin-darwin-$VERSION.tar.gz
-URL=http://$HOST/contrib/$FILE
-
+#URL=http://$HOST/contrib/$FILE
+URL=http://$HOST/handbrake/contrib/$FILE
 # Check for internet connectivity
 if ! host $HOST > /dev/null 2>&1; then
   echo "Please connect to the Internet (could not resolve $HOST)."
diff --git a/Jamfile b/Jamfile
index 8d3b2a4..c068d54 100644 (file)
--- a/Jamfile
+++ b/Jamfile
@@ -6,8 +6,8 @@
 
 SubDir TOP ;
 
-# libmediafork + contrib libraries
-MEDIAFORK_LIBS = libmediafork.a
+# libhb + contrib libraries
+HANDBRAKE_LIBS = libhb.a
           contrib/lib/liba52.a        contrib/lib/libavformat.a
           contrib/lib/libavcodec.a    contrib/lib/libavutil.a
           contrib/lib/libdvdread.a    contrib/lib/libmp4v2.a
@@ -24,11 +24,11 @@ if $(OS) = UNKNOWN
 
 if $(OS) != CYGWIN
 {
-    MEDIAFORK_LIBS = $(MEDIAFORK_LIBS) contrib/lib/libdvdcss.a ;
+    HANDBRAKE_LIBS = $(HANDBRAKE_LIBS) contrib/lib/libdvdcss.a ;
 }
 
 # Interfaces
-CLI_BIN = MediaForkCLI ;
+CLI_BIN = HandBrakeCLI ;
 CLI_SRC = test/test.c ;
 BEOS_BIN = HandBrake ;
 BEOS_SRC = beos/HBApp.cpp beos/MainWindow.cpp beos/ScanWindow.cpp
@@ -69,7 +69,7 @@ if $(OS) = MACOSX
               macosx/English.lproj/Express.nib/info.nib
               macosx/English.lproj/Express.nib/keyedobjects.nib ;
               
-    OSXApp MediaFork.app : $(OSX_SRC) $(MEDIAFORK_LIBS) ;
+    OSXApp HandBrake.app : $(OSX_SRC) $(HANDBRAKE_LIBS) ;
     
     # Package
     OSXPackage HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ;
@@ -85,12 +85,12 @@ if $(OS) = LINUX
 
 if $(OS) != MACOSX
 {
-       ObjectHdrs     $(UI_SRC) : $(TOP)/libmediafork ;
-       LinkLibraries  $(UI_BIN) : $(MEDIAFORK_LIBS) ;
+       ObjectHdrs     $(UI_SRC) : $(TOP)/libhb ;
+       LinkLibraries  $(UI_BIN) : $(HANDBRAKE_LIBS) ;
 }
 # Packages
 NotFile package ;
 Depends package : $(HB_PACKAGES) ;
 
 SubInclude TOP contrib ;
-SubInclude TOP libmediafork ;
+SubInclude TOP libhb ;
diff --git a/MP4toMOV/MP4toMOV.app/Contents/Frameworks/RBQT.rbx_0.128.dylib b/MP4toMOV/MP4toMOV.app/Contents/Frameworks/RBQT.rbx_0.128.dylib
new file mode 100644 (file)
index 0000000..33e037b
Binary files /dev/null and b/MP4toMOV/MP4toMOV.app/Contents/Frameworks/RBQT.rbx_0.128.dylib differ
diff --git a/MP4toMOV/MP4toMOV.app/Contents/Info.plist b/MP4toMOV/MP4toMOV.app/Contents/Info.plist
new file mode 100644 (file)
index 0000000..6804bf8
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?>\r<!DOCTYPE plist SYSTEM\r"file://localhost/System/Library/DTDs/PropertyList.dtd">\r<plist version="0.9">\r<dict>\r   <key>CFBundleExecutable</key>\r   <string>MP4toMOV</string>\r   <key>CFBundleName</key>\r   <string>MP4toMOV</string>\r   <key>CFBundleIdentifier</key>\r   <string></string>\r   <key>CFBundleInfoDictionaryVersion</key>\r   <string>6.0</string>\r   <key>CFBundleVersion</key>\r   <string>1.0.0d0</string>\r   <key>CFBundleDevelopmentRegion</key>\r   <string>en</string>\r   <key>CFBundlePackageType</key>\r   <string>APPL</string>\r   <key>CFBundleSignature</key>\r   <string></string>\r   <key>CFBundleGetInfoString</key>\r   <string></string>\r   <key>CFBundleShortVersionString</key>\r   <string></string>\r   <key>CFBundleIconFile</key>\r   <string>MP4toMOV.icns</string>\r   <key>CFBundleDocumentTypes</key>\r   <array>\r      <dict>\r         <key>CFBundleTypeName</key>\r         <string>MP4</string>\r         <key>CFBundleTypeOSTypes</key>\r         <array>\r            <string>****</string>\r         </array>\r         <key>CFBundleTypeExtensions</key>\r         <array>\r            <string>mp4</string>\r         </array>\r      </dict>\r   </array>\r</dict>\r</plist>
\ No newline at end of file
diff --git a/MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV b/MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV
new file mode 100755 (executable)
index 0000000..fd83816
Binary files /dev/null and b/MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV differ
diff --git a/MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib b/MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib
new file mode 100644 (file)
index 0000000..1edb8c2
Binary files /dev/null and b/MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib differ
diff --git a/MP4toMOV/MP4toMOV.app/Contents/PkgInfo b/MP4toMOV/MP4toMOV.app/Contents/PkgInfo
new file mode 100644 (file)
index 0000000..bd04210
--- /dev/null
@@ -0,0 +1 @@
+APPL????
\ No newline at end of file
diff --git a/MP4toMOV/MP4toMOV.rbp b/MP4toMOV/MP4toMOV.rbp
new file mode 100644 (file)
index 0000000..554d68e
Binary files /dev/null and b/MP4toMOV/MP4toMOV.rbp differ
diff --git a/MP4toMOV/README b/MP4toMOV/README
new file mode 100644 (file)
index 0000000..d4882e6
--- /dev/null
@@ -0,0 +1,10 @@
+MP4toMOV\r
+--------\r
+\r
+This small application will convert a MediaFork .mp4 file into a .mov file which can be read by iTunes and FrontRow.  You only really need to do this if you are using 6-channel AAC in your mp4 files, as iTunes and FrontRow can already read stereo mp4 files.\r
+\r
+To use MP4toMOV, drag one or more mp4 files onto the application's icon.  MP4toMOV will convert the files to QuickTime .mov format.  New files will be created in the same directory as the .mp4 files, with the .mov extension added to the end.  These .mov files can then be dragged to iTunes for use in iTunes and FrontRow, even if they have 6-channel AAC soundtracks.  MP4toMOV will quit once all files have been converted.\r
+\r
+Alternatively, double-click on MP4toMOV, and select "File > Open" to open a single file for conversion.\r
+\r
+MP4toMOV is created with REALbasic, and the MP4toMOV.rbp file is a project file for REALbasic 2007r1.  REALbasic is available from http://www.realbasic.com/ .
\ No newline at end of file
index 39567bf..91ed094 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,19 @@
+include Makefile.config
+
 SYSTEM = $(shell uname -s)
 
 # Special case for Mac OS X: everything is handled from the Xcode project
 ifeq ($(SYSTEM),Darwin)
 
-all:    clean app release
+all:    clean app
+
+dev:   clean internal
 
 app:
-       (./DownloadMacOsXContribBinaries.sh ; cd macosx ; xcodebuild -alltargets -configuration UB build | sed '/^$$/d' ; cd .. ; ./macosx/localize.sh MediaFork.app)
+       (./DownloadMacOsXContribBinaries.sh ; cd macosx ; xcodebuild -alltargets -configuration UB  OTHER_CFLAGS_QUOTED_1="-DHB_VERSION=\\\"$(HB_VERSION)\\\" -DHB_BUILD=$(HB_BUILD) " build | sed '/^$$/d' ; cd .. ; ./macosx/localize.sh HandBrake.app $(HB_VERSION) $(HB_BUILD) UB )
+
+internal:
+       (./DownloadMacOsXContribBinaries.sh ; cd macosx ; xcodebuild -alltargets -configuration Development  OTHER_CFLAGS_QUOTED_1="-DHB_VERSION=\\\"$(HB_VERSION)\\\" -DHB_BUILD=$(HB_BUILD) " build | sed '/^$$/d' ; cd .. ; ./macosx/localize.sh HandBrake.app $(HB_VERSION) $(HB_BUILD) DEV ) ; rm -rf plugins ; mkdir plugins ; cp contrib/lib/libquicktime/* plugins
 
 clean:
        (cd macosx ; xcodebuild -alltargets -configuration UB clean | sed '/^$$/d' )
@@ -15,50 +22,58 @@ mrproper:
        (rm -rf contrib/*tar.gz contrib/include contrib/lib contrib/DarwinContribVersion.txt ; cd macosx ; xcodebuild -alltargets -configuration UB clean | sed '/^$$/d' )
 
 release:
-       (rm -rf MediaFork MediaFork.dmg ; mkdir -p MediaFork/api MediaFork/doc; cp test/BUILDSHARED AUTHORS BUILD COPYING CREDITS NEWS THANKS TRANSLATIONS MediaFork/doc ; cp -rp MediaFork.app MediaFork ; cp -rp libmediafork/libmediafork.dylib MediaFork/api ; cp -rp libmediafork/mediafork.h libmediafork/common.h libmediafork/ports.h MediaFork/api ; cp -rp MediaForkCLI MediaFork ; hdiutil create -srcfolder MediaFork  -format UDBZ MediaFork.dmg ; rm -rf MediaFork )
+       (rm -rf Handbrake Handbrake.dmg ; mkdir -p Handbrake/api Handbrake/doc; cp test/BUILDSHARED AUTHORS BUILD COPYING CREDITS NEWS THANKS TRANSLATIONS Handbrake/doc ; cp -rp HandBrake.app Handbrake ; cp -rp libhb/libhb.dylib Handbrake/api ; cp -rp libhb/hb.h libhb/common.h libhb/ports.h Handbrake/api ; cp -rp HandbrakeCLI Handbrake ; hdiutil create -srcfolder Handbrake  -format UDZO Handbrake.dmg ; rm -rf Handbrake )
+ifeq ($(SNAP), 1)
+       ( mv Handbrake.dmg MediaFork-$(HB_VERSION)-MacOS_UB.dmg )
+endif
+
+releaseint:
+       (rm -rf Handbrake Handbrake.dmg ; mkdir -p Handbrake/api Handbrake/doc; cp test/BUILDSHARED AUTHORS BUILD COPYING CREDITS NEWS THANKS TRANSLATIONS Handbrake/doc ; cp -rp HandBrake.app Handbrake ; cp -rp libhb/libhb.dylib Handbrake/api ; cp -rp libhb/hb.h libhb/common.h libhb/ports.h Handbrake/api ; cp -rp HandbrakeCLI Handbrake ; cd HandBrake ; mkdir plugins ; cd plugins ; ln ../HandBrake.app/Contents/Resources/plugins/lqt_audiocodec.so ; ln ../HandBrake.app/Contents/Resources/plugins/lqt_faac.so ; ln ../HandBrake.app/Contents/Resources/plugins/lqt_ffmpeg.so; ln ../HandBrake.app/Contents/Resources/plugins/lqt_lame.so; ln ../HandBrake.app/Contents/Resources/plugins/lqt_rtjpeg.so ; ln ../HandBrake.app/Contents/Resources/plugins/lqt_videocodec.so ; ln ../HandBrake.app/Contents/Resources/plugins/lqt_x264.so; cd ../.. ; hdiutil create -srcfolder Handbrake  -format UDZO Handbrake.dmg ; rm -rf Handbrake )
    
 endif
 
 ifeq ($(SYSTEM),Linux)
 
-all:   contrib/lib libmediafork/libmediafork.a MediaForkCLI
+all:   contrib/.contrib libhb/libhb.a HandBrakeCLI
+       (rm -rf HandBrake HandBrake*.tar.gz ; mkdir -p HandBrake/api HandBrake/doc; cp test/BUILDSHARED AUTHORS BUILD COPYING CREDITS NEWS THANKS TRANSLATIONS HandBrake/doc ;  cp -rp libhb/libhb.so HandBrake/api ; cp -rp libhb/hb.h libhb/common.h libhb/ports.h HandBrake/api ; cp -rp HandBrakeCLI HandBrake ; tar zcvf HandBrake-$(HB_VERSION)_i386.tar.gz HandBrake ; rm -rf HandBrake )
+
 
-contrib/lib:
-       (./configure ; cd contrib ; cp -f ../config.jam . ; jam ; cd ..)
+contrib/.contrib:
+       @$(MAKE) --no-print-directory -C contrib all
 
-libmediafork/libmediafork.a:
-       @$(MAKE) --no-print-directory -C libmediafork all
+libhb/libhb.a:
+       @$(MAKE) --no-print-directory -C libhb all
 
-MediaForkCLI:
+HandBrakeCLI:
        @$(MAKE) --no-print-directory -C test all
 
 clean:
-       @$(MAKE) --no-print-directory -C libmediafork clean
+       @$(MAKE) --no-print-directory -C libhb clean
        @$(MAKE) --no-print-directory -C test clean
 
 mrproper: clean
-       (rm -rf contrib/lib ; rm -rf contrib/include/* )
+       @$(MAKE) --no-print-directory -C contrib mrproper
 
 endif
 
 ifeq ($(SYSTEM),CYGWIN_NT-5.1)
 
-all:    contrib/lib libmediafork/libmediafork.a MediaForkCLI
+all:    contrib/.contrib libhb/libhb.a HandbrakeCLI
 
-contrib/lib:
-       (./configure ; cd contrib ; cp -f ../config.jam . ; jam.exe ; cd ..)
+contrib/.contrib:
+       @$(MAKE) --no-print-directory -C contrib all
 
-libmediafork/libmediafork.a:
-       @$(MAKE) --no-print-directory -C libmediafork all
+libhb/libhb.a:
+       @$(MAKE) --no-print-directory -C libhb all
 
-MediaForkCLI:
+HandbrakeCLI:
        @$(MAKE) --no-print-directory -C test all
 
 clean:
-       @$(MAKE) --no-print-directory -C libmediafork clean
+       @$(MAKE) --no-print-directory -C libhb clean
        @$(MAKE) --no-print-directory -C test clean
 
 mrproper: clean
-       (rm -rf contrib/lib ; rm -rf contrib/include/* )
+       @$(MAKE) --no-print-directory -C contrib mrproper
 
 endif
diff --git a/Makefile.config b/Makefile.config
new file mode 100644 (file)
index 0000000..7cdf1dc
--- /dev/null
@@ -0,0 +1,15 @@
+SNAP = $(shell echo $$SNAPSHOT)
+ifeq ($(SNAP), 1)
+HB_BUILD = $(shell date "+%Y%m%d")00
+HB_VERSION = 0.8.0s$(shell date "+%d")
+else
+HB_BUILD = $(shell date "+%Y%m%d")00
+HB_VERSION = "0.8.0b2"
+endif
+HB_DEFPPC = $(shell uname -a | grep ppc > /dev/null ; echo RES$$?)
+ifeq ($(HB_DEFPPC), RES0)
+HB_DEFPPC = "-DWORDS_BIGENDIAN"
+else
+HB_DEFPPC = 
+endif
+
index 94016f0..331bd30 100644 (file)
@@ -66,8 +66,8 @@ actions LibAvCodec
     cd `dirname $(>)` && CONTRIB=`pwd` &&
     rm -rf ffmpeg && tar xzf ffmpeg.tar.gz &&
     cd ffmpeg && $(FFMPEG_PATCH) &&
-    ./configure --prefix=$CONTRIB $(FFMPEG_OPTIONS) --enable-gpl --disable-audio-beos &&
-    make lib && make install-libs install-headers &&
+    ./configure --prefix=$CONTRIB $(FFMPEG_OPTIONS) --enable-gpl --disable-audio-beos --enable-shared --enable-static&&
+    make && make install &&
     strip -S $CONTRIB/lib/libavcodec.a
 }
 Wget       $(SUBDIR)/ffmpeg.tar.gz    : $(SUBDIR)/version_ffmpeg.txt ;
@@ -109,7 +109,8 @@ if $(OS) != CYGWIN
 # libdvdread
 rule LibDvdRead
 {
-    LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
+    # Not needed anymore since Clee fixed the problem in dvd.c
+    # LIBDVDREAD_PATCH = "patch -p1 < ../patch-libdvdread.patch" ;
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
@@ -119,7 +120,7 @@ if $(OS) != CYGWIN
     {
         cd `dirname $(>)` && CONTRIB=`pwd` &&
             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
-            $(LIBDVDREAD_PATCH) &&
+            $(LIBDVDREAD_PATCH) &&
             ./configure --prefix=$CONTRIB --disable-shared --with-libdvdcss=$CONTRIB &&
             make && make install &&
             strip -S $CONTRIB/lib/libdvdread.a
@@ -132,7 +133,7 @@ else {
     {
         cd `dirname $(>)` && CONTRIB=`pwd` &&
             rm -rf libdvdread && tar xzf libdvdread.tar.gz && cd libdvdread &&
-            $(LIBDVDREAD_PATCH) &&
+            $(LIBDVDREAD_PATCH) &&
             ./configure --prefix=$CONTRIB --disable-shared &&
             make && make install &&
             strip -S $CONTRIB/lib/libdvdread.a
@@ -151,7 +152,7 @@ actions LibFaac
 {
     cd `dirname $(>)` && CONTRIB=`pwd` &&
     rm -rf faac && tar xzf faac.tar.gz && cd faac &&
-    ./configure --prefix=$CONTRIB --disable-shared &&
+    ./configure --prefix=$CONTRIB --enable-shared --enable-static &&
     make && make install &&
     strip -S $CONTRIB/lib/libfaac.a
 }
@@ -187,7 +188,8 @@ if $(OS) != CYGWIN
        {
        cd `dirname $(>)` && CONTRIB=`pwd` &&
        rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
-       ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
+       patch -p1 < ../patch-mpeg4ip.patch &&
+       ./bootstrap  --disable-mp3lame --disable-faac --disable-x264 --disable-server --disable-player && make -C lib/mp4v2 libmp4v2.la &&
        cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
        cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
        include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include &&
@@ -200,6 +202,7 @@ else
        {
        cd `dirname $(>)` && CONTRIB=`pwd` &&
        rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip &&
+       patch -p1 < ../patch-mpeg4ip.patch &&
        patch -p1 < ../patch_mpeg4ip_cygwin.patch && ./bootstrap && make -C lib/mp4v2 libmp4v2.la &&
        cp lib/mp4v2/.libs/libmp4v2.a $CONTRIB/lib &&
        cp mpeg4ip_config.h include/mpeg4ip.h include/mpeg4ip_version.h \
@@ -302,6 +305,10 @@ rule LibX264
     {
         LIBX264_PATCH = " patch -p1 < ../patch-x264-cygwin.patch && " ;
     }
+    else if $(OS) = LINUX
+    {
+        LIBX264_PATCH = " patch -p1 < ../patch-x264-linux.patch && " ;
+    }
     Depends $(<) : $(>) ;
     Depends lib  : $(<) ;
 }
@@ -343,3 +350,91 @@ actions LibXvidCore
 }
 Wget        $(SUBDIR)/xvidcore.tar.gz   : $(SUBDIR)/version_xvidcore.txt ;
 LibXvidCore $(SUBDIR)/lib/libxvidcore.a : $(SUBDIR)/xvidcore.tar.gz ;
+
+# zlib
+if $(OS) = CYGWIN
+{
+rule Zlib
+{
+    Depends $(<) : $(>) ;
+    Depends lib  : $(<) ;
+}
+actions Zlib
+{
+    cd `dirname $(>)` && CONTRIB=`pwd` &&
+    rm -rf zlib && tar xzf zlib.tar.gz &&
+    cd zlib && 
+    ./configure --prefix=$CONTRIB && make && make install &&
+    strip -S $CONTRIB/lib/libz.a
+}
+Wget        $(SUBDIR)/zlib.tar.gz   : $(SUBDIR)/version_zlib.txt ;
+Zlib $(SUBDIR)/lib/libz.a : $(SUBDIR)/zlib.tar.gz ;
+}
+
+#libquicktime don't build on Cygwin! Do we really need it?
+if $(OS) != CYGWIN
+{
+       # libquicktime
+       rule LibQT
+       {
+
+           if $(OS) = MACOSX
+           {
+           POST_LibQT = "cd plugins/faac && " ; 
+           POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_faac.so -bundle  .libs/faac.o .libs/lqt_faac.o $CONTRIB/lib/libfaac.a ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs  -lm -lz -ldl && " ; 
+           POST_LibQT += "cp .libs/lqt_faac.so $CONTRIB/lib/libquicktime && " ;
+           POST_LibQT += "cd ../audiocodec && gcc -flat_namespace -undefined suppress -o .libs/lqt_audiocodec.so -bundle  .libs/ima4.o .libs/pcm.o .libs/lqt_audiocodec.o  ../../src/.libs/libquicktime.a  -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ; 
+           POST_LibQT += "cp .libs/lqt_audiocodec.so $CONTRIB/lib/libquicktime && " ; 
+           POST_LibQT += "cd ../rtjpeg && " ;
+           POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_rtjpeg.so -bundle  .libs/rtjpeg_codec.o .libs/lqt_rtjpeg.o .libs/RTjpeg.o ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs  -lm -lz -ldl  && " ;
+           POST_LibQT += "cp .libs/lqt_rtjpeg.so $CONTRIB/lib/libquicktime && " ;
+           POST_LibQT += "cd ../videocodec && " ;
+           POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_videocodec.so -bundle  .libs/raw.o .libs/v210.o .libs/v308.o .libs/v408.o .libs/v410.o .libs/yuv2.o .libs/yuv4.o .libs/yv12.o .libs/lqt_videocodec.o   ../../src/.libs/libquicktime.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs  -lm -lz -ldl  && " ;
+           POST_LibQT += "cp  .libs/lqt_videocodec.so $CONTRIB/lib/libquicktime && " ; 
+           POST_LibQT += "cd ../lame && " ;
+           POST_LibQT += "gcc -flat_namespace -undefined suppress -o .libs/lqt_lame.so -bundle  .libs/lame_codec.o .libs/lqt_lame.o  ../../src/.libs/libquicktime.a  -all_load  $CONTRIB/lib/libmp3lame.a  -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs  -lm -lz -ldl && " ;
+           POST_LibQT += "cp .libs/lqt_lame.so $CONTRIB/lib/libquicktime && cd ../x264 && " ;
+           POST_LibQT += "gcc -flat_namespace -undefined suppress -read_only_relocs suppress -o .libs/lqt_x264.so -bundle  .libs/x264.o .libs/lqt_x264.o  ../../src/.libs/libquicktime.a $CONTRIB/lib/libx264.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lm -lz -ldl && " ;
+           POST_LibQT += "cp .libs/lqt_x264.so $CONTRIB/lib/libquicktime && cd ../ffmpeg && " ; 
+           POST_LibQT += "gcc -flat_namespace -undefined suppress -read_only_relocs suppress -o .libs/lqt_ffmpeg.so  -bundle  .libs/lqt_ffmpeg.o .libs/audio.o .libs/video.o .libs/params.o  ../../src/.libs/libquicktime.a  $CONTRIB/lib/libavcodec.a $CONTRIB/lib/libavutil.a $CONTRIB/lib/libavformat.a -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs  -lm -lz -ldl  && " ;
+           POST_LibQT += "cp .libs/lqt_ffmpeg.so $CONTRIB/lib/libquicktime && cd ../.. && " ;
+           }
+           else
+           {
+           # Rebuild plugins using static libraries to reduice dependencies at runtime.
+           POST_LibQT = "cd plugins/faac && " ; 
+           POST_LibQT += "gcc -shared  .libs/faac.o .libs/lqt_faac.o  $CONTRIB/libquicktime/src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_faac.so -o .libs/lqt_faac.so && " ; 
+           POST_LibQT += "cp .libs/lqt_faac.so $CONTRIB/lib/libquicktime && " ;
+           POST_LibQT += "cd ../audiocodec && gcc -shared  .libs/ima4.o .libs/pcm.o .libs/lqt_audiocodec.o ../../src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB//libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB//lib -L$CONTRIB//lib -L$CONTRIB//libquicktime/src/.libs -lpthread -lm -lz -ldl  -Wl,-soname -Wl,lqt_audiocodec.so -o .libs/lqt_audiocodec.so && " ; 
+           POST_LibQT += "cp .libs/lqt_audiocodec.so $CONTRIB/lib/libquicktime && " ; 
+           POST_LibQT += "cd ../rtjpeg && " ;
+           POST_LibQT += "gcc -shared  .libs/rtjpeg_codec.o .libs/lqt_rtjpeg.o .libs/RTjpeg.o ../../src/.libs/libquicktime.a  -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lpthread -lm -lz -ldl  -Wl,-soname -Wl,lqt_rtjpeg.so -o .libs/lqt_rtjpeg.so && " ;
+           POST_LibQT += "cp .libs/lqt_rtjpeg.so $CONTRIB/lib/libquicktime && " ;
+           POST_LibQT += "cd ../videocodec && " ;
+           POST_LibQT += "gcc -shared  .libs/raw.o .libs/v210.o .libs/v308.o .libs/v408.o .libs/v410.o .libs/yuv2.o .libs/yuv4.o .libs/yv12.o .libs/lqt_videocodec.o ../../src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -lpthread -lm -lz -ldl  -Wl,-soname -Wl,lqt_videocodec.so -o .libs/lqt_videocodec.so && " ;
+           POST_LibQT += "cp  .libs/lqt_videocodec.so $CONTRIB/lib/libquicktime && " ; 
+           POST_LibQT += "cd ../lame && " ;
+           POST_LibQT += "gcc -shared  .libs/lame_codec.o .libs/lqt_lame.o $CONTRIB/libquicktime/src/.libs/libquicktime.a -Wl,--whole-archive $CONTRIB/lib/libmp3lame.a -Wl,--no-whole-archive  -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L/home/pri/Desktop/0.8.0b2_5.1_383/contrib/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_lame.so -o .libs/lqt_lame.so && " ;
+           POST_LibQT += "cp .libs/lqt_lame.so $CONTRIB/lib/libquicktime && cd ../x264 && " ;
+           POST_LibQT += "gcc -shared  .libs/x264.o .libs/lqt_x264.o $CONTRIB/libquicktime/src/.libs/libquicktime.a $CONTRIB/lib/libx264.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_x264.so -o .libs/lqt_x264.so && " ;
+           POST_LibQT += "cp .libs/lqt_x264.so $CONTRIB/lib/libquicktime && cd ../ffmpeg && " ; 
+           POST_LibQT += "gcc -shared  .libs/lqt_ffmpeg.o .libs/audio.o .libs/video.o .libs/params.o $CONTRIB/lib/libavcodec.a $CONTRIB/lib/libavutil.a $CONTRIB/lib/libavformat.a $CONTRIB/libquicktime/src/.libs/libquicktime.a -Wl,--rpath -Wl,$CONTRIB/libquicktime/src/.libs -Wl,--rpath -Wl,$CONTRIB/lib -L$CONTRIB/lib -lpthread -lm -lz -ldl -Wl,-soname -Wl,lqt_ffmpeg.so -o .libs/lqt_ffmpeg.so && " ;
+           POST_LibQT += "cp .libs/lqt_ffmpeg.so $CONTRIB/lib/libquicktime && cd ../.. && " ;
+           }
+
+           Depends $(<) : $(>) ;
+           Depends lib  : $(<) ;
+       }
+       actions LibQT
+       {
+           cd `dirname $(>)` && CONTRIB=`pwd` &&
+           rm -rf libquicktime && tar xzf libquicktime.tar.gz &&
+           export LDFLAGS="$LDFLAGS -L$CONTRIB/lib -L$CONTRIB/libquicktime/src/.libs -I$CONTRIB/include" && export CPPFLAGS="$CPPFLAGS -I$CONTRIB/include"
+           cd libquicktime &&  patch -p1 < ../patch-libquicktime.patch &&
+            ./configure --prefix=$CONTRIB --enable-shared --enable-static --enable-gpl --with-faac=$CONTRIB --with-x264=$CONTRIB --with-avcodec=$CONTRIB && make && make install && $(POST_LibQT) 
+           strip -S $CONTRIB/lib/libquicktime.a && touch $CONTRIB/.contrib
+       }
+       Wget        $(SUBDIR)/libquicktime.tar.gz   : $(SUBDIR)/version_qt.txt ;
+       LibQT $(SUBDIR)/lib/libquicktime.a : $(SUBDIR)/libquicktime.tar.gz ;
+
+}
diff --git a/contrib/Makefile b/contrib/Makefile
new file mode 100644 (file)
index 0000000..b39c53e
--- /dev/null
@@ -0,0 +1,41 @@
+# Contrib Makefile
+
+SYSTEM = $(shell uname -s)
+
+# Special case for Mac OS X: everything is handled from the Xcode project
+ifeq ($(SYSTEM),Darwin)
+
+all:
+       ( echo "MacOs X doesn't use this makefile, to build the contrib please use ../jam" ; false )
+
+endif
+
+ifeq ($(SYSTEM),Linux)
+
+all:   .contrib
+
+.contrib:
+       ( cd .. ; ./configure ; cd contrib ; cp -f ../config.jam . ; jam )
+
+clean: 
+       ( echo "Do a make mrproper to remove the contrib libraries )
+
+mrproper: 
+       (rm -rf lib ; rm -rf include )
+
+endif
+
+ifeq ($(SYSTEM),CYGWIN_NT-5.1)
+
+all:   .contrib
+
+.contrib:    
+       ( cd .. ; ./configure ; cd contrib ; cp -f ../config.jam . ; jam.exe )
+
+clean:
+       ( echo "Do a make mrproper to remove the contrib libraries )
+
+mrproper: clean
+       (rm -rf lib ; rm -rf include ; rm -f .contrib)
+
+endif
diff --git a/contrib/patch-ffmpeg-macintel.patch b/contrib/patch-ffmpeg-macintel.patch
deleted file mode 100644 (file)
index ecc0dc6..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/dsputil_mmx.c ffmpeg-20060326/libavcodec/i386/dsputil_mmx.c
---- ffmpeg-20060326-bak/libavcodec/i386/dsputil_mmx.c  2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/dsputil_mmx.c      2006-03-26 22:13:32.000000000 +0200
-@@ -52,7 +52,7 @@
- static const uint64_t ff_pb_3F attribute_used __attribute__ ((aligned(8))) = 0x3F3F3F3F3F3F3F3FULL;
- static const uint64_t ff_pb_FC attribute_used __attribute__ ((aligned(8))) = 0xFCFCFCFCFCFCFCFCULL;
--#define JUMPALIGN() __asm __volatile (".balign 8"::)
-+#define JUMPALIGN() __asm __volatile (".p2align 3"::)
- #define MOVQ_ZERO(regd)  __asm __volatile ("pxor %%" #regd ", %%" #regd ::)
- #define MOVQ_WONE(regd) \
-@@ -195,7 +195,7 @@
-     asm volatile(
-         "mov $-128, %%"REG_a"           \n\t"
-         "pxor %%mm7, %%mm7              \n\t"
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%0), %%mm0               \n\t"
-         "movq (%0, %2), %%mm2           \n\t"
-@@ -223,7 +223,7 @@
-     asm volatile(
-         "pxor %%mm7, %%mm7              \n\t"
-         "mov $-128, %%"REG_a"           \n\t"
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%0), %%mm0               \n\t"
-         "movq (%1), %%mm2               \n\t"
-@@ -366,7 +366,7 @@
- {
-     __asm __volatile(
-          "lea (%3, %3), %%"REG_a"       \n\t"
--         ".balign 8                     \n\t"
-+         ".p2align 3                    \n\t"
-          "1:                            \n\t"
-          "movd (%1), %%mm0              \n\t"
-          "movd (%1, %3), %%mm1          \n\t"
-@@ -392,7 +392,7 @@
- {
-     __asm __volatile(
-          "lea (%3, %3), %%"REG_a"       \n\t"
--         ".balign 8                     \n\t"
-+         ".p2align 3                    \n\t"
-          "1:                            \n\t"
-          "movq (%1), %%mm0              \n\t"
-          "movq (%1, %3), %%mm1          \n\t"
-@@ -418,7 +418,7 @@
- {
-     __asm __volatile(
-          "lea (%3, %3), %%"REG_a"       \n\t"
--         ".balign 8                     \n\t"
-+         ".p2align 3                    \n\t"
-          "1:                            \n\t"
-          "movq (%1), %%mm0              \n\t"
-          "movq 8(%1), %%mm4             \n\t"
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/dsputil_mmx_avg.h ffmpeg-20060326/libavcodec/i386/dsputil_mmx_avg.h
---- ffmpeg-20060326-bak/libavcodec/i386/dsputil_mmx_avg.h      2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/dsputil_mmx_avg.h  2006-03-26 22:13:51.000000000 +0200
-@@ -754,7 +754,7 @@
-         "lea (%3, %3), %%"REG_a"        \n\t"
-         "movq (%1), %%mm0               \n\t"
-         PAVGB" 1(%1), %%mm0             \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm2    \n\t"
-         "movq (%1, %3), %%mm1           \n\t"
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/dsputil_mmx_rnd.h ffmpeg-20060326/libavcodec/i386/dsputil_mmx_rnd.h
---- ffmpeg-20060326-bak/libavcodec/i386/dsputil_mmx_rnd.h      2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/dsputil_mmx_rnd.h  2006-03-26 22:15:09.000000000 +0200
-@@ -28,7 +28,7 @@
-     MOVQ_BFE(mm6);
-     __asm __volatile(
-         "lea    (%3, %3), %%"REG_a"     \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1), %%mm0             \n\t"
-         "movq   1(%1), %%mm1            \n\t"
-@@ -69,7 +69,7 @@
-         "movq   %%mm4, (%3)             \n\t"
-         "add    %5, %3                  \n\t"
-         "decl   %0                      \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1), %%mm0             \n\t"
-         "movq   (%2), %%mm1             \n\t"
-@@ -110,7 +110,7 @@
-     MOVQ_BFE(mm6);
-     __asm __volatile(
-         "lea        (%3, %3), %%"REG_a" \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1), %%mm0             \n\t"
-         "movq   1(%1), %%mm1            \n\t"
-@@ -168,7 +168,7 @@
-         "movq   %%mm5, 8(%3)            \n\t"
-         "add    %5, %3                  \n\t"
-         "decl   %0                      \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1), %%mm0             \n\t"
-         "movq   (%2), %%mm1             \n\t"
-@@ -206,7 +206,7 @@
-     __asm __volatile(
-         "lea (%3, %3), %%"REG_a"        \n\t"
-         "movq (%1), %%mm0               \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1, %3), %%mm1         \n\t"
-         "movq   (%1, %%"REG_a"),%%mm2   \n\t"
-@@ -246,7 +246,7 @@
-         "paddusw %%mm1, %%mm5           \n\t"
-         "xor    %%"REG_a", %%"REG_a"    \n\t"
-         "add    %3, %1                  \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1, %%"REG_a"), %%mm0  \n\t"
-         "movq   1(%1, %%"REG_a"), %%mm2 \n\t"
-@@ -458,7 +458,7 @@
-     __asm __volatile(
-         "lea    (%3, %3), %%"REG_a"     \n\t"
-         "movq   (%1), %%mm0             \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1, %3), %%mm1         \n\t"
-         "movq   (%1, %%"REG_a"), %%mm2  \n\t"
-@@ -509,7 +509,7 @@
-         "paddusw %%mm1, %%mm5           \n\t"
-         "xor    %%"REG_a", %%"REG_a"    \n\t"
-         "add    %3, %1                  \n\t"
--        ".balign 8                      \n\t"
-+        ".p2align 3                     \n\t"
-         "1:                             \n\t"
-         "movq   (%1, %%"REG_a"), %%mm0  \n\t"
-         "movq   1(%1, %%"REG_a"), %%mm2 \n\t"
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/fdct_mmx.c ffmpeg-20060326/libavcodec/i386/fdct_mmx.c
---- ffmpeg-20060326-bak/libavcodec/i386/fdct_mmx.c     2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/fdct_mmx.c 2006-03-26 22:19:01.000000000 +0200
-@@ -350,61 +350,61 @@
- static always_inline void fdct_row_sse2(const int16_t *in, int16_t *out)
- {
-+#define FDCT_ROW_SSE2_H1(i,t) \
-+        "movq      " #i "(%0), %%xmm2      \n\t" \
-+        "movq      " #i "+8(%0), %%xmm0    \n\t" \
-+        "movdqa    " #t "+32(%1), %%xmm3   \n\t" \
-+        "movdqa    " #t "+48(%1), %%xmm7   \n\t" \
-+        "movdqa    " #t "(%1), %%xmm4      \n\t" \
-+        "movdqa    " #t "+16(%1), %%xmm5   \n\t"
-+
-+#define FDCT_ROW_SSE2_H2(i,t) \
-+        "movq      " #i "(%0), %%xmm2      \n\t" \
-+        "movq      " #i "+8(%0), %%xmm0    \n\t" \
-+        "movdqa    " #t "+32(%1), %%xmm3   \n\t" \
-+        "movdqa    " #t "+48(%1), %%xmm7   \n\t"
-+
-+#define FDCT_ROW_SSE2(i) \
-+        "movq      %%xmm2, %%xmm1       \n\t" \
-+        "pshuflw   $27, %%xmm0, %%xmm0  \n\t" \
-+        "paddsw    %%xmm0, %%xmm1       \n\t" \
-+        "psubsw    %%xmm0, %%xmm2       \n\t" \
-+        "punpckldq %%xmm2, %%xmm1       \n\t" \
-+        "pshufd    $78, %%xmm1, %%xmm2  \n\t" \
-+        "pmaddwd   %%xmm2, %%xmm3       \n\t" \
-+        "pmaddwd   %%xmm1, %%xmm7       \n\t" \
-+        "pmaddwd   %%xmm5, %%xmm2       \n\t" \
-+        "pmaddwd   %%xmm4, %%xmm1       \n\t" \
-+        "paddd     %%xmm7, %%xmm3       \n\t" \
-+        "paddd     %%xmm2, %%xmm1       \n\t" \
-+        "paddd     %%xmm6, %%xmm3       \n\t" \
-+        "paddd     %%xmm6, %%xmm1       \n\t" \
-+        "psrad     %3, %%xmm3           \n\t" \
-+        "psrad     %3, %%xmm1           \n\t" \
-+        "packssdw  %%xmm3, %%xmm1       \n\t" \
-+        "movdqa    %%xmm1, " #i "(%4)   \n\t"
-+
-     asm volatile(
--        ".macro FDCT_ROW_SSE2_H1 i t    \n\t"
--        "movq      \\i(%0), %%xmm2      \n\t"
--        "movq      \\i+8(%0), %%xmm0    \n\t"
--        "movdqa    \\t+32(%1), %%xmm3   \n\t"
--        "movdqa    \\t+48(%1), %%xmm7   \n\t"
--        "movdqa    \\t(%1), %%xmm4      \n\t"
--        "movdqa    \\t+16(%1), %%xmm5   \n\t"
--        ".endm                          \n\t"
--        ".macro FDCT_ROW_SSE2_H2 i t    \n\t"
--        "movq      \\i(%0), %%xmm2      \n\t"
--        "movq      \\i+8(%0), %%xmm0    \n\t"
--        "movdqa    \\t+32(%1), %%xmm3   \n\t"
--        "movdqa    \\t+48(%1), %%xmm7   \n\t"
--        ".endm                          \n\t"
--        ".macro FDCT_ROW_SSE2 i         \n\t"
--        "movq      %%xmm2, %%xmm1       \n\t"
--        "pshuflw   $27, %%xmm0, %%xmm0  \n\t"
--        "paddsw    %%xmm0, %%xmm1       \n\t"
--        "psubsw    %%xmm0, %%xmm2       \n\t"
--        "punpckldq %%xmm2, %%xmm1       \n\t"
--        "pshufd    $78, %%xmm1, %%xmm2  \n\t"
--        "pmaddwd   %%xmm2, %%xmm3       \n\t"
--        "pmaddwd   %%xmm1, %%xmm7       \n\t"
--        "pmaddwd   %%xmm5, %%xmm2       \n\t"
--        "pmaddwd   %%xmm4, %%xmm1       \n\t"
--        "paddd     %%xmm7, %%xmm3       \n\t"
--        "paddd     %%xmm2, %%xmm1       \n\t"
--        "paddd     %%xmm6, %%xmm3       \n\t"
--        "paddd     %%xmm6, %%xmm1       \n\t"
--        "psrad     %3, %%xmm3           \n\t"
--        "psrad     %3, %%xmm1           \n\t"
--        "packssdw  %%xmm3, %%xmm1       \n\t"
--        "movdqa    %%xmm1, \\i(%4)      \n\t"
--        ".endm                          \n\t"
-         "movdqa    (%2), %%xmm6         \n\t"
--        "FDCT_ROW_SSE2_H1 0 0           \n\t"
--        "FDCT_ROW_SSE2 0                \n\t"
--        "FDCT_ROW_SSE2_H2 64 0          \n\t"
--        "FDCT_ROW_SSE2 64               \n\t"
--
--        "FDCT_ROW_SSE2_H1 16 64         \n\t"
--        "FDCT_ROW_SSE2 16               \n\t"
--        "FDCT_ROW_SSE2_H2 112 64        \n\t"
--        "FDCT_ROW_SSE2 112              \n\t"
--
--        "FDCT_ROW_SSE2_H1 32 128        \n\t"
--        "FDCT_ROW_SSE2 32               \n\t"
--        "FDCT_ROW_SSE2_H2 96 128        \n\t"
--        "FDCT_ROW_SSE2 96               \n\t"
--
--        "FDCT_ROW_SSE2_H1 48 192        \n\t"
--        "FDCT_ROW_SSE2 48               \n\t"
--        "FDCT_ROW_SSE2_H2 80 192        \n\t"
--        "FDCT_ROW_SSE2 80               \n\t"
-+        FDCT_ROW_SSE2_H1(0,0)
-+        FDCT_ROW_SSE2(0)
-+        FDCT_ROW_SSE2_H2(64,0)
-+        FDCT_ROW_SSE2(64)
-+
-+        FDCT_ROW_SSE2_H1(16,64)
-+        FDCT_ROW_SSE2(16)
-+        FDCT_ROW_SSE2_H2(112,64)
-+        FDCT_ROW_SSE2(112)
-+
-+        FDCT_ROW_SSE2_H1(32,128)
-+        FDCT_ROW_SSE2(32)
-+        FDCT_ROW_SSE2_H2(96,128)
-+        FDCT_ROW_SSE2(96)
-+
-+        FDCT_ROW_SSE2_H1(48,192)
-+        FDCT_ROW_SSE2(48)
-+        FDCT_ROW_SSE2_H2(80,192)
-+        FDCT_ROW_SSE2(80)
-         :
-         : "r" (in), "r" (tab_frw_01234567_sse2.tab_frw_01234567_sse2), "r" (fdct_r_row_sse2.fdct_r_row_sse2), "i" (SHIFT_FRW_ROW), "r" (out)
-     );
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/idct_mmx_xvid.c ffmpeg-20060326/libavcodec/i386/idct_mmx_xvid.c
---- ffmpeg-20060326-bak/libavcodec/i386/idct_mmx_xvid.c        2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/idct_mmx_xvid.c    2006-03-26 22:20:28.000000000 +0200
-@@ -295,17 +295,17 @@
-   "movq 8+" #A1 ",%%mm1                \n\t"/* 1     ; x7 x6 x5 x4*/\
-   "movq %%mm0,%%mm2                \n\t"/* 2     ; x3 x2 x1 x0*/\
-   "movq " #A3 ",%%mm3                  \n\t"/* 3     ; w05 w04 w01 w00*/\
--  "pshufw $0b10001000,%%mm0,%%mm0  \n\t"/* x2 x0 x2 x0*/\
-+  "pshufw $0x88,%%mm0,%%mm0  \n\t"/* x2 x0 x2 x0*/\
-   "movq 8+" #A3 ",%%mm4                \n\t"/* 4     ; w07 w06 w03 w02*/\
-   "movq %%mm1,%%mm5                \n\t"/* 5     ; x7 x6 x5 x4*/\
-   "pmaddwd %%mm0,%%mm3             \n\t"/* x2*w05+x0*w04 x2*w01+x0*w00*/\
-   "movq 32+" #A3 ",%%mm6               \n\t"/* 6     ; w21 w20 w17 w16*/\
--  "pshufw $0b10001000,%%mm1,%%mm1  \n\t"/* x6 x4 x6 x4*/\
-+  "pshufw $0x88,%%mm1,%%mm1  \n\t"/* x6 x4 x6 x4*/\
-   "pmaddwd %%mm1,%%mm4             \n\t"/* x6*w07+x4*w06 x6*w03+x4*w02*/\
-   "movq 40+" #A3 ",%%mm7               \n\t"/* 7    ; w23 w22 w19 w18*/\
--  "pshufw $0b11011101,%%mm2,%%mm2  \n\t"/* x3 x1 x3 x1*/\
-+  "pshufw $0xdd,%%mm2,%%mm2  \n\t"/* x3 x1 x3 x1*/\
-   "pmaddwd %%mm2,%%mm6             \n\t"/* x3*w21+x1*w20 x3*w17+x1*w16*/\
--  "pshufw $0b11011101,%%mm5,%%mm5  \n\t"/* x7 x5 x7 x5*/\
-+  "pshufw $0xdd,%%mm5,%%mm5  \n\t"/* x7 x5 x7 x5*/\
-   "pmaddwd %%mm5,%%mm7             \n\t"/* x7*w23+x5*w22 x7*w19+x5*w18*/\
-   "paddd " #A4 ",%%mm3                 \n\t"/* +%4*/\
-   "pmaddwd 16+" #A3 ",%%mm0            \n\t"/* x2*w13+x0*w12 x2*w09+x0*w08*/\
-@@ -330,7 +330,7 @@
-   "packssdw %%mm0,%%mm3            \n\t"/* 0     ; y3 y2 y1 y0*/\
-   "packssdw %%mm4,%%mm7            \n\t"/* 4     ; y6 y7 y4 y5*/\
-   "movq %%mm3, " #A2 "                  \n\t"/* 3     ; save y3 y2 y1 y0*/\
--  "pshufw $0b10110001,%%mm7,%%mm7  \n\t"/* y7 y6 y5 y4*/\
-+  "pshufw $0xb1,%%mm7,%%mm7  \n\t"/* y7 y6 y5 y4*/\
-   "movq %%mm7,8                +" #A2 "\n\t"/* 7     ; save y7 y6 y5 y4*/\
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/motion_est_mmx.c ffmpeg-20060326/libavcodec/i386/motion_est_mmx.c
---- ffmpeg-20060326-bak/libavcodec/i386/motion_est_mmx.c       2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/motion_est_mmx.c   2006-03-26 22:24:48.000000000 +0200
-@@ -34,7 +34,7 @@
- {
-     long len= -(stride*h);
-     asm volatile(
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm0    \n\t"
-         "movq (%2, %%"REG_a"), %%mm2    \n\t"
-@@ -70,7 +70,7 @@
- {
-     long len= -(stride*h);
-     asm volatile(
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm0    \n\t"
-         "movq (%2, %%"REG_a"), %%mm2    \n\t"
-@@ -92,7 +92,7 @@
- {
-     long len= -(stride*h);
-     asm volatile(
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm0    \n\t"
-         "movq (%2, %%"REG_a"), %%mm2    \n\t"
-@@ -118,7 +118,7 @@
- { //FIXME reuse src
-     long len= -(stride*h);
-     asm volatile(
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "movq "MANGLE(bone)", %%mm5     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm0    \n\t"
-@@ -155,7 +155,7 @@
- {
-     long len= -(stride*h);
-     asm volatile(
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm0    \n\t"
-         "movq (%2, %%"REG_a"), %%mm1    \n\t"
-@@ -193,7 +193,7 @@
- {
-     long len= -(stride*h);
-     asm volatile(
--        ".balign 16                     \n\t"
-+        ".p2align 4                     \n\t"
-         "1:                             \n\t"
-         "movq (%1, %%"REG_a"), %%mm0    \n\t"
-         "movq (%2, %%"REG_a"), %%mm1    \n\t"
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/mpegvideo_mmx.c ffmpeg-20060326/libavcodec/i386/mpegvideo_mmx.c
---- ffmpeg-20060326-bak/libavcodec/i386/mpegvideo_mmx.c        2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/mpegvideo_mmx.c    2006-03-26 22:25:09.000000000 +0200
-@@ -66,7 +66,7 @@
-                 "packssdw %%mm5, %%mm5          \n\t"
-                 "psubw %%mm5, %%mm7             \n\t"
-                 "pxor %%mm4, %%mm4              \n\t"
--                ".balign 16                     \n\t"
-+                ".p2align 4                     \n\t"
-                 "1:                             \n\t"
-                 "movq (%0, %3), %%mm0           \n\t"
-                 "movq 8(%0, %3), %%mm1          \n\t"
-@@ -129,7 +129,7 @@
-                 "packssdw %%mm5, %%mm5          \n\t"
-                 "psubw %%mm5, %%mm7             \n\t"
-                 "pxor %%mm4, %%mm4              \n\t"
--                ".balign 16                     \n\t"
-+                ".p2align 4                     \n\t"
-                 "1:                             \n\t"
-                 "movq (%0, %3), %%mm0           \n\t"
-                 "movq 8(%0, %3), %%mm1          \n\t"
-@@ -222,7 +222,7 @@
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "mov %3, %%"REG_a"              \n\t"
--                ".balign 16                     \n\t"
-+                ".p2align 4                     \n\t"
-                 "1:                             \n\t"
-                 "movq (%0, %%"REG_a"), %%mm0    \n\t"
-                 "movq 8(%0, %%"REG_a"), %%mm1   \n\t"
-@@ -285,7 +285,7 @@
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "mov %3, %%"REG_a"              \n\t"
--                ".balign 16                     \n\t"
-+                ".p2align 4                     \n\t"
-                 "1:                             \n\t"
-                 "movq (%0, %%"REG_a"), %%mm0    \n\t"
-                 "movq 8(%0, %%"REG_a"), %%mm1   \n\t"
-@@ -357,7 +357,7 @@
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "mov %3, %%"REG_a"              \n\t"
--                ".balign 16                     \n\t"
-+                ".p2align 4                     \n\t"
-                 "1:                             \n\t"
-                 "movq (%0, %%"REG_a"), %%mm0    \n\t"
-                 "movq 8(%0, %%"REG_a"), %%mm1   \n\t"
-@@ -418,7 +418,7 @@
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "packssdw %%mm6, %%mm6          \n\t"
-                 "mov %3, %%"REG_a"              \n\t"
--                ".balign 16                     \n\t"
-+                ".p2align 4                     \n\t"
-                 "1:                             \n\t"
-                 "movq (%0, %%"REG_a"), %%mm0    \n\t"
-                 "movq 8(%0, %%"REG_a"), %%mm1   \n\t"
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/mpegvideo_mmx_template.c ffmpeg-20060326/libavcodec/i386/mpegvideo_mmx_template.c
---- ffmpeg-20060326-bak/libavcodec/i386/mpegvideo_mmx_template.c       2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/mpegvideo_mmx_template.c   2006-03-26 22:25:33.000000000 +0200
-@@ -111,7 +111,7 @@
-             "pxor %%mm6, %%mm6                  \n\t"
-             "psubw (%3), %%mm6                  \n\t" // -bias[0]
-             "mov $-128, %%"REG_a"               \n\t"
--            ".balign 16                         \n\t"
-+            ".p2align 4                         \n\t"
-             "1:                                 \n\t"
-             "pxor %%mm1, %%mm1                  \n\t" // 0
-             "movq (%1, %%"REG_a"), %%mm0        \n\t" // block[i]
-@@ -155,7 +155,7 @@
-             "pxor %%mm7, %%mm7                  \n\t" // 0
-             "pxor %%mm4, %%mm4                  \n\t" // 0
-             "mov $-128, %%"REG_a"               \n\t"
--            ".balign 16                         \n\t"
-+            ".p2align 4                         \n\t"
-             "1:                                 \n\t"
-             "pxor %%mm1, %%mm1                  \n\t" // 0
-             "movq (%1, %%"REG_a"), %%mm0        \n\t" // block[i]
-diff -ru ffmpeg-20060326-bak/libavcodec/i386/simple_idct_mmx.c ffmpeg-20060326/libavcodec/i386/simple_idct_mmx.c
---- ffmpeg-20060326-bak/libavcodec/i386/simple_idct_mmx.c      2006-03-26 22:04:53.000000000 +0200
-+++ ffmpeg-20060326/libavcodec/i386/simple_idct_mmx.c  2006-03-26 22:39:09.000000000 +0200
-@@ -459,10 +459,10 @@
- //IDCT(      src0,   src4,   src1,    src5,    dst, rounder, shift)
--COL_IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--COL_IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--COL_IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--COL_IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+COL_IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+COL_IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+COL_IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+COL_IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
- #else
-@@ -783,10 +783,10 @@
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
-         "jmp 9f                         \n\t"
-         "#.balign 16                    \n\t"\
-@@ -860,10 +860,10 @@
-         "movd %%mm5, 80+" #dst "        \n\t"
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
-         "jmp 9f                         \n\t"
-         "#.balign 16                    \n\t"\
-@@ -928,10 +928,10 @@
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
-         "jmp 9f                         \n\t"
-         "#.balign 16                    \n\t"\
-@@ -1007,10 +1007,10 @@
-         "movd %%mm5, 80+" #dst "        \n\t"
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
-         "jmp 9f                         \n\t"
-         "#.balign 16                    \n\t"\
-@@ -1073,10 +1073,10 @@
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
-         "jmp 9f                         \n\t"
-         "#.balign 16                    \n\t"\
-@@ -1141,9 +1141,9 @@
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    0(%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
-+IDCT(    0(%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
- //IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
- //IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-         "jmp 9f                         \n\t"
-@@ -1217,10 +1217,10 @@
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
--IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
--IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
-+IDCT(    (%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
-+IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0), "nop", 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
-+IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0), "nop", 20)
-         "jmp 9f                         \n\t"
-@@ -1259,9 +1259,9 @@
-         "movq %%mm0, 80+" #dst "        \n\t"
- //IDCT(  src0,   src4,   src1,    src5,    dst, rounder, shift)
--IDCT(   0(%1), 64(%1), 32(%1),  96(%1),  0(%0),/nop, 20)
-+IDCT(   0(%1), 64(%1), 32(%1),  96(%1),  0(%0), "nop", 20)
- //IDCT(   8(%1), 72(%1), 40(%1), 104(%1),  4(%0),/nop, 20)
--IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0),/nop, 20)
-+IDCT(  16(%1), 80(%1), 48(%1), 112(%1),  8(%0), "nop", 20)
- //IDCT(  24(%1), 88(%1), 56(%1), 120(%1), 12(%0),/nop, 20)
diff --git a/contrib/patch-libdvdread.patch b/contrib/patch-libdvdread.patch
deleted file mode 100644 (file)
index 8ff5333..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- libdvdread/dvdread/nav_read.c      2005-09-05 22:11:16.000000000 -0400
-+++ libdvdread-patched/dvdread/nav_read.c      2006-09-23 14:14:43.000000000 -0400
-@@ -204,6 +204,6 @@
-   /* Asserts */
-   /* dsi dsi gi */
--  CHECK_VALUE(dsi->dsi_gi.zero1 == 0);
-+//  CHECK_VALUE(dsi->dsi_gi.zero1 == 0);
- }
diff --git a/contrib/patch-libquicktime.patch b/contrib/patch-libquicktime.patch
new file mode 100644 (file)
index 0000000..6e11f63
--- /dev/null
@@ -0,0 +1,76 @@
+diff -Naur libquicktime/configure libquicktime_patched/configure
+--- libquicktime/configure     2006-08-03 01:02:25.000000000 +0200
++++ libquicktime_patched/configure     2007-02-21 16:16:22.000000000 +0100
+@@ -25564,7 +25564,7 @@
+-have_libavcodec=false
++have_libavcodec="true"
+ AVCODEC_BUILD="3277056"
+@@ -25656,6 +25656,8 @@
+ fi
+ rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
++have_libavcodec="true"
++avcodec_ok="true"
+ CFLAGS="$CFLAGS_save"
+ LIBS="$LIBS_save"
+@@ -26048,7 +26050,7 @@
+-have_faac="false"
++have_faac="true"
+ FAAC_REQUIRED="1.24"
+@@ -26134,6 +26136,7 @@
++have_faac="true"
+ if test x$have_faac = xtrue; then
+   HAVE_FAAC_TRUE=
+@@ -26261,7 +26264,7 @@
+-have_x264="false"
++have_x264="true"
+ if test $have_gpl = "true"; then
+ X264_REQUIRED="0.48"
+@@ -26321,6 +26324,7 @@
+ fi
++have_x264="true"
+ if test x$have_x264 = xtrue; then
+   HAVE_X264_TRUE=
+diff -Naur libquicktime/plugins/x264/x264.c libquicktime_patched/plugins/x264/x264.c
+--- libquicktime/plugins/x264/x264.c   2006-07-25 13:35:15.000000000 +0200
++++ libquicktime_patched/plugins/x264/x264.c   2007-02-21 16:14:11.000000000 +0100
+@@ -493,7 +493,7 @@
+       {
+       /* Force ABR */
+       codec->params.rc.i_rc_method = X264_RC_ABR;
+-      codec->params.rc.i_rf_constant = 0;
++      // codec->params.rc.i_rf_constant = 0;
+       if(codec->pass == 1)
+         {
+         /* Strings will be made private by x264 */
+@@ -655,7 +655,7 @@
+   INTPARAM("x264_i_bitrate", codec->params.rc.i_bitrate);
+   
+   INTPARAM("x264_i_qp_constant", codec->params.rc.i_qp_constant);
+-  INTPARAM("x264_i_rf_constant", codec->params.rc.i_rf_constant);
++  // INTPARAM("x264_i_rf_constant", codec->params.rc.i_rf_constant);
+   INTPARAM("x264_i_qp_min", codec->params.rc.i_qp_min);
+   INTPARAM("x264_i_qp_max", codec->params.rc.i_qp_max);
+   INTPARAM("x264_i_qp_step", codec->params.rc.i_qp_step);
diff --git a/contrib/patch-mpeg4ip.patch b/contrib/patch-mpeg4ip.patch
new file mode 100644 (file)
index 0000000..8a55c5d
--- /dev/null
@@ -0,0 +1,23 @@
+diff -Naur mpeg4ip/lib/mp4v2/atom_tkhd.cpp mpeg4ip_patched/lib/mp4v2/atom_tkhd.cpp
+--- mpeg4ip/lib/mp4v2/atom_tkhd.cpp    2003-11-19 23:46:11.000000000 +0000
++++ mpeg4ip_patched/lib/mp4v2/atom_tkhd.cpp    2007-02-15 15:58:06.000000000 +0000
+@@ -61,7 +61,8 @@
+       pProp->SetFixed16Format();
+       AddProperty(pProp); /* 8 */
+-      AddReserved("reserved3", 38); /* 9 */
++      /* patched by maurj to enable us to set the matrix for anamorphic display */
++      AddProperty(new MP4BytesProperty("reserved3", 38)); /* 9 */
+       pProp = new MP4Float32Property("width");
+       pProp->SetFixed32Format();
+@@ -106,7 +107,8 @@
+       m_pProperties[9]->SetReadOnly(false);
+       ((MP4BytesProperty*)m_pProperties[9])->
+               SetValue(reserved3, sizeof(reserved3));
+-      m_pProperties[9]->SetReadOnly(true);
++      /* patched by maurj to enable us to set the matrix for anamorphic display */
++      /* m_pProperties[9]->SetReadOnly(true);*/
+ }
+ void MP4TkhdAtom::Read() 
diff --git a/contrib/patch-x264-linux.patch b/contrib/patch-x264-linux.patch
new file mode 100644 (file)
index 0000000..3f1752d
--- /dev/null
@@ -0,0 +1,194 @@
+Index: /common/ppc/quant.c
+===================================================================
+--- /common/ppc/quant.c (revision 601)
++++ /common/ppc/quant.c (revision 621)
+@@ -18,8 +18,4 @@
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+-
+-#ifdef HAVE_ALTIVEC_H
+-#include <altivec.h>
+-#endif
+ #include "common/common.h"
+@@ -54,29 +50,29 @@
+ temp2v = vec_xor(temp2v, mskB);                                              \
+ temp1v = vec_adds(temp1v, vec_and(mskA, one));                                \
+-vec_st(temp1v, (dct0), dct);                                                 \
++vec_st(temp1v, (dct0), (int16_t*)dct);                                        \
+ temp2v = vec_adds(temp2v, vec_and(mskB, one));                                \
+-vec_st(temp2v, (dct1), dct);
++vec_st(temp2v, (dct1), (int16_t*)dct);
+                 
+ void x264_quant_4x4_altivec( int16_t dct[4][4], int quant_mf[4][4], int const i_qbits, int const f ) {
+     vector bool short mskA;
+-    vec_s32_t i_qbitsv;
++    vec_u32_t i_qbitsv;
+     vec_u16_t coefvA;
+     vec_u32_t multEvenvA, multOddvA;
+-    vec_u32_t mfvA;
++    vec_u16_t mfvA;
+     vec_s16_t zerov, one;
+-    vec_s32_t fV;
++    vec_u32_t fV;
+     vector bool short mskB;
+     vec_u16_t coefvB;
+     vec_u32_t multEvenvB, multOddvB;
+-    vec_u32_t mfvB;
++    vec_u16_t mfvB;
+     vec_s16_t temp1v, temp2v;
+-    vect_sint_u qbits_u;
++    vect_int_u qbits_u;
+     qbits_u.s[0]=i_qbits;
+     i_qbitsv = vec_splat(qbits_u.v, 0);
+-    vect_sint_u f_u;
++    vect_int_u f_u;
+     f_u.s[0]=f;
+@@ -114,16 +110,16 @@
+ temp2v = vec_xor(temp2v, mskB);                                 \
+ temp1v = vec_add(temp1v, vec_and(mskA, one));                   \
+-vec_st(temp1v, (dct0), dct);                                    \
++vec_st(temp1v, (dct0), (int16_t*)dct);                          \
+ temp2v = vec_add(temp2v, vec_and(mskB, one));                   \
+-vec_st(temp2v, (dct1), dct);
++vec_st(temp2v, (dct1), (int16_t*)dct);
+ void x264_quant_4x4_dc_altivec( int16_t dct[4][4], int i_quant_mf, int const i_qbits, int const f ) {
+     vector bool short mskA;
+-    vec_s32_t i_qbitsv;
++    vec_u32_t i_qbitsv;
+     vec_u16_t coefvA;
+     vec_u32_t multEvenvA, multOddvA;
+     vec_s16_t zerov, one;
+-    vec_s32_t fV;
++    vec_u32_t fV;
+     vector bool short mskB;
+@@ -133,15 +129,14 @@
+     vec_s16_t temp1v, temp2v;
+-    vec_u32_t mfv;
+-    vect_int_u mf_u;
++    vec_u16_t mfv;
++    vect_ushort_u mf_u;
+     mf_u.s[0]=i_quant_mf;
+     mfv = vec_splat( mf_u.v, 0 );
+-    mfv = vec_packs( mfv, mfv);
+-    vect_sint_u qbits_u;
++    vect_int_u qbits_u;
+     qbits_u.s[0]=i_qbits;
+     i_qbitsv = vec_splat(qbits_u.v, 0);
+-    vect_sint_u f_u;
++    vect_int_u f_u;
+     f_u.s[0]=f;
+     fV = vec_splat(f_u.v, 0);
+@@ -156,13 +151,15 @@
+ void x264_quant_8x8_altivec( int16_t dct[8][8], int quant_mf[8][8], int const i_qbits, int const f ) {
+     vector bool short mskA;
+-    vec_s32_t i_qbitsv;
++    vec_u32_t i_qbitsv;
+     vec_u16_t coefvA;
+-    vec_s32_t multEvenvA, multOddvA, mfvA;
++    vec_u32_t multEvenvA, multOddvA;
++    vec_u16_t mfvA;
+     vec_s16_t zerov, one;
+-    vec_s32_t fV;
++    vec_u32_t fV;
+     
+     vector bool short mskB;
+     vec_u16_t coefvB;
+-    vec_u32_t multEvenvB, multOddvB, mfvB;
++    vec_u32_t multEvenvB, multOddvB;
++    vec_u16_t mfvB;
+     
+     vec_s16_t temp1v, temp2v;
+@@ -172,5 +169,5 @@
+     i_qbitsv = vec_splat(qbits_u.v, 0);
+-    vect_sint_u f_u;
++    vect_int_u f_u;
+     f_u.s[0]=f;
+     fV = vec_splat(f_u.v, 0);
+Index: /common/ppc/dct.c
+===================================================================
+--- /common/ppc/dct.c (revision 604)
++++ /common/ppc/dct.c (revision 621)
+@@ -61,6 +61,6 @@
+     VEC_DCT( dct0v, dct1v, dct2v, dct3v, tmp0v, tmp1v, tmp2v, tmp3v );
+-    vec_st(vec_perm(tmp0v, tmp1v, permHighv), 0, dct);
+-    vec_st(vec_perm(tmp2v, tmp3v, permHighv), 16, dct);
++    vec_st(vec_perm(tmp0v, tmp1v, permHighv), 0,  (int16_t*)dct);
++    vec_st(vec_perm(tmp2v, tmp3v, permHighv), 16, (int16_t*)dct);
+ }
+@@ -95,12 +95,12 @@
+     VEC_DCT( dct4v, dct5v, dct6v, dct7v, tmp4v, tmp5v, tmp6v, tmp7v );
+-    vec_st(vec_perm(tmp0v, tmp1v, permHighv), 0, dct);
+-    vec_st(vec_perm(tmp2v, tmp3v, permHighv), 16, dct);
+-    vec_st(vec_perm(tmp4v, tmp5v, permHighv), 32, dct);
+-    vec_st(vec_perm(tmp6v, tmp7v, permHighv), 48, dct);
+-    vec_st(vec_perm(tmp0v, tmp1v, permLowv),  64, dct);
+-    vec_st(vec_perm(tmp2v, tmp3v, permLowv), 80, dct);
+-    vec_st(vec_perm(tmp4v, tmp5v, permLowv), 96, dct);
+-    vec_st(vec_perm(tmp6v, tmp7v, permLowv), 112, dct);
++    vec_st(vec_perm(tmp0v, tmp1v, permHighv), 0,   (int16_t*)dct);
++    vec_st(vec_perm(tmp2v, tmp3v, permHighv), 16,  (int16_t*)dct);
++    vec_st(vec_perm(tmp4v, tmp5v, permHighv), 32,  (int16_t*)dct);
++    vec_st(vec_perm(tmp6v, tmp7v, permHighv), 48,  (int16_t*)dct);
++    vec_st(vec_perm(tmp0v, tmp1v, permLowv),  64,  (int16_t*)dct);
++    vec_st(vec_perm(tmp2v, tmp3v, permLowv),  80,  (int16_t*)dct);
++    vec_st(vec_perm(tmp4v, tmp5v, permLowv),  96,  (int16_t*)dct);
++    vec_st(vec_perm(tmp6v, tmp7v, permLowv),  112, (int16_t*)dct);
+ }
+@@ -312,6 +312,6 @@
+ void x264_add8x8_idct8_altivec( uint8_t *dst, int16_t dct[8][8] )
+ {
+-    vec_s16_t onev = vec_splat_s16(1);
+-    vec_s16_t twov = vec_splat_s16(2);
++    vec_u16_t onev = vec_splat_s16(1);
++    vec_u16_t twov = vec_splat_s16(2);
+     dct[0][0] += 32; // rounding for the >>6 at the end
+@@ -342,5 +342,5 @@
+     vec_u8_t perm_ldv = vec_lvsl(0, dst);
+     vec_u8_t perm_stv = vec_lvsr(8, dst);
+-    vec_s16_t sixv = vec_splat_s16(6);
++    vec_u16_t sixv = vec_splat_s16(6);
+     const vec_u8_t sel = (vec_u8_t) CV(0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1);
+     LOAD_ZERO;
+Index: /common/ppc/quant.h
+===================================================================
+--- /common/ppc/quant.h (revision 601)
++++ /common/ppc/quant.h (revision 621)
+@@ -19,4 +19,8 @@
+ *****************************************************************************/
++#ifdef SYS_LINUX
++#include <altivec.h>
++#endif
++
+ #ifndef _PPC_QUANT_H
+ #define _PPC_QUANT_H 1
+@@ -28,8 +32,7 @@
+ typedef union {
+-  signed int s[4];
+-  vector signed int v;
+-} vect_sint_u;
+-
++  unsigned short s[8];
++  vector unsigned short v;
++} vect_ushort_u;
+ void x264_quant_4x4_altivec( int16_t dct[4][4], int quant_mf[4][4], int const i_qbits, int const f );
index 37aee86..86617fd 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/a52dec-0.7.4.tar.gz
+http://download.m0k.org/handbrake/contrib/a52dec-0.7.4.tar.gz
index 8073606..e346666 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/faac-1.24.tar.gz
+http://download.m0k.org/handbrake/contrib/faac-1.24.tar.gz
index e7934a0..2d6acd6 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/ffmpeg-7444.tar.gz
+http://download.m0k.org/handbrake/contrib/ffmpeg-7444.tar.gz
index 0563f98..b4bb63c 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/lame-3.96.1.tar.gz
+http://download.m0k.org/handbrake/contrib/lame-3.96.1.tar.gz
index c10c39d..81d1ef1 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/libdvdcss-1.2.9.tar.gz
+http://download.m0k.org/handbrake/contrib/libdvdcss-1.2.9.tar.gz
index e230e3c..ef686d6 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/libdvdread-20050928.tar.gz
+http://download.m0k.org/handbrake/contrib/libdvdread-0.9.7.tar.gz
index e7cee15..57daaf7 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/libogg-1.1.2.tar.gz
+http://download.m0k.org/handbrake/contrib/libogg-1.1.2.tar.gz
index 636ace2..a0f5b38 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/libsamplerate-0.1.2.tar.gz
+http://download.m0k.org/handbrake/contrib/libsamplerate-0.1.2.tar.gz
index 3235254..db3f67c 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/libvorbis-1.1.1.tar.gz
+http://download.m0k.org/handbrake/contrib/libvorbis-1.1.1.tar.gz
index ca31e0c..dd4d002 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/mpeg2dec-20051112.tar.gz
+http://download.m0k.org/handbrake/contrib/mpeg2dec-0.4.1.tar.gz
index a374de8..f60e597 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/mpeg4ip-1.3.tar.gz
\ No newline at end of file
+http://download.m0k.org/handbrake/contrib/mpeg4ip-1.3.tar.gz
diff --git a/contrib/version_qt.txt b/contrib/version_qt.txt
new file mode 100644 (file)
index 0000000..5f679e3
--- /dev/null
@@ -0,0 +1 @@
+http://download.m0k.org/handbrake/contrib/libquicktime-0.9.10.tar.gz
index 73a659b..fed73e9 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/x264-r604.tar.gz
+http://download.m0k.org/handbrake/contrib/x264-r604.tar.gz 
index 8906405..615ddc8 100644 (file)
@@ -1 +1 @@
-http://download.mediafork.dynalias.com/contrib/xvidcore-1.1.0.tar.gz
+http://download.m0k.org/handbrake/contrib/xvidcore-1.1.2.tar.gz
diff --git a/contrib/version_zlib.txt b/contrib/version_zlib.txt
new file mode 100644 (file)
index 0000000..bbb84c2
--- /dev/null
@@ -0,0 +1 @@
+http://download.m0k.org/handbrake/contrib/zlib-1.2.3.tar.gz
similarity index 52%
rename from libmediafork/Jamfile
rename to libhb/Jamfile
index 10a30ed..afc775e 100644 (file)
@@ -4,16 +4,16 @@
 # Homepage: <http://handbrake.m0k.org/>.
 # It may be used under the terms of the GNU General Public License.
 
-SubDir TOP libmediafork ;
+SubDir TOP libhb ;
 
-LIBMEDIAFORK_SRC =
-ipodutil.cpp common.c mediafork.c ports.c scan.c work.c decmpeg2.c encavcodec.c update.c
+LIBHB_SRC =
+ipodutil.cpp common.c hb.c ports.c scan.c work.c decmpeg2.c encavcodec.c update.c
 demuxmpeg.c fifo.c render.c reader.c muxcommon.c muxmp4.c sync.c
 decsub.c deca52.c encfaac.c declpcm.c encx264.c decavcodec.c encxvid.c
 muxavi.c enclame.c muxogm.c encvorbis.c dvd.c ;
 
-Library libmediafork : $(LIBMEDIAFORK_SRC) ;
+Library libhb : $(LIBHB_SRC) ;
 
-ObjectCcFlags $(LIBMEDIAFORK_SRC) : -I$(TOP)/contrib/include ;
-ObjectDefines $(LIBMEDIAFORK_SRC) : __LIBMEDIAFORK__ ;
-ObjectC++Flags $(LIBMEDIAFORK_SRC) : -I$(TOP)/contrib/include ;
+ObjectCcFlags $(LIBHB_SRC) : -I$(TOP)/contrib/include ;
+ObjectDefines $(LIBHB_SRC) : __LIBHB__ ;
+ObjectC++Flags $(LIBHB_SRC) : -I$(TOP)/contrib/include ;
similarity index 76%
rename from libmediafork/Makefile
rename to libhb/Makefile
index 5310b7c..d0d3043 100644 (file)
@@ -1,29 +1,27 @@
-SYSTEM = $(shell uname -s)
+include ../Makefile.config
 
-ifeq ($(SYSTEM),Linux)
-       SYSDEF=-DSYS_LINUX
-endif
+SYSTEM = $(shell uname -s)
 
 ifeq ($(SYSTEM),CYGWIN_NT-5.1)
        SYSDEF=-DSYS_CYGWIN
 endif
 
 ifeq ($(SYSTEM),FreeBSD)
-       CFLAGS += -DSYS_FREEBSD
+       SYSDEF = -DSYS_FREEBSD
        LDFLAGS += -pthread -lm
 endif
        
 ifeq ($(SYSTEM),NetBSD)
-       CFLAGS += -DSYS_NETBSD
+       SYSDEF = -DSYS_NETBSD
        LDFLAGS += -lpthread -lm
 endif
        
 ifeq ($(SYSTEM),Linux)
-       CFLAGS += -DSYS_LINUX
-       LDFLAGS += -lpthread -lm
+       SYSDEF = -DSYS_LINUX $(HB_DEFPPC)
+       LDFLAGS += -lpthread -lm -ldl
 endif
 
-SRCS = common.c mediafork.c ports.c scan.c work.c decmpeg2.c encavcodec.c \
+SRCS = common.c hb.c ports.c scan.c work.c decmpeg2.c encavcodec.c \
        update.c demuxmpeg.c fifo.c render.c reader.c muxcommon.c \
        muxmp4.c sync.c decsub.c deca52.c encfaac.c declpcm.c encx264.c \
        decavcodec.c encxvid.c muxavi.c enclame.c muxogm.c encvorbis.c \
@@ -34,7 +32,7 @@ OBJS = $(OTMP:%.cpp=%.o)
 ifeq ($(SYSTEM),CYGWIN_NT-5.1)
 CONTRIBS = ../contrib/lib/liba52.a ../contrib/lib/libavformat.a \
            ../contrib/lib/libavcodec.a ../contrib/lib/libavutil.a \
-           ../contrib/lib/libdvdread.a \
+           ../contrib/lib/libdvdread.a  \
            ../contrib/lib/libfaac.a ../contrib/lib/libmp3lame.a \
            ../contrib/lib/libmpeg2.a ../contrib/lib/libmpeg2convert.a \
            ../contrib/lib/libvorbis.a ../contrib/lib/libvorbisenc.a \
@@ -52,37 +50,39 @@ CONTRIBS = ../contrib/lib/liba52.a ../contrib/lib/libavformat.a \
            ../contrib/lib/libsamplerate.a ../contrib/lib/libx264.a \
            ../contrib/lib/libxvidcore.a  ../contrib/lib/libmp4v2.a
 endif
-BUILD = $(shell date "+%Y%m%d")00
 
-CFLAGS += -I../contrib/include -D__LIBMEDIAFORK__ -DUSE_PTHREAD -DHB_VERSION=\"0.8.0b1\" -DHB_BUILD=$(BUILD) $(SYSDEF)
+CFLAGS += -I../contrib/include -D__LIBHB__ -DUSE_PTHREAD -DHB_VERSION=\"$(HB_VERSION)\" -DHB_BUILD=$(HB_BUILD) $(SYSDEF)
 
-CXXFLAGS += -I../contrib/include -D__LIBMEDIAFORK__ -DUSE_PTHREAD -DHB_VERSION=\"0.8.0b1\" -DHB_BUILD=$(BUILD) $(SYSDEF)
+CXXFLAGS += -I../contrib/include -D__LIBHB__ -DUSE_PTHREAD -DHB_VERSION=\"$(HB_VERSION)\" -DHB_BUILD=$(HB_BUILD) $(SYSDEF)
 
 ifeq ($(SYSTEM),CYGWIN_NT-5.1)
-all: libmediafork.a libmediafork.dll
+all: libhb.a libhb.dll
 else
-all: libmediafork.a libmediafork.so
+all: libhb.a libhb.so
+
 endif
 
-libmediafork.a: $(OBJS)
+libhb.a: $(OBJS)
        @echo "Library $@"
        @ar ru $@ $(OBJS)
        @ranlib $@
 
-libmediafork.so: $(OBJS)
+libhb.so: $(OBJS)
        @echo "Shared library $@"
        @g++ -o $@ $(OBJS) $(CONTRIBS) -shared $(CFLAGS)  || \
        ( echo "Compile line for $@ was:"; echo $$CMD; false )
 
-libmediafork.dll: $(OBJS)
+libhb.dll: $(OBJS)
        @echo "Shared library $@"
        @g++ -o $@ $(OBJS) $(CONTRIBS) -shared $(CFLAGS)  || \
        ( echo "Compile line for $@ was:"; echo $$CMD; false )
 
 %.o: %.c
        @echo "Cc $@"
+       echo $(CC) $(CFLAGS)
        @CMD="$(CC) $(CFLAGS) -o $@ -c $<"; $$CMD || \
          ( echo "Compile line for $@ was:"; echo $$CMD; false )
+
 %.o: %.cpp
        @echo "Cc $@"
        @CMD="$(CC) $(CFLAGS) -o $@ -c $<"; $$CMD || \
@@ -90,10 +90,10 @@ libmediafork.dll: $(OBJS)
 
        
 clean:
-       @echo "Clean libmediafork.a"
-       @$(RM) libmediafork.*
-       @echo "Clean libmediafork.so"
-       @$(RM) libmediafork.so
+       @echo "Clean libhb.a"
+       @$(RM) libhb.*
+       @echo "Clean libhb.so"
+       @$(RM) libhb.so
        @echo "Clean $(OBJS)"
        @$(RM) $(OBJS)
 
similarity index 100%
rename from libmediafork/common.c
rename to libhb/common.c
similarity index 86%
rename from libmediafork/common.h
rename to libhb/common.h
index ed9d7c5..e63ecaf 100644 (file)
@@ -45,7 +45,7 @@ typedef struct hb_fifo_s hb_fifo_t;
 typedef struct hb_lock_s hb_lock_t;
 
 #include "ports.h"
-#ifdef __LIBMEDIAFORK__
+#ifdef __LIBHB__
 #include "internal.h"
 #endif
 
@@ -102,7 +102,9 @@ struct hb_job_s
          keep_ratio:          used by UIs 
          pixel_ratio:         store pixel aspect ratio in the video
          pixel_aspect_width:  numerator for pixel aspect ratio
-         pixel_aspect_height: denominator for pixel aspect ratio */
+         pixel_aspect_height: denominator for pixel aspect ratio
+                maxWidth:                        keep width below this
+                maxHeight:                       keep height below this */
 
     int             crop[4];
     int             deinterlace;
@@ -113,6 +115,9 @@ struct hb_job_s
     int             pixel_ratio;
     int             pixel_aspect_width;
     int             pixel_aspect_height;
+       int                             maxWidth;
+       int                             maxHeight;
+
 
     /* Video settings:
          vcodec:            output codec
@@ -120,7 +125,11 @@ struct hb_job_s
                             if < 0.0 or > 1.0, bitrate is used instead
          vbitrate:          output bitrate (kbps)
          pass:              0, 1 or 2
-         vrate, vrate_base: output framerate is vrate / vrate_base */
+         vrate, vrate_base: output framerate is vrate / vrate_base
+                h264_level:            boolean for whether or not we're encoding for iPod
+                crf:                           boolean for whether to use constant rate factor with x264
+                x264opts:                      string of extra x264 options 
+                areBframes:            boolean to note if b-frames are included in x264opts */
 #define HB_VCODEC_MASK   0x0000FF
 #define HB_VCODEC_FFMPEG 0x000001
 #define HB_VCODEC_XVID   0x000002
@@ -135,11 +144,25 @@ struct hb_job_s
     int             h264_13;
        int                             h264_level;
        int                             crf;
+       const char              *x264opts;
+       int                             areBframes;
        
     /* Audio tracks:
-         Indexes in hb_title_t's audios list, starting from 0.
-         -1 indicates the end of the list */
+         audios:         Indexes in hb_title_t's audios list, starting from 0.
+                         -1 indicates the end of the list
+                channels:       The # of normal channels in the last used audio
+                lfechannels:    The # of lfe channels in the last used audio
+                channelsused:   The # of channels we will actually use for this job -
+                                calculated based on surround, channels and lfechannels
+                                                in work.c
+         ac3flags:       stores the flags from the AC3 source, as found in scan.c
+            surround:       1 if 5.1 should be preserved for AAC, 0 otherwise */
     int             audios[8];
+    int             channels;
+    int             lfechannels;
+    int             channelsused;
+       int             ac3flags;
+       int             surround;
 
     /* Audio settings:
          acodec:   output codec
@@ -176,7 +199,7 @@ struct hb_job_s
     int             mux;
     char          * file;
 
-#ifdef __LIBMEDIAFORK__
+#ifdef __LIBHB__
     /* Internal data */
     hb_handle_t   * h;
     hb_lock_t     * pause;
@@ -208,9 +231,14 @@ struct hb_audio_s
     int  codec;
     int  rate;
     int  bitrate;
+       /* indicates the number of normal channels the source audio has */
     int  channels;
+       /* indicates the number of lfe channels the source audio has */
+       int  lfechannels;
+       /* stores the flags from the AC3 source, as found in scan.c */
+       int  ac3flags;
 
-#ifdef __LIBMEDIAFORK__
+#ifdef __LIBHB__
     /* Internal data */
     hb_fifo_t * fifo_in;   /* AC3/MPEG/LPCM ES */
     hb_fifo_t * fifo_raw;  /* Raw audio */
@@ -245,7 +273,7 @@ struct hb_subtitle_s
     int  id;
     char lang[1024];
 
-#ifdef __LIBMEDIAFORK__
+#ifdef __LIBHB__
     /* Internal data */
     hb_fifo_t * fifo_in;  /* SPU ES */
     hb_fifo_t * fifo_raw; /* Decodec SPU */
@@ -346,7 +374,7 @@ struct hb_work_object_s
     int                 id;
     char              * name;
 
-#ifdef __LIBMEDIAFORK__
+#ifdef __LIBHB__
     int              (* init)  ( hb_work_object_t *, hb_job_t * );
     int              (* work)  ( hb_work_object_t *, hb_buffer_t **,
                                  hb_buffer_t ** );
similarity index 78%
rename from libmediafork/deca52.c
rename to libhb/deca52.c
index c7688ed..1886b13 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "a52dec/a52.h"
 
@@ -28,6 +28,9 @@ struct hb_work_private_s
     uint8_t       frame[3840];
 
     hb_list_t   * list;
+       
+       int           channelsused;
+       
 };
 
 int  deca52Init( hb_work_object_t *, hb_job_t * );
@@ -62,7 +65,32 @@ int deca52Init( hb_work_object_t * w, hb_job_t * job )
 
     pv->list      = hb_list_init();
     pv->state     = a52_init( 0 );
-    pv->flags_out = A52_STEREO;
+
+       /* Decide what format we want out of a52dec
+       work.c has already done some of this deduction for us in do_job() */
+       
+       if (job->channelsused == 6) {
+               /* we're going to be encoding to AAC,
+               and have turned on the "preserve 5.1" flag */
+               pv->flags_out = A52_3F2R | A52_LFE;
+       } else if (job->channelsused == 1) {
+               /* we're going to be encoding to AAC, */
+               /* and want to keep the mono-ness of the source audio */
+               pv->flags_out = A52_MONO;
+       } else if (job->channelsused == 2 && job->channels == 5 && job->lfechannels == 1) {
+               /* we are mixing a 5.1 source down to stereo, so use dolby surround */
+               pv->flags_out = A52_DOLBY;
+       } else if (job->channelsused == 2 && ((job->ac3flags & A52_CHANNEL_MASK) == A52_DOLBY)) {
+               /* we have a dolby stereo surround source, so preserve it */
+               pv->flags_out = A52_DOLBY;
+       } else {
+               /* mix everything else down to plain stereo */
+               pv->flags_out = A52_STEREO;
+       }
+
+       /* pass the number of channels used into the private work data */
+       pv->channelsused = job->channelsused;
+
     pv->level     = 32768.0;
 
     return 0;
@@ -114,7 +142,7 @@ static hb_buffer_t * Decode( hb_work_object_t * w )
 {
     hb_work_private_t * pv = w->private_data;
     hb_buffer_t * buf;
-    int           i, j;
+    int           i, j, k;
     uint64_t      pts;
     int           pos;
 
@@ -175,8 +203,8 @@ static hb_buffer_t * Decode( hb_work_object_t * w )
     /* Feed liba52 */
     a52_frame( pv->state, pv->frame, &pv->flags_out, &pv->level, 0 );
 
-    /* 6 blocks per frame, 256 samples per block, 2 channels */
-    buf        = hb_buffer_init( 3072 * sizeof( float ) );
+    /* 6 blocks per frame, 256 samples per block, channelsused channels */
+    buf        = hb_buffer_init( 6 * 256 * pv->channelsused * sizeof( float ) );
     buf->start = pts + ( pos / pv->size ) * 6 * 256 * 90000 / pv->rate;
     buf->stop  = buf->start + 6 * 256 * 90000 / pv->rate;
 
@@ -187,13 +215,15 @@ static hb_buffer_t * Decode( hb_work_object_t * w )
 
         a52_block( pv->state );
         samples_in  = a52_samples( pv->state );
-        samples_out = ((float *) buf->data) + 512 * i;
+        samples_out = ((float *) buf->data) + 256 * pv->channelsused * i;
 
         /* Interleave */
         for( j = 0; j < 256; j++ )
         {
-            samples_out[2*j]   = samples_in[j];
-            samples_out[2*j+1] = samples_in[256+j];
+                       for ( k = 0; k < pv->channelsused; k++ )
+                       {
+                               samples_out[(pv->channelsused*j)+k]   = samples_in[(256*k)+j]; // DJA
+                       }
         }
     }
 
similarity index 99%
rename from libmediafork/decavcodec.c
rename to libhb/decavcodec.c
index dfc61dc..4d74fc6 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "ffmpeg/avcodec.h"
 
similarity index 98%
rename from libmediafork/declpcm.c
rename to libhb/declpcm.c
index 718cf55..f6a703d 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 int  declpcmInit( hb_work_object_t *, hb_job_t * );
 int  declpcmWork( hb_work_object_t *, hb_buffer_t **, hb_buffer_t ** );
similarity index 99%
rename from libmediafork/decmpeg2.c
rename to libhb/decmpeg2.c
index e3188df..214444a 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "mpeg2dec/mpeg2.h"
 
similarity index 99%
rename from libmediafork/decsub.c
rename to libhb/decsub.c
index f68e763..3666ea3 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 struct hb_work_private_s
 {
similarity index 99%
rename from libmediafork/demuxmpeg.c
rename to libhb/demuxmpeg.c
index 54bef2b..721478e 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 /* Basic MPEG demuxer, only works with DVDs (2048 bytes packets) */
 
similarity index 97%
rename from libmediafork/dvd.c
rename to libhb/dvd.c
index 04695a3..a9bf430 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 #include "lang.h"
 
 #include "dvdread/ifo_read.h"
@@ -607,6 +607,18 @@ int hb_dvd_seek( hb_dvd_t * d, float f )
     return 1;
 }
 
+
+/***********************************************************************
+ * is_nav_pack
+ ***********************************************************************
+ * Pretty much directly lifted from libdvdread's play_title function.
+ **********************************************************************/
+int is_nav_pack( unsigned char *buf )
+{
+    return ( buf[41] == 0xbf && buf[1027] == 0xbf );
+}
+
+
 /***********************************************************************
  * hb_dvd_read
  ***********************************************************************
@@ -632,6 +644,11 @@ int hb_dvd_read( hb_dvd_t * d, hb_buffer_t * b )
                 return 0;
             }
 
+            if ( !is_nav_pack( b->data ) ) { 
+                (d->next_vobu)++;
+                continue;
+            }
+
             navRead_DSI( &dsi_pack, &b->data[DSI_START_BYTE] );
             
             block     = dsi_pack.dsi_gi.nv_pck_lbn;
similarity index 99%
rename from libmediafork/encavcodec.c
rename to libhb/encavcodec.c
index c1d7df9..c71c838 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "ffmpeg/avcodec.h"
 
similarity index 82%
rename from libmediafork/encfaac.c
rename to libhb/encfaac.c
index 19787a5..83d390f 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "faac.h"
 
@@ -19,6 +19,9 @@ struct hb_work_private_s
 
     hb_list_t     * list;
     int64_t         pts;
+       
+       int             channelsused;
+
 };
 
 int  encfaacInit( hb_work_object_t *, hb_job_t * );
@@ -50,7 +53,10 @@ int encfaacInit( hb_work_object_t * w, hb_job_t * job )
 
     pv->job   = job;
 
-    pv->faac = faacEncOpen( job->arate, 2, &pv->input_samples,
+       /* pass the number of channels used into the private work data */
+       pv->channelsused = job->channelsused;
+
+    pv->faac = faacEncOpen( job->arate, job->channelsused, &pv->input_samples,
                            &pv->output_bytes );
     pv->buf  = malloc( pv->input_samples * sizeof( float ) );
     
@@ -58,12 +64,33 @@ int encfaacInit( hb_work_object_t * w, hb_job_t * job )
     cfg->mpegVersion   = MPEG4;
     cfg->aacObjectType = LOW;
     cfg->allowMidside  = 1;
-    cfg->useLfe        = 0;
+       
+       if (job->channelsused == 6) {
+               /* we are preserving 5.1 audio into 6-channel AAC,
+               so indicate that we have an lfe channel */
+               cfg->useLfe    = 1;
+       } else {
+               cfg->useLfe    = 0;
+       }
+
     cfg->useTns        = 0;
     cfg->bitRate       = job->abitrate * 500; /* Per channel */
     cfg->bandWidth     = 0;
     cfg->outputFormat  = 0;
     cfg->inputFormat   =  FAAC_INPUT_FLOAT;
+       
+       if (job->channelsused == 6) {
+               /* we are preserving 5.1 audio into 6-channel AAC, and need to
+               re-map the output of deca52 into our own mapping - the mapping
+               below is the default mapping expected by QuickTime */
+               cfg->channel_map[0] = 2;
+               cfg->channel_map[1] = 1;
+               cfg->channel_map[2] = 3;
+               cfg->channel_map[3] = 4;
+               cfg->channel_map[4] = 5;
+               cfg->channel_map[5] = 0;
+       }
+       
     if( !faacEncSetConfiguration( pv->faac, cfg ) )
     {
         hb_log( "faacEncSetConfiguration failed" );
@@ -118,8 +145,8 @@ static hb_buffer_t * Encode( hb_work_object_t * w )
                       &pts, &pos );
 
     buf        = hb_buffer_init( pv->output_bytes );
-    buf->start = pts + 90000 * pos / 2 / sizeof( float ) / pv->job->arate;
-    buf->stop  = buf->start + 90000 * pv->input_samples / pv->job->arate / 2;
+    buf->start = pts + 90000 * pos / pv->channelsused / sizeof( float ) / pv->job->arate;
+    buf->stop  = buf->start + 90000 * pv->input_samples / pv->job->arate / pv->channelsused;
     buf->size  = faacEncEncode( pv->faac, (int32_t *) pv->buf,
             pv->input_samples, buf->data, pv->output_bytes );
     buf->key   = 1;
similarity index 99%
rename from libmediafork/enclame.c
rename to libhb/enclame.c
index 82bca11..f663e62 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "lame/lame.h"
 
similarity index 99%
rename from libmediafork/encvorbis.c
rename to libhb/encvorbis.c
index 1e916a4..4bdb6ef 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "vorbis/vorbisenc.h"
 
similarity index 78%
rename from libmediafork/encx264.c
rename to libhb/encx264.c
index cdd8e9b..6973963 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <stdarg.h>
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "x264.h"
 
@@ -60,7 +60,7 @@ int encx264Init( hb_work_object_t * w, hb_job_t * job )
     param.i_fps_num    = job->vrate;
     param.i_fps_den    = job->vrate_base;
     param.i_keyint_max = 20 * job->vrate / job->vrate_base;
-    param.i_log_level  = X264_LOG_NONE;
+    param.i_log_level  = X264_LOG_INFO;
        if( job->h264_level )
        {
        param.i_threads   = 1;
@@ -73,6 +73,66 @@ int encx264Init( hb_work_object_t * w, hb_job_t * job )
        /* Slightly faster with minimal quality lost */
        param.analyse.i_subpel_refine = 4;
 
+       /*      This section passes the string x264opts to libx264 for parsing into parameter names and values.
+
+       The string is set up like this:
+       option1=value1:option2=value 2
+
+       So, you have to iterate through based on the colons, and then put the left side of the equals sign in "name"
+       and the right side into "value." Then you hand those strings off to x264 for interpretation.
+
+       This is all based on the universal x264 option handling Loren Merritt implemented in the Mplayer/Mencoder project.
+       */
+       char *x264opts = job->x264opts;
+       if(x264opts != NULL && *x264opts != '\0')
+       {
+               while(*x264opts)
+               {
+               char *name = x264opts;
+               char *value;
+               int ret;
+
+               x264opts += strcspn(x264opts, ":");
+               if(*x264opts)
+                       {
+                       *x264opts = 0;
+                       x264opts++;
+                       }
+
+               value = strchr( name, '=' );
+               if(value)
+                       {
+                       *value = 0;
+                       value++;
+                       }
+               
+                       /*
+                               When B-frames are enabled, the max frame count increments by 1 (regardless of the number of B-frames).
+                               If you don't change the duration of the video track when you mux, libmp4 barfs.
+                               So, check if the x264opts are using B-frames, and when they are, set the boolean job->areBframes as true.
+                       */
+
+                       if (!(strcmp(name, "bframes")))
+                       {
+                               if (atoi(value) > 0)
+                               {
+                                       job->areBframes = 1;
+                               }
+                       }
+
+                       /*      Here's where the strings are passed to libx264 for parsing. */
+               ret = x264_param_parse(&param, name, value);
+       
+                       /*      Let x264 sanity check the options for us*/
+               if(ret == X264_PARAM_BAD_NAME)
+                       printf("x264 options: Unknown suboption %s\n", name);
+               if(ret == X264_PARAM_BAD_VALUE)
+                       printf("x264 options: Bad argument %s=%s\n", name, value ? value : "(null)");
+               }
+       }
+
+
        if( job->pixel_ratio )
        {
            param.vui.i_sar_width = job->pixel_aspect_width;
similarity index 99%
rename from libmediafork/encxvid.c
rename to libhb/encxvid.c
index 64b38a4..7768f8e 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "xvid.h"
 
similarity index 99%
rename from libmediafork/fifo.c
rename to libhb/fifo.c
index 9e5ea15..93e3e16 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #ifndef SYS_DARWIN
 #include <malloc.h>
similarity index 99%
rename from libmediafork/mediafork.c
rename to libhb/hb.c
index 6eb115f..c1748e8 100644 (file)
@@ -1,4 +1,4 @@
-#include "mediafork.h"
+#include "hb.h"
 
 #include "ffmpeg/avcodec.h"
 
similarity index 100%
rename from libmediafork/mediafork.h
rename to libhb/hb.h
similarity index 100%
rename from libmediafork/internal.h
rename to libhb/internal.h
similarity index 100%
rename from libmediafork/ipodutil.cpp
rename to libhb/ipodutil.cpp
similarity index 100%
rename from libmediafork/lang.h
rename to libhb/lang.h
similarity index 99%
rename from libmediafork/muxavi.c
rename to libhb/muxavi.c
index 4231d32..8746a3c 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #define AVIF_HASINDEX  0x10
 #define AVIIF_KEYFRAME 0x10
similarity index 99%
rename from libmediafork/muxcommon.c
rename to libhb/muxcommon.c
index 3f66137..70e384e 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 struct hb_mux_object_s
 {
similarity index 67%
rename from libmediafork/muxmp4.c
rename to libhb/muxmp4.c
index 1fc201f..357551e 100644 (file)
@@ -7,7 +7,7 @@
 /* libmp4v2 header */
 #include "mp4.h"
 
-#include "mediafork.h"
+#include "hb.h"
 
 void AddIPodUUID(MP4FileHandle, MP4TrackId);
 
@@ -62,23 +62,38 @@ static int MP4Init( hb_mux_object_t * m )
         /* Stolen from mp4creator */
         MP4SetVideoProfileLevel( m->file, 0x7F );
 
-        mux_data->track = MP4AddH264VideoTrack( m->file, job->arate,
-                MP4_INVALID_DURATION, job->width, job->height,
-                job->config.h264.sps[1], /* AVCProfileIndication */
-                job->config.h264.sps[2], /* profile_compat */
-                job->config.h264.sps[3], /* AVCLevelIndication */
-                3 );      /* 4 bytes length before each NAL unit */
+               if (job->areBframes == 1)
+               {
+                       hb_log("muxmp4: Adjusting duration for B-frames");
+                   mux_data->track = MP4AddH264VideoTrack( m->file, job->arate,
+                           MP4_INVALID_DURATION+1, job->width, job->height,
+                           job->config.h264.sps[1], /* AVCProfileIndication */
+                           job->config.h264.sps[2], /* profile_compat */
+                           job->config.h264.sps[3], /* AVCLevelIndication */
+                           3 );      /* 4 bytes length before each NAL unit */                 
+               }
+               else
+               {
+                       hb_log("muxmp4: Using default duration as there are no B-frames");
+               mux_data->track = MP4AddH264VideoTrack( m->file, job->arate,
+                       MP4_INVALID_DURATION, job->width, job->height,
+                       job->config.h264.sps[1], /* AVCProfileIndication */
+                       job->config.h264.sps[2], /* profile_compat */
+                       job->config.h264.sps[3], /* AVCLevelIndication */
+                       3 );      /* 4 bytes length before each NAL unit */
+               }
 
         MP4AddH264SequenceParameterSet( m->file, mux_data->track,
                 job->config.h264.sps, job->config.h264.sps_length );
         MP4AddH264PictureParameterSet( m->file, mux_data->track,
                 job->config.h264.pps, job->config.h264.pps_length );
 
-                       if( job->h264_level == 30)
-                       {
-                               hb_log("About to add iPod atom");
-                               AddIPodUUID(m->file, mux_data->track);
-                       }
+               if( job->h264_level == 30)
+               {
+                       hb_log("About to add iPod atom");
+                       AddIPodUUID(m->file, mux_data->track);
+               }
+
     }
     else /* FFmpeg or XviD */
     {
@@ -92,6 +107,48 @@ static int MP4Init( hb_mux_object_t * m )
                 job->config.mpeg4.bytes, job->config.mpeg4.length );
     }
 
+       /* apply the anamorphic transformation matrix if needed */
+
+       if( job->pixel_ratio ) {
+
+               uint8_t* val;
+               uint8_t nval[38];
+               uint32_t *ptr32 = (uint32_t*) (nval + 2);
+               uint32_t size;
+
+               MP4GetBytesProperty(m->file, "moov.trak.tkhd.reserved3", &val, &size);
+
+               if (size == 38) {
+
+                       memcpy(nval, val, size);
+
+                       float width, height;
+                       float widthRatio;
+                       width = job->pixel_aspect_width;
+                       height = job->pixel_aspect_height;
+                       widthRatio = (width / height) * 0x10000;
+
+                       uint32_t widthRatioInt;
+                       widthRatioInt = (uint32_t)widthRatio;
+
+#ifdef WORDS_BIGENDIAN
+                       ptr32[0] = widthRatioInt;
+#else
+                       /* we need to switch the endianness, as the file format expects big endian */
+                       ptr32[0] = ((widthRatioInt & 0x000000FF) << 24) + ((widthRatioInt & 0x0000FF00) << 8) + ((widthRatioInt & 0x00FF0000) >> 8) + ((widthRatioInt & 0xFF000000) >> 24);
+#endif
+
+                       if(!MP4SetBytesProperty(m->file, "moov.trak.tkhd.reserved3", nval, size)) {
+                               hb_log("Problem setting transform matrix");
+                       }
+
+               }
+
+       }
+
+       /* end of transformation matrix */
+
+
     for( i = 0; i < hb_list_count( title->list_audio ); i++ )
     {
         audio = hb_list_item( title->list_audio, i );
similarity index 99%
rename from libmediafork/muxogm.c
rename to libhb/muxogm.c
index 62ff4e7..6a3b1ec 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include <ogg/ogg.h>
 
similarity index 99%
rename from libmediafork/ports.c
rename to libhb/ports.c
index 1e0b622..bdeadc1 100644 (file)
@@ -28,7 +28,7 @@
 #include <netinet/in.h>
 //#endif
 
-#include "mediafork.h"
+#include "hb.h"
 
 /************************************************************************
  * hb_get_date()
similarity index 98%
rename from libmediafork/ports.h
rename to libhb/ports.h
index 740252e..47df1ce 100644 (file)
@@ -14,7 +14,7 @@ uint64_t hb_get_date();
 void     hb_snooze( int delay );
 int      hb_get_cpu_count();
 
-#ifdef __LIBMEDIAFORK__
+#ifdef __LIBHB__
 
 /* Everything from now is only used internally and hidden to the UI */
 
@@ -79,7 +79,7 @@ int        hb_net_send( hb_net_t *, char * );
 int        hb_net_recv( hb_net_t *, char *, int );
 void       hb_net_close( hb_net_t ** );
 
-#endif /* __LIBMEDIAFORK__ */
+#endif /* __LIBHB__ */
 
 #endif
 
similarity index 99%
rename from libmediafork/reader.c
rename to libhb/reader.c
index 7be2823..47ec9d5 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 typedef struct
 {
similarity index 99%
rename from libmediafork/render.c
rename to libhb/render.c
index 9711708..cf6d7b3 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "ffmpeg/avcodec.h"
 
similarity index 97%
rename from libmediafork/scan.c
rename to libhb/scan.c
index 1f74f62..daf8da2 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 #include "a52dec/a52.h"
 
 typedef struct
@@ -484,9 +484,20 @@ static void LookForAC3( hb_title_t * title, hb_buffer_t * b )
                     audio->channels = 5;
                     break;
             }
+
+                       if (flags & A52_LFE) {
+                               audio->lfechannels = 1;
+                       } else {
+                               audio->lfechannels = 0;
+                       }
+                       
+                       /* store the AC3 tags for future reference
+                       This enables us to find out if we had a stereo or Dolby source later on */
+                       audio->ac3flags = flags;
+
             /* XXX */
             sprintf( audio->lang + strlen( audio->lang ),
-                     " (%d ch)", audio->channels );
+                     " (%d.%d ch)", audio->channels, audio->lfechannels );
             break;
         }
     }
similarity index 93%
rename from libmediafork/sync.c
rename to libhb/sync.c
index 7053016..24ee4a8 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "samplerate.h"
 #include "ffmpeg/avcodec.h"
@@ -56,11 +56,11 @@ struct hb_work_private_s
 /***********************************************************************
  * Local prototypes
  **********************************************************************/
-static void InitAudio( hb_work_object_t * w, int i );
+static void InitAudio( hb_work_object_t * w, int i, int channelsused );
 static int  SyncVideo( hb_work_object_t * w );
-static void SyncAudio( hb_work_object_t * w, int i );
+static void SyncAudio( hb_work_object_t * w, int i, int channelsused );
 static int  NeedSilence( hb_work_object_t * w, hb_audio_t * );
-static void InsertSilence( hb_work_object_t * w, int i );
+static void InsertSilence( hb_work_object_t * w, int i, int channelsused );
 static void UpdateState( hb_work_object_t * w );
 
 /***********************************************************************
@@ -100,7 +100,9 @@ int syncInit( hb_work_object_t * w, hb_job_t * job )
     /* Initialize libsamplerate for every audio track we have */
     for( i = 0; i < hb_list_count( title->list_audio ); i++ )
     {
-        InitAudio( w, i );
+               /* this should really pass in a channelsused value for this audio
+               but for now, it uses the global job value of channelsused */
+        InitAudio( w, i, job->channelsused );
     }
 
     /* Get subtitle info, if any */
@@ -153,7 +155,9 @@ int syncWork( hb_work_object_t * w, hb_buffer_t ** unused1,
     {
         for( i = 0; i < hb_list_count( pv->job->title->list_audio ); i++ )
         {
-            SyncAudio( w, i );
+                       /* this should really pass in a channelsused value for this audio
+                       but for now, it uses the global job value of channelsused */
+            SyncAudio( w, i, pv->job->channelsused );
         }
     }
 
@@ -170,7 +174,7 @@ hb_work_object_t hb_sync =
     syncClose
 };
 
-static void InitAudio( hb_work_object_t * w, int i )
+static void InitAudio( hb_work_object_t * w, int i, int channelsused )
 {
     hb_work_private_t * pv = w->private_data;
     hb_job_t        * job   = pv->job;
@@ -221,7 +225,7 @@ static void InitAudio( hb_work_object_t * w, int i )
     {
         /* Initialize libsamplerate */
         int error;
-        sync->state             = src_new( SRC_LINEAR, 2, &error );
+        sync->state             = src_new( SRC_LINEAR, channelsused, &error );
         sync->data.end_of_input = 0;
     }
 }
@@ -408,7 +412,7 @@ static int SyncVideo( hb_work_object_t * w )
  ***********************************************************************
  * 
  **********************************************************************/
-static void SyncAudio( hb_work_object_t * w, int i )
+static void SyncAudio( hb_work_object_t * w, int i, int channelsused )
 {
     hb_work_private_t * pv = w->private_data;
     hb_job_t        * job;
@@ -481,7 +485,7 @@ static void SyncAudio( hb_work_object_t * w, int i )
         else if( buf->start > pts_expected + 9000 )
         {
             /* Missing audio, send a frame of silence */
-            InsertSilence( w, i );
+            InsertSilence( w, i, channelsused );
             continue;
         }
 
@@ -499,7 +503,7 @@ static void SyncAudio( hb_work_object_t * w, int i )
 
             int count_in, count_out;
 
-            count_in  = buf_raw->size / 2 / sizeof( float );
+            count_in  = buf_raw->size / channelsused / sizeof( float );
             count_out = ( buf_raw->stop - buf_raw->start ) * job->arate / 90000;
             if( buf->start < pts_expected - 1500 )
                 count_out--;
@@ -513,7 +517,7 @@ static void SyncAudio( hb_work_object_t * w, int i )
             sync->data.src_ratio = (double) sync->data.output_frames /
                                    (double) sync->data.input_frames;
 
-            buf = hb_buffer_init( sync->data.output_frames * 2 *
+            buf = hb_buffer_init( sync->data.output_frames * channelsused *
                                   sizeof( float ) );
             sync->data.data_out = (float *) buf->data;
             if( src_process( sync->state, &sync->data ) )
@@ -523,7 +527,7 @@ static void SyncAudio( hb_work_object_t * w, int i )
             }
             hb_buffer_close( &buf_raw );
 
-            buf->size = sync->data.output_frames_gen * 2 * sizeof( float );
+            buf->size = sync->data.output_frames_gen * channelsused * sizeof( float );
 
             /* Set dates for resampled data */
             buf->start = start;
@@ -539,7 +543,7 @@ static void SyncAudio( hb_work_object_t * w, int i )
 
     if( NeedSilence( w, audio ) )
     {
-        InsertSilence( w, i );
+        InsertSilence( w, i, channelsused );
     }
 }
 
@@ -579,7 +583,7 @@ static int NeedSilence( hb_work_object_t * w, hb_audio_t * audio )
     return 0;
 }
 
-static void InsertSilence( hb_work_object_t * w, int i )
+static void InsertSilence( hb_work_object_t * w, int i, int channelsused )
 {
     hb_work_private_t * pv = w->private_data;
     hb_job_t        * job;
@@ -606,7 +610,7 @@ static void InsertSilence( hb_work_object_t * w, int i )
     }
     else
     {
-        buf        = hb_buffer_init( 2 * job->arate / 20 *
+        buf        = hb_buffer_init( channelsused * job->arate / 20 *
                                      sizeof( float ) );
         buf->start = sync->count_frames * 90000 / job->arate;
         buf->stop  = buf->start + 90000 / 20;
similarity index 99%
rename from libmediafork/update.c
rename to libhb/update.c
index c12204f..7678070 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 #define HB_URL   "handbrake.m0k.org"
 #define HB_QUERY "GET /LATEST HTTP/1.0\r\nHost: " HB_URL "\r\n\r\n"
similarity index 82%
rename from libmediafork/work.c
rename to libhb/work.c
index b692754..106df6c 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "mediafork.h"
+#include "hb.h"
 
 typedef struct
 {
@@ -109,10 +109,23 @@ static void do_job( hb_job_t * job, int cpu_count )
        job->height=title->height-job->crop[0]-job->crop[1];
        job->width=title->width-job->crop[2]-job->crop[3];
     }
-    else
-    {
-       hb_fix_aspect( job, HB_KEEP_WIDTH );
-    }
+
+       /* Keep width and height within these boundaries */
+       if (job->maxHeight && (job->height > job->maxHeight) )
+       {
+               job->height = job->maxHeight;
+               hb_fix_aspect( job, HB_KEEP_HEIGHT );
+               hb_log("Height out of bounds, scaling down to %i", job->maxHeight);
+               hb_log("New dimensions %i * %i", job->width, job->height);
+       }
+       if (job->maxWidth && (job->width > job->maxWidth) )
+       {
+               job->width = job->maxWidth;
+               hb_fix_aspect( job, HB_KEEP_WIDTH );   
+               hb_log("Width out of bounds, scaling down to %i", job->maxWidth);
+               hb_log("New dimensions %i * %i", job->width, job->height);
+       }
+
     hb_log( " + %dx%d -> %dx%d, crop %d/%d/%d/%d",
             title->width, title->height, job->width, job->height,
             job->crop[0], job->crop[1], job->crop[2], job->crop[3] );
@@ -242,6 +255,52 @@ static void do_job( hb_job_t * job, int cpu_count )
             w->config   = &audio->config;
             hb_list_add( job->list_work, w );
         }
+               
+               /* store this audio's channel counts with the job */
+               /* this should be an array -
+               we just use the last channel count for now */
+               
+               /* we will only end up with a channelsused value other than 2
+               if we are encoding to AAC.  All other audio encodings will get
+               a stereo mix. */
+               
+               if (audio->channels == 5 && audio->lfechannels == 1) {
+                       /* we have a 5.1 AC-3 source soundtrack */
+                       if (job->acodec == HB_ACODEC_FAAC && job->surround) {
+                               /* we're going to be encoding to AAC,
+                               and have turned on the "preserve 5.1" flag */
+                               job->channelsused = 6;
+                       } else {
+                               /* mix 5.1 down to Dolby Digital (2-channel) for
+                               non-AAC audio, or for AAC without 5.1 preservation */
+                               job->channelsused = 2;
+                       }
+               } else if (audio->channels == 1 && audio->lfechannels == 0) {
+                       /* we have a 1.0 mono AC-3 source soundtrack */
+                       if (job->acodec == HB_ACODEC_FAAC) {
+                               /* we're going to be encoding to AAC,
+                               so mix down to a mono AAC track */
+                               job->channelsused = 1;
+                       } else {
+                               /* mix up the mono track to stereo for non-AAC formats */
+                               job->channelsused = 2;
+                       }
+               } else {
+                       /* mix everything else down to stereo */
+                       /* dolby pro-logic will be preserved in deca52.c if necessary
+                       by referring to the value of job->ac3flags stored below */
+                       job->channelsused = 2;
+               }
+               
+               /* remember the actual number of channels and lfe channels */
+               /* again, we are using the last channel's count for now */
+               job->channels = audio->channels;
+               job->lfechannels = audio->lfechannels;
+               
+               /* remember the AC3 flags for future reference */
+               /* again, we are using the last channel's flags for now */
+               job->ac3flags = audio->ac3flags;
+               
     }
 
     /* Init read & write threads */
index 6dc4c02..8d920d1 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "mediafork.h"
+#include "hb.h"
 
 #include "ScanController.h"
 #include "PictureController.h"
     /* Audio box */
     IBOutlet NSTextField         * fAudLang1Field;
     IBOutlet NSPopUpButton       * fAudLang1PopUp;
+    IBOutlet NSButton               * fAudLang1SurroundCheck;
     IBOutlet NSTextField         * fAudLang2Field;
     IBOutlet NSPopUpButton       * fAudLang2PopUp;
     IBOutlet NSTextField         * fAudRateField;
     IBOutlet NSButton            * fPauseButton;
     IBOutlet NSButton            * fRipButton;
 
+       /* User Preset variables here fPresetNewPicSettingsApply*/
+       
+       IBOutlet NSDrawer            * fPresetDrawer;
+       IBOutlet NSTextField         * fPresetNewName;
+       IBOutlet NSButton            * fPresetNewPicSettingsApply;
+       IBOutlet NSTextField         * fPresetSelectedDisplay;
+       
+       NSString * AppSupportDirectory;
+       NSString * UserPresetsFile;
+       NSString * x264ProfilesFile;
+       NSMutableArray * UserPresets;
+       NSMutableArray * x264Profiles;
+       NSMutableArray *UserPresetssortedArray;
+       NSMutableDictionary * chosenPreset;
+
+       
+    IBOutlet NSPanel            * fAddPresetPanel;
+       IBOutlet NSTableView         * tableView;
+       IBOutlet NSButton            * fPresetsAdd;
+       IBOutlet NSButton            * fPresetsDelete;
     hb_handle_t                  * fHandle;
-       hb_title_t               * fTitle;
+       hb_title_t                   * fTitle;
 }
 
 - (void)     TranslateStrings;
 - (IBAction) FormatPopUpChanged: (id) sender;
 - (IBAction) CodecsPopUpChanged: (id) sender;
 - (IBAction) EncoderPopUpChanged: (id) sender;
+- (IBAction) Check6ChannelAACExtraction: (id) sender;
+- (IBAction) LanguagePopUpChanged: (id) sender;
+
 - (IBAction) BrowseFile: (id) sender;
 - (void)     BrowseFileDone: (NSSavePanel *) sheet
     returnCode: (int) returnCode contextInfo: (void *) contextInfo;
 - (IBAction) OpenHomepage: (id) sender;
 - (IBAction) OpenForums:   (id) sender;
 
+// Preset Methods Here
+
+- (IBAction) ShowAddPresetPanel: (id) sender;
+- (IBAction) CloseAddPresetPanel: (id) sender;
+- (NSDictionary *)CreatePreset;  
+
+- (void) savePreset;
+- (IBAction)addPreset:(id)sender;
+- (IBAction)insertPreset:(id)sender;
+- (IBAction)deletePreset:(id)sender;
+- (IBAction)tableViewSelected:(id)sender;
+// NSTableDataSource methods
+- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
+- (id)tableView:(NSTableView *)aTableView
+      objectValueForTableColumn:(NSTableColumn *)aTableColumn
+      row:(int)rowIndex;
+- (void)tableView:(NSTableView *)aTableView
+        setObjectValue:(id)anObject
+        forTableColumn:(NSTableColumn *)aTableColumn
+        row:(int)rowIndex;
+
+
+
 @end
 
index 3bf5f4f..52431ce 100644 (file)
@@ -58,8 +58,7 @@ static int FormatSettings[3][4] =
     if( ( build = hb_check_update( fHandle, &version ) ) > -1 )
     {
         /* Update available - tell the user */
-               /* TEMPORARILY COMMENT OUT AS UPDATE CHECK IS NOT ACCURATE */
-                /*
+       
         NSBeginInformationalAlertSheet( _( @"Update is available" ),
             _( @"Go get it!" ), _( @"Discard" ), NULL, fWindow, self,
             @selector( UpdateAlertDone:returnCode:contextInfo: ),
@@ -67,7 +66,7 @@ static int FormatSettings[3][4] =
             _( @"HandBrake %s (build %d) is now available for download." ),
             version, build] );
         return;
-               */
+
     }
 
     /* Show scan panel ASAP */
@@ -95,7 +94,60 @@ static int FormatSettings[3][4] =
 
     [self TranslateStrings];
 
-    /* Destination box */
+       /* Init User Presets .plist */
+       /* We declare the default NSFileManager into fileManager */
+       NSFileManager * fileManager = [NSFileManager defaultManager];
+       //presetPrefs = [[NSUserDefaults standardUserDefaults] retain];
+       /* we set the files and support paths here */
+       AppSupportDirectory = @"~/Library/Application Support/HandBrake";
+    AppSupportDirectory = [AppSupportDirectory stringByExpandingTildeInPath];
+    
+       UserPresetsFile = @"~/Library/Application Support/HandBrake/UserPresets.plist";
+    UserPresetsFile = [UserPresetsFile stringByExpandingTildeInPath];
+       
+       x264ProfilesFile = @"~/Library/Application Support/HandBrake/x264Profiles.plist";
+    x264ProfilesFile = [x264ProfilesFile stringByExpandingTildeInPath];
+       /* We check for the app support directory for media fork */
+       if ([fileManager fileExistsAtPath:AppSupportDirectory] == 0) 
+       {
+               // If it doesnt exist yet, we create it here 
+               [fileManager createDirectoryAtPath:AppSupportDirectory attributes:nil];
+       }
+       // We check for the presets.plist here
+       
+       if ([fileManager fileExistsAtPath:UserPresetsFile] == 0) 
+       {
+
+               [fileManager createFileAtPath:UserPresetsFile contents:nil attributes:nil];
+               
+       }
+       // We check for the x264profiles.plist here
+        
+       if ([fileManager fileExistsAtPath:x264ProfilesFile] == 0) 
+       {
+        
+               [fileManager createFileAtPath:x264ProfilesFile contents:nil attributes:nil];
+       }
+    
+       
+  UserPresetsFile = @"~/Library/Application Support/HandBrake/UserPresets.plist";
+  UserPresetsFile = [[UserPresetsFile stringByExpandingTildeInPath]retain];
+
+  UserPresets = [[NSMutableArray alloc] initWithContentsOfFile:UserPresetsFile];
+  if (nil == UserPresets) 
+  {
+    UserPresets = [[NSMutableArray alloc] init];
+  }
+  /* Show/Dont Show Presets drawer upon launch based
+  on user preference DefaultPresetsDrawerShow*/
+if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultPresetsDrawerShow"] > 0)
+               {
+                       [fPresetDrawer open];
+               }
+
+
+
+    /* Destination box*/
     [fDstFormatPopUp removeAllItems];
     [fDstFormatPopUp addItemWithTitle: _( @"MP4 file" )];
     [fDstFormatPopUp addItemWithTitle: _( @"AVI file" )];
@@ -169,8 +221,12 @@ static int FormatSettings[3][4] =
     [self EnableUI: NO];
     [fPauseButton setEnabled: NO];
     [fRipButton setEnabled: NO];
+
+
+
 }
 
+
 - (void) TranslateStrings
 {
     [fSrcDVD1Field      setStringValue: _( @"DVD:" )];
@@ -316,11 +372,21 @@ static int FormatSettings[3][4] =
                                
                                /* Use the dvd name in the default output field here 
                                May want to add code to remove blank spaces for some dvd names*/
-                               
+                               /* Check to see if the last destination has been set,use if so, if not, use Desktop */
+                               if ([[NSUserDefaults standardUserDefaults] stringForKey:@"LastDestinationDirectory"])
+                               {
+                               [fDstFile2Field setStringValue: [NSString stringWithFormat:
+                @"%@/%@.mp4", [[NSUserDefaults standardUserDefaults] stringForKey:@"LastDestinationDirectory"],[NSString
+                  stringWithUTF8String: title->name]]];
+                               }
+                               else
+                               {
                                [fDstFile2Field setStringValue: [NSString stringWithFormat:
                 @"%@/Desktop/%@.mp4", NSHomeDirectory(),[NSString
                   stringWithUTF8String: title->name]]];
-                /* Temporarily comment out to fix title selection*/   
+                               }
+
+                  
                 if (longuestpri < title->hours*60*60 + title->minutes *60 + title->seconds)
                 {
                        longuestpri=title->hours*60*60 + title->minutes *60 + title->seconds;
@@ -519,7 +585,7 @@ static int FormatSettings[3][4] =
                fPicSettingDeinterlaceDsply,fPicLabelSettings,fPicLabelSrc,fPicLabelOutp,
                fPicLabelAr,fPicLabelDeinter,fPicLabelSrcX,fPicLabelOutputX,
                fPicLabelPAROutp,fPicLabelPAROutputX,fPicSettingPARWidth,fPicSettingPARHeight,
-               fPicSettingPARDsply,fPicLabelAnamorphic};
+               fPicSettingPARDsply,fPicLabelAnamorphic,tableView,fPresetsAdd,fPresetsDelete};
 
     for( unsigned i = 0;
          i < sizeof( controls ) / sizeof( NSControl * ); i++ )
@@ -535,12 +601,21 @@ static int FormatSettings[3][4] =
             }
         }
         [controls[i] setEnabled: b];
-               /* Temporarily disable Lang2 until crash is fixed */
-               [fAudLang2PopUp setEnabled: NO];
-               [fAudLang2Field setEnabled: NO];
-       
+
     }
 
+       /* Temporarily disable Lang2 until crash is fixed */
+       [fAudLang2PopUp setEnabled: NO];
+       [fAudLang2Field setEnabled: NO];
+       
+       if (b) {
+               /* if we're enabling the interface, check if we should / should't offer 6-channel AAC extraction */
+               [self Check6ChannelAACExtraction: NULL];
+       } else {
+               /* if we're disabling the interface, turn it off */
+               [fAudLang1SurroundCheck setEnabled: NO];
+       }
+
     [self VideoMatrixChanged: NULL];
 }
 
@@ -614,7 +689,7 @@ static int FormatSettings[3][4] =
     if( returnCode == NSOKButton )
     {
         [fDstFile2Field setStringValue: [sheet filename]];
-        [self FormatPopUpChanged: NULL];
+               [self FormatPopUpChanged: NULL];
     }
 }
 
@@ -686,7 +761,7 @@ static int FormatSettings[3][4] =
                Lets Deprecate Baseline Level 1.3*/
                job->h264_level = 30;
                job->mux = HB_MUX_IPOD;
-        /* move sanity check for iPod Encoding here */
+                    /* move sanity check for iPod Encoding here */
                job->pixel_ratio = 0 ;
 
                }
@@ -699,6 +774,10 @@ static int FormatSettings[3][4] =
                        job->crf = 1;
                }
                
+               /* Sends x264 options to the core library*/
+               job->x264opts = strdup([[[NSUserDefaults standardUserDefaults] stringForKey:@"DefAdvancedx264Flags"] cString]);
+               
+               
         job->h264_13 = [fVidEncoderPopUp indexOfSelectedItem];
     }
 
@@ -748,6 +827,13 @@ static int FormatSettings[3][4] =
                      indexOfSelectedItem]].rate;
     job->abitrate = hb_audio_bitrates[[fAudBitratePopUp
                         indexOfSelectedItem]].rate;
+       /* have we selected that 5.1 should be extracted as AAC? */
+       if (job->acodec == HB_ACODEC_FAAC && [fAudLang1SurroundCheck isEnabled] && [fAudLang1SurroundCheck state] == NSOnState) {
+               job->surround = 1;
+       } else {
+               job->surround = 0;
+       }
+
 }
 
 - (IBAction) EnableQueue: (id) sender
@@ -760,32 +846,48 @@ static int FormatSettings[3][4] =
 
 - (IBAction) AddToQueue: (id) sender
 {
-    hb_list_t  * list  = hb_get_titles( fHandle );
-    hb_title_t * title = (hb_title_t *) hb_list_item( list,
-            [fSrcTitlePopUp indexOfSelectedItem] );
-    hb_job_t * job = title->job;
-
-    [self PrepareJob];
-
-    /* Destination file */
-    job->file = strdup( [[fDstFile2Field stringValue] UTF8String] );
-
-    if( [fVidTwoPassCheck state] == NSOnState )
-    {
-        job->pass = 1;
-        hb_add( fHandle, job );
-        job->pass = 2;
-        hb_add( fHandle, job );
-    }
-    else
-    {
-        job->pass = 0;
-        hb_add( fHandle, job );
-    }
+/* We get the destination directory from the destingation field here */
+       NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
+       /* We check for a valid destination here */
+       if ([[NSFileManager defaultManager] fileExistsAtPath:destinationDirectory] == 0) 
+       {
+               NSRunAlertPanel(@"Warning!", @"This is not a valid destination directory!", @"OK", nil, nil);
+       }
+       else
+       {
+               
+               hb_list_t  * list  = hb_get_titles( fHandle );
+               hb_title_t * title = (hb_title_t *) hb_list_item( list,
+                                                                                                                 [fSrcTitlePopUp indexOfSelectedItem] );
+               hb_job_t * job = title->job;
+               
+               [self PrepareJob];
+               
+               /* Destination file */
+               job->file = strdup( [[fDstFile2Field stringValue] UTF8String] );
+               
+               if( [fVidTwoPassCheck state] == NSOnState )
+               {
+                       job->pass = 1;
+                       hb_add( fHandle, job );
+                       job->pass = 2;
+                       job->x264opts = strdup([[[NSUserDefaults standardUserDefaults] stringForKey:@"DefAdvancedx264Flags"] cString]);
+                       hb_add( fHandle, job );
+               }
+               else
+               {
+                       job->pass = 0;
+                       hb_add( fHandle, job );
+               }
+       
+       [[NSUserDefaults standardUserDefaults] setObject:destinationDirectory forKey:@"LastDestinationDirectory"];
+       }
 }
 
 - (IBAction) Rip: (id) sender
 {
+   
+    
     /* Rip or Cancel ? */
     if( [[fRipButton title] isEqualToString: _( @"Cancel" )] )
     {
@@ -795,10 +897,15 @@ static int FormatSettings[3][4] =
 
     if( [fQueueCheck state] == NSOffState )
     {
-        [self AddToQueue: sender];
+
+                       [self AddToQueue: sender];
+
+               
+
     }
 
-    if( [[NSFileManager defaultManager] fileExistsAtPath:
+    /* We check for duplicate name here */
+       if( [[NSFileManager defaultManager] fileExistsAtPath:
             [fDstFile2Field stringValue]] )
     {
         NSBeginCriticalAlertSheet( _( @"File already exists" ),
@@ -809,8 +916,21 @@ static int FormatSettings[3][4] =
             [fDstFile2Field stringValue]] );
         return;
     }
+       /* We get the destination directory from the destingation field here */
+       NSString *destinationDirectory = [[fDstFile2Field stringValue] stringByDeletingLastPathComponent];
+       /* We check for a valid destination here */
+       if ([[NSFileManager defaultManager] fileExistsAtPath:destinationDirectory] == 0) 
+       {
+               NSRunAlertPanel(@"Warning!", @"This is not a valid destination directory!", @"OK", nil, nil);
+       }
+       else
+       {
+       [[NSUserDefaults standardUserDefaults] setObject:destinationDirectory forKey:@"LastDestinationDirectory"];
+               [self _Rip];
+       }
+       
+
 
-    [self _Rip];
 }
 
 - (void) OverwriteAlertDone: (NSWindow *) sheet
@@ -844,7 +964,7 @@ static int FormatSettings[3][4] =
     hb_start( fHandle );
 
     /* Disable interface */
-    [self EnableUI: NO];
+   [self EnableUI: NO];
     [fPauseButton setEnabled: NO];
     [fRipButton   setEnabled: NO];
 }
@@ -1002,6 +1122,11 @@ static int FormatSettings[3][4] =
     [fAudLang2PopUp selectItemAtIndex: 0];
        
        /* END pri */
+
+       /* changing the title may have changed the audio channels on offer, so */
+       /* check if this change means we should / should't offer 6-channel AAC extraction */
+       [self Check6ChannelAACExtraction: sender];
+
 }
 
 - (IBAction) ChapterPopUpChanged: (id) sender
@@ -1085,6 +1210,11 @@ static int FormatSettings[3][4] =
         [fDstFile2Field setStringValue: [NSString stringWithFormat:
             @"%@.%s", string, ext]];
     }
+
+       /* changing the codecs on offer may mean that we are/aren't now offering AAC, so */
+       /* check if this change means we should / should't offer 6-channel AAC extraction */
+       [self Check6ChannelAACExtraction: sender];
+
 }
 
 - (IBAction) CodecsPopUpChanged: (id) sender
@@ -1123,14 +1253,18 @@ static int FormatSettings[3][4] =
         [fAudBitratePopUp setEnabled: YES];
     }
 
+       /* check if this change means we should / should't offer 6-channel AAC extraction */
+       [self Check6ChannelAACExtraction: sender];
+
     [self CalculateBitrate: sender];
+
 }
 
 - (IBAction) EncoderPopUpChanged: (id) sender
 {
     
        /* Check to see if we need to modify the job pic values based on x264 (iPod) encoder selection */
-    if ([fDstFormatPopUp indexOfSelectedItem] == 0 && [fVidEncoderPopUp indexOfSelectedItem] == 1)
+    if ([fDstFormatPopUp indexOfSelectedItem] == 0 && [fDstCodecsPopUp indexOfSelectedItem] == 1 && [fVidEncoderPopUp indexOfSelectedItem] == 1)
     {
        hb_job_t * job = fTitle->job;
        job->pixel_ratio = 0 ;
@@ -1146,12 +1280,94 @@ static int FormatSettings[3][4] =
                 hb_fix_aspect( job, HB_KEEP_WIDTH );
                 
                 }
+
+               /* uncheck the "export 5.1 as 6-channel AAC" checkbox if it is checked */
+               [fAudLang1SurroundCheck setState: NSOffState];
+
        }
     
-[self CalculatePictureSizing: sender];    
+       [self CalculatePictureSizing: sender];    
   
 }
 
+- (IBAction) Check6ChannelAACExtraction: (id) sender
+{
+
+       /* make sure we have a selected title before continuing */
+       if (fTitle == NULL) return;
+
+       /* get the current title's job into a convenience variable */
+       hb_job_t * job = fTitle->job;
+       
+    /* get the current audio tracks */
+       /* this is done in PrepareJob too, but we want them here to check against below */
+    job->audios[0] = [fAudLang1PopUp indexOfSelectedItem] - 1;
+    job->audios[1] = [fAudLang2PopUp indexOfSelectedItem] - 1;
+    job->audios[2] = -1;
+
+       /* now, let's check if any selected audio track has 5.1 sound */
+       hb_audio_t * audio;
+       bool foundfiveoneaudio = false;
+
+       /* find out what the currently-selected audio codec is */
+    int format = [fDstFormatPopUp indexOfSelectedItem];
+    int codecs = [fDstCodecsPopUp indexOfSelectedItem];
+       int acodec = FormatSettings[format][codecs] & HB_ACODEC_MASK;
+
+       /* we only offer the option to extract 5.1 to 6-channel if the selected audio codec is AAC */
+       if (acodec == HB_ACODEC_FAAC) {
+
+               bool doneaudios = false;
+               int thisaudio = 0;
+               
+               while (!doneaudios) {
+
+                       if (job->audios[thisaudio] == -1) {
+                               doneaudios = true;
+                       } else {
+                               audio = (hb_audio_t *) hb_list_item( fTitle->list_audio, job->audios[thisaudio] );
+                               if (audio != NULL) {
+                                       if (audio->channels == 5 && audio->lfechannels == 1) {
+                                               foundfiveoneaudio = true;
+                                               doneaudios = true; /* as it doesn't matter if we find any more! */
+                                       }
+                               }
+                       }
+
+                       thisaudio++;
+               }
+       }
+
+    /* If we are extracting to AAC, and any of our soundtracks were 5.1, then enable the checkbox  */
+       if (foundfiveoneaudio) {
+               [fAudLang1SurroundCheck setEnabled: YES];
+               /* Check default surround sound pref and if it is YES, lets also check the checkbox */
+               if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultSurroundSound"] > 0)
+               {
+                       [fAudLang1SurroundCheck setState: NSOnState];
+               }
+       } else {
+               [fAudLang1SurroundCheck setEnabled: NO];
+               /* as well as disabling the checkbox, let's uncheck it if it is checked */
+               [fAudLang1SurroundCheck setState: NSOffState];
+       }
+
+}
+
+
+- (IBAction) LanguagePopUpChanged: (id) sender
+{
+       
+       /* selecting a different language may mean we have a different number of channels, so */
+       /* check if this change means we should / should't offer 6-channel AAC extraction */
+       [self Check6ChannelAACExtraction: sender];
+       
+       /* see if the new language setting will change the bitrate we need */
+    [self CalculateBitrate:     sender];       
+
+}
+
+
 /* Get and Display Current Pic Settings in main window */
 - (IBAction) CalculatePictureSizing: (id) sender
 {
@@ -1241,6 +1457,263 @@ static int FormatSettings[3][4] =
             [fVidTargetSizeField intValue] )];
 }
 
+- (IBAction) ShowAddPresetPanel: (id) sender
+{
+    /* Show the panel */
+    [NSApp beginSheet: fAddPresetPanel modalForWindow: fWindow
+        modalDelegate: NULL didEndSelector: NULL contextInfo: NULL];
+    [NSApp runModalForWindow: fAddPresetPanel];
+    [NSApp endSheet: fAddPresetPanel];
+    [fAddPresetPanel orderOut: self];
+}
+- (IBAction) CloseAddPresetPanel: (id) sender
+{
+    [NSApp stopModal];
+}
+
+- (IBAction)addPreset:(id)sender
+{
+    [UserPresets addObject:[self CreatePreset]];
+       /* We Sort the Presets Alphabetically by name */
+       NSSortDescriptor * lastNameDescriptor=[[[NSSortDescriptor alloc] initWithKey:@"PresetName" 
+                                                    ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease];
+       NSArray *sortDescriptors=[NSArray arrayWithObject:lastNameDescriptor];
+       NSArray *sortedArray=[UserPresets sortedArrayUsingDescriptors:sortDescriptors];
+       [UserPresets setArray:sortedArray];
+       
+       /* We stop the modal window for the new preset */
+       [fPresetNewName    setStringValue: @""];
+       [NSApp stopModal];
+       /* We Reload the New Table data for presets */
+    [tableView reloadData];
+   /* We save all of the preset data here */
+    [self savePreset];
+}
+
+- (IBAction)insertPreset:(id)sender
+{
+    int index = [tableView selectedRow];
+    [UserPresets insertObject:[self CreatePreset] atIndex:index];
+    [tableView reloadData];
+    [self savePreset];
+}
+
+- (NSDictionary *)CreatePreset
+{
+    NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
+       /* Get the New Preset Name from the field in the AddPresetPanel */
+    [preset setObject:[fPresetNewName stringValue] forKey:@"PresetName"];
+       /*Get the whether or not to apply pic settings in the AddPresetPanel*/
+       [preset setObject:[NSNumber numberWithInt:[fPresetNewPicSettingsApply state]] forKey:@"UsesPictureSettings"];
+       /* File Format */
+    [preset setObject:[fDstFormatPopUp titleOfSelectedItem] forKey:@"FileFormat"];
+       /* Codecs */
+       [preset setObject:[fDstCodecsPopUp titleOfSelectedItem] forKey:@"FileCodecs"];
+       /* Video encoder */
+       [preset setObject:[fVidEncoderPopUp titleOfSelectedItem] forKey:@"VideoEncoder"];
+       /* Video quality */
+       [preset setObject:[NSNumber numberWithInt:[fVidQualityMatrix selectedRow]] forKey:@"VideoQualityType"];
+       [preset setObject:[fVidTargetSizeField stringValue] forKey:@"VideoTargetSize"];
+       [preset setObject:[fVidBitrateField stringValue] forKey:@"VideoAvgBitrate"];
+       [preset setObject:[NSNumber numberWithFloat:[fVidQualitySlider floatValue]] forKey:@"VideoQualitySlider"];
+       
+       /* Video framerate */
+       [preset setObject:[fVidRatePopUp titleOfSelectedItem] forKey:@"VideoFramerate"];
+       /* GrayScale */
+       [preset setObject:[NSNumber numberWithInt:[fVidGrayscaleCheck state]] forKey:@"VideoGrayScale"];
+       /* 2 Pass Encoding */
+       [preset setObject:[NSNumber numberWithInt:[fVidTwoPassCheck state]] forKey:@"VideoTwoPass"];
+       
+       /*Picture Settings*/
+       hb_job_t * job = fTitle->job;
+       /* Basic Picture Settings */
+       [preset setObject:[NSNumber numberWithInt:fTitle->job->width] forKey:@"PictureWidth"];
+       [preset setObject:[NSNumber numberWithInt:fTitle->job->height] forKey:@"PictureHeight"];
+       [preset setObject:[NSNumber numberWithInt:fTitle->job->keep_ratio] forKey:@"PictureKeepRatio"];
+       [preset setObject:[NSNumber numberWithInt:fTitle->job->deinterlace] forKey:@"PictureDeinterlace"];
+       [preset setObject:[NSNumber numberWithInt:fTitle->job->pixel_ratio] forKey:@"PicturePAR"];
+       /* Set crop settings here */
+       /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
+       [preset setObject:[NSNumber numberWithInt:job->crop[0]] forKey:@"PictureTopCrop"];
+    [preset setObject:[NSNumber numberWithInt:job->crop[1]] forKey:@"PictureBottomCrop"];
+       [preset setObject:[NSNumber numberWithInt:job->crop[2]] forKey:@"PictureLeftCrop"];
+       [preset setObject:[NSNumber numberWithInt:job->crop[3]] forKey:@"PictureRightCrop"];
+       
+       /*Audio*/
+       /* Audio Language One*/
+       [preset setObject:[fAudLang1PopUp titleOfSelectedItem] forKey:@"AudioLang1"];
+       /* Audio Language One Surround Sound Checkbox*/
+       [preset setObject:[NSNumber numberWithInt:[fAudLang1SurroundCheck state]] forKey:@"AudioLang1Surround"];
+       /* Audio Sample Rate*/
+       [preset setObject:[fAudRatePopUp titleOfSelectedItem] forKey:@"AudioSampleRate"];
+       /* Audio Bitrate Rate*/
+       [preset setObject:[fAudBitratePopUp titleOfSelectedItem] forKey:@"AudioBitRate"];
+       /* Subtitles*/
+       [preset setObject:[fSubPopUp titleOfSelectedItem] forKey:@"Subtitles"];
+       
+
+    [preset autorelease];
+    return preset;
+
+}
+
+- (IBAction)deletePreset:(id)sender
+{
+    int status;
+    NSEnumerator *enumerator;
+    NSNumber *index;
+    NSMutableArray *tempArray;
+    id tempObject;
+    
+    if ( [tableView numberOfSelectedRows] == 0 )
+        return;
+    /* Alert user before deleting preset */
+       /* Comment out for now, tie to user pref eventually */
+    //NSBeep();
+    status = NSRunAlertPanel(@"Warning!", @"Are you sure that you want to delete the selected preset?", @"OK", @"Cancel", nil);
+    
+    if ( status == NSAlertDefaultReturn ) {
+        enumerator = [tableView selectedRowEnumerator];
+        tempArray = [NSMutableArray array];
+        
+        while ( (index = [enumerator nextObject]) ) {
+            tempObject = [UserPresets objectAtIndex:[index intValue]];
+            [tempArray addObject:tempObject];
+        }
+        
+        [UserPresets removeObjectsInArray:tempArray];
+        [tableView reloadData];
+        [self savePreset];   
+    }
+}
+- (IBAction)tableViewSelected:(id)sender
+{
+
+    /* we get the chosen preset from the UserPresets array */
+       chosenPreset = [UserPresets objectAtIndex:[sender selectedRow]];
+       /* we set the preset display field in main window here */
+       //[fPresetSelectedDisplay setStringValue: [NSString stringWithFormat: @"%@", [chosenPreset valueForKey:@"PresetName"]]];
+       /* File Format */
+       [fDstFormatPopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"FileFormat"]]];
+       [self FormatPopUpChanged: NULL];
+    /* Codecs */
+       [fDstCodecsPopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"FileCodecs"]]];
+       [self CodecsPopUpChanged: NULL];
+       /* Video encoder */
+       [fVidEncoderPopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"VideoEncoder"]]];
+       /* Lets run through the following functions to get variables set there */
+       [self EncoderPopUpChanged: sender];
+       [self Check6ChannelAACExtraction: sender];
+       [self CalculateBitrate: sender];
+       
+       /* Video quality */
+       [fVidQualityMatrix selectCellAtRow:[[chosenPreset objectForKey:@"VideoQualityType"] intValue] column:0];
+       
+       [fVidTargetSizeField setStringValue: [NSString stringWithFormat:[chosenPreset valueForKey:@"VideoTargetSize"]]];
+       [fVidBitrateField setStringValue: [NSString stringWithFormat:[chosenPreset valueForKey:@"VideoAvgBitrate"]]];
+       
+       [fVidQualitySlider setFloatValue: [[chosenPreset valueForKey:@"VideoQualitySlider"] floatValue]];
+       [self VideoMatrixChanged: sender];
+       
+       /* Video framerate */
+       [fVidRatePopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"VideoFramerate"]]];
+       
+       /* GrayScale */
+       [fVidGrayscaleCheck setState:[[chosenPreset objectForKey:@"VideoGrayScale"] intValue]];
+
+       /* 2 Pass Encoding */
+       [fVidTwoPassCheck setState:[[chosenPreset objectForKey:@"VideoTwoPass"] intValue]];
+    
+       
+       /*Audio*/
+       /* Audio Language One*/
+       [fAudLang1PopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"AudioLang1"]]];
+       /* Audio Language One Surround Sound Checkbox*/
+       [fAudLang1SurroundCheck setState:[[chosenPreset objectForKey:@"AudioLang1Surround"] intValue]];
+       [self Check6ChannelAACExtraction: sender];
+       /* Audio Sample Rate*/
+       [fAudRatePopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"AudioSampleRate"]]];
+       /* Audio Bitrate Rate*/
+       [fAudBitratePopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"AudioBitRate"]]];
+       /*Subtitles*/
+       [fSubPopUp selectItemWithTitle: [NSString stringWithFormat:[chosenPreset valueForKey:@"Subtitles"]]];
+       
+       /* Picture Settings */
+       /* Look to see if we apply these here in objectForKey:@"UsesPictureSettings"] */
+       if ([[chosenPreset objectForKey:@"UsesPictureSettings"]  intValue] == 1)
+       {
+               hb_job_t * job = fTitle->job;
+               job->width = [[chosenPreset objectForKey:@"PictureWidth"]  intValue];
+               job->height = [[chosenPreset objectForKey:@"PictureHeight"]  intValue];
+               job->keep_ratio = [[chosenPreset objectForKey:@"PictureKeepRatio"]  intValue];
+               if (job->keep_ratio == 1)
+               {
+                       hb_fix_aspect( job, HB_KEEP_WIDTH );
+               }
+               job->pixel_ratio = [[chosenPreset objectForKey:@"PicturePAR"]  intValue];
+               job->crop[0] = [[chosenPreset objectForKey:@"PictureTopCrop"]  intValue];
+               job->crop[1] = [[chosenPreset objectForKey:@"PictureBottomCrop"]  intValue];
+               job->crop[2] = [[chosenPreset objectForKey:@"PictureLeftCrop"]  intValue];
+               job->crop[3] = [[chosenPreset objectForKey:@"PictureRightCrop"]  intValue];
+               [self CalculatePictureSizing: sender]; 
+       }
+       
+       // Deselect the currently selected table //
+       //[tableView deselectRow:[tableView selectedRow]];
+}
+
+- (int)numberOfRowsInTableView:(NSTableView *)aTableView
+{
+    return [UserPresets count];
+}
+
+- (id)tableView:(NSTableView *)aTableView
+      objectValueForTableColumn:(NSTableColumn *)aTableColumn
+      row:(int)rowIndex
+{
+
+       
+       
+       id theRecord, theValue;
+    
+    theRecord = [UserPresets objectAtIndex:rowIndex];
+    theValue = [theRecord objectForKey:[aTableColumn identifier]];
+    
+    return theValue;
+}
+
+// NSTableDataSource method that we implement to edit values directly in the table...
+- (void)tableView:(NSTableView *)aTableView
+        setObjectValue:(id)anObject
+        forTableColumn:(NSTableColumn *)aTableColumn
+        row:(int)rowIndex
+{
+    id theRecord;
+    
+    theRecord = [UserPresets objectAtIndex:rowIndex];
+    [theRecord setObject:anObject forKey:[aTableColumn identifier]];
+    
+               /* We Sort the Presets Alphabetically by name */
+       NSSortDescriptor * lastNameDescriptor=[[[NSSortDescriptor alloc] initWithKey:@"PresetName" 
+                                                    ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease];
+       NSArray *sortDescriptors=[NSArray arrayWithObject:lastNameDescriptor];
+       NSArray *sortedArray=[UserPresets sortedArrayUsingDescriptors:sortDescriptors];
+       [UserPresets setArray:sortedArray];
+       /* We Reload the New Table data for presets */
+    [tableView reloadData];
+   /* We save all of the preset data here */
+    [self savePreset];
+}
+
+
+- (void)savePreset
+{
+    [UserPresets writeToFile:UserPresetsFile atomically:YES];
+
+}
+
+
+
 - (void) controlTextDidBeginEditing: (NSNotification *) notification
 {
     [self CalculateBitrate: NULL];
@@ -1259,13 +1732,15 @@ static int FormatSettings[3][4] =
 - (IBAction) OpenHomepage: (id) sender
 {
     [[NSWorkspace sharedWorkspace] openURL: [NSURL
-        URLWithString:@"http://mediafork.dynalias.com/"]];
+        URLWithString:@"http://handbrake.m0k.org/"]];
 }
 
 - (IBAction) OpenForums: (id) sender
 {
     [[NSWorkspace sharedWorkspace] openURL: [NSURL
-        URLWithString:@"http://mediafork.dynalias.com/forum/"]];
+        URLWithString:@"http://handbrake.m0k.org/forum/"]];
 }
 
+
+
 @end
index e9e9415..61f7229 100644 (file)
@@ -11,7 +11,7 @@
 #include <IOKit/storage/IODVDMedia.h>
 
 #include "DriveDetector.h"
-#include "mediafork.h"
+#include "hb.h"
 
 @interface DriveDetector (Private)
 
index ec79148..2b248ad 100644 (file)
@@ -7,29 +7,38 @@
                 CalculateBitrate = id; 
                 Cancel = id; 
                 ChapterPopUpChanged = id; 
+                CloseAddPresetPanel = id; 
                 CodecsPopUpChanged = id; 
                 EnableQueue = id; 
                 EncoderPopUpChanged = id; 
                 FormatPopUpChanged = id; 
+                InsertPreset = id; 
+                LanguagePopUpChanged = id; 
                 OpenForums = id; 
                 OpenHomepage = id; 
                 Pause = id; 
                 QualitySliderChanged = id; 
                 Rip = id; 
+                ShowAddPresetPanel = id; 
                 ShowPicturePanel = id; 
                 ShowQueuePanel = id; 
                 ShowScanPanel = id; 
                 TitlePopUpChanged = id; 
                 VideoMatrixChanged = id; 
+                addPreset = id; 
+                deletePreset = id; 
+                tableViewSelected = id; 
             }; 
             CLASS = HBController; 
             LANGUAGE = ObjC; 
             OUTLETS = {
-                fAddToQuButton = NSButton; 
+                fAddPresetPanel = NSPanel; 
+                fAddToQuButton = NSTableView; 
                 fAudBitrateField = NSTextField; 
                 fAudBitratePopUp = NSPopUpButton; 
                 fAudLang1Field = NSTextField; 
                 fAudLang1PopUp = NSPopUpButton; 
+                fAudLang1SurroundCheck = NSButton; 
                 fAudLang2Field = NSTextField; 
                 fAudLang2PopUp = NSPopUpButton; 
                 fAudRateField = NSTextField; 
                 fPictureButton = NSButton; 
                 fPictureController = PictureController; 
                 fPicturePanel = NSPanel; 
+                fPresetDrawer = NSDrawer; 
+                fPresetNewName = NSTextField; 
+                fPresetNewPicSettingsApply = NSButton; 
+                fPresetSelectedDisplay = NSTextField; 
+                fPresetsAdd = NSButton; 
+                fPresetsDelete = NSButton; 
                 fQueueAddButton = NSButton; 
                 fQueueCheck = NSButton; 
                 fQueueController = QueueController; 
                 fVidTargetSizeField = NSTextField; 
                 fVidTwoPassCheck = NSButton; 
                 fWindow = NSWindow; 
+                tableView = NSTableView; 
             }; 
             SUPERCLASS = NSObject; 
         }, 
             CLASS = PrefsController; 
             LANGUAGE = ObjC; 
             OUTLETS = {
+                fDefAdvancedx264FlagsView = NSButton; 
+                fDefAudioSurround = NSButton; 
                 fDefCrf = NSButton; 
                 fDefDeinterlace = NSButton; 
                 fDefPicSizeAutoSetipod = NSButton; 
                 fDefPixelRatio = NSButton; 
+                fDefPresetDrawerShow = id; 
                 fFileExtItunes = NSButton; 
                 fPanel = NSPanel; 
                 fUpdateCheck = NSButton; 
index eae7265..64beae6 100644 (file)
@@ -3,11 +3,13 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>74 141 555 411 0 0 1440 878 </string>
+       <string>25 277 630 601 0 0 1440 878 </string>
        <key>IBEditorPositions</key>
        <dict>
+               <key>1843</key>
+               <string>610 276 220 592 0 0 1440 878 </string>
                <key>29</key>
-               <string>69 330 258 44 0 0 1440 878 </string>
+               <string>102 834 300 44 0 0 1440 878 </string>
        </dict>
        <key>IBFramework Version</key>
        <string>446.1</string>
@@ -17,8 +19,8 @@
        </array>
        <key>IBOpenObjects</key>
        <array>
-               <integer>1438</integer>
-               <integer>21</integer>
+               <integer>29</integer>
+               <integer>1843</integer>
        </array>
        <key>IBSystem Version</key>
        <string>8L127</string>
index 9f9c43b..7bfb841 100644 (file)
Binary files a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib and b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib differ
index f1e0d19..5841f4e 100644 (file)
@@ -1,7 +1,7 @@
 /* ExpressController */
 
 #import <Cocoa/Cocoa.h>
-#import "mediafork.h"
+#import "hb.h"
 
 @class DriveDetector;
 
diff --git a/macosx/HandBrake.icns b/macosx/HandBrake.icns
new file mode 100644 (file)
index 0000000..f81352b
Binary files /dev/null and b/macosx/HandBrake.icns differ
diff --git a/macosx/HandBrake.plist b/macosx/HandBrake.plist
new file mode 100644 (file)
index 0000000..4a4b36c
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+        <key>CFBundleDevelopmentRegion</key>
+        <string>English</string>
+        <key>CFBundleDisplayName</key>
+        <string>HandBrake</string>
+        <key>CFBundleExecutable</key>
+        <string>HandBrake</string>
+        <key>CFBundleGetInfoString</key>
+        <string>0.8.0b1</string>
+        <key>CFBundleIconFile</key>
+        <string>HandBrake</string>
+        <key>CFBundleIdentifier</key>
+        <string>org.m0k.handbrake</string>
+        <key>CFBundleInfoDictionaryVersion</key>
+        <string>6.0</string>
+        <key>CFBundleName</key>
+        <string>HandBrake</string>
+        <key>CFBundlePackageType</key>
+        <string>APPL</string>
+        <key>CFBundleShortVersionString</key>
+        <string>0.8.0b2</string>
+        <key>CFBundleSignature</key>
+        <string>HB##</string>
+        <key>CFBundleVersion</key>
+        <string>2007022200</string>
+        <key>NSHumanReadableCopyright</key>
+        <string>HandBrake Devs</string>
+        <key>NSMainNibFile</key>
+        <string>MainMenu</string>
+        <key>NSPrincipalClass</key>
+        <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/macosx/HandBrake.xcodeproj/pri.mode1 b/macosx/HandBrake.xcodeproj/pri.mode1
new file mode 100644 (file)
index 0000000..385113e
--- /dev/null
@@ -0,0 +1,1329 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>ActivePerspectiveName</key>
+       <string>Project</string>
+       <key>AllowedModules</key>
+       <array>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXSmartGroupTreeModule</string>
+                       <key>Name</key>
+                       <string>Groups and Files Outline View</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXNavigatorGroup</string>
+                       <key>Name</key>
+                       <string>Editor</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCTaskListModule</string>
+                       <key>Name</key>
+                       <string>Task List</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDetailModule</string>
+                       <key>Name</key>
+                       <string>File and Smart Group Detail Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXBuildResultsModule</string>
+                       <key>Name</key>
+                       <string>Detailed Build Results Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXProjectFindModule</string>
+                       <key>Name</key>
+                       <string>Project Batch Find Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXRunSessionModule</string>
+                       <key>Name</key>
+                       <string>Run Log</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXBookmarksModule</string>
+                       <key>Name</key>
+                       <string>Bookmarks Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXClassBrowserModule</string>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXCVSModule</string>
+                       <key>Name</key>
+                       <string>Source Code Control Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXDebugBreakpointsModule</string>
+                       <key>Name</key>
+                       <string>Debug Breakpoints Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDockableInspector</string>
+                       <key>Name</key>
+                       <string>Inspector</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXOpenQuicklyModule</string>
+                       <key>Name</key>
+                       <string>Open Quickly Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugSessionModule</string>
+                       <key>Name</key>
+                       <string>Debugger</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugCLIModule</string>
+                       <key>Name</key>
+                       <string>Debug Console</string>
+               </dict>
+       </array>
+       <key>Description</key>
+       <string>DefaultDescriptionKey</string>
+       <key>DockingSystemVisible</key>
+       <false/>
+       <key>Extension</key>
+       <string>mode1</string>
+       <key>FavBarConfig</key>
+       <dict>
+               <key>PBXProjectModuleGUID</key>
+               <string>0DFA5C670B8DD17A0020BC09</string>
+               <key>XCBarModuleItemNames</key>
+               <dict/>
+               <key>XCBarModuleItems</key>
+               <array/>
+       </dict>
+       <key>FirstTimeWindowDisplayed</key>
+       <false/>
+       <key>Identifier</key>
+       <string>com.apple.perspectives.project.mode1</string>
+       <key>MajorVersion</key>
+       <integer>31</integer>
+       <key>MinorVersion</key>
+       <integer>1</integer>
+       <key>Name</key>
+       <string>Default</string>
+       <key>Notifications</key>
+       <array/>
+       <key>OpenEditors</key>
+       <array/>
+       <key>PerspectiveWidths</key>
+       <array>
+               <integer>-1</integer>
+               <integer>-1</integer>
+       </array>
+       <key>Perspectives</key>
+       <array>
+               <dict>
+                       <key>ChosenToolbarItems</key>
+                       <array>
+                               <string>active-target-popup</string>
+                               <string>active-buildstyle-popup</string>
+                               <string>action</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>buildOrClean</string>
+                               <string>build-and-runOrDebug</string>
+                               <string>com.apple.ide.PBXToolbarStopButton</string>
+                               <string>get-info</string>
+                               <string>toggle-editor</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>com.apple.pbx.toolbar.searchfield</string>
+                       </array>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProjectWithEditor</string>
+                       <key>Identifier</key>
+                       <string>perspective.project</string>
+                       <key>IsVertical</key>
+                       <false/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>BecomeActive</key>
+                                       <true/>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>186</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>29B97314FDCFA39411CA2CEA</string>
+                                                               <string>526FBC940B4CAA310064E04C</string>
+                                                               <string>526FBC8D0B4CA9F90064E04C</string>
+                                                               <string>1C37FBAC04509CD000000102</string>
+                                                               <string>1C37FABC05509CD000000102</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 0}, {186, 802}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <true/>
+                                               <key>XCSharingToken</key>
+                                               <string>com.apple.Xcode.GFSharingToken</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {203, 820}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>MainColumn</string>
+                                                       <real>186</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>273 167 1118 861 0 0 1680 1028 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>203pt</string>
+                               </dict>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B20306471E060097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>MyNewFile14.java</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CE0B20406471E060097A5F4</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>MyNewFile14.java</string>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {910, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>273 167 1118 861 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B20506471E060097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 5}, {910, 815}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>273 167 1118 861 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>815pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>910pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCModuleDock</string>
+                               <string>PBXNavigatorGroup</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>0D3065750B9030CE0049CCA4</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>0D3065760B9030CE0049CCA4</string>
+                               <string>1CE0B20306471E060097A5F4</string>
+                               <string>1CE0B20506471E060097A5F4</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.default</string>
+               </dict>
+               <dict>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProject</string>
+                       <key>Identifier</key>
+                       <string>perspective.morph</string>
+                       <key>IsVertical</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>BecomeActive</key>
+                                       <integer>1</integer>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>11E0B1FE06471DED0097A5F4</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>186</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>29B97314FDCFA39411CA2CEA</string>
+                                                               <string>1C37FABC05509CD000000102</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 0}, {186, 337}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <integer>1</integer>
+                                               <key>XCSharingToken</key>
+                                               <string>com.apple.Xcode.GFSharingToken</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {203, 355}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>MainColumn</string>
+                                                       <real>186</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>373 269 690 397 0 0 1440 878 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Morph</string>
+                       <key>PreferredWidth</key>
+                       <integer>300</integer>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>11E0B1FE06471DED0097A5F4</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.default.short</string>
+               </dict>
+       </array>
+       <key>PerspectivesBarVisible</key>
+       <false/>
+       <key>ShelfIsVisible</key>
+       <false/>
+       <key>SourceDescription</key>
+       <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+       <key>StatusbarIsVisible</key>
+       <true/>
+       <key>TimeStamp</key>
+       <real>0.0</real>
+       <key>ToolbarDisplayMode</key>
+       <integer>1</integer>
+       <key>ToolbarIsVisible</key>
+       <true/>
+       <key>ToolbarSizeMode</key>
+       <integer>1</integer>
+       <key>Type</key>
+       <string>Perspectives</string>
+       <key>UpdateMessage</key>
+       <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+       <key>WindowJustification</key>
+       <integer>5</integer>
+       <key>WindowOrderList</key>
+       <array>
+               <string>/Users/pri/Desktop/HB/macosx/HandBrake.xcodeproj</string>
+       </array>
+       <key>WindowString</key>
+       <string>273 167 1118 861 0 0 1680 1028 </string>
+       <key>WindowTools</key>
+       <array>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.build</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <true/>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528F0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>declpcm.c</string>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {1003, 419}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>500 275 1003 701 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>419pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>XCMainBuildResultsModuleGUID</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Build</string>
+                                                               <key>XCBuildResultsTrigger_Collapse</key>
+                                                               <integer>1021</integer>
+                                                               <key>XCBuildResultsTrigger_Open</key>
+                                                               <integer>1011</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 424}, {1003, 236}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>500 275 1003 701 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBuildResultsModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>236pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>660pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Build Results</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBuildResultsModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>0DFA5CFA0B8DD7CF0020BC09</string>
+                               <string>0DFA5CFB0B8DD7CF0020BC09</string>
+                               <string>1CD0528F0623707200166675</string>
+                               <string>XCMainBuildResultsModuleGUID</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.build</string>
+                       <key>WindowString</key>
+                       <string>500 275 1003 701 0 0 1680 1028 </string>
+                       <key>WindowToolGUID</key>
+                       <string>0DFA5CFA0B8DD7CF0020BC09</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugger</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>Debugger</key>
+                                                               <dict>
+                                                                       <key>HorizontalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {317, 164}}</string>
+                                                                                       <string>{{317, 0}, {377, 164}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>VerticalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {694, 164}}</string>
+                                                                                       <string>{{0, 164}, {694, 216}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                               </dict>
+                                                               <key>LauncherConfigVersion</key>
+                                                               <string>8</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C162984064C10D400B95A72</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debug - GLUTExamples (Underwater)</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>DebugConsoleDrawerSize</key>
+                                                               <string>{100, 120}</string>
+                                                               <key>DebugConsoleVisible</key>
+                                                               <string>None</string>
+                                                               <key>DebugConsoleWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>DebugSTDIOWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {694, 380}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>321 238 694 422 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugSessionModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugSessionModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CD10A99069EF8BA00B06720</string>
+                               <string>1C0AD2AB069F1E9B00FABCE6</string>
+                               <string>1C162984064C10D400B95A72</string>
+                               <string>1C0AD2AC069F1E9B00FABCE6</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debug</string>
+                       <key>WindowString</key>
+                       <string>321 238 694 422 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CD10A99069EF8BA00B06720</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.find</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Dock</key>
+                                                       <array>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CDD528C0622207200134675</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>&lt;No Editor&gt;</string>
+                                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                                               <dict>
+                                                                                       <key>Split0</key>
+                                                                                       <dict>
+                                                                                               <key>PBXProjectModuleGUID</key>
+                                                                                               <string>1CD0528D0623707200166675</string>
+                                                                                       </dict>
+                                                                                       <key>SplitCount</key>
+                                                                                       <string>1</string>
+                                                                               </dict>
+                                                                               <key>StatusBarVisibility</key>
+                                                                               <integer>1</integer>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{0, 0}, {781, 167}}</string>
+                                                                               <key>RubberWindowFrame</key>
+                                                                               <string>62 385 781 470 0 0 1440 878 </string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXNavigatorGroup</string>
+                                                                       <key>Proportion</key>
+                                                                       <string>781pt</string>
+                                                               </dict>
+                                                       </array>
+                                                       <key>Proportion</key>
+                                                       <string>50%</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528E0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Project Find</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{8, 0}, {773, 254}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>62 385 781 470 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXProjectFindModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>50%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>428pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project Find</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXProjectFindModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C530D57069F1CE1000CFCEE</string>
+                               <string>1C530D58069F1CE1000CFCEE</string>
+                               <string>1C530D59069F1CE1000CFCEE</string>
+                               <string>1CDD528C0622207200134675</string>
+                               <string>1C530D5A069F1CE1000CFCEE</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CD0528E0623707200166675</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>62 385 781 470 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C530D57069F1CE1000CFCEE</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>MENUSEPARATOR</string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debuggerConsole</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAAC065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debugger Console</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {440, 358}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>650 41 440 400 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugCLIModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>358pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>358pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger Console</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugCLIModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EAAD065D492600B07095</string>
+                               <string>1C78EAAE065D492600B07095</string>
+                               <string>1C78EAAC065D492600B07095</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>650 41 440 400 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.run</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>LauncherConfigVersion</key>
+                                                               <string>3</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528B0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Run</string>
+                                                               <key>Runner</key>
+                                                               <dict>
+                                                                       <key>HorizontalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {493, 167}}</string>
+                                                                                       <string>{{0, 176}, {493, 267}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>VerticalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {405, 443}}</string>
+                                                                                       <string>{{414, 0}, {514, 443}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                               </dict>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {460, 159}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>316 696 459 200 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXRunSessionModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>159pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>159pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Run Log</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXRunSessionModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C0AD2B3069F1EA900FABCE6</string>
+                               <string>1C0AD2B4069F1EA900FABCE6</string>
+                               <string>1CD0528B0623707200166675</string>
+                               <string>1C0AD2B5069F1EA900FABCE6</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.run</string>
+                       <key>WindowString</key>
+                       <string>316 696 459 200 0 0 1280 1002 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C0AD2B3069F1EA900FABCE6</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.scm</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAB2065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>&lt;No Editor&gt;</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1C78EAB3065D492600B07095</string>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <integer>1</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {452, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>743 379 452 308 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD052920623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>SCM</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ConsoleFrame</key>
+                                                               <string>{{0, 259}, {452, 0}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 7}, {452, 259}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>743 379 452 308 0 0 1280 1002 </string>
+                                                               <key>TableConfiguration</key>
+                                                               <array>
+                                                                       <string>Status</string>
+                                                                       <real>30</real>
+                                                                       <string>FileName</string>
+                                                                       <real>199</real>
+                                                                       <string>Path</string>
+                                                                       <real>197.09500122070312</real>
+                                                               </array>
+                                                               <key>TableFrame</key>
+                                                               <string>{{0, 0}, {452, 250}}</string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXCVSModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>262pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>266pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>SCM</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXCVSModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EAB4065D492600B07095</string>
+                               <string>1C78EAB5065D492600B07095</string>
+                               <string>1C78EAB2065D492600B07095</string>
+                               <string>1CD052920623707200166675</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.scm</string>
+                       <key>WindowString</key>
+                       <string>743 379 452 308 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.breakpoints</string>
+                       <key>IsVertical</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXBottomSmartGroupGIDs</key>
+                                                               <array>
+                                                                       <string>1C77FABC04509CD000000102</string>
+                                                               </array>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Files</string>
+                                                               <key>PBXProjectStructureProvided</key>
+                                                               <string>no</string>
+                                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                                       <array>
+                                                                               <real>168</real>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                                       <array>
+                                                                               <string>MainColumn</string>
+                                                                       </array>
+                                                               </dict>
+                                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                                       <array>
+                                                                               <string>1C77FABC04509CD000000102</string>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                                       <array>
+                                                                               <array>
+                                                                                       <integer>0</integer>
+                                                                               </array>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                                       <string>{{0, 0}, {168, 350}}</string>
+                                                               </dict>
+                                                               <key>PBXTopSmartGroupGIDs</key>
+                                                               <array/>
+                                                               <key>XCIncludePerspectivesSwitch</key>
+                                                               <integer>0</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {185, 368}}</string>
+                                                               <key>GroupTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>MainColumn</string>
+                                                                       <real>168</real>
+                                                               </array>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>315 424 744 409 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXSmartGroupTreeModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>185pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA1AED706398EBD00589147</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{190, 0}, {554, 368}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>315 424 744 409 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>554pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>368pt</string>
+                               </dict>
+                       </array>
+                       <key>MajorVersion</key>
+                       <integer>2</integer>
+                       <key>MinorVersion</key>
+                       <integer>0</integer>
+                       <key>Name</key>
+                       <string>Breakpoints</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CDDB66807F98D9800BB5817</string>
+                               <string>1CDDB66907F98D9800BB5817</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CA1AED706398EBD00589147</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.breakpoints</string>
+                       <key>WindowString</key>
+                       <string>315 424 744 409 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CDDB66807F98D9800BB5817</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>1</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugAnimator</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debug Visualizer</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXNavigatorGroup</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugAnimator</string>
+                       <key>WindowString</key>
+                       <string>100 100 700 500 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.bookmarks</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBookmarksModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Bookmarks</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBookmarksModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>WindowString</key>
+                       <string>538 42 401 187 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.classBrowser</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>OptionsSetName</key>
+                                                               <string>Hierarchy, all classes</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA6456E063B45B4001379D8</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Class Browser - NSObject</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ClassesFrame</key>
+                                                               <string>{{0, 0}, {374, 96}}</string>
+                                                               <key>ClassesTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXClassNameColumnIdentifier</string>
+                                                                       <real>208</real>
+                                                                       <string>PBXClassBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {630, 331}}</string>
+                                                               <key>MembersFrame</key>
+                                                               <string>{{0, 105}, {374, 395}}</string>
+                                                               <key>MembersTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXMemberTypeIconColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                                       <string>PBXMemberNameColumnIdentifier</string>
+                                                                       <real>216</real>
+                                                                       <string>PBXMemberTypeColumnIdentifier</string>
+                                                                       <real>97</real>
+                                                                       <string>PBXMemberBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>PBXModuleWindowStatusBarHidden2</key>
+                                                               <integer>1</integer>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>385 179 630 352 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXClassBrowserModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>332pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>332pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXClassBrowserModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C0AD2AF069F1E9B00FABCE6</string>
+                               <string>1C0AD2B0069F1E9B00FABCE6</string>
+                               <string>1CA6456E063B45B4001379D8</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.classbrowser</string>
+                       <key>WindowString</key>
+                       <string>385 179 630 352 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C0AD2AF069F1E9B00FABCE6</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+       </array>
+</dict>
+</plist>
diff --git a/macosx/HandBrake.xcodeproj/pri.pbxuser b/macosx/HandBrake.xcodeproj/pri.pbxuser
new file mode 100644 (file)
index 0000000..d6247b7
--- /dev/null
@@ -0,0 +1,209 @@
+// !$*UTF8*$!
+{
+       0D096DFE0B707D1200A845D4 /* libhb dlib */ = {
+               activeExec = 0;
+       };
+       0DFA5C560B8DD1760020BC09 /* HandBrake */ = {
+               isa = PBXExecutable;
+               activeArgIndex = 2147483647;
+               activeArgIndices = (
+               );
+               argumentStrings = (
+               );
+               autoAttachOnCrash = 1;
+               configStateDict = {
+               };
+               customDataFormattersEnabled = 1;
+               debuggerPlugin = GDBDebugging;
+               disassemblyDisplayState = 0;
+               enableDebugStr = 1;
+               environmentEntries = (
+               );
+               executableSystemSymbolLevel = 0;
+               executableUserSymbolLevel = 0;
+               libgmallocEnabled = 0;
+               name = HandBrake;
+               sourceDirectories = (
+               );
+       };
+       0DFA5C570B8DD1760020BC09 /* Instant HandBrake */ = {
+               isa = PBXExecutable;
+               activeArgIndex = 2147483647;
+               activeArgIndices = (
+               );
+               argumentStrings = (
+               );
+               autoAttachOnCrash = 1;
+               configStateDict = {
+               };
+               customDataFormattersEnabled = 1;
+               debuggerPlugin = GDBDebugging;
+               disassemblyDisplayState = 0;
+               dylibVariantSuffix = "";
+               enableDebugStr = 1;
+               environmentEntries = (
+               );
+               executableSystemSymbolLevel = 0;
+               executableUserSymbolLevel = 0;
+               libgmallocEnabled = 0;
+               name = "Instant HandBrake";
+               sourceDirectories = (
+               );
+       };
+       0DFA5C580B8DD1760020BC09 /* HandBrakeCLI */ = {
+               isa = PBXExecutable;
+               activeArgIndex = 2147483647;
+               activeArgIndices = (
+               );
+               argumentStrings = (
+               );
+               autoAttachOnCrash = 1;
+               configStateDict = {
+               };
+               customDataFormattersEnabled = 1;
+               debuggerPlugin = GDBDebugging;
+               disassemblyDisplayState = 0;
+               enableDebugStr = 1;
+               environmentEntries = (
+               );
+               executableSystemSymbolLevel = 0;
+               executableUserSymbolLevel = 0;
+               libgmallocEnabled = 0;
+               name = HandBrakeCLI;
+               sourceDirectories = (
+               );
+       };
+       0DFA5C680B8DD17A0020BC09 /* Source Control */ = {
+               isa = PBXSourceControlManager;
+               fallbackIsa = XCSourceControlManager;
+               isSCMEnabled = 0;
+               scmConfiguration = {
+               };
+               scmType = "";
+       };
+       0DFA5C690B8DD17A0020BC09 /* Code sense */ = {
+               isa = PBXCodeSenseManager;
+               indexTemplatePath = "";
+       };
+       0DFA5C7E0B8DD3B60020BC09 /* declpcm.c */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {962, 1274}}";
+                       sepNavSelRange = "{441, 18}";
+                       sepNavVisRect = "{{0, 0}, {962, 387}}";
+               };
+       };
+       0DFA5D0E0B8DD9FB0020BC09 /* XCBreakpointsBucket */ = {
+               isa = XCBreakpointsBucket;
+               name = "Project Breakpoints";
+               objects = (
+               );
+       };
+       0DFF0B710B6BC6E600549488 /* libhb */ = {
+               activeExec = 0;
+       };
+       0DFF0C090B6BCEC200549488 /* HandBrakeCLI */ = {
+               activeExec = 0;
+               executables = (
+                       0DFA5C580B8DD1760020BC09 /* HandBrakeCLI */,
+               );
+       };
+       29B97313FDCFA39411CA2CEA /* Project object */ = {
+               activeBuildConfigurationName = UB;
+               activeExecutable = 0DFA5C570B8DD1760020BC09 /* Instant HandBrake */;
+               activeTarget = 0D096DFE0B707D1200A845D4 /* libhb dlib */;
+               addToTargets = (
+                       4DD93F8D082036E8008E1322 /* HandBrake */,
+               );
+               breakpointsGroup = 0DFA5D0E0B8DD9FB0020BC09 /* XCBreakpointsBucket */;
+               codeSenseManager = 0DFA5C690B8DD17A0020BC09 /* Code sense */;
+               executables = (
+                       0DFA5C560B8DD1760020BC09 /* HandBrake */,
+                       0DFA5C570B8DD1760020BC09 /* Instant HandBrake */,
+                       0DFA5C580B8DD1760020BC09 /* HandBrakeCLI */,
+               );
+               perUserDictionary = {
+                       PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       20,
+                                       671,
+                                       20,
+                                       48,
+                                       43,
+                                       43,
+                                       20,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXFileDataSource_FiletypeID,
+                                       PBXFileDataSource_Filename_ColumnID,
+                                       PBXFileDataSource_Built_ColumnID,
+                                       PBXFileDataSource_ObjectSize_ColumnID,
+                                       PBXFileDataSource_Errors_ColumnID,
+                                       PBXFileDataSource_Warnings_ColumnID,
+                                       PBXFileDataSource_Target_ColumnID,
+                               );
+                       };
+                       PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       20,
+                                       200,
+                                       491,
+                                       20,
+                                       48,
+                                       43,
+                                       43,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXFileDataSource_FiletypeID,
+                                       PBXFileDataSource_Filename_ColumnID,
+                                       PBXTargetDataSource_PrimaryAttribute,
+                                       PBXFileDataSource_Built_ColumnID,
+                                       PBXFileDataSource_ObjectSize_ColumnID,
+                                       PBXFileDataSource_Errors_ColumnID,
+                                       PBXFileDataSource_Warnings_ColumnID,
+                               );
+                       };
+                       PBXPerProjectTemplateStateSaveDate = 193999038;
+                       PBXWorkspaceStateSaveDate = 193999038;
+               };
+               sourceControlManager = 0DFA5C680B8DD17A0020BC09 /* Source Control */;
+               userBuildSettings = {
+               };
+       };
+       4D1EA2D90993B01000FDC1A2 /* Instant HandBrake */ = {
+               activeExec = 0;
+               executables = (
+                       0DFA5C570B8DD1760020BC09 /* Instant HandBrake */,
+               );
+       };
+       4D1EA31A0993B24700FDC1A2 /* ExpressController.h */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {962, 784}}";
+                       sepNavSelRange = "{49, 15}";
+                       sepNavVisRect = "{{0, 0}, {962, 387}}";
+               };
+       };
+       4DD93F8D082036E8008E1322 /* HandBrake */ = {
+               activeExec = 0;
+               executables = (
+                       0DFA5C560B8DD1760020BC09 /* HandBrake */,
+               );
+       };
+       4DF3C8CB052889CD00A80101 /* Controller.h */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {459, 3038}}";
+                       sepNavSelRange = "{7915, 0}";
+                       sepNavVisRect = "{{0, 0}, {459, 186}}";
+               };
+       };
+       526FBC760B4CA8F40064E04C /* test.c */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {962, 13230}}";
+                       sepNavSelRange = "{322, 16}";
+                       sepNavVisRect = "{{0, 0}, {962, 387}}";
+               };
+       };
+}
similarity index 71%
rename from macosx/MediaFork.xcodeproj/project.pbxproj
rename to macosx/HandBrake.xcodeproj/project.pbxproj
index 2a1819d..5dc600a 100644 (file)
                0D096E010B707D3400A845D4 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9B0B4CAB100064E04C /* common.c */; };
                0D096E020B707D3400A845D4 /* deca52.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9D0B4CAB100064E04C /* deca52.c */; };
                0D096E030B707D3400A845D4 /* decavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9E0B4CAB100064E04C /* decavcodec.c */; };
-               0D096E040B707D3400A845D4 /* declpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9F0B4CAB100064E04C /* declpcm.c */; };
-               0D096E050B707D3400A845D4 /* decmpeg2.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA00B4CAB100064E04C /* decmpeg2.c */; };
-               0D096E060B707D3400A845D4 /* decsub.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA10B4CAB100064E04C /* decsub.c */; };
-               0D096E070B707D3400A845D4 /* demuxmpeg.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA20B4CAB100064E04C /* demuxmpeg.c */; };
-               0D096E080B707D3400A845D4 /* dvd.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA30B4CAB100064E04C /* dvd.c */; };
-               0D096E090B707D3400A845D4 /* encavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA40B4CAB100064E04C /* encavcodec.c */; };
-               0D096E0A0B707D3400A845D4 /* encfaac.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA50B4CAB100064E04C /* encfaac.c */; };
-               0D096E0B0B707D3400A845D4 /* enclame.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA60B4CAB100064E04C /* enclame.c */; };
-               0D096E0C0B707D3400A845D4 /* encvorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA70B4CAB100064E04C /* encvorbis.c */; };
-               0D096E0D0B707D3400A845D4 /* encx264.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA80B4CAB100064E04C /* encx264.c */; };
-               0D096E0E0B707D3400A845D4 /* encxvid.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA90B4CAB100064E04C /* encxvid.c */; };
-               0D096E0F0B707D3400A845D4 /* fifo.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCAA0B4CAB100064E04C /* fifo.c */; };
-               0D096E100B707D3400A845D4 /* muxavi.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCAE0B4CAB100064E04C /* muxavi.c */; };
-               0D096E110B707D3400A845D4 /* muxcommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCAF0B4CAB100064E04C /* muxcommon.c */; };
-               0D096E120B707D3400A845D4 /* muxmp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB00B4CAB100064E04C /* muxmp4.c */; };
-               0D096E130B707D3400A845D4 /* muxogm.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB10B4CAB100064E04C /* muxogm.c */; };
-               0D096E140B707D3400A845D4 /* ports.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB20B4CAB100064E04C /* ports.c */; };
-               0D096E150B707D3400A845D4 /* reader.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB40B4CAB100064E04C /* reader.c */; };
-               0D096E160B707D3400A845D4 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB50B4CAB100064E04C /* render.c */; };
-               0D096E170B707D3400A845D4 /* scan.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB60B4CAB100064E04C /* scan.c */; };
-               0D096E180B707D3400A845D4 /* sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB70B4CAB100064E04C /* sync.c */; };
-               0D096E190B707D3400A845D4 /* update.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB80B4CAB100064E04C /* update.c */; };
-               0D096E1A0B707D3400A845D4 /* work.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB90B4CAB100064E04C /* work.c */; };
                0D096EA30B70884A00A845D4 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; };
-               0D75EDC00B6FF9DA0090EA86 /* MediaFork.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4D118405053054CD00C39CA9 /* MediaFork.icns */; };
-               0D9C5CE50B77E85B00828855 /* mediafork.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D9C5CE40B77E85B00828855 /* mediafork.c */; };
-               0D9C5CE60B77E85B00828855 /* mediafork.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D9C5CE40B77E85B00828855 /* mediafork.c */; };
-               0DF377430B7BEACA00115CB0 /* ipodutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DF377420B7BEACA00115CB0 /* ipodutil.cpp */; };
-               0DF377440B7BEACA00115CB0 /* ipodutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DF377420B7BEACA00115CB0 /* ipodutil.cpp */; };
                0DF377980B7BF99A00115CB0 /* fakexcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DF377970B7BF99A00115CB0 /* fakexcode.cpp */; };
+               0DFA5C7B0B8DD1E90020BC09 /* HandBrake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */; };
+               0DFA5CC00B8DD3FE0020BC09 /* declpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C7E0B8DD3B60020BC09 /* declpcm.c */; };
+               0DFA5CC10B8DD3FE0020BC09 /* decmpeg2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C7F0B8DD3B60020BC09 /* decmpeg2.c */; };
+               0DFA5CC20B8DD3FE0020BC09 /* decsub.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C800B8DD3B60020BC09 /* decsub.c */; };
+               0DFA5CC30B8DD3FE0020BC09 /* demuxmpeg.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C810B8DD3B60020BC09 /* demuxmpeg.c */; };
+               0DFA5CC40B8DD3FE0020BC09 /* dvd.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C820B8DD3B60020BC09 /* dvd.c */; };
+               0DFA5CC50B8DD3FE0020BC09 /* encavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C830B8DD3B60020BC09 /* encavcodec.c */; };
+               0DFA5CC60B8DD3FE0020BC09 /* encfaac.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C840B8DD3B60020BC09 /* encfaac.c */; };
+               0DFA5CC70B8DD3FE0020BC09 /* enclame.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C850B8DD3B60020BC09 /* enclame.c */; };
+               0DFA5CC80B8DD3FE0020BC09 /* encvorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C860B8DD3B60020BC09 /* encvorbis.c */; };
+               0DFA5CC90B8DD3FE0020BC09 /* encx264.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C870B8DD3B60020BC09 /* encx264.c */; };
+               0DFA5CCA0B8DD3FE0020BC09 /* encxvid.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C880B8DD3B60020BC09 /* encxvid.c */; };
+               0DFA5CCB0B8DD3FE0020BC09 /* fifo.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C890B8DD3B60020BC09 /* fifo.c */; };
+               0DFA5CCC0B8DD3FE0020BC09 /* hb.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C8A0B8DD3B60020BC09 /* hb.c */; };
+               0DFA5CCD0B8DD3FE0020BC09 /* ipodutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C8D0B8DD3B60020BC09 /* ipodutil.cpp */; };
+               0DFA5CCE0B8DD3FE0020BC09 /* muxavi.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C910B8DD3B60020BC09 /* muxavi.c */; };
+               0DFA5CCF0B8DD3FE0020BC09 /* muxcommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C920B8DD3B60020BC09 /* muxcommon.c */; };
+               0DFA5CD00B8DD3FE0020BC09 /* muxmp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C930B8DD3B60020BC09 /* muxmp4.c */; };
+               0DFA5CD10B8DD3FE0020BC09 /* muxogm.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C940B8DD3B60020BC09 /* muxogm.c */; };
+               0DFA5CD20B8DD3FE0020BC09 /* ports.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C950B8DD3B60020BC09 /* ports.c */; };
+               0DFA5CD30B8DD3FE0020BC09 /* reader.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C970B8DD3B60020BC09 /* reader.c */; };
+               0DFA5CD40B8DD3FE0020BC09 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C980B8DD3B60020BC09 /* render.c */; };
+               0DFA5CD50B8DD3FE0020BC09 /* scan.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C990B8DD3B60020BC09 /* scan.c */; };
+               0DFA5CD60B8DD3FE0020BC09 /* sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C9A0B8DD3B60020BC09 /* sync.c */; };
+               0DFA5CD70B8DD3FE0020BC09 /* update.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C9B0B8DD3B60020BC09 /* update.c */; };
+               0DFA5CD80B8DD3FE0020BC09 /* work.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C9C0B8DD3B60020BC09 /* work.c */; };
+               0DFA5CD90B8DD4210020BC09 /* declpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C7E0B8DD3B60020BC09 /* declpcm.c */; };
+               0DFA5CDA0B8DD4210020BC09 /* decmpeg2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C7F0B8DD3B60020BC09 /* decmpeg2.c */; };
+               0DFA5CDB0B8DD4210020BC09 /* decsub.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C800B8DD3B60020BC09 /* decsub.c */; };
+               0DFA5CDC0B8DD4210020BC09 /* demuxmpeg.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C810B8DD3B60020BC09 /* demuxmpeg.c */; };
+               0DFA5CDD0B8DD4210020BC09 /* dvd.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C820B8DD3B60020BC09 /* dvd.c */; };
+               0DFA5CDE0B8DD4210020BC09 /* encavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C830B8DD3B60020BC09 /* encavcodec.c */; };
+               0DFA5CDF0B8DD4210020BC09 /* encfaac.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C840B8DD3B60020BC09 /* encfaac.c */; };
+               0DFA5CE00B8DD4210020BC09 /* enclame.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C850B8DD3B60020BC09 /* enclame.c */; };
+               0DFA5CE10B8DD4210020BC09 /* encvorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C860B8DD3B60020BC09 /* encvorbis.c */; };
+               0DFA5CE20B8DD4210020BC09 /* encx264.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C870B8DD3B60020BC09 /* encx264.c */; };
+               0DFA5CE30B8DD4210020BC09 /* encxvid.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C880B8DD3B60020BC09 /* encxvid.c */; };
+               0DFA5CE40B8DD4210020BC09 /* fifo.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C890B8DD3B60020BC09 /* fifo.c */; };
+               0DFA5CE50B8DD4210020BC09 /* hb.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C8A0B8DD3B60020BC09 /* hb.c */; };
+               0DFA5CE60B8DD4210020BC09 /* ipodutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C8D0B8DD3B60020BC09 /* ipodutil.cpp */; };
+               0DFA5CE70B8DD4210020BC09 /* muxavi.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C910B8DD3B60020BC09 /* muxavi.c */; };
+               0DFA5CE80B8DD4210020BC09 /* muxcommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C920B8DD3B60020BC09 /* muxcommon.c */; };
+               0DFA5CE90B8DD4210020BC09 /* muxmp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C930B8DD3B60020BC09 /* muxmp4.c */; };
+               0DFA5CEA0B8DD4210020BC09 /* muxogm.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C940B8DD3B60020BC09 /* muxogm.c */; };
+               0DFA5CEB0B8DD4210020BC09 /* ports.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C950B8DD3B60020BC09 /* ports.c */; };
+               0DFA5CEC0B8DD4210020BC09 /* reader.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C970B8DD3B60020BC09 /* reader.c */; };
+               0DFA5CED0B8DD4210020BC09 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C980B8DD3B60020BC09 /* render.c */; };
+               0DFA5CEE0B8DD4210020BC09 /* scan.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C990B8DD3B60020BC09 /* scan.c */; };
+               0DFA5CEF0B8DD4210020BC09 /* sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C9A0B8DD3B60020BC09 /* sync.c */; };
+               0DFA5CF00B8DD4210020BC09 /* update.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C9B0B8DD3B60020BC09 /* update.c */; };
+               0DFA5CF10B8DD4210020BC09 /* work.c in Sources */ = {isa = PBXBuildFile; fileRef = 0DFA5C9C0B8DD3B60020BC09 /* work.c */; };
+               0DFA5CF80B8DD7B40020BC09 /* HandBrake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */; };
+               0DFA5D070B8DD9040020BC09 /* HandBrake.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0DFA5D060B8DD9040020BC09 /* HandBrake.plist */; };
                0DFF0B770B6BC72A00549488 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9B0B4CAB100064E04C /* common.c */; };
                0DFF0B790B6BC72A00549488 /* deca52.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9D0B4CAB100064E04C /* deca52.c */; };
                0DFF0B7A0B6BC72A00549488 /* decavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9E0B4CAB100064E04C /* decavcodec.c */; };
-               0DFF0B7B0B6BC72A00549488 /* declpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9F0B4CAB100064E04C /* declpcm.c */; };
-               0DFF0B7C0B6BC72A00549488 /* decmpeg2.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA00B4CAB100064E04C /* decmpeg2.c */; };
-               0DFF0B7D0B6BC72A00549488 /* decsub.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA10B4CAB100064E04C /* decsub.c */; };
-               0DFF0B7E0B6BC72A00549488 /* demuxmpeg.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA20B4CAB100064E04C /* demuxmpeg.c */; };
-               0DFF0B7F0B6BC72A00549488 /* dvd.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA30B4CAB100064E04C /* dvd.c */; };
-               0DFF0B800B6BC72A00549488 /* encavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA40B4CAB100064E04C /* encavcodec.c */; };
-               0DFF0B810B6BC72A00549488 /* encfaac.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA50B4CAB100064E04C /* encfaac.c */; };
-               0DFF0B820B6BC72A00549488 /* enclame.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA60B4CAB100064E04C /* enclame.c */; };
-               0DFF0B830B6BC72A00549488 /* encvorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA70B4CAB100064E04C /* encvorbis.c */; };
-               0DFF0B840B6BC72A00549488 /* encx264.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA80B4CAB100064E04C /* encx264.c */; };
-               0DFF0B850B6BC72A00549488 /* encxvid.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCA90B4CAB100064E04C /* encxvid.c */; };
-               0DFF0B860B6BC72A00549488 /* fifo.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCAA0B4CAB100064E04C /* fifo.c */; };
-               0DFF0B8B0B6BC72A00549488 /* muxavi.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCAE0B4CAB100064E04C /* muxavi.c */; };
-               0DFF0B8C0B6BC72A00549488 /* muxcommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCAF0B4CAB100064E04C /* muxcommon.c */; };
-               0DFF0B8D0B6BC72A00549488 /* muxmp4.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB00B4CAB100064E04C /* muxmp4.c */; };
-               0DFF0B8E0B6BC72A00549488 /* muxogm.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB10B4CAB100064E04C /* muxogm.c */; };
-               0DFF0B8F0B6BC72A00549488 /* ports.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB20B4CAB100064E04C /* ports.c */; };
-               0DFF0B910B6BC72A00549488 /* reader.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB40B4CAB100064E04C /* reader.c */; };
-               0DFF0B920B6BC72A00549488 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB50B4CAB100064E04C /* render.c */; };
-               0DFF0B930B6BC72A00549488 /* scan.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB60B4CAB100064E04C /* scan.c */; };
-               0DFF0B940B6BC72A00549488 /* sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB70B4CAB100064E04C /* sync.c */; };
-               0DFF0B950B6BC72A00549488 /* update.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB80B4CAB100064E04C /* update.c */; };
-               0DFF0B960B6BC72A00549488 /* work.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBCB90B4CAB100064E04C /* work.c */; };
                0DFF0C100B6BCEE800549488 /* test.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC760B4CA8F40064E04C /* test.c */; };
                4D1125D809D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; };
                4D1125D909D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; };
@@ -86,7 +88,6 @@
                4DD93F94082036E8008E1322 /* PrefsController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DE93A3507F5A2C900F3C78F /* PrefsController.h */; };
                4DD93F96082036E8008E1322 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
                4DD93F97082036E8008E1322 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
-               4DD93F98082036E8008E1322 /* MediaFork.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4D118405053054CD00C39CA9 /* MediaFork.icns */; };
                4DD93F9A082036E8008E1322 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; settings = {ATTRIBUTES = (); }; };
                4DD93F9B082036E8008E1322 /* Controller.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4DF3C8CC052889CD00A80101 /* Controller.mm */; };
                4DD93F9C082036E8008E1322 /* PictureGLView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D85758E052B78E300C39CA9 /* PictureGLView.mm */; };
@@ -97,7 +98,6 @@
                4DD93FA2082036E8008E1322 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
                4DD93FA3082036E8008E1322 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DEB2024052B055F00C39CA9 /* IOKit.framework */; };
                4DD93FA4082036E8008E1322 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */; };
-               4DE09E63082038A400FB751F /* MediaFork.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4DE09E62082038A400FB751F /* MediaFork.plist */; };
                52AFF86A0B59BD07000DA7C4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
                52AFF86B0B59BD14000DA7C4 /* Express.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4D1EA2DC0993B01000FDC1A2 /* Express.plist */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
                089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-               0D096DFF0B707D1200A845D4 /* libmediafork.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libmediafork.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
-               0D6E35760B6BD4F0005AABB3 /* MediaFork.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MediaFork.app; sourceTree = BUILT_PRODUCTS_DIR; };
-               0D9C5CE40B77E85B00828855 /* mediafork.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = mediafork.c; path = ../libmediafork/mediafork.c; sourceTree = SOURCE_ROOT; };
-               0DF377420B7BEACA00115CB0 /* ipodutil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ipodutil.cpp; path = ../libmediafork/ipodutil.cpp; sourceTree = SOURCE_ROOT; };
+               0D096DFF0B707D1200A845D4 /* libhb.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libhb.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+               0D6E35760B6BD4F0005AABB3 /* HandBrake.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HandBrake.app; sourceTree = BUILT_PRODUCTS_DIR; };
                0DF377970B7BF99A00115CB0 /* fakexcode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = fakexcode.cpp; path = ../test/fakexcode.cpp; sourceTree = SOURCE_ROOT; };
-               0DFF0B720B6BC6E600549488 /* libmediafork.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmediafork.a; sourceTree = BUILT_PRODUCTS_DIR; };
-               0DFF0C0A0B6BCEC200549488 /* MediaForkCLI */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = MediaForkCLI; sourceTree = BUILT_PRODUCTS_DIR; };
+               0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = HandBrake.icns; sourceTree = "<group>"; };
+               0DFA5C7E0B8DD3B60020BC09 /* declpcm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = declpcm.c; path = ../libhb/declpcm.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C7F0B8DD3B60020BC09 /* decmpeg2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decmpeg2.c; path = ../libhb/decmpeg2.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C800B8DD3B60020BC09 /* decsub.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decsub.c; path = ../libhb/decsub.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C810B8DD3B60020BC09 /* demuxmpeg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = demuxmpeg.c; path = ../libhb/demuxmpeg.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C820B8DD3B60020BC09 /* dvd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dvd.c; path = ../libhb/dvd.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C830B8DD3B60020BC09 /* encavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encavcodec.c; path = ../libhb/encavcodec.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C840B8DD3B60020BC09 /* encfaac.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encfaac.c; path = ../libhb/encfaac.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C850B8DD3B60020BC09 /* enclame.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = enclame.c; path = ../libhb/enclame.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C860B8DD3B60020BC09 /* encvorbis.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encvorbis.c; path = ../libhb/encvorbis.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C870B8DD3B60020BC09 /* encx264.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encx264.c; path = ../libhb/encx264.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C880B8DD3B60020BC09 /* encxvid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encxvid.c; path = ../libhb/encxvid.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C890B8DD3B60020BC09 /* fifo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fifo.c; path = ../libhb/fifo.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C8A0B8DD3B60020BC09 /* hb.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hb.c; path = ../libhb/hb.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C8D0B8DD3B60020BC09 /* ipodutil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ipodutil.cpp; path = ../libhb/ipodutil.cpp; sourceTree = SOURCE_ROOT; };
+               0DFA5C910B8DD3B60020BC09 /* muxavi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxavi.c; path = ../libhb/muxavi.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C920B8DD3B60020BC09 /* muxcommon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxcommon.c; path = ../libhb/muxcommon.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C930B8DD3B60020BC09 /* muxmp4.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxmp4.c; path = ../libhb/muxmp4.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C940B8DD3B60020BC09 /* muxogm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxogm.c; path = ../libhb/muxogm.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C950B8DD3B60020BC09 /* ports.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ports.c; path = ../libhb/ports.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C970B8DD3B60020BC09 /* reader.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = reader.c; path = ../libhb/reader.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C980B8DD3B60020BC09 /* render.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = render.c; path = ../libhb/render.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C990B8DD3B60020BC09 /* scan.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scan.c; path = ../libhb/scan.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C9A0B8DD3B60020BC09 /* sync.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sync.c; path = ../libhb/sync.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C9B0B8DD3B60020BC09 /* update.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = update.c; path = ../libhb/update.c; sourceTree = SOURCE_ROOT; };
+               0DFA5C9C0B8DD3B60020BC09 /* work.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = work.c; path = ../libhb/work.c; sourceTree = SOURCE_ROOT; };
+               0DFA5D060B8DD9040020BC09 /* HandBrake.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = HandBrake.plist; sourceTree = "<group>"; };
+               0DFF0B720B6BC6E600549488 /* libhb.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libhb.a; sourceTree = BUILT_PRODUCTS_DIR; };
+               0DFF0C0A0B6BCEC200549488 /* HandBrakeCLI */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = HandBrakeCLI; sourceTree = BUILT_PRODUCTS_DIR; };
                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
                29B97316FDCFA39411CA2CEA /* main.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
                29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
                29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
                29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
                4D1125D709D72FD200E0657B /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = /usr/lib/libz.dylib; sourceTree = "<absolute>"; };
-               4D118405053054CD00C39CA9 /* MediaFork.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = MediaFork.icns; sourceTree = "<group>"; };
-               4D1EA2DA0993B01000FDC1A2 /* Instant MediaFork.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Instant MediaFork.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+               4D1EA2DA0993B01000FDC1A2 /* Instant HandBrake.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Instant HandBrake.app"; sourceTree = BUILT_PRODUCTS_DIR; };
                4D1EA2DC0993B01000FDC1A2 /* Express.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Express.plist; sourceTree = "<group>"; };
                4D1EA3000993B13700FDC1A2 /* Express.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Express.nib; path = English.lproj/Express.nib; sourceTree = "<group>"; };
                4D1EA31A0993B24700FDC1A2 /* ExpressController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ExpressController.h; sourceTree = "<group>"; };
                4DD27BA507C0065C0023D231 /* QueueController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = QueueController.h; sourceTree = "<group>"; };
                4DD27BA607C0065C0023D231 /* QueueController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = QueueController.mm; sourceTree = "<group>"; };
                4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
-               4DE09E62082038A400FB751F /* MediaFork.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = MediaFork.plist; sourceTree = "<group>"; };
                4DE93A3507F5A2C900F3C78F /* PrefsController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrefsController.h; sourceTree = "<group>"; };
                4DE93A3607F5A2C900F3C78F /* PrefsController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PrefsController.m; sourceTree = "<group>"; };
                4DEB2024052B055F00C39CA9 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
                4DF3C8CB052889CD00A80101 /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = "<group>"; };
                4DF3C8CC052889CD00A80101 /* Controller.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = Controller.mm; sourceTree = "<group>"; };
                526FBC760B4CA8F40064E04C /* test.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = test.c; path = ../test/test.c; sourceTree = SOURCE_ROOT; };
-               526FBC9B0B4CAB100064E04C /* common.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = common.c; path = ../libmediafork/common.c; sourceTree = SOURCE_ROOT; };
-               526FBC9D0B4CAB100064E04C /* deca52.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = deca52.c; path = ../libmediafork/deca52.c; sourceTree = SOURCE_ROOT; };
-               526FBC9E0B4CAB100064E04C /* decavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decavcodec.c; path = ../libmediafork/decavcodec.c; sourceTree = SOURCE_ROOT; };
-               526FBC9F0B4CAB100064E04C /* declpcm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = declpcm.c; path = ../libmediafork/declpcm.c; sourceTree = SOURCE_ROOT; };
-               526FBCA00B4CAB100064E04C /* decmpeg2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decmpeg2.c; path = ../libmediafork/decmpeg2.c; sourceTree = SOURCE_ROOT; };
-               526FBCA10B4CAB100064E04C /* decsub.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decsub.c; path = ../libmediafork/decsub.c; sourceTree = SOURCE_ROOT; };
-               526FBCA20B4CAB100064E04C /* demuxmpeg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = demuxmpeg.c; path = ../libmediafork/demuxmpeg.c; sourceTree = SOURCE_ROOT; };
-               526FBCA30B4CAB100064E04C /* dvd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dvd.c; path = ../libmediafork/dvd.c; sourceTree = SOURCE_ROOT; };
-               526FBCA40B4CAB100064E04C /* encavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encavcodec.c; path = ../libmediafork/encavcodec.c; sourceTree = SOURCE_ROOT; };
-               526FBCA50B4CAB100064E04C /* encfaac.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encfaac.c; path = ../libmediafork/encfaac.c; sourceTree = SOURCE_ROOT; };
-               526FBCA60B4CAB100064E04C /* enclame.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = enclame.c; path = ../libmediafork/enclame.c; sourceTree = SOURCE_ROOT; };
-               526FBCA70B4CAB100064E04C /* encvorbis.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encvorbis.c; path = ../libmediafork/encvorbis.c; sourceTree = SOURCE_ROOT; };
-               526FBCA80B4CAB100064E04C /* encx264.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encx264.c; path = ../libmediafork/encx264.c; sourceTree = SOURCE_ROOT; };
-               526FBCA90B4CAB100064E04C /* encxvid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encxvid.c; path = ../libmediafork/encxvid.c; sourceTree = SOURCE_ROOT; };
-               526FBCAA0B4CAB100064E04C /* fifo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fifo.c; path = ../libmediafork/fifo.c; sourceTree = SOURCE_ROOT; };
-               526FBCAE0B4CAB100064E04C /* muxavi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxavi.c; path = ../libmediafork/muxavi.c; sourceTree = SOURCE_ROOT; };
-               526FBCAF0B4CAB100064E04C /* muxcommon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxcommon.c; path = ../libmediafork/muxcommon.c; sourceTree = SOURCE_ROOT; };
-               526FBCB00B4CAB100064E04C /* muxmp4.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxmp4.c; path = ../libmediafork/muxmp4.c; sourceTree = SOURCE_ROOT; };
-               526FBCB10B4CAB100064E04C /* muxogm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxogm.c; path = ../libmediafork/muxogm.c; sourceTree = SOURCE_ROOT; };
-               526FBCB20B4CAB100064E04C /* ports.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ports.c; path = ../libmediafork/ports.c; sourceTree = SOURCE_ROOT; };
-               526FBCB40B4CAB100064E04C /* reader.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = reader.c; path = ../libmediafork/reader.c; sourceTree = SOURCE_ROOT; };
-               526FBCB50B4CAB100064E04C /* render.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = render.c; path = ../libmediafork/render.c; sourceTree = SOURCE_ROOT; };
-               526FBCB60B4CAB100064E04C /* scan.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scan.c; path = ../libmediafork/scan.c; sourceTree = SOURCE_ROOT; };
-               526FBCB70B4CAB100064E04C /* sync.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sync.c; path = ../libmediafork/sync.c; sourceTree = SOURCE_ROOT; };
-               526FBCB80B4CAB100064E04C /* update.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = update.c; path = ../libmediafork/update.c; sourceTree = SOURCE_ROOT; };
-               526FBCB90B4CAB100064E04C /* work.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = work.c; path = ../libmediafork/work.c; sourceTree = SOURCE_ROOT; };
+               526FBC9B0B4CAB100064E04C /* common.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = common.c; path = ../libhb/common.c; sourceTree = SOURCE_ROOT; };
+               526FBC9D0B4CAB100064E04C /* deca52.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = deca52.c; path = ../libhb/deca52.c; sourceTree = SOURCE_ROOT; };
+               526FBC9E0B4CAB100064E04C /* decavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decavcodec.c; path = ../libhb/decavcodec.c; sourceTree = SOURCE_ROOT; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
                19C28FACFE9D520D11CA2CBB /* Products */ = {
                        isa = PBXGroup;
                        children = (
-                               4D1EA2DA0993B01000FDC1A2 /* Instant MediaFork.app */,
-                               0DFF0B720B6BC6E600549488 /* libmediafork.a */,
-                               0DFF0C0A0B6BCEC200549488 /* MediaForkCLI */,
-                               0D6E35760B6BD4F0005AABB3 /* MediaFork.app */,
-                               0D096DFF0B707D1200A845D4 /* libmediafork.dylib */,
+                               4D1EA2DA0993B01000FDC1A2 /* Instant HandBrake.app */,
+                               0DFF0B720B6BC6E600549488 /* libhb.a */,
+                               0DFF0C0A0B6BCEC200549488 /* HandBrakeCLI */,
+                               0D6E35760B6BD4F0005AABB3 /* HandBrake.app */,
+                               0D096DFF0B707D1200A845D4 /* libhb.dylib */,
                        );
                        name = Products;
                        sourceTree = "<group>";
                29B97314FDCFA39411CA2CEA /* HandBrake */ = {
                        isa = PBXGroup;
                        children = (
-                               526FBC940B4CAA310064E04C /* Instant MediaFork Sources */,
-                               526FBC930B4CAA260064E04C /* MediaFork Sources */,
-                               526FBC920B4CAA120064E04C /* MediaForkCLI Sources */,
-                               526FBC8D0B4CA9F90064E04C /* libmediafork Sources */,
+                               526FBC940B4CAA310064E04C /* Instant HandBrake Sources */,
+                               526FBC930B4CAA260064E04C /* HandBrake Sources */,
+                               526FBC920B4CAA120064E04C /* HandBrakeCLI Sources */,
+                               526FBC8D0B4CA9F90064E04C /* libhb Sources */,
                                29B97315FDCFA39411CA2CEA /* Other Sources */,
                                29B97317FDCFA39411CA2CEA /* Resources */,
                                29B97323FDCFA39411CA2CEA /* Frameworks */,
                29B97317FDCFA39411CA2CEA /* Resources */ = {
                        isa = PBXGroup;
                        children = (
+                               0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */,
                                29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
-                               4D118405053054CD00C39CA9 /* MediaFork.icns */,
                                4D1EA3000993B13700FDC1A2 /* Express.nib */,
                                089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
                        );
                        name = Frameworks;
                        sourceTree = "<group>";
                };
-               526FBC8D0B4CA9F90064E04C /* libmediafork Sources */ = {
+               526FBC8D0B4CA9F90064E04C /* libhb Sources */ = {
                        isa = PBXGroup;
                        children = (
+                               0DFA5C7E0B8DD3B60020BC09 /* declpcm.c */,
+                               0DFA5C7F0B8DD3B60020BC09 /* decmpeg2.c */,
+                               0DFA5C800B8DD3B60020BC09 /* decsub.c */,
+                               0DFA5C810B8DD3B60020BC09 /* demuxmpeg.c */,
+                               0DFA5C820B8DD3B60020BC09 /* dvd.c */,
+                               0DFA5C830B8DD3B60020BC09 /* encavcodec.c */,
+                               0DFA5C840B8DD3B60020BC09 /* encfaac.c */,
+                               0DFA5C850B8DD3B60020BC09 /* enclame.c */,
+                               0DFA5C860B8DD3B60020BC09 /* encvorbis.c */,
+                               0DFA5C870B8DD3B60020BC09 /* encx264.c */,
+                               0DFA5C880B8DD3B60020BC09 /* encxvid.c */,
+                               0DFA5C890B8DD3B60020BC09 /* fifo.c */,
+                               0DFA5C8A0B8DD3B60020BC09 /* hb.c */,
+                               0DFA5C8D0B8DD3B60020BC09 /* ipodutil.cpp */,
+                               0DFA5C910B8DD3B60020BC09 /* muxavi.c */,
+                               0DFA5C920B8DD3B60020BC09 /* muxcommon.c */,
+                               0DFA5C930B8DD3B60020BC09 /* muxmp4.c */,
+                               0DFA5C940B8DD3B60020BC09 /* muxogm.c */,
+                               0DFA5C950B8DD3B60020BC09 /* ports.c */,
+                               0DFA5C970B8DD3B60020BC09 /* reader.c */,
+                               0DFA5C980B8DD3B60020BC09 /* render.c */,
+                               0DFA5C990B8DD3B60020BC09 /* scan.c */,
+                               0DFA5C9A0B8DD3B60020BC09 /* sync.c */,
+                               0DFA5C9B0B8DD3B60020BC09 /* update.c */,
+                               0DFA5C9C0B8DD3B60020BC09 /* work.c */,
                                526FBC9B0B4CAB100064E04C /* common.c */,
                                526FBC9D0B4CAB100064E04C /* deca52.c */,
                                526FBC9E0B4CAB100064E04C /* decavcodec.c */,
-                               526FBC9F0B4CAB100064E04C /* declpcm.c */,
-                               526FBCA00B4CAB100064E04C /* decmpeg2.c */,
-                               526FBCA10B4CAB100064E04C /* decsub.c */,
-                               0DF377420B7BEACA00115CB0 /* ipodutil.cpp */,
-                               526FBCA20B4CAB100064E04C /* demuxmpeg.c */,
-                               526FBCA30B4CAB100064E04C /* dvd.c */,
-                               526FBCA40B4CAB100064E04C /* encavcodec.c */,
-                               526FBCA50B4CAB100064E04C /* encfaac.c */,
-                               526FBCA60B4CAB100064E04C /* enclame.c */,
-                               526FBCA70B4CAB100064E04C /* encvorbis.c */,
-                               526FBCA80B4CAB100064E04C /* encx264.c */,
-                               526FBCA90B4CAB100064E04C /* encxvid.c */,
-                               526FBCAA0B4CAB100064E04C /* fifo.c */,
-                               526FBCAE0B4CAB100064E04C /* muxavi.c */,
-                               526FBCAF0B4CAB100064E04C /* muxcommon.c */,
-                               526FBCB00B4CAB100064E04C /* muxmp4.c */,
-                               0D9C5CE40B77E85B00828855 /* mediafork.c */,
-                               526FBCB10B4CAB100064E04C /* muxogm.c */,
-                               526FBCB20B4CAB100064E04C /* ports.c */,
-                               526FBCB40B4CAB100064E04C /* reader.c */,
-                               526FBCB50B4CAB100064E04C /* render.c */,
-                               526FBCB60B4CAB100064E04C /* scan.c */,
-                               526FBCB70B4CAB100064E04C /* sync.c */,
-                               526FBCB80B4CAB100064E04C /* update.c */,
-                               526FBCB90B4CAB100064E04C /* work.c */,
                        );
-                       name = "libmediafork Sources";
+                       name = "libhb Sources";
                        sourceTree = "<group>";
                };
-               526FBC920B4CAA120064E04C /* MediaForkCLI Sources */ = {
+               526FBC920B4CAA120064E04C /* HandBrakeCLI Sources */ = {
                        isa = PBXGroup;
                        children = (
                                0DF377970B7BF99A00115CB0 /* fakexcode.cpp */,
                                526FBC760B4CA8F40064E04C /* test.c */,
                        );
-                       name = "MediaForkCLI Sources";
+                       name = "HandBrakeCLI Sources";
                        sourceTree = "<group>";
                };
-               526FBC930B4CAA260064E04C /* MediaFork Sources */ = {
+               526FBC930B4CAA260064E04C /* HandBrake Sources */ = {
                        isa = PBXGroup;
                        children = (
-                               4DE09E62082038A400FB751F /* MediaFork.plist */,
+                               0DFA5D060B8DD9040020BC09 /* HandBrake.plist */,
                                4D1FD381073D19CE00E46515 /* PictureController.h */,
                                4D1FD382073D19CE00E46515 /* PictureController.mm */,
                                4DF3C8CB052889CD00A80101 /* Controller.h */,
                                4D2AE78909CCB24C007E18F6 /* DriveDetector.m */,
                                4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */,
                        );
-                       name = "MediaFork Sources";
+                       name = "HandBrake Sources";
                        sourceTree = "<group>";
                };
-               526FBC940B4CAA310064E04C /* Instant MediaFork Sources */ = {
+               526FBC940B4CAA310064E04C /* Instant HandBrake Sources */ = {
                        isa = PBXGroup;
                        children = (
                                4D1EA31A0993B24700FDC1A2 /* ExpressController.h */,
                                4D1EA31B0993B24700FDC1A2 /* ExpressController.m */,
                                4D1EA2DC0993B01000FDC1A2 /* Express.plist */,
                        );
-                       name = "Instant MediaFork Sources";
+                       name = "Instant HandBrake Sources";
                        sourceTree = "<group>";
                };
 /* End PBXGroup section */
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
-               0D096DFE0B707D1200A845D4 /* libmediafork dlib */ = {
+               0D096DFE0B707D1200A845D4 /* libhb dlib */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = 0D096E650B707D5800A845D4 /* Build configuration list for PBXNativeTarget "libmediafork dlib" */;
+                       buildConfigurationList = 0D096E650B707D5800A845D4 /* Build configuration list for PBXNativeTarget "libhb dlib" */;
                        buildPhases = (
                                0D096DFB0B707D1200A845D4 /* Headers */,
                                0D096DFC0B707D1200A845D4 /* Sources */,
                        );
                        dependencies = (
                        );
-                       name = "libmediafork dlib";
+                       name = "libhb dlib";
                        productName = "libmediafork dlib";
-                       productReference = 0D096DFF0B707D1200A845D4 /* libmediafork.dylib */;
+                       productReference = 0D096DFF0B707D1200A845D4 /* libhb.dylib */;
                        productType = "com.apple.product-type.library.dynamic";
                };
-               0DFF0B710B6BC6E600549488 /* libmediafork */ = {
+               0DFF0B710B6BC6E600549488 /* libhb */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = 0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libmediafork" */;
+                       buildConfigurationList = 0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libhb" */;
                        buildPhases = (
                                0DFF0B6E0B6BC6E600549488 /* Headers */,
                                0DFF0B6F0B6BC6E600549488 /* Sources */,
                        );
                        dependencies = (
                        );
-                       name = libmediafork;
+                       name = libhb;
                        productName = libmediafork;
-                       productReference = 0DFF0B720B6BC6E600549488 /* libmediafork.a */;
+                       productReference = 0DFF0B720B6BC6E600549488 /* libhb.a */;
                        productType = "com.apple.product-type.library.static";
                };
-               0DFF0C090B6BCEC200549488 /* MediaForkCLI */ = {
+               0DFF0C090B6BCEC200549488 /* HandBrakeCLI */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = 0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "MediaForkCLI" */;
+                       buildConfigurationList = 0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "HandBrakeCLI" */;
                        buildPhases = (
                                0DFF0C070B6BCEC200549488 /* Sources */,
                                0DFF0C080B6BCEC200549488 /* Frameworks */,
                        dependencies = (
                                0D6E35910B6BD5FA005AABB3 /* PBXTargetDependency */,
                        );
-                       name = MediaForkCLI;
+                       name = HandBrakeCLI;
                        productName = MediaForkCLI;
-                       productReference = 0DFF0C0A0B6BCEC200549488 /* MediaForkCLI */;
+                       productReference = 0DFF0C0A0B6BCEC200549488 /* HandBrakeCLI */;
                        productType = "com.apple.product-type.tool";
                };
-               4D1EA2D90993B01000FDC1A2 /* Instant MediaFork */ = {
+               4D1EA2D90993B01000FDC1A2 /* Instant HandBrake */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = 4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant MediaFork" */;
+                       buildConfigurationList = 4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant HandBrake" */;
                        buildPhases = (
                                4D1EA2D60993B01000FDC1A2 /* Resources */,
                                4D1EA2D70993B01000FDC1A2 /* Sources */,
                        dependencies = (
                                0DFF0BF20B6BCCB400549488 /* PBXTargetDependency */,
                        );
-                       name = "Instant MediaFork";
+                       name = "Instant HandBrake";
                        productName = "Instant HandBrake";
-                       productReference = 4D1EA2DA0993B01000FDC1A2 /* Instant MediaFork.app */;
+                       productReference = 4D1EA2DA0993B01000FDC1A2 /* Instant HandBrake.app */;
                        productType = "com.apple.product-type.application";
                };
-               4DD93F8D082036E8008E1322 /* MediaFork */ = {
+               4DD93F8D082036E8008E1322 /* HandBrake */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "MediaFork" */;
+                       buildConfigurationList = 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "HandBrake" */;
                        buildPhases = (
                                4DD93F8E082036E8008E1322 /* Headers */,
                                4DD93F95082036E8008E1322 /* Resources */,
                        dependencies = (
                                0DFF0BF40B6BCCB900549488 /* PBXTargetDependency */,
                        );
-                       name = MediaFork;
+                       name = HandBrake;
                        productName = HandBrake;
-                       productReference = 0D6E35760B6BD4F0005AABB3 /* MediaFork.app */;
+                       productReference = 0D6E35760B6BD4F0005AABB3 /* HandBrake.app */;
                        productType = "com.apple.product-type.application";
                };
 /* End PBXNativeTarget section */
 /* Begin PBXProject section */
                29B97313FDCFA39411CA2CEA /* Project object */ = {
                        isa = PBXProject;
-                       buildConfigurationList = 4D4E7BC4087804870051572B /* Build configuration list for PBXProject "MediaFork" */;
+                       buildConfigurationList = 4D4E7BC4087804870051572B /* Build configuration list for PBXProject "HandBrake" */;
                        hasScannedForEncodings = 1;
                        mainGroup = 29B97314FDCFA39411CA2CEA /* HandBrake */;
                        projectDirPath = "";
                        targets = (
-                               4DD93F8D082036E8008E1322 /* MediaFork */,
-                               4D1EA2D90993B01000FDC1A2 /* Instant MediaFork */,
-                               0DFF0B710B6BC6E600549488 /* libmediafork */,
-                               0DFF0C090B6BCEC200549488 /* MediaForkCLI */,
-                               0D096DFE0B707D1200A845D4 /* libmediafork dlib */,
+                               4DD93F8D082036E8008E1322 /* HandBrake */,
+                               4D1EA2D90993B01000FDC1A2 /* Instant HandBrake */,
+                               0DFF0B710B6BC6E600549488 /* libhb */,
+                               0DFF0C090B6BCEC200549488 /* HandBrakeCLI */,
+                               0D096DFE0B707D1200A845D4 /* libhb dlib */,
                        );
                };
 /* End PBXProject section */
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               0D75EDC00B6FF9DA0090EA86 /* MediaFork.icns in Resources */,
+                               0DFA5CF80B8DD7B40020BC09 /* HandBrake.icns in Resources */,
                                52AFF86B0B59BD14000DA7C4 /* Express.plist in Resources */,
                                52AFF86A0B59BD07000DA7C4 /* InfoPlist.strings in Resources */,
                                4D1EA3010993B13700FDC1A2 /* Express.nib in Resources */,
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               0DFA5D070B8DD9040020BC09 /* HandBrake.plist in Resources */,
                                4DD93F96082036E8008E1322 /* MainMenu.nib in Resources */,
                                4DD93F97082036E8008E1322 /* InfoPlist.strings in Resources */,
-                               4DD93F98082036E8008E1322 /* MediaFork.icns in Resources */,
-                               4DE09E63082038A400FB751F /* MediaFork.plist in Resources */,
+                               0DFA5C7B0B8DD1E90020BC09 /* HandBrake.icns in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               0DFA5CD90B8DD4210020BC09 /* declpcm.c in Sources */,
+                               0DFA5CDA0B8DD4210020BC09 /* decmpeg2.c in Sources */,
+                               0DFA5CDB0B8DD4210020BC09 /* decsub.c in Sources */,
+                               0DFA5CDC0B8DD4210020BC09 /* demuxmpeg.c in Sources */,
+                               0DFA5CDD0B8DD4210020BC09 /* dvd.c in Sources */,
+                               0DFA5CDE0B8DD4210020BC09 /* encavcodec.c in Sources */,
+                               0DFA5CDF0B8DD4210020BC09 /* encfaac.c in Sources */,
+                               0DFA5CE00B8DD4210020BC09 /* enclame.c in Sources */,
+                               0DFA5CE10B8DD4210020BC09 /* encvorbis.c in Sources */,
+                               0DFA5CE20B8DD4210020BC09 /* encx264.c in Sources */,
+                               0DFA5CE30B8DD4210020BC09 /* encxvid.c in Sources */,
+                               0DFA5CE40B8DD4210020BC09 /* fifo.c in Sources */,
+                               0DFA5CE50B8DD4210020BC09 /* hb.c in Sources */,
+                               0DFA5CE60B8DD4210020BC09 /* ipodutil.cpp in Sources */,
+                               0DFA5CE70B8DD4210020BC09 /* muxavi.c in Sources */,
+                               0DFA5CE80B8DD4210020BC09 /* muxcommon.c in Sources */,
+                               0DFA5CE90B8DD4210020BC09 /* muxmp4.c in Sources */,
+                               0DFA5CEA0B8DD4210020BC09 /* muxogm.c in Sources */,
+                               0DFA5CEB0B8DD4210020BC09 /* ports.c in Sources */,
+                               0DFA5CEC0B8DD4210020BC09 /* reader.c in Sources */,
+                               0DFA5CED0B8DD4210020BC09 /* render.c in Sources */,
+                               0DFA5CEE0B8DD4210020BC09 /* scan.c in Sources */,
+                               0DFA5CEF0B8DD4210020BC09 /* sync.c in Sources */,
+                               0DFA5CF00B8DD4210020BC09 /* update.c in Sources */,
+                               0DFA5CF10B8DD4210020BC09 /* work.c in Sources */,
                                0D096E010B707D3400A845D4 /* common.c in Sources */,
                                0D096E020B707D3400A845D4 /* deca52.c in Sources */,
                                0D096E030B707D3400A845D4 /* decavcodec.c in Sources */,
-                               0D096E040B707D3400A845D4 /* declpcm.c in Sources */,
-                               0D096E050B707D3400A845D4 /* decmpeg2.c in Sources */,
-                               0D096E060B707D3400A845D4 /* decsub.c in Sources */,
-                               0D096E070B707D3400A845D4 /* demuxmpeg.c in Sources */,
-                               0D096E080B707D3400A845D4 /* dvd.c in Sources */,
-                               0D096E090B707D3400A845D4 /* encavcodec.c in Sources */,
-                               0D096E0A0B707D3400A845D4 /* encfaac.c in Sources */,
-                               0D096E0B0B707D3400A845D4 /* enclame.c in Sources */,
-                               0D096E0C0B707D3400A845D4 /* encvorbis.c in Sources */,
-                               0D096E0D0B707D3400A845D4 /* encx264.c in Sources */,
-                               0D096E0E0B707D3400A845D4 /* encxvid.c in Sources */,
-                               0D096E0F0B707D3400A845D4 /* fifo.c in Sources */,
-                               0D096E100B707D3400A845D4 /* muxavi.c in Sources */,
-                               0D096E110B707D3400A845D4 /* muxcommon.c in Sources */,
-                               0D096E120B707D3400A845D4 /* muxmp4.c in Sources */,
-                               0D096E130B707D3400A845D4 /* muxogm.c in Sources */,
-                               0D096E140B707D3400A845D4 /* ports.c in Sources */,
-                               0D096E150B707D3400A845D4 /* reader.c in Sources */,
-                               0D096E160B707D3400A845D4 /* render.c in Sources */,
-                               0D096E170B707D3400A845D4 /* scan.c in Sources */,
-                               0D096E180B707D3400A845D4 /* sync.c in Sources */,
-                               0D096E190B707D3400A845D4 /* update.c in Sources */,
-                               0D096E1A0B707D3400A845D4 /* work.c in Sources */,
-                               0D9C5CE60B77E85B00828855 /* mediafork.c in Sources */,
-                               0DF377430B7BEACA00115CB0 /* ipodutil.cpp in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               0DFA5CC00B8DD3FE0020BC09 /* declpcm.c in Sources */,
+                               0DFA5CC10B8DD3FE0020BC09 /* decmpeg2.c in Sources */,
+                               0DFA5CC20B8DD3FE0020BC09 /* decsub.c in Sources */,
+                               0DFA5CC30B8DD3FE0020BC09 /* demuxmpeg.c in Sources */,
+                               0DFA5CC40B8DD3FE0020BC09 /* dvd.c in Sources */,
+                               0DFA5CC50B8DD3FE0020BC09 /* encavcodec.c in Sources */,
+                               0DFA5CC60B8DD3FE0020BC09 /* encfaac.c in Sources */,
+                               0DFA5CC70B8DD3FE0020BC09 /* enclame.c in Sources */,
+                               0DFA5CC80B8DD3FE0020BC09 /* encvorbis.c in Sources */,
+                               0DFA5CC90B8DD3FE0020BC09 /* encx264.c in Sources */,
+                               0DFA5CCA0B8DD3FE0020BC09 /* encxvid.c in Sources */,
+                               0DFA5CCB0B8DD3FE0020BC09 /* fifo.c in Sources */,
+                               0DFA5CCC0B8DD3FE0020BC09 /* hb.c in Sources */,
+                               0DFA5CCD0B8DD3FE0020BC09 /* ipodutil.cpp in Sources */,
+                               0DFA5CCE0B8DD3FE0020BC09 /* muxavi.c in Sources */,
+                               0DFA5CCF0B8DD3FE0020BC09 /* muxcommon.c in Sources */,
+                               0DFA5CD00B8DD3FE0020BC09 /* muxmp4.c in Sources */,
+                               0DFA5CD10B8DD3FE0020BC09 /* muxogm.c in Sources */,
+                               0DFA5CD20B8DD3FE0020BC09 /* ports.c in Sources */,
+                               0DFA5CD30B8DD3FE0020BC09 /* reader.c in Sources */,
+                               0DFA5CD40B8DD3FE0020BC09 /* render.c in Sources */,
+                               0DFA5CD50B8DD3FE0020BC09 /* scan.c in Sources */,
+                               0DFA5CD60B8DD3FE0020BC09 /* sync.c in Sources */,
+                               0DFA5CD70B8DD3FE0020BC09 /* update.c in Sources */,
+                               0DFA5CD80B8DD3FE0020BC09 /* work.c in Sources */,
                                0DFF0B770B6BC72A00549488 /* common.c in Sources */,
                                0DFF0B790B6BC72A00549488 /* deca52.c in Sources */,
                                0DFF0B7A0B6BC72A00549488 /* decavcodec.c in Sources */,
-                               0DFF0B7B0B6BC72A00549488 /* declpcm.c in Sources */,
-                               0DFF0B7C0B6BC72A00549488 /* decmpeg2.c in Sources */,
-                               0DFF0B7D0B6BC72A00549488 /* decsub.c in Sources */,
-                               0DFF0B7E0B6BC72A00549488 /* demuxmpeg.c in Sources */,
-                               0DFF0B7F0B6BC72A00549488 /* dvd.c in Sources */,
-                               0DFF0B800B6BC72A00549488 /* encavcodec.c in Sources */,
-                               0DFF0B810B6BC72A00549488 /* encfaac.c in Sources */,
-                               0DFF0B820B6BC72A00549488 /* enclame.c in Sources */,
-                               0DFF0B830B6BC72A00549488 /* encvorbis.c in Sources */,
-                               0DFF0B840B6BC72A00549488 /* encx264.c in Sources */,
-                               0DFF0B850B6BC72A00549488 /* encxvid.c in Sources */,
-                               0DFF0B860B6BC72A00549488 /* fifo.c in Sources */,
-                               0DFF0B8B0B6BC72A00549488 /* muxavi.c in Sources */,
-                               0DFF0B8C0B6BC72A00549488 /* muxcommon.c in Sources */,
-                               0DFF0B8D0B6BC72A00549488 /* muxmp4.c in Sources */,
-                               0DFF0B8E0B6BC72A00549488 /* muxogm.c in Sources */,
-                               0DFF0B8F0B6BC72A00549488 /* ports.c in Sources */,
-                               0DFF0B910B6BC72A00549488 /* reader.c in Sources */,
-                               0DFF0B920B6BC72A00549488 /* render.c in Sources */,
-                               0DFF0B930B6BC72A00549488 /* scan.c in Sources */,
-                               0DFF0B940B6BC72A00549488 /* sync.c in Sources */,
-                               0DFF0B950B6BC72A00549488 /* update.c in Sources */,
-                               0DFF0B960B6BC72A00549488 /* work.c in Sources */,
-                               0D9C5CE50B77E85B00828855 /* mediafork.c in Sources */,
-                               0DF377440B7BEACA00115CB0 /* ipodutil.cpp in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
 /* Begin PBXTargetDependency section */
                0D6E35910B6BD5FA005AABB3 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
-                       target = 0DFF0B710B6BC6E600549488 /* libmediafork */;
+                       target = 0DFF0B710B6BC6E600549488 /* libhb */;
                        targetProxy = 0D6E35900B6BD5FA005AABB3 /* PBXContainerItemProxy */;
                };
                0DFF0BF20B6BCCB400549488 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
-                       target = 0DFF0B710B6BC6E600549488 /* libmediafork */;
+                       target = 0DFF0B710B6BC6E600549488 /* libhb */;
                        targetProxy = 0DFF0BF10B6BCCB400549488 /* PBXContainerItemProxy */;
                };
                0DFF0BF40B6BCCB900549488 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
-                       target = 0DFF0B710B6BC6E600549488 /* libmediafork */;
+                       target = 0DFF0B710B6BC6E600549488 /* libhb */;
                        targetProxy = 0DFF0BF30B6BCCB900549488 /* PBXContainerItemProxy */;
                };
 /* End PBXTargetDependency section */
                0D096E660B707D5800A845D4 /* Development */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                COPY_PHASE_STRIP = NO;
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                LIBRARY_SEARCH_PATHS = "";
                                MACOSX_DEPLOYMENT_TARGET = 10.4;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=20070211",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100 ";
                                OTHER_LDFLAGS = (
                                        ../contrib/lib/libmp4v2.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libavcodec.a,
                                );
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SEPARATE_STRIP = YES;
                                ZERO_LINK = NO;
                        };
                0D096E670B707D5800A845D4 /* Deployment */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                COPY_PHASE_STRIP = YES;
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                LIBRARY_SEARCH_PATHS = "";
                                MACOSX_DEPLOYMENT_TARGET = 10.4;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=20070211",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100 ";
                                OTHER_LDFLAGS = (
                                        ../contrib/lib/libmp4v2.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libavcodec.a,
                                );
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SEPARATE_STRIP = YES;
                                ZERO_LINK = NO;
                        };
                0D096E680B707D5800A845D4 /* Default */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                EXECUTABLE_PREFIX = lib;
                                LIBRARY_SEARCH_PATHS = "";
                                MACOSX_DEPLOYMENT_TARGET = 10.4;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=20070211",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100 ";
                                OTHER_LDFLAGS = (
                                        ../contrib/lib/libmp4v2.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libavcodec.a,
                                );
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SEPARATE_STRIP = YES;
                                ZERO_LINK = NO;
                        };
                0D096E690B707D5800A845D4 /* UB */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                EXECUTABLE_PREFIX = lib;
                                LIBRARY_SEARCH_PATHS = "";
                                MACOSX_DEPLOYMENT_TARGET = 10.4;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=2007021100",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100 ";
                                OTHER_LDFLAGS = (
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                );
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SEPARATE_STRIP = YES;
                                ZERO_LINK = NO;
                        };
                0D88F56B0B6CDCD400F81F26 /* UB */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                GCC_ENABLE_FIX_AND_CONTINUE = YES;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_MODEL_TUNING = G5;
                                HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include";
                                INSTALL_PATH = /usr/local/lib;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=2007021100",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100";
                                OTHER_LDFLAGS = "";
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                                FRAMEWORK_SEARCH_PATHS = "";
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
-                               INFOPLIST_FILE = MediaFork.plist;
+                               HEADER_SEARCH_PATHS = ../libhb;
+                               INFOPLIST_FILE = HandBrake.plist;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libx264.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
-                               PRODUCT_NAME = MediaFork;
+                               PRODUCT_NAME = HandBrake;
                                SECTORDER_FLAGS = "";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INFOPLIST_FILE = Express.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                LIBRARY_SEARCH_PATHS = (
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = "Instant MediaFork";
+                               PRODUCT_NAME = "Instant HandBrake";
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                WRAPPER_EXTENSION = app;
                                ZERO_LINK = NO;
                                GCC_ENABLE_FIX_AND_CONTINUE = YES;
                                GCC_MODEL_TUNING = G5;
                                GCC_OPTIMIZATION_LEVEL = s;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INSTALL_PATH = /usr/local/bin;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        "-lz",
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = MediaForkCLI;
+                               PRODUCT_NAME = HandBrakeCLI;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                0DFF0B740B6BC70400549488 /* Development */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_ENABLE_FIX_AND_CONTINUE = YES;
                                HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include";
                                INSTALL_PATH = /usr/local/lib;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=20070211",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100";
                                OTHER_LDFLAGS = "";
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                0DFF0B750B6BC70400549488 /* Deployment */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                COPY_PHASE_STRIP = YES;
                                GCC_ENABLE_FIX_AND_CONTINUE = NO;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include";
                                INSTALL_PATH = /usr/local/lib;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=20070211",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100";
                                OTHER_LDFLAGS = "";
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                0DFF0B760B6BC70400549488 /* Default */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork";
+                               CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libhb";
                                GCC_ENABLE_FIX_AND_CONTINUE = YES;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_MODEL_TUNING = G5;
                                HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include";
                                INSTALL_PATH = /usr/local/lib;
                                OTHER_CFLAGS = (
-                                       "-D__LIBMEDIAFORK__",
+                                       "-D__LIBHB__",
                                        "-DSYS_DARWIN",
                                        "$(OTHER_CFLAGS_QUOTED_1)",
-                                       "-DHB_BUILD=20070211",
                                        "-DUSE_PTHREAD",
                                );
-                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0\\\"";
+                               OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.8.0b1\\\" -DHB_BUILD=2007021100";
                                OTHER_LDFLAGS = "";
                                PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN";
                                PREBINDING = NO;
-                               PRODUCT_NAME = mediafork;
+                               PRODUCT_NAME = hb;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_MODEL_TUNING = G5;
                                GCC_OPTIMIZATION_LEVEL = s;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INSTALL_PATH = /usr/local/bin;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        "-lz",
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = MediaForkCLI;
+                               PRODUCT_NAME = HandBrakeCLI;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
                                GCC_MODEL_TUNING = G5;
                                GCC_OPTIMIZATION_LEVEL = s;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INSTALL_PATH = /usr/local/bin;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        "-lz",
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = MediaForkCLI;
+                               PRODUCT_NAME = HandBrakeCLI;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                                GCC_ENABLE_FIX_AND_CONTINUE = YES;
                                GCC_MODEL_TUNING = G5;
                                GCC_OPTIMIZATION_LEVEL = s;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INSTALL_PATH = /usr/local/bin;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        "-lz",
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = MediaForkCLI;
+                               PRODUCT_NAME = HandBrakeCLI;
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                ZERO_LINK = NO;
                        };
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INFOPLIST_FILE = Express.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                LIBRARY_SEARCH_PATHS = (
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = "Instant MediaFork";
+                               PRODUCT_NAME = "Instant HandBrake";
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                WRAPPER_EXTENSION = app;
                                ZERO_LINK = NO;
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INFOPLIST_FILE = Express.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                LIBRARY_SEARCH_PATHS = (
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = "Instant MediaFork";
+                               PRODUCT_NAME = "Instant HandBrake";
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                WRAPPER_EXTENSION = app;
                                ZERO_LINK = NO;
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_PRECOMPILE_PREFIX_HEADER = YES;
                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h";
-                               HEADER_SEARCH_PATHS = ../libmediafork;
+                               HEADER_SEARCH_PATHS = ../libhb;
                                INFOPLIST_FILE = Express.plist;
                                INSTALL_PATH = "$(HOME)/Applications";
                                LIBRARY_SEARCH_PATHS = (
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
                                PREBINDING = NO;
-                               PRODUCT_NAME = "Instant MediaFork";
+                               PRODUCT_NAME = "Instant HandBrake";
                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
                                WRAPPER_EXTENSION = app;
                                ZERO_LINK = NO;
                4D4E7BC1087804870051572B /* Development */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               CONFIGURATION_BUILD_DIR = ..;
                                COPY_PHASE_STRIP = NO;
-                               CURRENT_PROJECT_VERSION = 0.8.0;
+                               CURRENT_PROJECT_VERSION = 0.8.0b1;
                                FRAMEWORK_SEARCH_PATHS = "";
                                GCC_DYNAMIC_NO_PIC = YES;
                                GCC_ENABLE_FIX_AND_CONTINUE = NO;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
-                               INFOPLIST_FILE = MediaFork.plist;
+                               HEADER_SEARCH_PATHS = ../libhb;
+                               INFOPLIST_FILE = HandBrake.plist;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libx264.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
-                               PRODUCT_NAME = MediaFork;
+                               PRODUCT_NAME = HandBrake;
                                SECTORDER_FLAGS = "";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                4D4E7BC2087804870051572B /* Deployment */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               CONFIGURATION_BUILD_DIR = ..;
                                COPY_PHASE_STRIP = YES;
-                               CURRENT_PROJECT_VERSION = 0.8.0;
+                               CURRENT_PROJECT_VERSION = 0.8.0b1;
                                FRAMEWORK_SEARCH_PATHS = "";
                                GCC_ENABLE_FIX_AND_CONTINUE = NO;
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
-                               INFOPLIST_FILE = MediaFork.plist;
+                               HEADER_SEARCH_PATHS = ../libhb;
+                               INFOPLIST_FILE = HandBrake.plist;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libx264.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
-                               PRODUCT_NAME = MediaFork;
+                               PRODUCT_NAME = HandBrake;
                                SECTORDER_FLAGS = "";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                4D4E7BC3087804870051572B /* Default */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
-                               CURRENT_PROJECT_VERSION = 0.8.0;
+                               CONFIGURATION_BUILD_DIR = ..;
+                               CURRENT_PROJECT_VERSION = 0.8.0b1;
                                FRAMEWORK_SEARCH_PATHS = "";
                                GCC_OPTIMIZATION_LEVEL = s;
                                GCC_TREAT_WARNINGS_AS_ERRORS = NO;
-                               HEADER_SEARCH_PATHS = ../libmediafork;
-                               INFOPLIST_FILE = MediaFork.plist;
+                               HEADER_SEARCH_PATHS = ../libhb;
+                               INFOPLIST_FILE = HandBrake.plist;
                                LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
                                OTHER_LDFLAGS = (
-                                       ../libmediafork/libmediafork.a,
+                                       ../libhb/libhb.a,
+                                       ../contrib/lib/libquicktime.a,
                                        ../contrib/lib/libmp4v2.a,
                                        ../contrib/lib/liba52.a,
                                        ../contrib/lib/libavformat.a,
                                        ../contrib/lib/libx264.a,
                                        ../contrib/lib/libxvidcore.a,
                                );
-                               PRODUCT_NAME = MediaFork;
+                               PRODUCT_NAME = HandBrake;
                                SECTORDER_FLAGS = "";
                                WARNING_CFLAGS = (
                                        "-Wmost",
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-               0D096E650B707D5800A845D4 /* Build configuration list for PBXNativeTarget "libmediafork dlib" */ = {
+               0D096E650B707D5800A845D4 /* Build configuration list for PBXNativeTarget "libhb dlib" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                0D096E660B707D5800A845D4 /* Development */,
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Default;
                };
-               0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libmediafork" */ = {
+               0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libhb" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                0DFF0B740B6BC70400549488 /* Development */,
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Default;
                };
-               0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "MediaForkCLI" */ = {
+               0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "HandBrakeCLI" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                0DFF0C0D0B6BCEE000549488 /* Development */,
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Default;
                };
-               4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant MediaFork" */ = {
+               4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant HandBrake" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                4D1EA2DE0993B01100FDC1A2 /* Development */,
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Default;
                };
-               4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "MediaFork" */ = {
+               4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "HandBrake" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                4D4E7BC1087804870051572B /* Development */,
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Default;
                };
-               4D4E7BC4087804870051572B /* Build configuration list for PBXProject "MediaFork" */ = {
+               4D4E7BC4087804870051572B /* Build configuration list for PBXProject "HandBrake" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                4D4E7BC5087804870051572B /* Development */,
diff --git a/macosx/MediaFork.plist b/macosx/MediaFork.plist
deleted file mode 100644 (file)
index f9ae89d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>CFBundleDevelopmentRegion</key>
-       <string>English</string>
-       <key>CFBundleDisplayName</key>
-       <string>MediaFork</string>
-       <key>CFBundleExecutable</key>
-       <string>MediaFork</string>
-       <key>CFBundleGetInfoString</key>
-       <string>0.8.0b1</string>
-       <key>CFBundleIconFile</key>
-       <string>MediaFork</string>
-       <key>CFBundleIdentifier</key>
-       <string>org.mediafork.dynalias</string>
-       <key>CFBundleInfoDictionaryVersion</key>
-       <string>6.0</string>
-       <key>CFBundleName</key>
-       <string>MediaFork</string>
-       <key>CFBundlePackageType</key>
-       <string>APPL</string>
-       <key>CFBundleShortVersionString</key>
-       <string>0.8.0b1</string>
-       <key>CFBundleSignature</key>
-       <string>HB##</string>
-       <key>CFBundleVersion</key>
-       <string>2007021100</string>
-       <key>NSHumanReadableCopyright</key>
-       <string>MediaFork Devs</string>
-       <key>NSMainNibFile</key>
-       <string>MainMenu</string>
-       <key>NSPrincipalClass</key>
-       <string>NSApplication</string>
-</dict>
-</plist>
index 7f750f0..46b8b3d 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "mediafork.h"
+#include "hb.h"
 #include "PictureGLView.h"
 
 @interface PictureController : NSObject
index 518ba12..229d822 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "mediafork.h"
+#include "hb.h"
 
 #define HB_ANIMATE_NONE     1
 #define HB_ANIMATE_BACKWARD 2
index a9c198c..a9ccb54 100644 (file)
        IBOutlet NSButton * fDefDeinterlace;
        IBOutlet NSButton * fDefPicSizeAutoSetipod;
        IBOutlet NSButton * fDefPixelRatio;
+       IBOutlet NSButton * fDefAudioSurround;
+       IBOutlet NSButton * fDefPresetDrawerShow;
 
-       
+       IBOutlet NSTextView * fDefAdvancedx264FlagsView;
 }
 
 - (IBAction) OpenPanel:    (id) sender;
index e00051c..b417416 100644 (file)
@@ -8,9 +8,9 @@
     NSDictionary   * appDefaults;
     
     /* Unless the user specified otherwise, default is to check
-       for update  fDefPicSizeAutoSetipod*/
+       for update  DefAdvancedx264Flags*/
     defaults    = [NSUserDefaults standardUserDefaults];
-    appDefaults = [NSDictionary dictionaryWithObject:@"NO"
+    appDefaults = [NSDictionary dictionaryWithObject:@"YES"
                    forKey:@"CheckForUpdates"];
        appDefaults = [NSDictionary dictionaryWithObject:@"English"
                    forKey:@"DefaultLanguage"];
                    forKey:@"DefaultPicSizeAutoiPod"];
        appDefaults = [NSDictionary dictionaryWithObject:@"NO"
                    forKey:@"PixelRatio"];
-
+          appDefaults = [NSDictionary dictionaryWithObject:@"NO"
+                   forKey:@"DefaultSurroundSound"];
+       appDefaults = [NSDictionary dictionaryWithObject:@""
+                   forKey:@"DefAdvancedx264Flags"];
+       appDefaults = [NSDictionary dictionaryWithObject:@"YES"
+                   forKey:@"DefaultPresetsDrawerShow"];
+       NSString *defDestDirectory =  @"~/Desktop";
+       defDestDirectory = [defDestDirectory stringByExpandingTildeInPath];
+       appDefaults = [NSDictionary dictionaryWithObject:defDestDirectory forKey:@"LastDestinationDirectory"];
        
     [defaults registerDefaults: appDefaults];
 
        /* fUpdateCheck Check or uncheck according to the preferences */
-    
-    [fUpdateCheck setState: 0];
-    [fUpdateCheck setEnabled: NO];     
-       
+    [fUpdateCheck setState: [defaults boolForKey:@"CheckForUpdates"] ?
+        NSOnState : NSOffState];
 
        // Fill the languages combobox
     [fdefaultlanguage removeAllItems];
 
        /* fFileExtItunes Check or uncheck according to the preferences */
     [fFileExtItunes setState: [defaults boolForKey:@"DefaultMpegName"] ?
-        NSOnState : NSOffState];
-               
-               /* fDefCrf Check or uncheck according to the preferences*/
+                                 NSOnState : NSOffState];
+       
+       /* fDefCrf Check or uncheck according to the preferences*/
     [fDefCrf setState: [defaults boolForKey:@"DefaultCrf"] ?
-        NSOnState : NSOffState];
-
+                  NSOnState : NSOffState];
+       
        /* fDefDeinterlace Check or uncheck according to the preferences*/
     [fDefDeinterlace setState: [defaults boolForKey:@"DefaultDeinterlaceOn"] ?
-        NSOnState : NSOffState];
-
-/* fDefPicSizeAutoSetipod Check or uncheck according to the preferences*/
+                                  NSOnState : NSOffState];
+       
+       /* fDefPicSizeAutoSetipod Check or uncheck according to the preferences*/
     [fDefPicSizeAutoSetipod setState: [defaults boolForKey:@"DefaultPicSizeAutoiPod"] ?
-        NSOnState : NSOffState];
-               /* fDefPixelRatio */
+                                                 NSOnState : NSOffState];
+       /* fDefPixelRatio */
     [fDefPixelRatio setState: [defaults boolForKey:@"PixelRatio"] ?
-        NSOnState : NSOffState];
+                                 NSOnState : NSOffState];
+       
+       /* fDefAudioSurround Check or uncheck according to the preferences */
+    [fDefAudioSurround setState: [defaults boolForKey:@"DefaultSurroundSound"] ?
+                                        NSOnState : NSOffState];
+               
+       /* Insert default DefAdvanced x264 Flag here */
+       if ([defaults stringForKey:@"DefAdvancedx264Flags"]!=NULL)
+       {
+       [fDefAdvancedx264FlagsView setString:[defaults stringForKey:@"DefAdvancedx264Flags"]];
+       }
+       
+       /* fDefPresetDrawerShow Check or uncheck according to the preferences*/
+    [fDefPresetDrawerShow setState: [defaults boolForKey:@"DefaultPresetsDrawerShow"] ?
+                  NSOnState : NSOffState];
+       
 }
 
 
 
 - (IBAction) ClosePanel: (id) sender;
 {
+    [self CheckChanged: sender]; 
     [NSApp stopModal];
     [fPanel orderOut: sender];
 }
     {
         [defaults setObject:@"NO" forKey:@"PixelRatio"];
     }
-
+  
+        /* Use Surround Sound if available*/
        
+       if( [fDefAudioSurround state] == NSOnState )
+    {
+        [defaults setObject:@"YES" forKey:@"DefaultSurroundSound"];
+    }
+    else
+    {
+        [defaults setObject:@"NO" forKey:@"DefaultSurroundSound"];
+    }  
+    
+               
+       /*Advanced x264 Flag string into */
+      [defaults setObject:[fDefAdvancedx264FlagsView string]  forKey:@"DefAdvancedx264Flags"]; 
+         
+           /* Show Presets Drawer upon launch*/
        
+       if( [fDefPresetDrawerShow state] == NSOnState )
+    {
+        [defaults setObject:@"YES" forKey:@"DefaultPresetsDrawerShow"];
+    }
+    else
+    {
+        [defaults setObject:@"NO" forKey:@"DefaultPresetsDrawerShow"];
+    }
+
 }
 
 @end
index 94feab4..635adc7 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "mediafork.h"
+#include "hb.h"
 
 @interface QueueController : NSObject
 {
index 63c50b6..e872bd0 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "mediafork.h"
+#include "hb.h"
 @class DriveDetector;
 @interface ScanController : NSObject
 {
index 27c423c..5c32cfc 100755 (executable)
@@ -8,3 +8,51 @@ do
        cp -r English.lproj $l.lproj
        cp ../../../macosx/i18n/$l.strings $l.lproj/Localizable.strings
 done
+
+echo Generating Info.plist with correct version information
+cd ..
+echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+        <key>CFBundleDevelopmentRegion</key>
+        <string>English</string>
+        <key>CFBundleDisplayName</key>
+        <string>HandBrake</string>
+        <key>CFBundleExecutable</key>
+        <string>HandBrake</string>
+        <key>CFBundleGetInfoString</key>
+        <string>0.8.0b1</string>
+        <key>CFBundleIconFile</key>
+        <string>HandBrake</string>
+        <key>CFBundleIdentifier</key>
+        <string>org.m0k.handbrake</string>
+        <key>CFBundleInfoDictionaryVersion</key>
+        <string>6.0</string>
+        <key>CFBundleName</key>
+        <string>HandBrake</string>
+        <key>CFBundlePackageType</key>
+        <string>APPL</string>
+        <key>CFBundleShortVersionString</key>
+        <string>$2</string>
+        <key>CFBundleSignature</key>
+        <string>HB##</string>
+        <key>CFBundleVersion</key>
+        <string>$3</string>
+        <key>NSHumanReadableCopyright</key>
+        <string>HandBrake Devs</string>
+        <key>NSMainNibFile</key>
+        <string>MainMenu</string>
+        <key>NSPrincipalClass</key>
+        <string>NSApplication</string>
+</dict>
+</plist>" > Info.plist
+
+if [ $4 == "DEV" ]; then
+echo Installing libquicktime Plugins in the $1 Bundle
+cd Resources
+mkdir plugins
+cd plugins
+cp ../../../../contrib/lib/libquicktime/* .
+fi
+
index a2f0155..6b33fb9 100644 (file)
@@ -1,9 +1,9 @@
-To test the MediaFork dylib on MacOs X issue the following commands:
+To test the HandBrake dylib on MacOs X issue the following commands:
 ===================================================================
 
-cp ../libmediafork/libmediafork.dylib .
-gcc -I../libmediafork -L. -lmediafork test.c -o test -arch i386 -arch ppc
-install_name_tool -change /usr/local/lib/libmediafork.dylib @executable_path/libmediafork.dylib test
+cp ../libhb/libhb.dylib .
+gcc -I../libhb -L. -lhb test.c -o test -arch i386 -arch ppc
+install_name_tool -change /usr/local/lib/libhb.dylib @executable_path/libhb.dylib test
 
 Validate that the test Binary is really using the shared library
 
@@ -11,11 +11,11 @@ otool -L test
 
 ------------------------------------------------------------------------
 
-To test the Mediafork .so on Linux issue the following commands:
+To test the HandBrake .so on Linux issue the following commands:
 ================================================================
 
-cp ../libmediafork/libmediafork.so .
-gcc -I../libmediafork -L. -lmediafork test.c -o test -lz -lpthread
+cp ../libhb/libhb.so .
+gcc -I../libhb -L. -lhb test.c -o test -lz -lpthread
 
 Validate that the test Binary is really using the shared library
 
@@ -23,13 +23,13 @@ ldd test
 
 ------------------------------------------------------------------------
 
-To test the MediaFork .dll on cygwin issue the following commands:
+To test the HandBrake .dll on cygwin issue the following commands:
 ==================================================================
 
-cp ../libmediafork/libmediafork.dll .
-gcc -I../libmediafork -L. -lmediafork test.c -o test -lz -lpthread
+cp ../libhb/libhb.dll .
+gcc -I../libhb -L. -lhb test.c -o test -lz -lpthread
 
-The resulting binary test should depend on the cygwin dll and the mediafork dll.
+The resulting binary test should depend on the cygwin dll and the hb dll.
 
 I works like that but wasn't tested yet outside of cygwin.
 
index 3e7a659..e368f8c 100644 (file)
@@ -1,29 +1,30 @@
 SYSTEM = $(shell uname -s)
 
 ifeq ($(SYSTEM),CYGWIN_NT-5.1)
-       LIBS = a52 avformat avcodec avutil dvdread faac mp3lame mpeg2 vorbis vorbisenc ogg samplerate x264 xvidcore mp4v2
+       LIBS = a52 avformat avcodec avutil dvdread faac mp3lame mpeg2 vorbis vorbisenc ogg samplerate x264 xvidcore mp4v2 quicktime
 else
-        LIBS = a52 avformat avcodec avutil dvdread dvdcss faac mp3lame mpeg2 vorbis vorbisenc ogg samplerate x264 xvidcore mp4v2
+        LIBS = a52 avformat avcodec avutil dvdread dvdcss faac mp3lame mpeg2 vorbis vorbisenc ogg samplerate x264 xvidcore mp4v2 quicktime
 endif
 
-all: ../MediaForkCLI
+all: ../HandBrakeCLI
 
-CFLAGS += -I../libmediafork
-CXXFLAGS += -I../libmediafork
-LIBS2 = ../libmediafork/libmediafork.a $(LIBS:%=../contrib/lib/lib%.a)
+CFLAGS += -I../libhb
+CXXFLAGS += -I../libhb
+LIBS2 = ../libhb/libhb.a $(LIBS:%=../contrib/lib/lib%.a)
 LDFLAGS += $(LIBS2)
 
-../MediaForkCLI: test.c $(LIBS2)
+../HandBrakeCLI: test.c $(LIBS2)
        @CMD="$(CC) $(CFLAGS) -o test.o -c test.c"; $$CMD || \
        ( echo "Compile line for $@ was:"; echo $$CMD; false )
-       @echo "Link MediaForkCLI"
-       @CMD="g++ $(CXXFLAGS) -o ../MediaForkCLI test.o $(LDFLAGS) -lz -lpthread"; $$CMD || \
+       @echo "Link HandBrakeCLI"
+       @CMD="g++ $(CXXFLAGS) -o ../HandBrakeCLI test.o $(LDFLAGS) -lz -lpthread"; $$CMD || \
        ( echo "Compile line for $@ was:"; echo $$CMD; false )
+        @CMD="rm -rf ../plugins ; mkdir ../plugins ; cp ../contrib/lib/libquicktime/* ../plugins"; $$CMD
 
 
 clean:
-       @echo "Clean MediaForkCLI"
-       @$(RM) ../MediaForkCLI 
-       @$(RM) ../MediaForkCLI.exe
+       @echo "Clean HandBrakeCLI"
+       @$(RM) ../HandBrakeCLI 
+       @$(RM) ../HandBrakeCLI.exe
        @$(RM) *.o
 
index 1d9781c..de44786 100644 (file)
@@ -10,7 +10,7 @@
 #include <time.h>
 #include <unistd.h>
 
-#include "mediafork.h"
+#include "hb.h"
 
 /* Options */
 static int    debug       = HB_DEBUG_NONE;
@@ -26,6 +26,7 @@ static int    vcodec      = HB_VCODEC_FFMPEG;
 static int    h264_13     = 0;
 static int    h264_30     = 0;
 static char * audios      = NULL;
+static int    surround    = 0;
 static int    sub         = 0;
 static int    width       = 0;
 static int    height      = 0;
@@ -43,6 +44,10 @@ static int    pixelratio  = 0;
 static int    chapter_start = 0;
 static int    chapter_end   = 0;
 static int       crf                   = 0;
+static char      *x264opts             = NULL;
+static char      *x264opts2    = NULL;
+static int       maxHeight             = 0;
+static int       maxWidth              = 0;
 
 /* Exit cleanly on Ctrl-C */
 static volatile int die = 0;
@@ -72,7 +77,7 @@ int main( int argc, char ** argv )
     h = hb_init( debug, update );
 
     /* Show version */
-    fprintf( stderr, "MediaFork %s (%d) - http://mediafork.dynalias.com/\n",
+    fprintf( stderr, "HandBrake %s (%d) - http://handbrake.m0k.org/\n",
              hb_get_version( h ), hb_get_build( h ) );
 
     /* Check for update */
@@ -81,12 +86,12 @@ int main( int argc, char ** argv )
         if( ( build = hb_check_update( h, &version ) ) > -1 )
         {
             fprintf( stderr, "You are using an old version of "
-                     "MediaFork.\nLatest is %s (build %d).\n", version,
+                     "HandBrake.\nLatest is %s (build %d).\n", version,
                      build );
         }
         else
         {
-            fprintf( stderr, "Your version of MediaFork is up to "
+            fprintf( stderr, "Your version of HandBrake is up to "
                      "date.\n" );
         }
         hb_close( &h );
@@ -173,8 +178,10 @@ int main( int argc, char ** argv )
     if( output ) free( output );
     if( format ) free( format );
     if( audios ) free( audios );
-
-    fprintf( stderr, "MediaFork has exited.\n" );
+       if( x264opts ) free (x264opts );
+       if( x264opts2 ) free (x264opts2 );
+       
+    fprintf( stderr, "HandBrake has exited.\n" );
 
     return 0;
 }
@@ -183,7 +190,7 @@ static void ShowCommands()
 {
     fprintf( stderr, "Commands:\n" );
     fprintf( stderr, " [h]elp    Show this message\n" );
-    fprintf( stderr, " [q]uit    Exit MediaForkCLI\n" );
+    fprintf( stderr, " [q]uit    Exit HandBrakeCLI\n" );
     fprintf( stderr, " [p]ause   Pause encoding\n" );
     fprintf( stderr, " [r]esume  Resume encoding\n" );
 }
@@ -328,7 +335,7 @@ static int HandleEvents( hb_handle_t * h )
                 job->height = height;
                 hb_fix_aspect( job, HB_KEEP_HEIGHT );
             }
-            else if( !pixelratio )
+            else if( !width && !height && !pixelratio )
             {
                 hb_fix_aspect( job, HB_KEEP_WIDTH );
             }
@@ -351,9 +358,9 @@ static int HandleEvents( hb_handle_t * h )
             { 
                 job->h264_level = 13; 
             }
-           if( h264_30 )
-           {
-               job->h264_level = 30;
+               if( h264_30 )
+               {
+                   job->h264_level = 30;
             }
             if( vrate )
             {
@@ -389,6 +396,10 @@ static int HandleEvents( hb_handle_t * h )
                     job->audios[0] = -1;
                 }
             }
+                       if( surround )
+                       {
+                               job->surround = 1;
+                       }
             if( abitrate )
             {
                 job->abitrate = abitrate;
@@ -421,11 +432,26 @@ static int HandleEvents( hb_handle_t * h )
                                job->crf = 1;
                        }
 
+                       if (x264opts != NULL && *x264opts != '\0' )
+                       {
+                               hb_log("Applying the following x264 options: %s", x264opts);
+                               job->x264opts = x264opts;
+                       }
+                       else /*avoids a bus error crash when options aren't specified*/
+                       {
+                               job->x264opts =  NULL;
+                       }
+                       if (maxWidth)
+                               job->maxWidth = maxWidth;
+                       if (maxHeight)
+                               job->maxHeight = maxHeight;
+                               
             if( twoPass )
             {
                 job->pass = 1;
                 hb_add( h, job );
                 job->pass = 2;
+                               job->x264opts = x264opts2;
                 hb_add( h, job );
             }
             else
@@ -508,7 +534,7 @@ static void ShowHelp()
     int i;
     
     fprintf( stderr,
-    "Syntax: MediaForkCLI [options] -i <device> -o <file>\n"
+    "Syntax: HandBrakeCLI [options] -i <device> -o <file>\n"
     "\n"
     "    -h, --help              Print help\n"
     "    -u, --update            Check for updates and exit\n"
@@ -527,6 +553,7 @@ static void ShowHelp()
     "                            default: all chapters)\n"
     "    -a, --audio <string>    Select audio channel(s) (\"none\" for no \n"
     "                            audio, default: first one)\n"
+    "    -6, --surround          Export 5.1 surround as 6-channel AAC\n"
     "\n"
     "    -s, --subtitle <number> Select subtitle (default: none)\n"
     "    -e, --encoder <string>  Set video library encoder (ffmpeg,xvid,\n"
@@ -561,7 +588,13 @@ static void ShowHelp()
     "    -B, --ab <kb/s>         Set audio bitrate (default: 128)\n"
     "    -w, --width <number>    Set picture width\n"
     "    -l, --height <number>   Set picture height\n"
-    "        --crop <T:B:L:R>    Set cropping values (default: autocrop)\n" );
+    "        --crop <T:B:L:R>    Set cropping values (default: autocrop)\n"
+       "    -Y, --maxHeight <#>     Set maximum height\n"
+       "    -X, --maxWidth <#>      Set maximum width\n"
+       "\n"
+       "    -x, --x264opts <string> Specify advanced x264 options in the\n"
+       "                            same style as mencoder:\n"
+       "                            option1=value1:option2=value2\n" );
 }
 
 /****************************************************************************
@@ -585,6 +618,7 @@ static int ParseOptions( int argc, char ** argv )
             { "title",       required_argument, NULL,    't' },
             { "chapters",    required_argument, NULL,    'c' },
             { "audio",       required_argument, NULL,    'a' },
+            { "surround",    no_argument,       NULL,    '6' },
             { "subtitle",    required_argument, NULL,    's' },
 
             { "encoder",     required_argument, NULL,    'e' },
@@ -604,6 +638,9 @@ static int ParseOptions( int argc, char ** argv )
             { "rate",        required_argument, NULL,    'r' },
             { "arate",       required_argument, NULL,    'R' },
                        { "crf",                 no_argument,           NULL,    'Q' },
+                       { "x264opts",    required_argument, NULL,    'x' },
+                       { "maxHeight",   required_argument, NULL,        'Y' },
+                       { "maxWidth",    required_argument, NULL,        'X' },
                        
             { 0, 0, 0, 0 }
           };
@@ -612,7 +649,7 @@ static int ParseOptions( int argc, char ** argv )
         int c;
 
         c = getopt_long( argc, argv,
-                         "hvuC:f:i:o:t:c:a:s:e:E:2dgpw:l:n:b:q:S:B:r:R:Q",
+                         "hvuC:f:i:o:t:c:a:s:e:E:2dgpw:l:n:b:q:S:B:r:R:Qx:Y:X:",
                          long_options, &option_index );
         if( c < 0 )
         {
@@ -671,6 +708,9 @@ static int ParseOptions( int argc, char ** argv )
             case 'a':
                 audios = strdup( optarg );
                 break;
+            case '6':
+                surround = 1;
+                break;
             case 's':
                 sub = atoi( optarg );
                 break;
@@ -796,7 +836,17 @@ static int ParseOptions( int argc, char ** argv )
                        case 'Q':
                                crf = 1;
                                break;
-
+                       case 'x':
+                               x264opts = strdup( optarg );
+                               x264opts2 = strdup( optarg );
+                           break;
+                       case 'Y':
+                               maxHeight = atoi( optarg );
+                               break;
+                       case 'X':
+                               maxWidth = atoi (optarg );
+                               break;
+                               
             default:
                 fprintf( stderr, "unknown option (%s)\n", argv[optind] );
                 return -1;
@@ -896,6 +946,13 @@ static int CheckOptions( int argc, char ** argv )
                 acodec = HB_ACODEC_VORBIS;
             }
         }
+               
+               if (acodec != HB_ACODEC_FAAC)
+               {
+                       /* only attempt 5.1 export if exporting to AAC */
+                       surround = 0;
+               }
+               
     }
 
     return 0;