diff options
author | prigaux <[email protected]> | 2007-03-06 21:15:55 +0000 |
---|---|---|
committer | prigaux <[email protected]> | 2007-03-06 21:15:55 +0000 |
commit | c4a642b4648d486777af91ccc2894355df447089 (patch) | |
tree | 4ff9eee3e39a530cb649d9db43456e0ab3d712a3 | |
parent | ff5ed5d2a2009504f1da3cf348689a59a82b27f1 (diff) |
Merge the 5.1 branch into the trunk.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@422 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r-- | AUTHORS | 127 | ||||
-rw-r--r-- | BUILD | 44 | ||||
-rwxr-xr-x | BuildContribsDarwin.sh | 15 | ||||
-rwxr-xr-x | DownloadMacOsXContribBinaries.sh | 8 | ||||
-rw-r--r-- | Jamfile | 16 | ||||
-rw-r--r-- | MP4toMOV/MP4toMOV.app/Contents/Frameworks/RBQT.rbx_0.128.dylib | bin | 0 -> 74228 bytes | |||
-rw-r--r-- | MP4toMOV/MP4toMOV.app/Contents/Info.plist | 1 | ||||
-rwxr-xr-x | MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV | bin | 0 -> 764710 bytes | |||
-rw-r--r-- | MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib | bin | 0 -> 3039472 bytes | |||
-rw-r--r-- | MP4toMOV/MP4toMOV.app/Contents/PkgInfo | 1 | ||||
-rw-r--r-- | MP4toMOV/MP4toMOV.rbp | bin | 0 -> 18456 bytes | |||
-rw-r--r-- | MP4toMOV/README | 10 | ||||
-rw-r--r-- | MacOsXContribBinariesVersion.txt | 2 | ||||
-rw-r--r-- | Makefile | 53 | ||||
-rw-r--r-- | Makefile.config | 15 | ||||
-rw-r--r-- | contrib/Jamfile | 109 | ||||
-rw-r--r-- | contrib/Makefile | 41 | ||||
-rw-r--r-- | contrib/patch-ffmpeg-macintel.patch | 563 | ||||
-rw-r--r-- | contrib/patch-libdvdread.patch | 10 | ||||
-rw-r--r-- | contrib/patch-libquicktime.patch | 76 | ||||
-rw-r--r-- | contrib/patch-mpeg4ip.patch | 23 | ||||
-rw-r--r-- | contrib/patch-x264-linux.patch | 194 | ||||
-rw-r--r-- | contrib/version_a52dec.txt | 2 | ||||
-rw-r--r-- | contrib/version_faac.txt | 2 | ||||
-rw-r--r-- | contrib/version_ffmpeg.txt | 2 | ||||
-rw-r--r-- | contrib/version_lame.txt | 2 | ||||
-rw-r--r-- | contrib/version_libdvdcss.txt | 2 | ||||
-rw-r--r-- | contrib/version_libdvdread.txt | 2 | ||||
-rw-r--r-- | contrib/version_libogg.txt | 2 | ||||
-rw-r--r-- | contrib/version_libsamplerate.txt | 2 | ||||
-rw-r--r-- | contrib/version_libvorbis.txt | 2 | ||||
-rw-r--r-- | contrib/version_mpeg2dec.txt | 2 | ||||
-rw-r--r-- | contrib/version_mpeg4ip.txt | 2 | ||||
-rw-r--r-- | contrib/version_qt.txt | 1 | ||||
-rw-r--r-- | contrib/version_x264.txt | 2 | ||||
-rw-r--r-- | contrib/version_xvidcore.txt | 2 | ||||
-rw-r--r-- | contrib/version_zlib.txt | 1 | ||||
-rw-r--r-- | libhb/Jamfile (renamed from libmediafork/Jamfile) | 14 | ||||
-rw-r--r-- | libhb/Makefile (renamed from libmediafork/Makefile) | 44 | ||||
-rw-r--r-- | libhb/common.c (renamed from libmediafork/common.c) | 0 | ||||
-rw-r--r-- | libhb/common.h (renamed from libmediafork/common.h) | 46 | ||||
-rw-r--r-- | libhb/deca52.c (renamed from libmediafork/deca52.c) | 46 | ||||
-rw-r--r-- | libhb/decavcodec.c (renamed from libmediafork/decavcodec.c) | 2 | ||||
-rw-r--r-- | libhb/declpcm.c (renamed from libmediafork/declpcm.c) | 2 | ||||
-rw-r--r-- | libhb/decmpeg2.c (renamed from libmediafork/decmpeg2.c) | 2 | ||||
-rw-r--r-- | libhb/decsub.c (renamed from libmediafork/decsub.c) | 2 | ||||
-rw-r--r-- | libhb/demuxmpeg.c (renamed from libmediafork/demuxmpeg.c) | 2 | ||||
-rw-r--r-- | libhb/dvd.c (renamed from libmediafork/dvd.c) | 19 | ||||
-rw-r--r-- | libhb/encavcodec.c (renamed from libmediafork/encavcodec.c) | 2 | ||||
-rw-r--r-- | libhb/encfaac.c (renamed from libmediafork/encfaac.c) | 37 | ||||
-rw-r--r-- | libhb/enclame.c (renamed from libmediafork/enclame.c) | 2 | ||||
-rw-r--r-- | libhb/encvorbis.c (renamed from libmediafork/encvorbis.c) | 2 | ||||
-rw-r--r-- | libhb/encx264.c (renamed from libmediafork/encx264.c) | 64 | ||||
-rw-r--r-- | libhb/encxvid.c (renamed from libmediafork/encxvid.c) | 2 | ||||
-rw-r--r-- | libhb/fifo.c (renamed from libmediafork/fifo.c) | 2 | ||||
-rw-r--r-- | libhb/hb.c (renamed from libmediafork/mediafork.c) | 2 | ||||
-rw-r--r-- | libhb/hb.h (renamed from libmediafork/mediafork.h) | 0 | ||||
-rw-r--r-- | libhb/internal.h (renamed from libmediafork/internal.h) | 0 | ||||
-rw-r--r-- | libhb/ipodutil.cpp (renamed from libmediafork/ipodutil.cpp) | 0 | ||||
-rw-r--r-- | libhb/lang.h (renamed from libmediafork/lang.h) | 0 | ||||
-rw-r--r-- | libhb/muxavi.c (renamed from libmediafork/muxavi.c) | 2 | ||||
-rw-r--r-- | libhb/muxcommon.c (renamed from libmediafork/muxcommon.c) | 2 | ||||
-rw-r--r-- | libhb/muxmp4.c (renamed from libmediafork/muxmp4.c) | 81 | ||||
-rw-r--r-- | libhb/muxogm.c (renamed from libmediafork/muxogm.c) | 2 | ||||
-rw-r--r-- | libhb/ports.c (renamed from libmediafork/ports.c) | 2 | ||||
-rw-r--r-- | libhb/ports.h (renamed from libmediafork/ports.h) | 4 | ||||
-rw-r--r-- | libhb/reader.c (renamed from libmediafork/reader.c) | 2 | ||||
-rw-r--r-- | libhb/render.c (renamed from libmediafork/render.c) | 2 | ||||
-rw-r--r-- | libhb/scan.c (renamed from libmediafork/scan.c) | 15 | ||||
-rw-r--r-- | libhb/sync.c (renamed from libmediafork/sync.c) | 36 | ||||
-rw-r--r-- | libhb/update.c (renamed from libmediafork/update.c) | 2 | ||||
-rw-r--r-- | libhb/work.c (renamed from libmediafork/work.c) | 69 | ||||
-rw-r--r-- | macosx/Controller.h | 51 | ||||
-rw-r--r-- | macosx/Controller.mm | 561 | ||||
-rw-r--r-- | macosx/DriveDetector.m | 2 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/classes.nib | 21 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/info.nib | 10 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/keyedobjects.nib | bin | 70086 -> 94781 bytes | |||
-rw-r--r-- | macosx/ExpressController.h | 2 | ||||
-rw-r--r-- | macosx/HandBrake.icns | bin | 0 -> 47214 bytes | |||
-rw-r--r-- | macosx/HandBrake.plist | 36 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/pri.mode1 | 1329 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/pri.pbxuser | 209 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj (renamed from macosx/MediaFork.xcodeproj/project.pbxproj) | 613 | ||||
-rw-r--r-- | macosx/MediaFork.plist | 36 | ||||
-rw-r--r-- | macosx/PictureController.h | 2 | ||||
-rw-r--r-- | macosx/PictureGLView.h | 2 | ||||
-rw-r--r-- | macosx/PrefsController.h | 4 | ||||
-rw-r--r-- | macosx/PrefsController.m | 85 | ||||
-rw-r--r-- | macosx/QueueController.h | 2 | ||||
-rw-r--r-- | macosx/ScanController.h | 2 | ||||
-rwxr-xr-x | macosx/localize.sh | 48 | ||||
-rw-r--r-- | test/BUILDSHARED | 22 | ||||
-rw-r--r-- | test/Makefile | 25 | ||||
-rw-r--r-- | test/test.c | 87 |
95 files changed, 3743 insertions, 1253 deletions
@@ -1,59 +1,68 @@ -AUTHORS file for HandBrake <http://handbrake.m0k.org/> - -Eric Petit <[email protected]> - + 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 <[email protected]> - + H264 and Vorbis encoders (w/ libx264/libvorbis) - + OGG/OGM muxer (w/ libogg) - + Gtk2 interface - + wxWidgets interface - -John Allen (?) <[email protected]> (johnallen) - + Core enhancements - + Threading enhancements - + Simplified Mac OS X GUI - -Joe Crain <[email protected]> (dynaflash) - + Mac OS X GUI enhancements/rewrite - -Rodney Hester <[email protected]> (rhester) - + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support - -Benjamin Lake <[email protected]> (benlake) - + Mac OS X GUI enhancements/rewrite - -Chris Long <[email protected]> (chrislong) - + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support - -Philippe Rigaux <[email protected]> (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 <[email protected]> (jbrjake) - + Massive core enhancements - + Significant improvements to H.264 support - -Scott <[email protected]> (sr55) - + Windows GUI - + mpeg4ip patches for cygwin compile - -Unknown <[email protected]> (maurj) - + AAC audio improvements - -Unknown <[email protected]> (mirkwood) - + Windows CLI port +AUTHORS file for MediaFork <http://mediafork.dynalias.com/>
+
+Originally forked from HandBrake <http://handbrake.m0k.org/>
+
+Eric Petit <[email protected]>
+ + 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 <[email protected]>
+ + H264 and Vorbis encoders (w/ libx264/libvorbis)
+ + OGG/OGM muxer (w/ libogg)
+ + Gtk2 interface
+ + wxWidgets interface
+
+John Allen (?) <[email protected]> (johnallen)
+ + Core enhancements
+ + Threading enhancements
+ + Simplified Mac OS X GUI
+
+Joe Crain <[email protected]> (dynaflash)
+ + Mac OS X GUI enhancements/rewrite
+
+Rodney Hester <[email protected]> (rhester)
+ + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support
+
+Benjamin Lake <[email protected]> (benlake)
+ + Mac OS X GUI enhancements/rewrite
+
+Chris Lee <[email protected]>
+ + PAR/anamorphic support
+ + dvdread enhancements
+ + Linux GUI
+
+Chris Long <[email protected]> (chrislong)
+ + iPod firmware 1.2+ 640x480 MPEG-4/H.264 support
+
+Philippe Rigaux <[email protected]> (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 <[email protected]> (jbrjake)
+ + Massive core enhancements
+ + Significant improvements to H.264 support
+
+Scott <[email protected]> (sr55)
+ + Windows GUI
+ + mpeg4ip patches for cygwin compile
+
+Maurj <[email protected]> (maurj)
+ + 6-channel AAC audio from 5.1 source
+ + mono AAC audio from mono source
+ + PAR/anamorphic support in mp4 file format
+
+Unknown <[email protected]> (mirkwood)
+ + Windows CLI port
@@ -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 ([email protected]). @@ -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. - diff --git a/BuildContribsDarwin.sh b/BuildContribsDarwin.sh index c523c694a..0631cc746 100755 --- a/BuildContribsDarwin.sh +++ b/BuildContribsDarwin.sh @@ -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 diff --git a/DownloadMacOsXContribBinaries.sh b/DownloadMacOsXContribBinaries.sh index b8df22270..29e282820 100755 --- a/DownloadMacOsXContribBinaries.sh +++ b/DownloadMacOsXContribBinaries.sh @@ -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)." @@ -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 Binary files differnew file mode 100644 index 000000000..33e037b02 --- /dev/null +++ b/MP4toMOV/MP4toMOV.app/Contents/Frameworks/RBQT.rbx_0.128.dylib diff --git a/MP4toMOV/MP4toMOV.app/Contents/Info.plist b/MP4toMOV/MP4toMOV.app/Contents/Info.plist new file mode 100644 index 000000000..6804bf8f2 --- /dev/null +++ b/MP4toMOV/MP4toMOV.app/Contents/Info.plist @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM
"file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleExecutable</key>
<string>MP4toMOV</string>
<key>CFBundleName</key>
<string>MP4toMOV</string>
<key>CFBundleIdentifier</key>
<string></string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleVersion</key>
<string>1.0.0d0</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string></string>
<key>CFBundleGetInfoString</key>
<string></string>
<key>CFBundleShortVersionString</key>
<string></string>
<key>CFBundleIconFile</key>
<string>MP4toMOV.icns</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>MP4</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>****</string>
</array>
<key>CFBundleTypeExtensions</key>
<array>
<string>mp4</string>
</array>
</dict>
</array>
</dict>
</plist>
\ No newline at end of file diff --git a/MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV b/MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV Binary files differnew file mode 100755 index 000000000..fd83816b0 --- /dev/null +++ b/MP4toMOV/MP4toMOV.app/Contents/MacOS/MP4toMOV diff --git a/MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib b/MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib Binary files differnew file mode 100644 index 000000000..1edb8c278 --- /dev/null +++ b/MP4toMOV/MP4toMOV.app/Contents/MacOS/rbframework.dylib diff --git a/MP4toMOV/MP4toMOV.app/Contents/PkgInfo b/MP4toMOV/MP4toMOV.app/Contents/PkgInfo new file mode 100644 index 000000000..bd04210fb --- /dev/null +++ b/MP4toMOV/MP4toMOV.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL????
\ No newline at end of file diff --git a/MP4toMOV/MP4toMOV.rbp b/MP4toMOV/MP4toMOV.rbp Binary files differnew file mode 100644 index 000000000..554d68e2a --- /dev/null +++ b/MP4toMOV/MP4toMOV.rbp diff --git a/MP4toMOV/README b/MP4toMOV/README new file mode 100644 index 000000000..d4882e63b --- /dev/null +++ b/MP4toMOV/README @@ -0,0 +1,10 @@ +MP4toMOV
+--------
+
+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.
+
+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.
+
+Alternatively, double-click on MP4toMOV, and select "File > Open" to open a single file for conversion.
+
+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 diff --git a/MacOsXContribBinariesVersion.txt b/MacOsXContribBinariesVersion.txt index 1ce74b6b0..4cb162b6e 100644 --- a/MacOsXContribBinariesVersion.txt +++ b/MacOsXContribBinariesVersion.txt @@ -1 +1 @@ -0003 +0009 @@ -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 index 000000000..7cdf1dc1f --- /dev/null +++ b/Makefile.config @@ -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 + diff --git a/contrib/Jamfile b/contrib/Jamfile index 94016f02f..331bd3032 100644 --- a/contrib/Jamfile +++ b/contrib/Jamfile @@ -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 index 000000000..b39c53ea6 --- /dev/null +++ b/contrib/Makefile @@ -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 index ecc0dc6c4..000000000 --- a/contrib/patch-ffmpeg-macintel.patch +++ /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 index 8ff5333b6..000000000 --- a/contrib/patch-libdvdread.patch +++ /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 index 000000000..6e11f63d6 --- /dev/null +++ b/contrib/patch-libquicktime.patch @@ -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 index 000000000..8a55c5da2 --- /dev/null +++ b/contrib/patch-mpeg4ip.patch @@ -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 index 000000000..3f1752d4c --- /dev/null +++ b/contrib/patch-x264-linux.patch @@ -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 ); diff --git a/contrib/version_a52dec.txt b/contrib/version_a52dec.txt index 37aee8622..86617fd36 100644 --- a/contrib/version_a52dec.txt +++ b/contrib/version_a52dec.txt @@ -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 diff --git a/contrib/version_faac.txt b/contrib/version_faac.txt index 807360621..e3466666b 100644 --- a/contrib/version_faac.txt +++ b/contrib/version_faac.txt @@ -1 +1 @@ -http://download.mediafork.dynalias.com/contrib/faac-1.24.tar.gz +http://download.m0k.org/handbrake/contrib/faac-1.24.tar.gz diff --git a/contrib/version_ffmpeg.txt b/contrib/version_ffmpeg.txt index e7934a0ee..2d6acd66c 100644 --- a/contrib/version_ffmpeg.txt +++ b/contrib/version_ffmpeg.txt @@ -1 +1 @@ -http://download.mediafork.dynalias.com/contrib/ffmpeg-7444.tar.gz +http://download.m0k.org/handbrake/contrib/ffmpeg-7444.tar.gz diff --git a/contrib/version_lame.txt b/contrib/version_lame.txt index 0563f9855..b4bb63c81 100644 --- a/contrib/version_lame.txt +++ b/contrib/version_lame.txt @@ -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 diff --git a/contrib/version_libdvdcss.txt b/contrib/version_libdvdcss.txt index c10c39de2..81d1ef157 100644 --- a/contrib/version_libdvdcss.txt +++ b/contrib/version_libdvdcss.txt @@ -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 diff --git a/contrib/version_libdvdread.txt b/contrib/version_libdvdread.txt index e230e3cb7..ef686d667 100644 --- a/contrib/version_libdvdread.txt +++ b/contrib/version_libdvdread.txt @@ -1 +1 @@ -http://download.mediafork.dynalias.com/contrib/libdvdread-20050928.tar.gz +http://download.m0k.org/handbrake/contrib/libdvdread-0.9.7.tar.gz diff --git a/contrib/version_libogg.txt b/contrib/version_libogg.txt index e7cee15a3..57daaf702 100644 --- a/contrib/version_libogg.txt +++ b/contrib/version_libogg.txt @@ -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 diff --git a/contrib/version_libsamplerate.txt b/contrib/version_libsamplerate.txt index 636ace2f6..a0f5b3804 100644 --- a/contrib/version_libsamplerate.txt +++ b/contrib/version_libsamplerate.txt @@ -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 diff --git a/contrib/version_libvorbis.txt b/contrib/version_libvorbis.txt index 3235254e6..db3f67caf 100644 --- a/contrib/version_libvorbis.txt +++ b/contrib/version_libvorbis.txt @@ -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 diff --git a/contrib/version_mpeg2dec.txt b/contrib/version_mpeg2dec.txt index ca31e0ce6..dd4d00229 100644 --- a/contrib/version_mpeg2dec.txt +++ b/contrib/version_mpeg2dec.txt @@ -1 +1 @@ -http://download.mediafork.dynalias.com/contrib/mpeg2dec-20051112.tar.gz +http://download.m0k.org/handbrake/contrib/mpeg2dec-0.4.1.tar.gz diff --git a/contrib/version_mpeg4ip.txt b/contrib/version_mpeg4ip.txt index a374de85f..f60e5972a 100644 --- a/contrib/version_mpeg4ip.txt +++ b/contrib/version_mpeg4ip.txt @@ -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 index 000000000..5f679e32c --- /dev/null +++ b/contrib/version_qt.txt @@ -0,0 +1 @@ +http://download.m0k.org/handbrake/contrib/libquicktime-0.9.10.tar.gz diff --git a/contrib/version_x264.txt b/contrib/version_x264.txt index 73a659be2..fed73e9a1 100644 --- a/contrib/version_x264.txt +++ b/contrib/version_x264.txt @@ -1 +1 @@ -http://download.mediafork.dynalias.com/contrib/x264-r604.tar.gz +http://download.m0k.org/handbrake/contrib/x264-r604.tar.gz diff --git a/contrib/version_xvidcore.txt b/contrib/version_xvidcore.txt index 8906405ef..615ddc864 100644 --- a/contrib/version_xvidcore.txt +++ b/contrib/version_xvidcore.txt @@ -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 index 000000000..bbb84c298 --- /dev/null +++ b/contrib/version_zlib.txt @@ -0,0 +1 @@ +http://download.m0k.org/handbrake/contrib/zlib-1.2.3.tar.gz diff --git a/libmediafork/Jamfile b/libhb/Jamfile index 10a30ed32..afc775e48 100644 --- a/libmediafork/Jamfile +++ b/libhb/Jamfile @@ -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 ; diff --git a/libmediafork/Makefile b/libhb/Makefile index 5310b7c84..d0d304315 100644 --- a/libmediafork/Makefile +++ b/libhb/Makefile @@ -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) diff --git a/libmediafork/common.c b/libhb/common.c index 7b41a93fb..7b41a93fb 100644 --- a/libmediafork/common.c +++ b/libhb/common.c diff --git a/libmediafork/common.h b/libhb/common.h index ed9d7c59a..e63ecaf8b 100644 --- a/libmediafork/common.h +++ b/libhb/common.h @@ -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 ** ); diff --git a/libmediafork/deca52.c b/libhb/deca52.c index c7688ed3b..1886b139a 100644 --- a/libmediafork/deca52.c +++ b/libhb/deca52.c @@ -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 + } } } diff --git a/libmediafork/decavcodec.c b/libhb/decavcodec.c index dfc61dcd5..4d74fc68f 100644 --- a/libmediafork/decavcodec.c +++ b/libhb/decavcodec.c @@ -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" diff --git a/libmediafork/declpcm.c b/libhb/declpcm.c index 718cf559d..f6a703d38 100644 --- a/libmediafork/declpcm.c +++ b/libhb/declpcm.c @@ -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 ** ); diff --git a/libmediafork/decmpeg2.c b/libhb/decmpeg2.c index e3188dfe2..214444a05 100644 --- a/libmediafork/decmpeg2.c +++ b/libhb/decmpeg2.c @@ -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" diff --git a/libmediafork/decsub.c b/libhb/decsub.c index f68e763e1..3666ea3fe 100644 --- a/libmediafork/decsub.c +++ b/libhb/decsub.c @@ -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 { diff --git a/libmediafork/demuxmpeg.c b/libhb/demuxmpeg.c index 54bef2b47..721478e80 100644 --- a/libmediafork/demuxmpeg.c +++ b/libhb/demuxmpeg.c @@ -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) */ diff --git a/libmediafork/dvd.c b/libhb/dvd.c index 04695a3e2..a9bf4309f 100644 --- a/libmediafork/dvd.c +++ b/libhb/dvd.c @@ -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; diff --git a/libmediafork/encavcodec.c b/libhb/encavcodec.c index c1d7df9d2..c71c8384e 100644 --- a/libmediafork/encavcodec.c +++ b/libhb/encavcodec.c @@ -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" diff --git a/libmediafork/encfaac.c b/libhb/encfaac.c index 19787a560..83d390fd9 100644 --- a/libmediafork/encfaac.c +++ b/libhb/encfaac.c @@ -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; diff --git a/libmediafork/enclame.c b/libhb/enclame.c index 82bca1132..f663e62eb 100644 --- a/libmediafork/enclame.c +++ b/libhb/enclame.c @@ -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" diff --git a/libmediafork/encvorbis.c b/libhb/encvorbis.c index 1e916a447..4bdb6efeb 100644 --- a/libmediafork/encvorbis.c +++ b/libhb/encvorbis.c @@ -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" diff --git a/libmediafork/encx264.c b/libhb/encx264.c index cdd8e9b69..69739635b 100644 --- a/libmediafork/encx264.c +++ b/libhb/encx264.c @@ -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(¶m, 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; diff --git a/libmediafork/encxvid.c b/libhb/encxvid.c index 64b38a405..7768f8e12 100644 --- a/libmediafork/encxvid.c +++ b/libhb/encxvid.c @@ -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" diff --git a/libmediafork/fifo.c b/libhb/fifo.c index 9e5ea15f8..93e3e162e 100644 --- a/libmediafork/fifo.c +++ b/libhb/fifo.c @@ -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> diff --git a/libmediafork/mediafork.c b/libhb/hb.c index 6eb115fd8..c1748e8b5 100644 --- a/libmediafork/mediafork.c +++ b/libhb/hb.c @@ -1,4 +1,4 @@ -#include "mediafork.h" +#include "hb.h" #include "ffmpeg/avcodec.h" diff --git a/libmediafork/mediafork.h b/libhb/hb.h index 8b5d4696a..8b5d4696a 100644 --- a/libmediafork/mediafork.h +++ b/libhb/hb.h diff --git a/libmediafork/internal.h b/libhb/internal.h index 3948d5dfd..3948d5dfd 100644 --- a/libmediafork/internal.h +++ b/libhb/internal.h diff --git a/libmediafork/ipodutil.cpp b/libhb/ipodutil.cpp index ba37e4768..ba37e4768 100644 --- a/libmediafork/ipodutil.cpp +++ b/libhb/ipodutil.cpp diff --git a/libmediafork/lang.h b/libhb/lang.h index f88f539ff..f88f539ff 100644 --- a/libmediafork/lang.h +++ b/libhb/lang.h diff --git a/libmediafork/muxavi.c b/libhb/muxavi.c index 4231d32df..8746a3cdd 100644 --- a/libmediafork/muxavi.c +++ b/libhb/muxavi.c @@ -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 diff --git a/libmediafork/muxcommon.c b/libhb/muxcommon.c index 3f6613716..70e384e8a 100644 --- a/libmediafork/muxcommon.c +++ b/libhb/muxcommon.c @@ -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 { diff --git a/libmediafork/muxmp4.c b/libhb/muxmp4.c index 1fc201f4d..357551ec6 100644 --- a/libmediafork/muxmp4.c +++ b/libhb/muxmp4.c @@ -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 ); diff --git a/libmediafork/muxogm.c b/libhb/muxogm.c index 62ff4e7b8..6a3b1ec5d 100644 --- a/libmediafork/muxogm.c +++ b/libhb/muxogm.c @@ -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> diff --git a/libmediafork/ports.c b/libhb/ports.c index 1e0b622b1..bdeadc1f8 100644 --- a/libmediafork/ports.c +++ b/libhb/ports.c @@ -28,7 +28,7 @@ #include <netinet/in.h> //#endif -#include "mediafork.h" +#include "hb.h" /************************************************************************ * hb_get_date() diff --git a/libmediafork/ports.h b/libhb/ports.h index 740252e6b..47df1ce5e 100644 --- a/libmediafork/ports.h +++ b/libhb/ports.h @@ -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 diff --git a/libmediafork/reader.c b/libhb/reader.c index 7be28237d..47ec9d546 100644 --- a/libmediafork/reader.c +++ b/libhb/reader.c @@ -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 { diff --git a/libmediafork/render.c b/libhb/render.c index 97117089a..cf6d7b31c 100644 --- a/libmediafork/render.c +++ b/libhb/render.c @@ -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" diff --git a/libmediafork/scan.c b/libhb/scan.c index 1f74f629d..daf8da27e 100644 --- a/libmediafork/scan.c +++ b/libhb/scan.c @@ -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; } } diff --git a/libmediafork/sync.c b/libhb/sync.c index 7053016e0..24ee4a8af 100644 --- a/libmediafork/sync.c +++ b/libhb/sync.c @@ -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; diff --git a/libmediafork/update.c b/libhb/update.c index c12204fcc..767807038 100644 --- a/libmediafork/update.c +++ b/libhb/update.c @@ -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" diff --git a/libmediafork/work.c b/libhb/work.c index b69275418..106df6c73 100644 --- a/libmediafork/work.c +++ b/libhb/work.c @@ -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 */ diff --git a/macosx/Controller.h b/macosx/Controller.h index 6dc4c02db..8d920d104 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "mediafork.h" +#include "hb.h" #include "ScanController.h" #include "PictureController.h" @@ -103,6 +103,7 @@ /* Audio box */ IBOutlet NSTextField * fAudLang1Field; IBOutlet NSPopUpButton * fAudLang1PopUp; + IBOutlet NSButton * fAudLang1SurroundCheck; IBOutlet NSTextField * fAudLang2Field; IBOutlet NSPopUpButton * fAudLang2PopUp; IBOutlet NSTextField * fAudRateField; @@ -119,8 +120,28 @@ 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; @@ -136,6 +157,9 @@ - (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; @@ -169,5 +193,28 @@ - (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 diff --git a/macosx/Controller.mm b/macosx/Controller.mm index 3bf5f4f4a..52431ce57 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -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 diff --git a/macosx/DriveDetector.m b/macosx/DriveDetector.m index e9e941569..61f722960 100644 --- a/macosx/DriveDetector.m +++ b/macosx/DriveDetector.m @@ -11,7 +11,7 @@ #include <IOKit/storage/IODVDMedia.h> #include "DriveDetector.h" -#include "mediafork.h" +#include "hb.h" @interface DriveDetector (Private) diff --git a/macosx/English.lproj/MainMenu.nib/classes.nib b/macosx/English.lproj/MainMenu.nib/classes.nib index ec791480a..2b248aded 100644 --- a/macosx/English.lproj/MainMenu.nib/classes.nib +++ b/macosx/English.lproj/MainMenu.nib/classes.nib @@ -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; @@ -67,6 +76,12 @@ fPictureButton = NSButton; fPictureController = PictureController; fPicturePanel = NSPanel; + fPresetDrawer = NSDrawer; + fPresetNewName = NSTextField; + fPresetNewPicSettingsApply = NSButton; + fPresetSelectedDisplay = NSTextField; + fPresetsAdd = NSButton; + fPresetsDelete = NSButton; fQueueAddButton = NSButton; fQueueCheck = NSButton; fQueueController = QueueController; @@ -105,6 +120,7 @@ fVidTargetSizeField = NSTextField; fVidTwoPassCheck = NSButton; fWindow = NSWindow; + tableView = NSTableView; }; SUPERCLASS = NSObject; }, @@ -167,10 +183,13 @@ 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; diff --git a/macosx/English.lproj/MainMenu.nib/info.nib b/macosx/English.lproj/MainMenu.nib/info.nib index eae7265dc..64beae6c9 100644 --- a/macosx/English.lproj/MainMenu.nib/info.nib +++ b/macosx/English.lproj/MainMenu.nib/info.nib @@ -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> diff --git a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib Binary files differindex 9f9c43bb3..7bfb8416d 100644 --- a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib +++ b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib diff --git a/macosx/ExpressController.h b/macosx/ExpressController.h index f1e0d1904..5841f4e1f 100644 --- a/macosx/ExpressController.h +++ b/macosx/ExpressController.h @@ -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 Binary files differnew file mode 100644 index 000000000..f81352be3 --- /dev/null +++ b/macosx/HandBrake.icns diff --git a/macosx/HandBrake.plist b/macosx/HandBrake.plist new file mode 100644 index 000000000..4a4b36cd2 --- /dev/null +++ b/macosx/HandBrake.plist @@ -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 index 000000000..385113e71 --- /dev/null +++ b/macosx/HandBrake.xcodeproj/pri.mode1 @@ -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><No Editor></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><No Editor></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 index 000000000..d6247b7c6 --- /dev/null +++ b/macosx/HandBrake.xcodeproj/pri.pbxuser @@ -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}}"; + }; + }; +} diff --git a/macosx/MediaFork.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index 2a1819d02..5dc600ac4 100644 --- a/macosx/MediaFork.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -10,62 +10,64 @@ 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 */ @@ -128,21 +128,45 @@ /* 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>"; }; @@ -160,39 +184,15 @@ 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 */ @@ -245,11 +245,11 @@ 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>"; @@ -257,10 +257,10 @@ 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 */, @@ -280,8 +280,8 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + 0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */, 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - 4D118405053054CD00C39CA9 /* MediaFork.icns */, 4D1EA3000993B13700FDC1A2 /* Express.nib */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, ); @@ -301,54 +301,54 @@ 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 */, @@ -366,17 +366,17 @@ 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 */ @@ -413,9 +413,9 @@ /* 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 */, @@ -425,14 +425,14 @@ ); 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 */, @@ -442,14 +442,14 @@ ); 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 */, @@ -459,14 +459,14 @@ 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 */, @@ -477,14 +477,14 @@ 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 */, @@ -496,9 +496,9 @@ 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 */ @@ -506,16 +506,16 @@ /* 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 */ @@ -525,7 +525,7 @@ 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 */, @@ -536,10 +536,10 @@ 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; }; @@ -550,34 +550,34 @@ 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; }; @@ -585,34 +585,34 @@ 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; }; @@ -656,17 +656,17 @@ /* 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 */ @@ -694,7 +694,7 @@ 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; @@ -712,15 +712,15 @@ 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, @@ -743,7 +743,7 @@ ); PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; PREBINDING = NO; - PRODUCT_NAME = mediafork; + PRODUCT_NAME = hb; SEPARATE_STRIP = YES; ZERO_LINK = NO; }; @@ -752,7 +752,7 @@ 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; @@ -769,15 +769,15 @@ 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, @@ -800,7 +800,7 @@ ); PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; PREBINDING = NO; - PRODUCT_NAME = mediafork; + PRODUCT_NAME = hb; SEPARATE_STRIP = YES; ZERO_LINK = NO; }; @@ -809,7 +809,7 @@ 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; @@ -824,15 +824,15 @@ 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, @@ -855,7 +855,7 @@ ); PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; PREBINDING = NO; - PRODUCT_NAME = mediafork; + PRODUCT_NAME = hb; SEPARATE_STRIP = YES; ZERO_LINK = NO; }; @@ -864,7 +864,7 @@ 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; @@ -879,13 +879,12 @@ 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, @@ -910,7 +909,7 @@ ); PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; PREBINDING = NO; - PRODUCT_NAME = mediafork; + PRODUCT_NAME = hb; SEPARATE_STRIP = YES; ZERO_LINK = NO; }; @@ -919,7 +918,7 @@ 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; @@ -929,17 +928,16 @@ 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; }; @@ -953,12 +951,12 @@ 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, @@ -976,7 +974,7 @@ ../contrib/lib/libx264.a, ../contrib/lib/libxvidcore.a, ); - PRODUCT_NAME = MediaFork; + PRODUCT_NAME = HandBrake; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -996,7 +994,7 @@ 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 = ( @@ -1005,7 +1003,7 @@ ); 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, @@ -1024,7 +1022,7 @@ ../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; @@ -1038,12 +1036,12 @@ 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, @@ -1063,7 +1061,7 @@ "-lz", ); PREBINDING = NO; - PRODUCT_NAME = MediaForkCLI; + PRODUCT_NAME = HandBrakeCLI; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; ZERO_LINK = NO; }; @@ -1084,7 +1082,7 @@ 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; @@ -1096,17 +1094,16 @@ 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; }; @@ -1115,7 +1112,7 @@ 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; @@ -1126,17 +1123,16 @@ 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; }; @@ -1145,7 +1141,7 @@ 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; @@ -1155,17 +1151,16 @@ 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; }; @@ -1181,12 +1176,13 @@ 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, @@ -1206,7 +1202,7 @@ "-lz", ); PREBINDING = NO; - PRODUCT_NAME = MediaForkCLI; + PRODUCT_NAME = HandBrakeCLI; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; ZERO_LINK = NO; }; @@ -1221,12 +1217,13 @@ 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, @@ -1246,7 +1243,7 @@ "-lz", ); PREBINDING = NO; - PRODUCT_NAME = MediaForkCLI; + PRODUCT_NAME = HandBrakeCLI; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; ZERO_LINK = NO; }; @@ -1259,12 +1256,13 @@ 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, @@ -1284,7 +1282,7 @@ "-lz", ); PREBINDING = NO; - PRODUCT_NAME = MediaForkCLI; + PRODUCT_NAME = HandBrakeCLI; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; ZERO_LINK = NO; }; @@ -1301,7 +1299,7 @@ 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 = ( @@ -1310,7 +1308,8 @@ ); 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, @@ -1329,7 +1328,7 @@ ../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; @@ -1346,7 +1345,7 @@ 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 = ( @@ -1355,7 +1354,8 @@ ); 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, @@ -1374,7 +1374,7 @@ ../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; @@ -1389,7 +1389,7 @@ 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 = ( @@ -1398,7 +1398,8 @@ ); 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, @@ -1417,7 +1418,7 @@ ../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; @@ -1427,20 +1428,22 @@ 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, @@ -1458,7 +1461,7 @@ ../contrib/lib/libx264.a, ../contrib/lib/libxvidcore.a, ); - PRODUCT_NAME = MediaFork; + PRODUCT_NAME = HandBrake; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -1473,18 +1476,20 @@ 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, @@ -1502,7 +1507,7 @@ ../contrib/lib/libx264.a, ../contrib/lib/libxvidcore.a, ); - PRODUCT_NAME = MediaFork; + PRODUCT_NAME = HandBrake; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -1517,16 +1522,18 @@ 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, @@ -1544,7 +1551,7 @@ ../contrib/lib/libx264.a, ../contrib/lib/libxvidcore.a, ); - PRODUCT_NAME = MediaFork; + PRODUCT_NAME = HandBrake; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( "-Wmost", @@ -1582,7 +1589,7 @@ /* 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 */, @@ -1593,7 +1600,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Default; }; - 0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libmediafork" */ = { + 0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libhb" */ = { isa = XCConfigurationList; buildConfigurations = ( 0DFF0B740B6BC70400549488 /* Development */, @@ -1604,7 +1611,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Default; }; - 0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "MediaForkCLI" */ = { + 0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "HandBrakeCLI" */ = { isa = XCConfigurationList; buildConfigurations = ( 0DFF0C0D0B6BCEE000549488 /* Development */, @@ -1615,7 +1622,7 @@ 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 */, @@ -1626,7 +1633,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Default; }; - 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "MediaFork" */ = { + 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "HandBrake" */ = { isa = XCConfigurationList; buildConfigurations = ( 4D4E7BC1087804870051572B /* Development */, @@ -1637,7 +1644,7 @@ 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 index f9ae89d7b..000000000 --- a/macosx/MediaFork.plist +++ /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> diff --git a/macosx/PictureController.h b/macosx/PictureController.h index 7f750f031..46b8b3d98 100644 --- a/macosx/PictureController.h +++ b/macosx/PictureController.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "mediafork.h" +#include "hb.h" #include "PictureGLView.h" @interface PictureController : NSObject diff --git a/macosx/PictureGLView.h b/macosx/PictureGLView.h index 518ba1268..229d822ac 100644 --- a/macosx/PictureGLView.h +++ b/macosx/PictureGLView.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "mediafork.h" +#include "hb.h" #define HB_ANIMATE_NONE 1 #define HB_ANIMATE_BACKWARD 2 diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index a9c198c55..a9ccb54a4 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -12,8 +12,10 @@ IBOutlet NSButton * fDefDeinterlace; IBOutlet NSButton * fDefPicSizeAutoSetipod; IBOutlet NSButton * fDefPixelRatio; + IBOutlet NSButton * fDefAudioSurround; + IBOutlet NSButton * fDefPresetDrawerShow; - + IBOutlet NSTextView * fDefAdvancedx264FlagsView; } - (IBAction) OpenPanel: (id) sender; diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index e00051cb9..b417416b5 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -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"]; @@ -24,15 +24,21 @@ 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]; @@ -215,22 +221,37 @@ /* 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]; + } @@ -241,6 +262,7 @@ - (IBAction) ClosePanel: (id) sender; { + [self CheckChanged: sender]; [NSApp stopModal]; [fPanel orderOut: sender]; } @@ -318,9 +340,34 @@ { [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 diff --git a/macosx/QueueController.h b/macosx/QueueController.h index 94feab4fb..635adc7b8 100644 --- a/macosx/QueueController.h +++ b/macosx/QueueController.h @@ -2,7 +2,7 @@ #include <Cocoa/Cocoa.h> -#include "mediafork.h" +#include "hb.h" @interface QueueController : NSObject { diff --git a/macosx/ScanController.h b/macosx/ScanController.h index 63c50b65c..e872bd048 100644 --- a/macosx/ScanController.h +++ b/macosx/ScanController.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "mediafork.h" +#include "hb.h" @class DriveDetector; @interface ScanController : NSObject { diff --git a/macosx/localize.sh b/macosx/localize.sh index 27c423caa..5c32cfcde 100755 --- a/macosx/localize.sh +++ b/macosx/localize.sh @@ -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 + diff --git a/test/BUILDSHARED b/test/BUILDSHARED index a2f015555..6b33fb90a 100644 --- a/test/BUILDSHARED +++ b/test/BUILDSHARED @@ -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. diff --git a/test/Makefile b/test/Makefile index 3e7a65971..e368f8c6c 100644 --- a/test/Makefile +++ b/test/Makefile @@ -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 diff --git a/test/test.c b/test/test.c index 1d9781c49..de447865c 100644 --- a/test/test.c +++ b/test/test.c @@ -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; |