diff options
-rw-r--r-- | BUILD | 13 | ||||
-rwxr-xr-x | BuildContribsDarwin.sh | 71 | ||||
-rwxr-xr-x | DownloadMacOsXContribBinaries.sh | 32 | ||||
-rw-r--r-- | Jamfile | 35 | ||||
-rw-r--r-- | Jamrules | 32 | ||||
-rw-r--r-- | MacOsXContribBinariesVersion.txt | 1 | ||||
-rw-r--r-- | Makefile | 64 | ||||
-rwxr-xr-x | configure | 5 | ||||
-rw-r--r-- | contrib/Jamfile | 41 | ||||
-rw-r--r-- | contrib/patch_mpeg4ip_cygwin.patch | 262 | ||||
-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 | 1 | ||||
-rw-r--r-- | contrib/version_x264.txt | 2 | ||||
-rw-r--r-- | contrib/version_xvidcore.txt | 2 | ||||
-rwxr-xr-x | jam | bin | 98260 -> 203788 bytes | |||
-rwxr-xr-x | jamintel | bin | 101388 -> 0 bytes | |||
-rw-r--r-- | libhb/muxmp4.c | 198 | ||||
-rw-r--r-- | libmediafork/Jamfile (renamed from libhb/Jamfile) | 13 | ||||
-rw-r--r-- | libmediafork/Makefile | 105 | ||||
-rw-r--r-- | libmediafork/common.c (renamed from libhb/common.c) | 23 | ||||
-rw-r--r-- | libmediafork/common.h (renamed from libhb/common.h) | 30 | ||||
-rw-r--r-- | libmediafork/deca52.c (renamed from libhb/deca52.c) | 2 | ||||
-rw-r--r-- | libmediafork/decavcodec.c (renamed from libhb/decavcodec.c) | 2 | ||||
-rw-r--r-- | libmediafork/declpcm.c (renamed from libhb/declpcm.c) | 2 | ||||
-rw-r--r-- | libmediafork/decmpeg2.c (renamed from libhb/decmpeg2.c) | 2 | ||||
-rw-r--r-- | libmediafork/decsub.c (renamed from libhb/decsub.c) | 2 | ||||
-rw-r--r-- | libmediafork/demuxmpeg.c (renamed from libhb/demuxmpeg.c) | 2 | ||||
-rw-r--r-- | libmediafork/dvd.c (renamed from libhb/dvd.c) | 2 | ||||
-rw-r--r-- | libmediafork/encavcodec.c (renamed from libhb/encavcodec.c) | 11 | ||||
-rw-r--r-- | libmediafork/encfaac.c (renamed from libhb/encfaac.c) | 2 | ||||
-rw-r--r-- | libmediafork/enclame.c (renamed from libhb/enclame.c) | 2 | ||||
-rw-r--r-- | libmediafork/encvorbis.c (renamed from libhb/encvorbis.c) | 2 | ||||
-rw-r--r-- | libmediafork/encx264.c (renamed from libhb/encx264.c) | 194 | ||||
-rw-r--r-- | libmediafork/encxvid.c (renamed from libhb/encxvid.c) | 9 | ||||
-rw-r--r-- | libmediafork/fifo.c (renamed from libhb/fifo.c) | 2 | ||||
-rw-r--r-- | libmediafork/internal.h (renamed from libhb/internal.h) | 8 | ||||
-rw-r--r-- | libmediafork/ipodutil.cpp | 34 | ||||
-rw-r--r-- | libmediafork/lang.h (renamed from libhb/lang.h) | 0 | ||||
-rw-r--r-- | libmediafork/mediafork.c (renamed from libhb/hb.c) | 98 | ||||
-rw-r--r-- | libmediafork/mediafork.h (renamed from libhb/hb.h) | 7 | ||||
-rw-r--r-- | libmediafork/muxavi.c (renamed from libhb/muxavi.c) | 2 | ||||
-rw-r--r-- | libmediafork/muxcommon.c (renamed from libhb/muxcommon.c) | 2 | ||||
-rw-r--r-- | libmediafork/muxmp4.c | 167 | ||||
-rw-r--r-- | libmediafork/muxogm.c (renamed from libhb/muxogm.c) | 2 | ||||
-rw-r--r-- | libmediafork/ports.c (renamed from libhb/ports.c) | 2 | ||||
-rw-r--r-- | libmediafork/ports.h (renamed from libhb/ports.h) | 4 | ||||
-rw-r--r-- | libmediafork/reader.c (renamed from libhb/reader.c) | 2 | ||||
-rw-r--r-- | libmediafork/render.c (renamed from libhb/render.c) | 2 | ||||
-rw-r--r-- | libmediafork/scan.c (renamed from libhb/scan.c) | 18 | ||||
-rw-r--r-- | libmediafork/sync.c (renamed from libhb/sync.c) | 2 | ||||
-rw-r--r-- | libmediafork/update.c (renamed from libhb/update.c) | 2 | ||||
-rw-r--r-- | libmediafork/work.c (renamed from libhb/work.c) | 14 | ||||
-rw-r--r-- | macosx/Controller.h | 32 | ||||
-rw-r--r-- | macosx/Controller.mm | 287 | ||||
-rw-r--r-- | macosx/DriveDetector.h | 2 | ||||
-rw-r--r-- | macosx/DriveDetector.m | 2 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/classes.nib | 43 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/info.nib | 28 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/keyedobjects.nib | bin | 58385 -> 70063 bytes | |||
-rw-r--r-- | macosx/Express.plist | 4 | ||||
-rw-r--r-- | macosx/ExpressController.h | 2 | ||||
-rw-r--r-- | macosx/HandBrake.icns | bin | 47214 -> 0 bytes | |||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj | 713 | ||||
-rw-r--r-- | macosx/MediaFork.icns | bin | 0 -> 59687 bytes | |||
-rw-r--r-- | macosx/MediaFork.plist (renamed from macosx/HandBrake.plist) | 16 | ||||
-rw-r--r-- | macosx/MediaFork.xcodeproj/project.pbxproj | 1654 | ||||
-rw-r--r-- | macosx/PictureController.h | 7 | ||||
-rw-r--r-- | macosx/PictureController.mm | 64 | ||||
-rw-r--r-- | macosx/PictureGLView.h | 2 | ||||
-rw-r--r-- | macosx/PrefsController.h | 7 | ||||
-rw-r--r-- | macosx/PrefsController.m | 113 | ||||
-rw-r--r-- | macosx/QueueController.h | 2 | ||||
-rw-r--r-- | macosx/ScanController.h | 4 | ||||
-rw-r--r-- | macosx/ScanController.mm | 9 | ||||
-rw-r--r-- | macosx/i18n/Localizable.strings | bin | 8426 -> 8426 bytes | |||
-rw-r--r-- | macosx/i18n/de.strings | bin | 10138 -> 10138 bytes | |||
-rw-r--r-- | macosx/i18n/es.strings | bin | 10238 -> 10238 bytes | |||
-rw-r--r-- | macosx/i18n/fr.strings | bin | 8246 -> 8246 bytes | |||
-rw-r--r-- | macosx/i18n/it.strings | bin | 10240 -> 10240 bytes | |||
-rw-r--r-- | macosx/i18n/ja.strings | bin | 9252 -> 9252 bytes | |||
-rw-r--r-- | macosx/i18n/nl.strings | bin | 10106 -> 10106 bytes | |||
-rw-r--r-- | macosx/i18n/pl.strings | bin | 10110 -> 10110 bytes | |||
-rw-r--r-- | macosx/i18n/pt.strings | 2 | ||||
-rw-r--r-- | macosx/i18n/ru.strings | bin | 9870 -> 9870 bytes | |||
-rwxr-xr-x | macosx/localize.sh | 10 | ||||
-rw-r--r-- | test/BUILDSHARED | 36 | ||||
-rw-r--r-- | test/Makefile | 29 | ||||
-rw-r--r-- | test/fakexcode.cpp | 3 | ||||
-rw-r--r-- | test/test.c | 27 |
98 files changed, 3489 insertions, 1161 deletions
@@ -24,7 +24,7 @@ Step 1: get needed tools http://public.perforce.com/public/jam/index.html, compile it with gcc in Cygwin, and put the jam executable somewhere on your path. -+ nasm (Only for x86. On Mac OS X Intel, Nasm CVS 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. @@ -44,3 +44,14 @@ Step 2: build Run `./configure && jam'. This will build every library HandBrake requires, then HandBrake itself. + + +Experimental UB build on MacOsX +=============================== + +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 new file mode 100755 index 000000000..312a1332f --- /dev/null +++ b/BuildContribsDarwin.sh @@ -0,0 +1,71 @@ +#!/bin/sh +# This script build the contrib libs +# This used on MaxOs X to generate a universal version of the contrib libraries +# The new building process for MediaFork is to download a precompiled universal contrib folder +# and use them to build universal binaries of MediaFork +# pri: 01/28/07 +# ######################################################################## +# Parameters: +# Package Version (Version must be incremented to ensure that each of trunk/branches use the correct version) +# IP of the other platform host +# Username to connect with (passwordless must be setup between the 2 machines) +# +# ie: ./BuildContribsDarwin.sh 0001 192.168.0.150 toto +# +# ######################################################################### +# The script will connect to the other computer, download and build all of the contrib libraries +# and in the same time download and compile the contrib libraries on the native system +# My setup to do that is Mac Pro Intel as native and a Mac mini G4 ppc as foreign +# +# Native is the master computer, it sends compile commands to the foreign, get the library, then do a lipo +# to assemble both versions and put a universal binary version of the library in contrib/lib folder +# +# Once all of the contrib libraries are builded, a contribbin-darwin-${version}.tar.gz file is created, this file must +# be uploaded to the ftp server so Xcode will be able to build universal binaries of the MediaFork, MediaForkCLI and libmediafork +# +# ########################################################################## +# SSH passwordless setup instructions +# 1) log on native using terminal +# 2) ssh-keygen -t rsa +# 3) leave passphrase empty (hit return) +# 4) copy the $HOME/.ssh/id_rsa.pub to foreign machine $HOME/.ssh/authorized_keys +# ########################################################################## +export VERSION=$1 +export IP=$2 +export USERNAME=$3 +export REPOS=svn://multics.dynalias.com/HandBrake/branches/MediaFork_0.8.0_mpeg4ip +# ########################################################################## +# Launch the build on the foreign system +# ########################################################################## +ssh $USERNAME@$IP "rm -rf MFBUILDTMP ; mkdir MFBUILDTMP ; svn co $REPOS MFBUILDTMP ; cd MFBUILDTMP ; ./configure ; cd contrib ; cp ../config.jam . ; ../jam ; touch BUILDTERMINATED" & +./configure +cd contrib +rm -rf lib include *tar.gz bin share man native foreign +cp ../config.jam . +# Use the new UB jam to be shure to use the correct version to build libraries (native on each system) +../jam +mkdir native +mv lib native +mkdir lib +mkdir foreign +# wait until the foreign build is done :) +wait +echo the foreign build is done, transferring files to native computer: +cd foreign +mkdir lib +cd lib +scp $USERNAME@$IP:/Users/$USERNAME/MFBUILDTMP/contrib/lib/*a . +for lib in `ls *.a` +do + echo ... lipo: $lib + lipo -create $lib ../../native/lib/$lib -output ../../lib/$lib +done; + +cd ../.. +echo $VERSION > DarwinContribVersion.txt +echo Creating contribbin-darwin-$VERSION.tar.gz +tar zcvf contribbin-darwin-$VERSION.tar.gz lib include DarwinContribVersion.txt +echo Done.... +ls -l contribbin-darwin-$VERSION.tar.gz +cd .. +echo $VERSION > MacOsXContribBinariesVersion.txt diff --git a/DownloadMacOsXContribBinaries.sh b/DownloadMacOsXContribBinaries.sh new file mode 100755 index 000000000..93be47cd6 --- /dev/null +++ b/DownloadMacOsXContribBinaries.sh @@ -0,0 +1,32 @@ +#! /bin/sh + +# Incremented every time a new contrib package is available +VERSION=`cat MacOsXContribBinariesVersion.txt` + +if [ -f contrib/DarwinContribVersion.txt ]; then + if [ "`cat contrib/DarwinContribVersion.txt`" = $VERSION ]; then + echo "Contribs are up to date." + exit 0 + fi +fi + +HOST=download.m0k.org +FILE=contribbin-darwin-$VERSION.tar.gz +URL=http://download.mediafork.dynalias.com/contrib/$FILE + +# Check for internet connectivity +if ! host $HOST > /dev/null 2>&1; then + echo "Please connect to the Internet (could not resolve $HOST)." + exit 1 +fi + +# Look for something that can handle an HTTP download + WGET="curl -L -O" + +# Get and install the package +echo "Getting contribs ($VERSION)..." +( cd contrib && rm -f $FILE && $WGET $URL && rm -Rf lib include && \ + tar xzf $FILE && ranlib lib/*.a ) || exit 1 + +exit 0 + @@ -6,11 +6,11 @@ SubDir TOP ; -# libhb + contrib libraries -HB_LIBS = libhb.a +# libmediafork + contrib libraries +MEDIAFORK_LIBS = libmediafork.a 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/libmp4v2.a contrib/lib/libfaac.a contrib/lib/libmp3lame.a contrib/lib/libmpeg2.a contrib/lib/libvorbis.a contrib/lib/libvorbisenc.a contrib/lib/libogg.a @@ -24,22 +24,26 @@ if $(OS) = UNKNOWN if $(OS) != CYGWIN { - HB_LIBS = $(HB_LIBS) contrib/lib/libdvdcss.a ; + MEDIAFORK_LIBS = $(MEDIAFORK_LIBS) contrib/lib/libdvdcss.a ; } # Interfaces -TEST_BIN = HBTest ; -TEST_SRC = test/test.c ; +CLI_BIN = MediaForkCLI ; +CLI_SRC = test/test.c ; BEOS_BIN = HandBrake ; BEOS_SRC = beos/HBApp.cpp beos/MainWindow.cpp beos/ScanWindow.cpp beos/PicWindow.cpp beos/Stepper.cpp beos/QueueWindow.cpp ; WX_BIN = wxHB ; WX_SRC = wx/hbWizard.cpp wx/wxHB.cpp ; -UI_BIN = $(TEST_BIN) $(BEOS_BIN) $(WX_BIN) ; -UI_SRC = $(TEST_SRC) $(BEOS_SRC) $(WX_SRC) ; +UI_BIN = $(CLI_BIN) $(BEOS_BIN) $(WX_BIN) ; +UI_SRC = $(CLI_SRC) $(BEOS_SRC) $(WX_SRC) ; # CLI app -Main $(TEST_BIN) : $(TEST_SRC) ; +# Don't build the CLI from here if MACOSX, let xcode build it :) +if $(OS) != MACOSX +{ + Main $(CLI_BIN) : $(CLI_SRC) ; +} if $(OS) = BEOS { @@ -65,7 +69,7 @@ if $(OS) = MACOSX macosx/English.lproj/Express.nib/info.nib macosx/English.lproj/Express.nib/keyedobjects.nib ; - OSXApp HandBrake.app : $(OSX_SRC) $(HB_LIBS) ; + OSXApp MediaFork.app : $(OSX_SRC) $(MEDIAFORK_LIBS) ; # Package OSXPackage HandBrake-$(HB_VERSION)-OSX.zip : HandBrake.app ; @@ -79,13 +83,14 @@ if $(OS) = LINUX #Main $(WX_BIN) : $(WX_SRC) ; } -ObjectHdrs $(UI_SRC) : $(TOP)/libhb ; -LinkLibraries $(UI_BIN) : $(HB_LIBS) ; - +if $(OS) != MACOSX +{ + ObjectHdrs $(UI_SRC) : $(TOP)/libmediafork ; + LinkLibraries $(UI_BIN) : $(MEDIAFORK_LIBS) ; +} # Packages NotFile package ; Depends package : $(HB_PACKAGES) ; SubInclude TOP contrib ; -SubInclude TOP libhb ; - +SubInclude TOP libmediafork ; @@ -11,13 +11,13 @@ if ! $(DEFINES) Exit "Please run ./configure first." ; } -HB_VERSION = 0.7.1a2 ; +HB_VERSION = 0.8.0b1 ; HB_BUILD = 20060923 ; DEFINES += HB_VERSION=\\\"$(HB_VERSION)\\\" HB_BUILD=$(HB_BUILD) ; LANGUAGES = fr de it pl ru nl es pt ja ; RM = rm -rf ; -# Build HandBrake.app using Xcode +# Build MediaFork.app using Xcode rule OSXApp { Depends exe : $(<) ; @@ -26,9 +26,9 @@ rule OSXApp } actions OSXApp { - $(RM) $(<) macosx/build/HandBrake.app && \ + $(RM) $(<) macosx/build/MediaFork.app && \ ( cd macosx && xcodebuild -alltargets ) && \ - mv macosx/build/Default/HandBrake.app $(<) && \ + mv macosx/build/Default/MediaFork.app $(<) && \ for i in $(LANGUAGES) ; do \ ( cd $(<)/Contents/Resources && \ cp -r English.lproj $i.lproj && \ @@ -42,24 +42,24 @@ rule OSXPackage } actions OSXPackage { - rm -rf $(<) "HandBrake $(HB_VERSION)" && \ - mkdir "HandBrake $(HB_VERSION)" && \ - cp AUTHORS "HandBrake $(HB_VERSION)/AUTHORS.txt" && \ - cp COPYING "HandBrake $(HB_VERSION)/COPYING.txt" && \ - cp CREDITS "HandBrake $(HB_VERSION)/CREDITS.txt" && \ - cp THANKS "HandBrake $(HB_VERSION)/THANKS.txt" && \ + rm -rf $(<) "MediaFork $(HB_VERSION)" && \ + mkdir "MediaFork $(HB_VERSION)" && \ + cp AUTHORS "MediaFork $(HB_VERSION)/AUTHORS.txt" && \ + cp COPYING "MediaFork $(HB_VERSION)/COPYING.txt" && \ + cp CREDITS "MediaFork $(HB_VERSION)/CREDITS.txt" && \ + cp THANKS "MediaFork $(HB_VERSION)/THANKS.txt" && \ ( echo "[InternetShortcut]" && \ echo "URL=http://handbrake.m0k.org/" ) > \ - "HandBrake $(HB_VERSION)/HandBrake Homepage.url" && \ + "MediaFork $(HB_VERSION)/MediaFork Homepage.url" && \ ( echo "[InternetShortcut]" && \ echo "URL=http://handbrake.m0k.org/forum/" ) > \ - "HandBrake $(HB_VERSION)/HandBrake Forums.url" && \ + "MediaFork $(HB_VERSION)/MediaFork Forums.url" && \ ( echo "[InternetShortcut]" && \ echo "URL=http://handbrake.m0k.org/contribute.php" ) > \ - "HandBrake $(HB_VERSION)/Contribute.url" && \ - cp -r HandBrake.app "HandBrake $(HB_VERSION)" && \ - zip -9 -r $(<) "HandBrake $(HB_VERSION)" && \ - rm -rf "HandBrake $(HB_VERSION)" + "MediaFork $(HB_VERSION)/Contribute.url" && \ + cp -r MediaFork.app "MediaFork $(HB_VERSION)" && \ + zip -9 -r $(<) "MediaFork $(HB_VERSION)" && \ + rm -rf "MediaFork $(HB_VERSION)" } rule BeOSPackage diff --git a/MacOsXContribBinariesVersion.txt b/MacOsXContribBinariesVersion.txt new file mode 100644 index 000000000..1ce74b6b0 --- /dev/null +++ b/MacOsXContribBinariesVersion.txt @@ -0,0 +1 @@ +0003 diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..ed1f05384 --- /dev/null +++ b/Makefile @@ -0,0 +1,64 @@ +SYSTEM = $(shell uname -s) + +# Special case for Mac OS X: everything is handled from the Xcode project +ifeq ($(SYSTEM),Darwin) + +all: clean app release + +app: + (./DownloadMacOsXContribBinaries.sh ; cd macosx ; xcodebuild -alltargets -configuration UB build | sed '/^$$/d' ; cd .. ; ./macosx/localize.sh MediaFork.app) + +clean: + (cd macosx ; xcodebuild -alltargets -configuration UB clean | sed '/^$$/d' ) + +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 ) + +endif + +ifeq ($(SYSTEM),Linux) + +all: contrib/lib libmediafork/libmediafork.a MediaForkCLI + +contrib/lib: + (./configure ; cd contrib ; cp -f ../config.jam . ; jam ; cd ..) + +libmediafork/libmediafork.a: + @$(MAKE) --no-print-directory -C libmediafork all + +MediaForkCLI: + @$(MAKE) --no-print-directory -C test all + +clean: + @$(MAKE) --no-print-directory -C libmediafork clean + @$(MAKE) --no-print-directory -C test clean + +mrproper: clean + (rm -rf contrib/lib ; rm -rf contrib/include/* ) + +endif + +ifeq ($(SYSTEM),CYGWIN_NT-5.1) + +all: contrib/lib libmediafork/libmediafork.a MediaForkCLI + +contrib/lib: + (./configure ; cd contrib ; cp -f ../config.jam . ; jam.exe ; cd ..) + +libmediafork/libmediafork.a: + @$(MAKE) --no-print-directory -C libmediafork all + +MediaForkCLI: + @$(MAKE) --no-print-directory -C test all + +clean: + @$(MAKE) --no-print-directory -C libmediafork clean + @$(MAKE) --no-print-directory -C test clean + +mrproper: clean + (rm -rf contrib/lib ; rm -rf contrib/include/* ) + +endif @@ -93,7 +93,6 @@ LINKLIBS = $LINKLIBS ; EOF echo -echo "To build HandBrake, run:" -echo " './jamintel' on a Mac Intel," -echo " './jam' on a PPC Mac," +echo "To build MediaFork, run:" +echo " './jam' on a Mac (or 'make' to try the UB build method)," echo " 'jam' on Linux or Windows." diff --git a/contrib/Jamfile b/contrib/Jamfile index 33e9c2e5b..94016f02f 100644 --- a/contrib/Jamfile +++ b/contrib/Jamfile @@ -11,6 +11,11 @@ else WGET = wget -O ; } +if $(OS) = UNKNOWN +{ + OS = CYGWIN ; +} + # Wget rule: downloads $(<) from the link in $(>) rule Wget { @@ -170,6 +175,42 @@ actions LibMp3Lame Wget $(SUBDIR)/lame.tar.gz : $(SUBDIR)/version_lame.txt ; LibMp3Lame $(SUBDIR)/lib/libmp3lame.a : $(SUBDIR)/lame.tar.gz ; +# libmp4v2 +rule LibMp4v2 +{ + Depends $(<) : $(>) ; + Depends lib : $(<) ; +} +if $(OS) != CYGWIN +{ + actions LibMp4v2 + { + cd `dirname $(>)` && CONTRIB=`pwd` && + rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip && + ./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 \ + include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include && + strip -S $CONTRIB/lib/libmp4v2.a + } +} +else +{ + actions LibMp4v2 + { + cd `dirname $(>)` && CONTRIB=`pwd` && + rm -rf mpeg4ip && tar xzf mpeg4ip.tar.gz && cd mpeg4ip && + 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 \ + include/mpeg4ip_win32.h lib/mp4v2/*.h $CONTRIB/include && + strip -S $CONTRIB/lib/libmp4v2.a + } +} + +Wget $(SUBDIR)/mpeg4ip.tar.gz : $(SUBDIR)/version_mpeg4ip.txt ; +LibMp4v2 $(SUBDIR)/lib/libmp4v2.a : $(SUBDIR)/mpeg4ip.tar.gz ; + # libmpeg2 rule LibMpeg2 { diff --git a/contrib/patch_mpeg4ip_cygwin.patch b/contrib/patch_mpeg4ip_cygwin.patch new file mode 100644 index 000000000..0bc19cda6 --- /dev/null +++ b/contrib/patch_mpeg4ip_cygwin.patch @@ -0,0 +1,262 @@ +diff -Naur mpeg4ip/lib/mp4v2/mp4.cpp /Users/pri/t/mpeg4ip/lib/mp4v2/mp4.cpp +--- mpeg4ip/lib/mp4v2/mp4.cpp 2005-03-30 20:41:58.000000000 +0200 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4.cpp 2007-02-09 22:39:28.000000000 +0100 +@@ -1678,9 +1678,9 @@ + extern "C" bool MP4GetTrackH264SeqPictHeaders (MP4FileHandle hFile, + MP4TrackId trackId, + uint8_t ***pSeqHeader, +- uint32_t **pSeqHeaderSize, ++ u_int32_t **pSeqHeaderSize, + uint8_t ***pPictHeader, +- uint32_t **pPictHeaderSize) ++ u_int32_t **pPictHeaderSize) + { + if (MP4_IS_VALID_FILE_HANDLE(hFile)) { + try { +diff -Naur mpeg4ip/lib/mp4v2/mp4.h /Users/pri/t/mpeg4ip/lib/mp4v2/mp4.h +--- mpeg4ip/lib/mp4v2/mp4.h 2005-03-30 20:41:58.000000000 +0200 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4.h 2007-02-09 22:39:42.000000000 +0100 +@@ -631,9 +631,9 @@ + + bool MP4GetTrackVideoMetadata(MP4FileHandle hFile, + MP4TrackId trackId, +- uint8_t **ppConfig, +- uint32_t *pConfigSize); +- ++ u_int8_t **ppConfig, ++ u_int32_t *pConfigSize); ++ + bool MP4GetTrackESConfiguration( + MP4FileHandle hFile, + MP4TrackId trackId, +@@ -654,9 +654,9 @@ + bool MP4GetTrackH264SeqPictHeaders(MP4FileHandle hFile, + MP4TrackId trackId, + uint8_t ***pSeqHeaders, +- uint32_t **pSeqHeaderSize, ++ u_int32_t **pSeqHeaderSize, + uint8_t ***pPictHeader, +- uint32_t **pPictHeaderSize); ++ u_int32_t **pPictHeaderSize); + bool MP4GetTrackH264LengthSize(MP4FileHandle hFile, + MP4TrackId trackId, + uint32_t *pLength); +diff -Naur mpeg4ip/lib/mp4v2/mp4container.cpp /Users/pri/t/mpeg4ip/lib/mp4v2/mp4container.cpp +--- mpeg4ip/lib/mp4v2/mp4container.cpp 2001-11-19 18:06:58.000000000 +0100 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4container.cpp 2007-02-09 22:10:23.000000000 +0100 +@@ -207,7 +207,7 @@ + u_int32_t numProperties = m_pProperties.Size(); + + if (numProperties == 0) { +- WARNING(numProperties == 0); ++ //WARNING(numProperties == 0); + return; + } + +diff -Naur mpeg4ip/lib/mp4v2/mp4container.h /Users/pri/t/mpeg4ip/lib/mp4v2/mp4container.h +--- mpeg4ip/lib/mp4v2/mp4container.h 2001-11-19 18:06:58.000000000 +0100 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4container.h 2007-02-09 22:06:42.000000000 +0100 +@@ -1,24 +1,3 @@ +-/* +- * The contents of this file are subject to the Mozilla Public +- * License Version 1.1 (the "License"); you may not use this file +- * except in compliance with the License. You may obtain a copy of +- * the License at http://www.mozilla.org/MPL/ +- * +- * Software distributed under the License is distributed on an "AS +- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +- * implied. See the License for the specific language governing +- * rights and limitations under the License. +- * +- * The Original Code is MPEG4IP. +- * +- * The Initial Developer of the Original Code is Cisco Systems Inc. +- * Portions created by Cisco Systems Inc. are +- * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. +- * +- * Contributor(s): +- * Dave Mackie [email protected] +- */ +- + #ifndef __MP4_CONTAINER_INCLUDED__ + #define __MP4_CONTAINER_INCLUDED__ + +diff -Naur mpeg4ip/lib/mp4v2/mp4descriptor.cpp /Users/pri/t/mpeg4ip/lib/mp4v2/mp4descriptor.cpp +--- mpeg4ip/lib/mp4v2/mp4descriptor.cpp 2004-02-12 03:06:02.000000000 +0100 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4descriptor.cpp 2007-02-09 22:24:17.000000000 +0100 +@@ -149,7 +149,7 @@ + u_int32_t numProperties = m_pProperties.Size(); + + if (numProperties == 0) { +- WARNING(numProperties == 0); ++ //WARNING(numProperties == 0); + return; + } + +@@ -194,7 +194,7 @@ + u_int32_t numProperties = m_pProperties.Size(); + + if (numProperties == 0) { +- WARNING(numProperties == 0); ++ //WARNING(numProperties == 0); + return; + } + for (u_int32_t i = 0; i < numProperties; i++) { +diff -Naur mpeg4ip/lib/mp4v2/mp4file.cpp /Users/pri/t/mpeg4ip/lib/mp4v2/mp4file.cpp +--- mpeg4ip/lib/mp4v2/mp4file.cpp 2005-03-30 20:41:58.000000000 +0200 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4file.cpp 2007-02-09 22:44:08.000000000 +0100 +@@ -1431,7 +1431,7 @@ + return trackId; + } + +-MP4TrackId MP4File::AddCntlTrackDefault (uint32_t timeScale, ++MP4TrackId MP4File::AddCntlTrackDefault (u_int32_t timeScale, + MP4Duration sampleDuration, + const char *type) + { +@@ -1682,7 +1682,7 @@ + (MP4Property **)&pLength) == false) || + (avcCAtom->FindProperty("avcC.sequenceEntries.sequenceParameterSetNALUnit", + (MP4Property **)&pUnit) == false)) { +- VERBOSE_ERROR(m_verbosity, WARNING("Could not find avcC properties")); ++ //VERBOSE_ERROR(m_verbosity, WARNING("Could not find avcC properties")); + return false; + } + uint32_t count = pCount->GetValue(); +@@ -1692,7 +1692,7 @@ + for (uint32_t index = 0; index < count; index++) { + if (pLength->GetValue(index) == sequenceLen) { + uint8_t *seq; +- uint32_t seqlen; ++ u_int32_t seqlen; + pUnit->GetValue(&seq, &seqlen, index); + if (memcmp(seq, pSequence, sequenceLen) == 0) { + free(seq); +@@ -1724,8 +1724,8 @@ + (MP4Property **)&pLength) == false) || + (avcCAtom->FindProperty("avcC.pictureEntries.pictureParameterSetNALUnit", + (MP4Property **)&pUnit) == false)) { +- VERBOSE_ERROR(m_verbosity, +- WARNING("Could not find avcC picture table properties")); ++ //VERBOSE_ERROR(m_verbosity, ++ //WARNING("Could not find avcC picture table properties")); + return false; + } + uint32_t count = pCount->GetValue(); +@@ -1735,7 +1735,7 @@ + for (uint32_t index = 0; index < count; index++) { + if (pLength->GetValue(index) == pictLen) { + uint8_t *seq; +- uint32_t seqlen; ++ u_int32_t seqlen; + pUnit->GetValue(&seq, &seqlen, index); + if (memcmp(seq, pPict, pictLen) == 0) { + VERBOSE_WRITE(m_verbosity, +@@ -2472,9 +2472,9 @@ + + bool MP4File::GetTrackH264SeqPictHeaders (MP4TrackId trackId, + uint8_t ***pppSeqHeader, +- uint32_t **ppSeqHeaderSize, ++ u_int32_t **ppSeqHeaderSize, + uint8_t ***pppPictHeader, +- uint32_t **ppPictHeaderSize) ++ u_int32_t **ppPictHeaderSize) + { + uint32_t count; + +@@ -2490,15 +2490,15 @@ + (MP4Property **)&pSeqLen) == false) || + (avcCAtom->FindProperty("avcC.sequenceEntries.sequenceParameterSetNALUnit", + (MP4Property **)&pSeqVal) == false)) { +- VERBOSE_ERROR(m_verbosity, WARNING("Could not find avcC properties")); ++ //VERBOSE_ERROR(m_verbosity, WARNING("Could not find avcC properties")); + return false; + } + uint8_t **ppSeqHeader = + (uint8_t **)malloc((pSeqCount->GetValue() + 1) * sizeof(uint8_t *)); + *pppSeqHeader = ppSeqHeader; + +- uint32_t *pSeqHeaderSize = +- (uint32_t *)malloc((pSeqCount->GetValue() + 1) * sizeof(uint32_t *)); ++ u_int32_t *pSeqHeaderSize = ++ (u_int32_t *)malloc((pSeqCount->GetValue() + 1) * sizeof(u_int32_t *)); + + *ppSeqHeaderSize = pSeqHeaderSize; + for (count = 0; count < pSeqCount->GetValue(); count++) { +@@ -2513,15 +2513,15 @@ + (MP4Property **)&pPictLen) == false) || + (avcCAtom->FindProperty("avcC.pictureEntries.pictureParameterSetNALUnit", + (MP4Property **)&pPictVal) == false)) { +- VERBOSE_ERROR(m_verbosity, +- WARNING("Could not find avcC picture table properties")); ++ //VERBOSE_ERROR(m_verbosity, ++ //WARNING("Could not find avcC picture table properties")); + return false; + } + uint8_t + **ppPictHeader = + (uint8_t **)malloc((pPictCount->GetValue() + 1) * sizeof(uint8_t *)); +- uint32_t *pPictHeaderSize = +- (uint32_t *)malloc((pPictCount->GetValue() + 1)* sizeof(uint32_t *)); ++ u_int32_t *pPictHeaderSize = ++ (u_int32_t *)malloc((pPictCount->GetValue() + 1)* sizeof(u_int32_t *)); + *pppPictHeader = ppPictHeader; + *ppPictHeaderSize = pPictHeaderSize; + +diff -Naur mpeg4ip/lib/mp4v2/mp4file.h /Users/pri/t/mpeg4ip/lib/mp4v2/mp4file.h +--- mpeg4ip/lib/mp4v2/mp4file.h 2005-03-30 20:41:58.000000000 +0200 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4file.h 2007-02-09 22:35:21.000000000 +0100 +@@ -329,9 +329,9 @@ + uint8_t *pLevel); + bool GetTrackH264SeqPictHeaders(MP4TrackId trackId, + uint8_t ***pSeqHeader, +- uint32_t **pSeqHeaderSize, ++ u_int32_t **pSeqHeaderSize, + uint8_t ***pPictHeader, +- uint32_t **pPictHeaderSize); ++ u_int32_t **pPictHeaderSize); + void GetTrackH264LengthSize(MP4TrackId, + uint32_t *pLength); + const char* GetHintTrackSdp(MP4TrackId hintTrackId); +diff -Naur mpeg4ip/lib/mp4v2/mp4file_io.cpp /Users/pri/t/mpeg4ip/lib/mp4v2/mp4file_io.cpp +--- mpeg4ip/lib/mp4v2/mp4file_io.cpp 2004-07-15 20:09:48.000000000 +0200 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4file_io.cpp 2007-02-09 22:44:47.000000000 +0100 +@@ -86,7 +86,7 @@ + } + + ASSERT(pBytes); +- WARNING(m_numReadBits > 0); ++ //WARNING(m_numReadBits > 0); + + if (pFile == NULL) { + pFile = m_pFile; +diff -Naur mpeg4ip/lib/mp4v2/mp4property.cpp /Users/pri/t/mpeg4ip/lib/mp4v2/mp4property.cpp +--- mpeg4ip/lib/mp4v2/mp4property.cpp 2004-08-23 20:28:21.000000000 +0200 ++++ /Users/pri/t/mpeg4ip/lib/mp4v2/mp4property.cpp 2007-02-09 22:47:04.000000000 +0100 +@@ -636,7 +636,7 @@ + u_int32_t numProperties = m_pProperties.Size(); + + if (numProperties == 0) { +- WARNING(numProperties == 0); ++ //WARNING(numProperties == 0); + return; + } + +@@ -670,7 +670,7 @@ + u_int32_t numProperties = m_pProperties.Size(); + + if (numProperties == 0) { +- WARNING(numProperties == 0); ++ //WARNING(numProperties == 0); + return; + } + +@@ -709,7 +709,7 @@ + u_int32_t numProperties = m_pProperties.Size(); + + if (numProperties == 0) { +- WARNING(numProperties == 0); ++ //WARNING(numProperties == 0); + return; + } + diff --git a/contrib/version_a52dec.txt b/contrib/version_a52dec.txt index 3aa0ed89f..37aee8622 100644 --- a/contrib/version_a52dec.txt +++ b/contrib/version_a52dec.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/a52dec-0.7.4.tar.gz +http://download.mediafork.dynalias.com/contrib/a52dec-0.7.4.tar.gz diff --git a/contrib/version_faac.txt b/contrib/version_faac.txt index 5974895ef..807360621 100644 --- a/contrib/version_faac.txt +++ b/contrib/version_faac.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/faac-1.24.tar.gz +http://download.mediafork.dynalias.com/contrib/faac-1.24.tar.gz diff --git a/contrib/version_ffmpeg.txt b/contrib/version_ffmpeg.txt index 8a76b72f7..e7934a0ee 100644 --- a/contrib/version_ffmpeg.txt +++ b/contrib/version_ffmpeg.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/ffmpeg-7444.tar.gz +http://download.mediafork.dynalias.com/contrib/ffmpeg-7444.tar.gz diff --git a/contrib/version_lame.txt b/contrib/version_lame.txt index d001c67be..0563f9855 100644 --- a/contrib/version_lame.txt +++ b/contrib/version_lame.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/lame-3.96.1.tar.gz +http://download.mediafork.dynalias.com/contrib/lame-3.96.1.tar.gz diff --git a/contrib/version_libdvdcss.txt b/contrib/version_libdvdcss.txt index 555f390eb..c10c39de2 100644 --- a/contrib/version_libdvdcss.txt +++ b/contrib/version_libdvdcss.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/libdvdcss-1.2.9.tar.gz +http://download.mediafork.dynalias.com/contrib/libdvdcss-1.2.9.tar.gz diff --git a/contrib/version_libdvdread.txt b/contrib/version_libdvdread.txt index ff442ba80..e230e3cb7 100644 --- a/contrib/version_libdvdread.txt +++ b/contrib/version_libdvdread.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/libdvdread-20050928.tar.gz +http://download.mediafork.dynalias.com/contrib/libdvdread-20050928.tar.gz diff --git a/contrib/version_libogg.txt b/contrib/version_libogg.txt index f7e457399..e7cee15a3 100644 --- a/contrib/version_libogg.txt +++ b/contrib/version_libogg.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/libogg-1.1.2.tar.gz +http://download.mediafork.dynalias.com/contrib/libogg-1.1.2.tar.gz diff --git a/contrib/version_libsamplerate.txt b/contrib/version_libsamplerate.txt index d8dd6a1d6..636ace2f6 100644 --- a/contrib/version_libsamplerate.txt +++ b/contrib/version_libsamplerate.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/libsamplerate-0.1.2.tar.gz +http://download.mediafork.dynalias.com/contrib/libsamplerate-0.1.2.tar.gz diff --git a/contrib/version_libvorbis.txt b/contrib/version_libvorbis.txt index 8761077f1..3235254e6 100644 --- a/contrib/version_libvorbis.txt +++ b/contrib/version_libvorbis.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/libvorbis-1.1.1.tar.gz +http://download.mediafork.dynalias.com/contrib/libvorbis-1.1.1.tar.gz diff --git a/contrib/version_mpeg2dec.txt b/contrib/version_mpeg2dec.txt index e58f080ed..ca31e0ce6 100644 --- a/contrib/version_mpeg2dec.txt +++ b/contrib/version_mpeg2dec.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/mpeg2dec-20051112.tar.gz +http://download.mediafork.dynalias.com/contrib/mpeg2dec-20051112.tar.gz diff --git a/contrib/version_mpeg4ip.txt b/contrib/version_mpeg4ip.txt new file mode 100644 index 000000000..a374de85f --- /dev/null +++ b/contrib/version_mpeg4ip.txt @@ -0,0 +1 @@ +http://download.mediafork.dynalias.com/contrib/mpeg4ip-1.3.tar.gz
\ No newline at end of file diff --git a/contrib/version_x264.txt b/contrib/version_x264.txt index eff0d42c3..73a659be2 100644 --- a/contrib/version_x264.txt +++ b/contrib/version_x264.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/x264-r604.tar.gz +http://download.mediafork.dynalias.com/contrib/x264-r604.tar.gz diff --git a/contrib/version_xvidcore.txt b/contrib/version_xvidcore.txt index 0a8812c08..8906405ef 100644 --- a/contrib/version_xvidcore.txt +++ b/contrib/version_xvidcore.txt @@ -1 +1 @@ -http://download.handbrake.dynalias.com/contrib/xvidcore-1.1.0.tar.gz +http://download.mediafork.dynalias.com/contrib/xvidcore-1.1.0.tar.gz Binary files differdiff --git a/jamintel b/jamintel Binary files differdeleted file mode 100755 index 7dc2e788c..000000000 --- a/jamintel +++ /dev/null diff --git a/libhb/muxmp4.c b/libhb/muxmp4.c deleted file mode 100644 index 971c4bfbb..000000000 --- a/libhb/muxmp4.c +++ /dev/null @@ -1,198 +0,0 @@ -/* $Id: muxmp4.c,v 1.24 2005/11/04 13:09:41 titer Exp $ - -This file is part of the HandBrake source code. -Homepage: <http://handbrake.m0k.org/>. -It may be used under the terms of the GNU General Public License. */ - -#include <ffmpeg/avformat.h> - -#include "hb.h" - -int64_t ff_gcd(int64_t a, int64_t b); - -struct hb_mux_object_s -{ - HB_MUX_COMMON; - - hb_job_t * job; - - AVFormatContext * format; -}; - -struct hb_mux_data_s -{ - int track; -}; - -/********************************************************************** -* MP4Init -********************************************************************** -* Allocates hb_mux_data_t structures, create file and write headers -*********************************************************************/ -static int MP4Init( hb_mux_object_t * m ) -{ - hb_job_t * job = m->job; - hb_title_t * title = job->title; - - hb_audio_t * audio; - int i; - AVFormatContext * oc; - AVStream *st; - AVFormatParameters params; - - register_protocol(&file_protocol); - //movenc_init(); - av_register_all(); - - oc = av_alloc_format_context(); - - if( job->mux & HB_MUX_PSP ) - { - oc->oformat = guess_format( "psp", NULL, NULL ); - hb_log( "using format psp" ); - } - else if( job->mux & HB_MUX_IPOD ) - { - /* added this format to ffmpeg source */ - oc->oformat = guess_format( "ipod", NULL, NULL ); - hb_log( "using format ipod" ); - } - else - { - oc->oformat = guess_format( "mp4", NULL, NULL ); - hb_log( "using format mp4" ); - } - if( !oc->oformat ) - { - hb_log( "guess_format failed" ); - return 1; - } - - hb_log( "using oformat: %s", oc->oformat->name ); - - snprintf( oc->filename, sizeof( oc->filename ), - "%s", job->file ); - - st = av_new_stream( oc, oc->nb_streams ); - if( !st ) - { - hb_log( "av_new_stream failed" ); - return 1; - } - st->stream_copy = 1; - st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; - st->codec->codec_type = CODEC_TYPE_VIDEO; - st->codec->codec_id = ( job->vcodec == HB_VCODEC_X264 ) ? -CODEC_ID_H264 : CODEC_ID_MPEG4; - st->codec->extradata= job->config.mpeg4.bytes; - st->codec->extradata_size= job->config.mpeg4.length; - st->codec->bit_rate = 1000 * job->vbitrate; - i = ff_gcd( job->vrate_base, job->vrate ); - st->codec->time_base = (AVRational){ job->vrate_base / i, job->vrate / i }; - - st->codec->pix_fmt = PIX_FMT_YUV420P; - st->codec->width = job->width; - st->codec->height = job->height; - st->codec->has_b_frames = 0; - - job->mux_data = malloc( sizeof( hb_mux_data_t ) ); - job->mux_data->track = 0; - - for( i = 0; i < hb_list_count( title->list_audio ); i++ ) - { - audio = hb_list_item( title->list_audio, i ); - - audio->mux_data = malloc( sizeof( hb_mux_data_t ) ); - audio->mux_data->track = i + 1; - - st = av_new_stream( oc, oc->nb_streams ); - if( !st ) - { - hb_log( "av_new_stream failed" ); - return 1; - } - st->stream_copy = 1; - st->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; - st->codec->codec_type = CODEC_TYPE_AUDIO; - st->codec->codec_id = CODEC_ID_AAC; - st->codec->bit_rate = 1000 * job->abitrate; - st->codec->extradata= audio->config.aac.bytes; - st->codec->extradata_size= audio->config.aac.length; - st->codec->time_base = (AVRational){ 1, job->arate }; - st->codec->channels = 2; - st->codec->sample_rate = job->arate; - st->codec->frame_size = 1024; - st->codec->block_align = 0; - } - - oc->timestamp = 0; - if( url_fopen( &oc->pb, job->file, URL_WRONLY ) < 0 ) - { - hb_log( "url_fopen failed (%s)", job->file ); - return 1; - } - - memset( ¶ms, 0, sizeof( params ) ); - if( av_set_parameters( oc, ¶ms ) < 0 ) - { - hb_log( "av_set_parameters failed" ); - return 1; - } - - oc->packet_size= 0; - oc->mux_rate= 0; - oc->preload= (int)(0.5*AV_TIME_BASE); - oc->max_delay= (int)(0.7*AV_TIME_BASE); - oc->loop_output = AVFMT_NOOUTPUTLOOP; - - if( av_write_header( oc ) < 0 ) - { - hb_log( "av_write_header failed" ); - return 1; - } - - m->format = oc; - - return 0; -} - -static int MP4Mux( hb_mux_object_t * m, hb_mux_data_t * mux_data, - hb_buffer_t * buf ) -{ - AVPacket pkt; - av_init_packet(&pkt); - - pkt.stream_index = mux_data->track; - pkt.data = buf->data; - pkt.size = buf->size; - pkt.pts = buf->start; - - if( buf->key ) - { - pkt.flags |= PKT_FLAG_KEY; - } - - av_interleaved_write_frame( m->format, &pkt ); - - return 0; -} - -static int MP4End( hb_mux_object_t * m ) -{ - av_write_trailer( m->format ); - url_fclose( &m->format->pb ); - av_free( m->format ); - - return 0; -} - -hb_mux_object_t * hb_mux_mp4_init( hb_job_t * job ) -{ - hb_mux_object_t * m = calloc( sizeof( hb_mux_object_t ), 1 ); - m->init = MP4Init; - m->mux = MP4Mux; - m->end = MP4End; - m->job = job; - return m; -} - diff --git a/libhb/Jamfile b/libmediafork/Jamfile index 29f9c7774..10a30ed32 100644 --- a/libhb/Jamfile +++ b/libmediafork/Jamfile @@ -4,15 +4,16 @@ # Homepage: <http://handbrake.m0k.org/>. # It may be used under the terms of the GNU General Public License. -SubDir TOP libhb ; +SubDir TOP libmediafork ; -LIBHB_SRC = -common.c hb.c ports.c scan.c work.c decmpeg2.c encavcodec.c update.c +LIBMEDIAFORK_SRC = +ipodutil.cpp common.c mediafork.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 libhb : $(LIBHB_SRC) ; +Library libmediafork : $(LIBMEDIAFORK_SRC) ; -ObjectCcFlags $(LIBHB_SRC) : -I$(TOP)/contrib/include ; -ObjectDefines $(LIBHB_SRC) : __LIBHB__ ; +ObjectCcFlags $(LIBMEDIAFORK_SRC) : -I$(TOP)/contrib/include ; +ObjectDefines $(LIBMEDIAFORK_SRC) : __LIBMEDIAFORK__ ; +ObjectC++Flags $(LIBMEDIAFORK_SRC) : -I$(TOP)/contrib/include ; diff --git a/libmediafork/Makefile b/libmediafork/Makefile new file mode 100644 index 000000000..0ce595c44 --- /dev/null +++ b/libmediafork/Makefile @@ -0,0 +1,105 @@ +SYSTEM = $(shell uname -s) + +ifeq ($(SYSTEM),Linux) + SYSDEF=-DSYS_LINUX +endif + +ifeq ($(SYSTEM),CYGWIN_NT-5.1) + SYSDEF=-DSYS_CYGWIN +endif + +ifeq ($(SYSTEM),FreeBSD) + CFLAGS += -DSYS_FREEBSD + LDFLAGS += -pthread -lm +endif + +ifeq ($(SYSTEM),NetBSD) + CFLAGS += -DSYS_NETBSD + LDFLAGS += -lpthread -lm +endif + +ifeq ($(SYSTEM),Linux) + CFLAGS += -DSYS_LINUX + LDFLAGS += -lpthread -lm +endif + +SRCS = common.c mediafork.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 ipodutil.cpp +OTMP = $(SRCS:%.c=%.o) +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/libfaac.a ../contrib/lib/libmp3lame.a \ + ../contrib/lib/libmpeg2.a ../contrib/lib/libmpeg2convert.a \ + ../contrib/lib/libvorbis.a ../contrib/lib/libvorbisenc.a \ + ../contrib/lib/libvorbisfile.a ../contrib/lib/libogg.a \ + ../contrib/lib/libsamplerate.a ../contrib/lib/libx264.a \ + ../contrib/lib/libxvidcore.a ../contrib/lib/libmp4v2.a +else +CONTRIBS = ../contrib/lib/liba52.a ../contrib/lib/libavformat.a \ + ../contrib/lib/libavcodec.a ../contrib/lib/libavutil.a \ + ../contrib/lib/libdvdread.a ../contrib/lib/libdvdcss.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 \ + ../contrib/lib/libvorbisfile.a ../contrib/lib/libogg.a \ + ../contrib/lib/libsamplerate.a ../contrib/lib/libx264.a \ + ../contrib/lib/libxvidcore.a ../contrib/lib/libmp4v2.a +endif +BUILD = $(shell date "+%Y%m%d") +CFLAGS += -I../contrib/include -D__LIBMEDIAFORK__ -DUSE_PTHREAD -DHB_VERSION=\"0.8.0b1\" -DHB_BUILD=$(BUILD) $(SYSDEF) + +CXXFLAGS += -I../contrib/include -D__LIBMEDIAFORK__ -DUSE_PTHREAD -DHB_VERSION=\"0.8.0b1\" -DHB_BUILD=$(BUILD) $(SYSDEF) + +ifeq ($(SYSTEM),CYGWIN_NT-5.1) +all: libmediafork.a libmediafork.dll +else +all: libmediafork.a libmediafork.so +endif + +libmediafork.a: $(OBJS) + @echo "Library $@" + @ar ru $@ $(OBJS) + @ranlib $@ + +libmediafork.so: $(OBJS) + @echo "Shared library $@" + @g++ -o $@ $(OBJS) $(CONTRIBS) -shared $(CFLAGS) || \ + ( echo "Compile line for $@ was:"; echo $$CMD; false ) + +libmediafork.dll: $(OBJS) + @echo "Shared library $@" + @g++ -o $@ $(OBJS) $(CONTRIBS) -shared $(CFLAGS) || \ + ( echo "Compile line for $@ was:"; echo $$CMD; false ) + +%.o: %.c + @echo "Cc $@" + @CMD="$(CC) $(CFLAGS) -o $@ -c $<"; $$CMD || \ + ( echo "Compile line for $@ was:"; echo $$CMD; false ) +%.o: %.cpp + @echo "Cc $@" + @CMD="$(CC) $(CFLAGS) -o $@ -c $<"; $$CMD || \ + ( echo "Compile line for $@ was:"; echo $$CMD; false ) + + +clean: + @echo "Clean libmediafork.a" + @$(RM) libmediafork.* + @echo "Clean libmediafork.so" + @$(RM) libmediafork.so + @echo "Clean $(OBJS)" + @$(RM) $(OBJS) + +.depend: $(SRCS) + @echo "Checking dependencies..." + @$(RM) .depend + @$(foreach SRC, $(SRCS), $(CC) -MM $(SRC) $(CFLAGS) >> .depend;) + +-include .depend + diff --git a/libhb/common.c b/libmediafork/common.c index e9d366f75..7b41a93fb 100644 --- a/libhb/common.c +++ b/libmediafork/common.c @@ -37,6 +37,29 @@ int hb_audio_bitrates_count = sizeof( hb_audio_bitrates ) / int hb_audio_bitrates_default = 8; /* 128 kbps */ /********************************************************************** + * hb_reduce + ********************************************************************** + * Given a numerator (num) and a denominator (den), reduce them to an + * equivalent fraction and store the result in x and y. + *********************************************************************/ +void hb_reduce( int *x, int *y, int num, int den ) +{ + int lower = MIN( num, den ); + int i; + *x = num; + *y = den; + for( i = lower - 1; i > 1; --i ) + { + if( ( num % i == 0 ) && ( den % i == 0 ) ) + { + *x = num / i; + *y = den / i; + break; + } + } +} + +/********************************************************************** * hb_fix_aspect ********************************************************************** * Given the output width (if HB_KEEP_WIDTH) or height diff --git a/libhb/common.h b/libmediafork/common.h index 859711f81..ed9d7c59a 100644 --- a/libhb/common.h +++ b/libmediafork/common.h @@ -7,6 +7,7 @@ #ifndef HB_COMMON_H #define HB_COMMON_H +#include <math.h> #include <stdio.h> #include <stdlib.h> #include <stdarg.h> @@ -44,7 +45,7 @@ typedef struct hb_fifo_s hb_fifo_t; typedef struct hb_lock_s hb_lock_t; #include "ports.h" -#ifdef __LIBHB__ +#ifdef __LIBMEDIAFORK__ #include "internal.h" #endif @@ -55,6 +56,8 @@ void hb_list_rem( hb_list_t *, void * ); void * hb_list_item( hb_list_t *, int ); void hb_list_close( hb_list_t ** ); +void hb_reduce( int *x, int *y, int num, int den ); + #define HB_KEEP_WIDTH 0 #define HB_KEEP_HEIGHT 1 void hb_fix_aspect( hb_job_t * job, int keep ); @@ -92,17 +95,24 @@ struct hb_job_s int chapter_end; /* Picture settings: - crop: must be multiples of 2 (top/bottom/left/right) - deinterlace: 0 or 1 - width: must be a multiple of 16 - height: must be a multiple of 16 - keep_ratio: used by UIs */ + crop: must be multiples of 2 (top/bottom/left/right) + deinterlace: 0 or 1 + width: must be a multiple of 16 + height: must be a multiple of 16 + 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 */ + int crop[4]; int deinterlace; int width; int height; int keep_ratio; int grayscale; + int pixel_ratio; + int pixel_aspect_width; + int pixel_aspect_height; /* Video settings: vcodec: output codec @@ -166,7 +176,7 @@ struct hb_job_s int mux; char * file; -#ifdef __LIBHB__ +#ifdef __LIBMEDIAFORK__ /* Internal data */ hb_handle_t * h; hb_lock_t * pause; @@ -200,7 +210,7 @@ struct hb_audio_s int bitrate; int channels; -#ifdef __LIBHB__ +#ifdef __LIBMEDIAFORK__ /* Internal data */ hb_fifo_t * fifo_in; /* AC3/MPEG/LPCM ES */ hb_fifo_t * fifo_raw; /* Raw audio */ @@ -235,7 +245,7 @@ struct hb_subtitle_s int id; char lang[1024]; -#ifdef __LIBHB__ +#ifdef __LIBMEDIAFORK__ /* Internal data */ hb_fifo_t * fifo_in; /* SPU ES */ hb_fifo_t * fifo_raw; /* Decodec SPU */ @@ -336,7 +346,7 @@ struct hb_work_object_s int id; char * name; -#ifdef __LIBHB__ +#ifdef __LIBMEDIAFORK__ int (* init) ( hb_work_object_t *, hb_job_t * ); int (* work) ( hb_work_object_t *, hb_buffer_t **, hb_buffer_t ** ); diff --git a/libhb/deca52.c b/libmediafork/deca52.c index b18acf641..c7688ed3b 100644 --- a/libhb/deca52.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "a52dec/a52.h" diff --git a/libhb/decavcodec.c b/libmediafork/decavcodec.c index 4d74fc68f..dfc61dcd5 100644 --- a/libhb/decavcodec.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "ffmpeg/avcodec.h" diff --git a/libhb/declpcm.c b/libmediafork/declpcm.c index f6a703d38..718cf559d 100644 --- a/libhb/declpcm.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.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/libhb/decmpeg2.c b/libmediafork/decmpeg2.c index 214444a05..e3188dfe2 100644 --- a/libhb/decmpeg2.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "mpeg2dec/mpeg2.h" diff --git a/libhb/decsub.c b/libmediafork/decsub.c index 3666ea3fe..f68e763e1 100644 --- a/libhb/decsub.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" struct hb_work_private_s { diff --git a/libhb/demuxmpeg.c b/libmediafork/demuxmpeg.c index 721478e80..54bef2b47 100644 --- a/libhb/demuxmpeg.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" /* Basic MPEG demuxer, only works with DVDs (2048 bytes packets) */ diff --git a/libhb/dvd.c b/libmediafork/dvd.c index 4082a18d3..04695a3e2 100644 --- a/libhb/dvd.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "lang.h" #include "dvdread/ifo_read.h" diff --git a/libhb/encavcodec.c b/libmediafork/encavcodec.c index f04606906..c1d7df9d2 100644 --- a/libhb/encavcodec.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "ffmpeg/avcodec.h" @@ -65,6 +65,15 @@ int encavcodecInit( hb_work_object_t * w, hb_job_t * job ) context->gop_size = 10 * job->vrate / job->vrate_base; context->pix_fmt = PIX_FMT_YUV420P; + if( job->pixel_ratio ) + { + context->sample_aspect_ratio.num = job->pixel_aspect_width; + context->sample_aspect_ratio.den = job->pixel_aspect_height; + + hb_log( "encavcodec: encoding with stored aspect %d/%d", + job->pixel_aspect_width, job->pixel_aspect_height ); + } + if( job->mux & ( HB_MUX_MP4 | HB_MUX_PSP ) ) { context->flags |= CODEC_FLAG_GLOBAL_HEADER; diff --git a/libhb/encfaac.c b/libmediafork/encfaac.c index 8e2bd4355..19787a560 100644 --- a/libhb/encfaac.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "faac.h" diff --git a/libhb/enclame.c b/libmediafork/enclame.c index f663e62eb..82bca1132 100644 --- a/libhb/enclame.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "lame/lame.h" diff --git a/libhb/encvorbis.c b/libmediafork/encvorbis.c index 4bdb6efeb..1e916a447 100644 --- a/libhb/encvorbis.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "vorbis/vorbisenc.h" diff --git a/libhb/encx264.c b/libmediafork/encx264.c index 1bc24866c..cdd8e9b69 100644 --- a/libhb/encx264.c +++ b/libmediafork/encx264.c @@ -1,12 +1,12 @@ /* $Id: encx264.c,v 1.21 2005/11/04 13:09:41 titer Exp $ -This file is part of the HandBrake source code. -Homepage: <http://handbrake.m0k.org/>. -It may be used under the terms of the GNU General Public License. */ + This file is part of the HandBrake source code. + Homepage: <http://handbrake.m0k.org/>. + It may be used under the terms of the GNU General Public License. */ #include <stdarg.h> -#include "hb.h" +#include "mediafork.h" #include "x264.h" @@ -29,32 +29,31 @@ struct hb_work_private_s x264_t * x264; x264_picture_t pic_in; x264_picture_t pic_out; - + char filename[1024]; }; /*********************************************************************** -* hb_work_encx264_init -*********************************************************************** -* -**********************************************************************/ + * hb_work_encx264_init + *********************************************************************** + * + **********************************************************************/ int encx264Init( hb_work_object_t * w, hb_job_t * job ) { x264_param_t param; x264_nal_t * nal; int nal_count; - int i, size; - + hb_work_private_t * pv = calloc( 1, sizeof( hb_work_private_t ) ); w->private_data = pv; - + pv->job = job; - + memset( pv->filename, 0, 1024 ); hb_get_tempory_filename( job->h, pv->filename, "x264.log" ); - + x264_param_default( ¶m ); - + param.i_threads = hb_get_cpu_count(); param.i_width = job->width; param.i_height = job->height; @@ -62,75 +61,85 @@ int encx264Init( hb_work_object_t * w, hb_job_t * job ) param.i_fps_den = job->vrate_base; param.i_keyint_max = 20 * job->vrate / job->vrate_base; param.i_log_level = X264_LOG_NONE; - - if( job->h264_level ) - { + if( job->h264_level ) + { param.i_threads = 1; param.b_cabac = 0; param.i_level_idc = job->h264_level; hb_log( "encx264: encoding at level %i", param.i_level_idc ); - } - - /* Slightly faster with minimal quality lost */ - param.analyse.i_subpel_refine = 4; - - if( job->vquality >= 0.0 && job->vquality <= 1.0 ) - { - switch(job->crf) + } + + /* Slightly faster with minimal quality lost */ + param.analyse.i_subpel_refine = 4; + + if( job->pixel_ratio ) + { + param.vui.i_sar_width = job->pixel_aspect_width; + param.vui.i_sar_height = job->pixel_aspect_height; + + hb_log( "encx264: encoding with stored aspect %d/%d", + param.vui.i_sar_width, param.vui.i_sar_height ); + } + + + if( job->vquality >= 0.0 && job->vquality <= 1.0 ) + { + switch(job->crf) { case 1: /*Constant RF*/ param.rc.i_rc_method = X264_RC_CRF; param.rc.f_rf_constant = 51 - job->vquality * 51; - hb_log( "encx264: Encoding at constant RF %f", param.rc.f_rf_constant ); + hb_log( "encx264: Encoding at constant RF %f", + param.rc.f_rf_constant ); break; - + case 0: /*Constant QP*/ param.rc.i_rc_method = X264_RC_CQP; - param.rc.i_qp_constant = 51 - job->vquality * 51; - hb_log( "encx264: encoding at constant QP %d", - param.rc.i_qp_constant ); + param.rc.i_qp_constant = 51 - job->vquality * 51; + hb_log( "encx264: encoding at constant QP %d", + param.rc.i_qp_constant ); break; } - } - else - { + } + else + { /* Rate control */ - param.rc.i_rc_method = X264_RC_ABR; - param.rc.i_bitrate = job->vbitrate; - switch( job->pass ) - { - case 1: - param.rc.b_stat_write = 1; - param.rc.psz_stat_out = pv->filename; - break; - case 2: - param.rc.b_stat_read = 1; - param.rc.psz_stat_in = pv->filename; - break; - } - } - + param.rc.i_rc_method = X264_RC_ABR; + param.rc.i_bitrate = job->vbitrate; + switch( job->pass ) + { + case 1: + param.rc.b_stat_write = 1; + param.rc.psz_stat_out = pv->filename; + break; + case 2: + param.rc.b_stat_read = 1; + param.rc.psz_stat_in = pv->filename; + break; + } + } + hb_log( "encx264: opening libx264 (pass %d)", job->pass ); pv->x264 = x264_encoder_open( ¶m ); - - w->config->mpeg4.length = 0; - + x264_encoder_headers( pv->x264, &nal, &nal_count ); - - for( i = 0; i < nal_count; i++ ) - { - size = sizeof( w->config->mpeg4.bytes ) - w->config->mpeg4.length; - x264_nal_encode( &w->config->mpeg4.bytes[w->config->mpeg4.length], - &size, 1, &nal[i] ); - w->config->mpeg4.length += size; - } - + + /* Sequence Parameter Set */ + w->config->h264.sps_length = 1 + nal[1].i_payload; + w->config->h264.sps[0] = 0x67; + memcpy( &w->config->h264.sps[1], nal[1].p_payload, nal[1].i_payload ); + + /* Picture Parameter Set */ + w->config->h264.pps_length = 1 + nal[2].i_payload; + w->config->h264.pps[0] = 0x68; + memcpy( &w->config->h264.pps[1], nal[2].p_payload, nal[2].i_payload ); + x264_picture_alloc( &pv->pic_in, X264_CSP_I420, job->width, job->height ); - + return 0; } @@ -138,12 +147,12 @@ void encx264Close( hb_work_object_t * w ) { hb_work_private_t * pv = w->private_data; x264_encoder_close( pv->x264 ); - + /* TODO */ } int encx264Work( hb_work_object_t * w, hb_buffer_t ** buf_in, - hb_buffer_t ** buf_out ) + hb_buffer_t ** buf_out ) { hb_work_private_t * pv = w->private_data; hb_job_t * job = pv->job; @@ -151,7 +160,7 @@ int encx264Work( hb_work_object_t * w, hb_buffer_t ** buf_in, int i_nal; x264_nal_t * nal; int i; - + /* XXX avoid this memcpy ? */ memcpy( pv->pic_in.img.plane[0], in->data, job->width * job->height ); if( job->grayscale ) @@ -167,36 +176,65 @@ int encx264Work( hb_work_object_t * w, hb_buffer_t ** buf_in, memcpy( pv->pic_in.img.plane[2], in->data + 5 * job->width * job->height / 4, job->width * job->height / 4 ); } - + pv->pic_in.i_type = X264_TYPE_AUTO; pv->pic_in.i_qpplus1 = 0; - + x264_encoder_encode( pv->x264, &nal, &i_nal, &pv->pic_in, &pv->pic_out ); - - - + /* Should be way too large */ buf = hb_buffer_init( 3 * job->width * job->height / 2 ); + buf->size = 0; buf->start = in->start; buf->stop = in->stop; - buf->key = ( pv->pic_out.i_type == X264_TYPE_IDR ); - - - buf->size = 0; + buf->key = 0; + for( i = 0; i < i_nal; i++ ) { int size, data; + data = buf->alloc - buf->size; - if( ( size = x264_nal_encode( &buf->data[buf->size], &data, - 1, &nal[i] ) ) > 0 ) + if( ( size = x264_nal_encode( buf->data + buf->size, &data, + 1, &nal[i] ) ) < 1 ) + { + continue; + } + + if( job->mux & HB_MUX_AVI ) { + if( nal[i].i_ref_idc == NAL_PRIORITY_HIGHEST ) + { + buf->key = 1; + } buf->size += size; + continue; + } + + /* H.264 in .mp4 */ + switch( buf->data[buf->size+4] & 0x1f ) + { + case 0x7: + case 0x8: + /* SPS, PPS */ + break; + + default: + /* H.264 in mp4 (stolen from mp4creator) */ + buf->data[buf->size+0] = ( ( size - 4 ) >> 24 ) & 0xFF; + buf->data[buf->size+1] = ( ( size - 4 ) >> 16 ) & 0xFF; + buf->data[buf->size+2] = ( ( size - 4 ) >> 8 ) & 0xFF; + buf->data[buf->size+3] = ( ( size - 4 ) >> 0 ) & 0xFF; + if( nal[i].i_ref_idc == NAL_PRIORITY_HIGHEST ) + { + buf->key = 1; + } + buf->size += size; } } - + *buf_out = buf; - + return HB_WORK_OK; } diff --git a/libhb/encxvid.c b/libmediafork/encxvid.c index 87c42b0a4..64b38a405 100644 --- a/libhb/encxvid.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "xvid.h" @@ -162,6 +162,13 @@ int encxvidWork( hb_work_object_t * w, hb_buffer_t ** buf_in, frame.vol_flags = 0; frame.vop_flags = XVID_VOP_HALFPEL | XVID_VOP_INTER4V | XVID_VOP_TRELLISQUANT | XVID_VOP_HQACPRED; + if( job->pixel_ratio ) + { + frame.par = XVID_PAR_EXT; + frame.par_width = job->pixel_aspect_width; + frame.par_height = job->pixel_aspect_height; + } + if( job->grayscale ) { frame.vop_flags |= XVID_VOP_GREYSCALE; diff --git a/libhb/fifo.c b/libmediafork/fifo.c index 93e3e162e..9e5ea15f8 100644 --- a/libhb/fifo.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #ifndef SYS_DARWIN #include <malloc.h> diff --git a/libhb/internal.h b/libmediafork/internal.h index 36ead1bf0..3948d5dfd 100644 --- a/libhb/internal.h +++ b/libmediafork/internal.h @@ -122,6 +122,14 @@ union hb_esconfig_u int length; } mpeg4; + struct + { + uint8_t sps[HB_CONFIG_MAX_SIZE]; + int sps_length; + uint8_t pps[HB_CONFIG_MAX_SIZE]; + int pps_length; + } h264; + struct { uint8_t bytes[HB_CONFIG_MAX_SIZE]; diff --git a/libmediafork/ipodutil.cpp b/libmediafork/ipodutil.cpp new file mode 100644 index 000000000..ba37e4768 --- /dev/null +++ b/libmediafork/ipodutil.cpp @@ -0,0 +1,34 @@ +/* + * MP4 library API functions + * + * These are wrapper functions that provide C linkage conventions + * to the library, and catch any internal errors, ensuring that + * a proper return value is given. + */ + +#include "mp4common.h" + +static u_int8_t ipod_magic[] = { + 0x6b, 0x68, 0x40, 0xf2, 0x5f, 0x24, 0x4f, 0xc5, + 0xba, 0x39, 0xa5, 0x1b, 0xcf, 0x03, 0x23, 0xf3 +}; + +class IPodUUIDAtom : public MP4Atom { +public: + IPodUUIDAtom() : MP4Atom("uuid") + { + SetExtendedType(ipod_magic); + + MP4Integer32Property* value = new MP4Integer32Property("value"); + value->SetValue(1); + AddProperty(value); + } +}; + +extern "C" void AddIPodUUID(MP4FileHandle hFile, MP4TrackId trackId) +{ + MP4Track* track = ((MP4File*)hFile)->GetTrack(trackId); + MP4Atom* avc1 = track->GetTrakAtom()->FindChildAtom("mdia.minf.stbl.stsd.avc1"); + avc1->AddChildAtom(new IPodUUIDAtom()); +} + diff --git a/libhb/lang.h b/libmediafork/lang.h index f88f539ff..f88f539ff 100644 --- a/libhb/lang.h +++ b/libmediafork/lang.h diff --git a/libhb/hb.c b/libmediafork/mediafork.c index 98e014f0d..6eb115fd8 100644 --- a/libhb/hb.c +++ b/libmediafork/mediafork.c @@ -1,10 +1,4 @@ -/* $Id: hb.c,v 1.43 2005/04/27 21:05:24 titer Exp $ - - This file is part of the HandBrake source code. - Homepage: <http://handbrake.m0k.org/>. - It may be used under the terms of the GNU General Public License. */ - -#include "hb.h" +#include "mediafork.h" #include "ffmpeg/avcodec.h" @@ -131,6 +125,96 @@ hb_handle_t * hb_init_real( int verbose, int update_check ) } /** + * libhb initialization routine. + * This version is to use when calling the dylib, the macro hb_init isn't available from a dylib call! + * @param verbose HB_DEBUG_NONE or HB_DEBUG_ALL. + * @param update_check signals libhb to check for updated version from HandBrake website. + * @return Handle to hb_handle_t for use on all subsequent calls to libhb. + */ +hb_handle_t * hb_init_dl( int verbose, int update_check ) +{ + hb_handle_t * h = calloc( sizeof( hb_handle_t ), 1 ); + uint64_t date; + + /* See hb_log() in common.c */ + if( verbose > HB_DEBUG_NONE ) + { + putenv( "HB_DEBUG=1" ); + av_log_set_level(AV_LOG_DEBUG); + } + + /* Check for an update on the website if asked to */ + h->build = -1; + + if( update_check ) + { + hb_log( "hb_init: checking for updates" ); + date = hb_get_date(); + h->update_thread = hb_update_init( &h->build, h->version ); + + for( ;; ) + { + if( hb_thread_has_exited( h->update_thread ) ) + { + /* Immediate success or failure */ + hb_thread_close( &h->update_thread ); + break; + } + if( hb_get_date() > date + 1000 ) + { + /* Still nothing after one second. Connection problem, + let the thread die */ + hb_log( "hb_init: connection problem, not waiting for " + "update_thread" ); + break; + } + hb_snooze( 500 ); + } + } + + /* CPU count detection */ + hb_log( "hb_init: checking cpu count" ); + h->cpu_count = hb_get_cpu_count(); + + h->list_title = hb_list_init(); + h->jobs = hb_list_init(); + + h->state_lock = hb_lock_init(); + h->state.state = HB_STATE_IDLE; + + h->pause_lock = hb_lock_init(); + + /* libavcodec */ + avcodec_init(); + register_avcodec( &mpeg4_encoder ); + register_avcodec( &mp2_decoder ); + register_avcodec( &ac3_encoder ); + + /* Start library thread */ + hb_log( "hb_init: starting libhb thread" ); + h->die = 0; + h->main_thread = hb_thread_init( "libhb", thread_func, h, + HB_NORMAL_PRIORITY ); + + hb_register( &hb_sync ); + hb_register( &hb_decmpeg2 ); + hb_register( &hb_decsub ); + hb_register( &hb_render ); + hb_register( &hb_encavcodec ); + hb_register( &hb_encxvid ); + hb_register( &hb_encx264 ); + hb_register( &hb_deca52 ); + hb_register( &hb_decavcodec ); + hb_register( &hb_declpcm ); + hb_register( &hb_encfaac ); + hb_register( &hb_enclame ); + hb_register( &hb_encvorbis ); + + return h; +} + + +/** * Returns current version of libhb. * @param h Handle to hb_handle_t. * @return character array of version number. diff --git a/libhb/hb.h b/libmediafork/mediafork.h index e989a6bc0..8b5d4696a 100644 --- a/libhb/hb.h +++ b/libmediafork/mediafork.h @@ -1,9 +1,3 @@ -/* $Id: hb.h,v 1.12 2005/03/29 09:40:28 titer Exp $ - - This file is part of the HandBrake source code. - Homepage: <http://handbrake.m0k.org/>. - It may be used under the terms of the GNU General Public License. */ - #ifndef HB_HB_H #define HB_HB_H @@ -20,6 +14,7 @@ extern "C" { #define HB_DEBUG_ALL 1 void hb_register( hb_work_object_t * ); hb_handle_t * hb_init_real( int verbose, int update_check ); +hb_handle_t * hb_init_dl ( int verbose, int update_check ); // hb_init for use with dylib #define hb_init(v,u) \ hb_init_real( v, u ); \ diff --git a/libhb/muxavi.c b/libmediafork/muxavi.c index 8746a3cdd..4231d32df 100644 --- a/libhb/muxavi.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #define AVIF_HASINDEX 0x10 #define AVIIF_KEYFRAME 0x10 diff --git a/libhb/muxcommon.c b/libmediafork/muxcommon.c index 70e384e8a..3f6613716 100644 --- a/libhb/muxcommon.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" struct hb_mux_object_s { diff --git a/libmediafork/muxmp4.c b/libmediafork/muxmp4.c new file mode 100644 index 000000000..1fc201f4d --- /dev/null +++ b/libmediafork/muxmp4.c @@ -0,0 +1,167 @@ +/* $Id: muxmp4.c,v 1.24 2005/11/04 13:09:41 titer Exp $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.m0k.org/>. + It may be used under the terms of the GNU General Public License. */ + +/* libmp4v2 header */ +#include "mp4.h" + +#include "mediafork.h" + +void AddIPodUUID(MP4FileHandle, MP4TrackId); + + +struct hb_mux_object_s +{ + HB_MUX_COMMON; + + hb_job_t * job; + + /* libmp4v2 handle */ + MP4FileHandle file; + + /* Cumulated durations so far, in timescale units (see MP4Mux) */ + uint64_t sum_dur; +}; + +struct hb_mux_data_s +{ + MP4TrackId track; +}; + +/********************************************************************** + * MP4Init + ********************************************************************** + * Allocates hb_mux_data_t structures, create file and write headers + *********************************************************************/ +static int MP4Init( hb_mux_object_t * m ) +{ + hb_job_t * job = m->job; + hb_title_t * title = job->title; + + hb_audio_t * audio; + hb_mux_data_t * mux_data; + int i; + + /* Create an empty mp4 file */ + m->file = MP4Create( job->file, MP4_DETAILS_ERROR, 0 ); + + /* Video track */ + mux_data = malloc( sizeof( hb_mux_data_t ) ); + job->mux_data = mux_data; + + /* When using the standard 90000 timescale, QuickTime tends to have + synchronization issues (audio not playing at the correct speed). + To workaround this, we use the audio samplerate as the + timescale */ + MP4SetTimeScale( m->file, job->arate ); + + if( job->vcodec == HB_VCODEC_X264 ) + { + /* 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 */ + + 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); + } + } + else /* FFmpeg or XviD */ + { + MP4SetVideoProfileLevel( m->file, MPEG4_SP_L3 ); + mux_data->track = MP4AddVideoTrack( m->file, job->arate, + MP4_INVALID_DURATION, job->width, job->height, + MP4_MPEG4_VIDEO_TYPE ); + + /* VOL from FFmpeg or XviD */ + MP4SetTrackESConfiguration( m->file, mux_data->track, + job->config.mpeg4.bytes, job->config.mpeg4.length ); + } + + for( i = 0; i < hb_list_count( title->list_audio ); i++ ) + { + audio = hb_list_item( title->list_audio, i ); + mux_data = malloc( sizeof( hb_mux_data_t ) ); + audio->mux_data = mux_data; + + mux_data->track = MP4AddAudioTrack( m->file, + job->arate, 1024, MP4_MPEG4_AUDIO_TYPE ); + MP4SetAudioProfileLevel( m->file, 0x0F ); + MP4SetTrackESConfiguration( m->file, mux_data->track, + audio->config.aac.bytes, audio->config.aac.length ); + } + + return 0; +} + +static int MP4Mux( hb_mux_object_t * m, hb_mux_data_t * mux_data, + hb_buffer_t * buf ) +{ + hb_job_t * job = m->job; + + uint64_t duration; + + if( mux_data == job->mux_data ) + { + /* Video */ + /* Because we use the audio samplerate as the timescale, + we have to use potentially variable durations so the video + doesn't go out of sync */ + duration = ( buf->stop * job->arate / 90000 ) - m->sum_dur; + m->sum_dur += duration; + } + else + { + /* Audio */ + duration = MP4_INVALID_DURATION; + } + + MP4WriteSample( m->file, mux_data->track, buf->data, buf->size, + duration, 0, buf->key ); + return 0; +} + +static int MP4End( hb_mux_object_t * m ) +{ +#if 0 + hb_job_t * job = m->job; +#endif + char filename[1024]; memset( filename, 0, 1024 ); + + MP4Close( m->file ); + +#if 0 + hb_log( "muxmp4: optimizing file" ); + snprintf( filename, 1024, "%s.tmp", job->file ); + MP4Optimize( job->file, filename, MP4_DETAILS_ERROR ); + remove( job->file ); + rename( filename, job->file ); +#endif + + return 0; +} + +hb_mux_object_t * hb_mux_mp4_init( hb_job_t * job ) +{ + hb_mux_object_t * m = calloc( sizeof( hb_mux_object_t ), 1 ); + m->init = MP4Init; + m->mux = MP4Mux; + m->end = MP4End; + m->job = job; + return m; +} + diff --git a/libhb/muxogm.c b/libmediafork/muxogm.c index 6a3b1ec5d..62ff4e7b8 100644 --- a/libhb/muxogm.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include <ogg/ogg.h> diff --git a/libhb/ports.c b/libmediafork/ports.c index bdeadc1f8..1e0b622b1 100644 --- a/libhb/ports.c +++ b/libmediafork/ports.c @@ -28,7 +28,7 @@ #include <netinet/in.h> //#endif -#include "hb.h" +#include "mediafork.h" /************************************************************************ * hb_get_date() diff --git a/libhb/ports.h b/libmediafork/ports.h index 47df1ce5e..740252e6b 100644 --- a/libhb/ports.h +++ b/libmediafork/ports.h @@ -14,7 +14,7 @@ uint64_t hb_get_date(); void hb_snooze( int delay ); int hb_get_cpu_count(); -#ifdef __LIBHB__ +#ifdef __LIBMEDIAFORK__ /* 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 /* __LIBHB__ */ +#endif /* __LIBMEDIAFORK__ */ #endif diff --git a/libhb/reader.c b/libmediafork/reader.c index 47ec9d546..7be28237d 100644 --- a/libhb/reader.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" typedef struct { diff --git a/libhb/render.c b/libmediafork/render.c index cf6d7b31c..97117089a 100644 --- a/libhb/render.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "ffmpeg/avcodec.h" diff --git a/libhb/scan.c b/libmediafork/scan.c index 097f11638..1f74f629d 100644 --- a/libhb/scan.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "a52dec/a52.h" typedef struct @@ -177,13 +177,29 @@ static void ScanFunc( void * _data ) /* Autocrop by default. Gnark gnark */ memcpy( job->crop, title->crop, 4 * sizeof( int ) ); + if( title->aspect == 16 ) + { + hb_reduce( &job->pixel_aspect_width, &job->pixel_aspect_height, + 16 * title->height, 9 * title->width ); + } + else + { + hb_reduce( &job->pixel_aspect_width, &job->pixel_aspect_height, + 4 * title->height, 3 * title->width ); + } + job->width = title->width - job->crop[2] - job->crop[3]; +// job->height = title->height - job->crop[0] - job->crop[1]; hb_fix_aspect( job, HB_KEEP_WIDTH ); if( job->height > title->height - job->crop[0] - job->crop[1] ) { job->height = title->height - job->crop[0] - job->crop[1]; hb_fix_aspect( job, HB_KEEP_HEIGHT ); } + + hb_log( "scan: title (%d) job->width:%d, job->height:%d", + i,job->width, job->height ); + job->keep_ratio = 1; job->vcodec = HB_VCODEC_FFMPEG; diff --git a/libhb/sync.c b/libmediafork/sync.c index cd526c11a..7053016e0 100644 --- a/libhb/sync.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" #include "samplerate.h" #include "ffmpeg/avcodec.h" diff --git a/libhb/update.c b/libmediafork/update.c index 767807038..c12204fcc 100644 --- a/libhb/update.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.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/libhb/work.c b/libmediafork/work.c index 6529e2fbb..b69275418 100644 --- a/libhb/work.c +++ b/libmediafork/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 "hb.h" +#include "mediafork.h" typedef struct { @@ -103,6 +103,16 @@ static void do_job( hb_job_t * job, int cpu_count ) hb_log( " + device %s", title->dvd ); hb_log( " + title %d, chapter(s) %d to %d", title->index, job->chapter_start, job->chapter_end ); + if ( job->pixel_ratio == 1 ) + { + /* Correct the geometry of the output movie when using PixelRatio */ + 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 ); + } 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] ); @@ -119,7 +129,7 @@ static void do_job( hb_job_t * job, int cpu_count ) (float) job->vrate / (float) job->vrate_base, job->vbitrate, job->pass ); } - + hb_log (" + PixelRatio: %d, width:%d, height: %d",job->pixel_ratio,job->width, job->height); job->fifo_mpeg2 = hb_fifo_init( 2048 ); job->fifo_raw = hb_fifo_init( 8 ); job->fifo_sync = hb_fifo_init( 8 ); diff --git a/macosx/Controller.h b/macosx/Controller.h index c32dacc04..6dc4c02db 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "hb.h" +#include "mediafork.h" #include "ScanController.h" #include "PictureController.h" @@ -69,6 +69,33 @@ IBOutlet NSButton * fVidGrayscaleCheck; IBOutlet NSButton * fVidTwoPassCheck; + + /* Picture Settings box */ + IBOutlet NSTextField * fPicLabelSettings; + IBOutlet NSTextField * fPicLabelSrc; + IBOutlet NSTextField * fPicLabelOutp; + IBOutlet NSTextField * fPicLabelAr; + IBOutlet NSTextField * fPicLabelDeinter; + IBOutlet NSTextField * fPicLabelSrcX; + IBOutlet NSTextField * fPicLabelOutputX; + + IBOutlet NSTextField * fPicSrcWidth; + IBOutlet NSTextField * fPicSrcHeight; + IBOutlet NSTextField * fPicSettingWidth; + IBOutlet NSTextField * fPicSettingHeight; + IBOutlet NSTextField * fPicSettingARkeep; + IBOutlet NSTextField * fPicSettingPAR; + IBOutlet NSTextField * fPicSettingDeinterlace; + IBOutlet NSTextField * fPicSettingARkeepDsply; + IBOutlet NSTextField * fPicSettingPARDsply; + IBOutlet NSTextField * fPicSettingDeinterlaceDsply; + IBOutlet NSTextField * fPicLabelAnamorphic; + IBOutlet NSTextField * fPicLabelPAROutp; + IBOutlet NSTextField * fPicLabelPAROutputX; + IBOutlet NSTextField * fPicSettingPARWidth; + IBOutlet NSTextField * fPicSettingPARHeight; + + /* Subtitles box */ IBOutlet NSTextField * fSubField; IBOutlet NSPopUpButton * fSubPopUp; @@ -93,6 +120,7 @@ IBOutlet NSButton * fRipButton; hb_handle_t * fHandle; + hb_title_t * fTitle; } - (void) TranslateStrings; @@ -107,6 +135,7 @@ - (IBAction) FormatPopUpChanged: (id) sender; - (IBAction) CodecsPopUpChanged: (id) sender; +- (IBAction) EncoderPopUpChanged: (id) sender; - (IBAction) BrowseFile: (id) sender; - (void) BrowseFileDone: (NSSavePanel *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo; @@ -115,6 +144,7 @@ - (IBAction) QualitySliderChanged: (id) sender; - (IBAction) ShowPicturePanel: (id) sender; +- (IBAction) CalculatePictureSizing: (id) sender; - (IBAction) EnableQueue: (id) sender; - (IBAction) AddToQueue: (id) sender; diff --git a/macosx/Controller.mm b/macosx/Controller.mm index 281c3372b..3bf5f4f4a 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -42,13 +42,14 @@ static int FormatSettings[3][4] = /* Init libhb */ fHandle = hb_init( HB_DEBUG_NONE, [[NSUserDefaults standardUserDefaults] boolForKey:@"CheckForUpdates"] ); - + /* Init others controllers */ [fScanController SetHandle: fHandle]; [fPictureController SetHandle: fHandle]; [fQueueController SetHandle: fHandle]; + - /* Call UpdateUI every 2/10 sec */ + /* Call UpdateUI every 2/10 sec */ [[NSRunLoop currentRunLoop] addTimer: [NSTimer scheduledTimerWithTimeInterval: 0.2 target: self selector: @selector( UpdateUI: ) userInfo: NULL repeats: FALSE] @@ -113,7 +114,18 @@ static int FormatSettings[3][4] = /* Video quality */ [fVidTargetSizeField setIntValue: 700]; - [fVidBitrateField setIntValue: 1000]; + [fVidBitrateField setIntValue: 1000]; + /* Do we want to force the quality settings if PAR is on ? + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"PixelRatio"]) + { + [fVidBitrateField setIntValue: 1500]; + [fVidTwoPassCheck setState: NSOnState]; + } + else + { + [fVidBitrateField setIntValue: 1000]; + } + */ [fVidQualityMatrix selectCell: fVidBitrateCell]; [self VideoMatrixChanged: NULL]; @@ -126,7 +138,13 @@ static int FormatSettings[3][4] = [NSString stringWithCString: hb_video_rates[i].string]]; } [fVidRatePopUp selectItemAtIndex: 0]; - + + /* Picture Settings */ + [fPicLabelPAROutp setStringValue: @""]; + [fPicLabelPAROutputX setStringValue: @""]; + [fPicSettingPARWidth setStringValue: @""]; + [fPicSettingPARHeight setStringValue: @""]; + /* Audio bitrate */ [fAudBitratePopUp removeAllItems]; for( int i = 0; i < hb_audio_bitrates_count; i++ ) @@ -275,6 +293,8 @@ static int FormatSettings[3][4] = { hb_list_t * list; hb_title_t * title; + int indxpri=0; // Used to search the longuest title (default in combobox) + int longuestpri=0; // Used to search the longuest title (default in combobox) [fScanController UpdateUI: &s]; @@ -285,6 +305,7 @@ static int FormatSettings[3][4] = break; } + [fSrcTitlePopUp removeAllItems]; for( int i = 0; i < hb_list_count( list ); i++ ) { @@ -295,9 +316,57 @@ 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*/ + [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; + indxpri=i; + } + + + int format = [fDstFormatPopUp indexOfSelectedItem]; + char * ext = NULL; + switch( format ) + { + case 0: + + /*Get Default MP4 File Extension for mpeg4 (.mp4 or .m4v) from prefs*/ + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultMpegName"] > 0) + { + ext = "m4v"; + } + else + { + ext = "mp4"; + } + break; + case 1: + ext = "avi"; + case 2: + break; + ext = "ogm"; + break; + } + + + NSString * string = [fDstFile2Field stringValue]; + /* Add/replace File Output name to the correct extension*/ + if( [string characterAtIndex: [string length] - 4] == '.' ) + { + [fDstFile2Field setStringValue: [NSString stringWithFormat: + @"%@.%s", [string substringToIndex: [string length] - 4], + ext]]; + } + else + { + [fDstFile2Field setStringValue: [NSString stringWithFormat: + @"%@.%s", string, ext]]; + } + [fSrcTitlePopUp addItemWithTitle: [NSString stringWithFormat: @"%d - %02dh%02dm%02ds", @@ -305,7 +374,9 @@ static int FormatSettings[3][4] = title->seconds]]; } - + // Select the longuest title + [fSrcTitlePopUp selectItemAtIndex: indxpri]; + [self TitlePopUpChanged: NULL]; [self EnableUI: YES]; [fPauseButton setEnabled: NO]; @@ -442,7 +513,13 @@ static int FormatSettings[3][4] = fVidQualityMatrix, fVidGrayscaleCheck, fSubField, fSubPopUp, fAudLang1Field, fAudLang1PopUp, fAudLang2Field, fAudLang2PopUp, fAudRateField, fAudRatePopUp, fAudBitrateField, - fAudBitratePopUp, fPictureButton, fQueueCheck }; + fAudBitratePopUp, fPictureButton, fQueueCheck, + fPicSrcWidth,fPicSrcHeight,fPicSettingWidth,fPicSettingHeight, + fPicSettingARkeep,fPicSettingDeinterlace,fPicSettingARkeepDsply, + fPicSettingDeinterlaceDsply,fPicLabelSettings,fPicLabelSrc,fPicLabelOutp, + fPicLabelAr,fPicLabelDeinter,fPicLabelSrcX,fPicLabelOutputX, + fPicLabelPAROutp,fPicLabelPAROutputX,fPicSettingPARWidth,fPicSettingPARHeight, + fPicSettingPARDsply,fPicLabelAnamorphic}; for( unsigned i = 0; i < sizeof( controls ) / sizeof( NSControl * ); i++ ) @@ -458,6 +535,10 @@ static int FormatSettings[3][4] = } } [controls[i] setEnabled: b]; + /* Temporarily disable Lang2 until crash is fixed */ + [fAudLang2PopUp setEnabled: NO]; + [fAudLang2Field setEnabled: NO]; + } [self VideoMatrixChanged: NULL]; @@ -556,6 +637,7 @@ static int FormatSettings[3][4] = [NSApp runModalForWindow: fPicturePanel]; [NSApp endSheet: fPicturePanel]; [fPicturePanel orderOut: self]; + [self CalculatePictureSizing: sender]; } - (IBAction) ShowQueuePanel: (id) sender @@ -581,6 +663,8 @@ static int FormatSettings[3][4] = /* Chapter selection */ job->chapter_start = [fSrcChapterStartPopUp indexOfSelectedItem] + 1; job->chapter_end = [fSrcChapterEndPopUp indexOfSelectedItem] + 1; + + /* Format and codecs */ int format = [fDstFormatPopUp indexOfSelectedItem]; @@ -602,10 +686,18 @@ 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 */ + job->pixel_ratio = 0 ; + } - /* Set this flag to switch from Constant Quantizer(default) to Constant Rate Factor */ - // job->crf = 1; + /* Set this flag to switch from Constant Quantizer(default) to Constant Rate Factor Thanks jbrjake + Currently only used with Constant Quality setting*/ + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultCrf"] > 0 && [fVidQualityMatrix selectedRow] == 2) + { + /* Can only be used with svn rev >= 89 */ + job->crf = 1; + } job->h264_13 = [fVidEncoderPopUp indexOfSelectedItem]; } @@ -640,6 +732,8 @@ static int FormatSettings[3][4] = } job->grayscale = ( [fVidGrayscaleCheck state] == NSOnState ); + + /* Subtitle settings */ job->subtitle = [fSubPopUp indexOfSelectedItem] - 1; @@ -795,6 +889,7 @@ static int FormatSettings[3][4] = hb_title_t * title = (hb_title_t*) hb_list_item( list, [fSrcTitlePopUp indexOfSelectedItem] ); + /* Update chapter popups */ [fSrcChapterStartPopUp removeAllItems]; [fSrcChapterEndPopUp removeAllItems]; @@ -810,6 +905,40 @@ static int FormatSettings[3][4] = hb_list_count( title->list_chapter ) - 1]; [self ChapterPopUpChanged: NULL]; +/* Start Get and set the initial pic size for display */ + hb_job_t * job = title->job; + fTitle = title; + /*Set Source Size Fields Here */ + [fPicSrcWidth setStringValue: [NSString stringWithFormat: + @"%d", fTitle->width]]; + [fPicSrcHeight setStringValue: [NSString stringWithFormat: + @"%d", fTitle->height]]; + /* Turn Deinterlace on/off depending on the preference */ + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultDeinterlaceOn"] > 0) + { + job->deinterlace = 1; + } + else + { + job->deinterlace = 0; + } + + /* Pixel Ratio Setting */ + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"PixelRatio"]) + { + + job->pixel_ratio = 1 ; + } + else + { + job->pixel_ratio = 0 ; + } + /* Run Through EncoderPopUpChanged to see if there + needs to be any pic value modifications based on encoder settings */ + [self EncoderPopUpChanged: NULL]; + /* END Get and set the initial pic size for display */ + + /* Update subtitle popups */ hb_subtitle_t * subtitle; [fSubPopUp removeAllItems]; @@ -825,41 +954,54 @@ static int FormatSettings[3][4] = } [fSubPopUp selectItemAtIndex: 0]; - /* Update lang popups */ - hb_audio_t * audio; + /* START pri */ + hb_audio_t * audio; + // PRI CHANGES 02/12/06 NSString * audiotmppri; NSString * audiosearchpri=[[NSUserDefaults standardUserDefaults] stringForKey:@"DefaultLanguage"]; int indxpri=0; // End of pri changes 02/12/06 [fAudLang1PopUp removeAllItems]; + /* Disable second audio language until crashing is resolved*/ + [fAudLang2Field setEnabled: NO]; + [fAudLang2PopUp setEnabled: NO]; [fAudLang2PopUp removeAllItems]; [fAudLang1PopUp addItemWithTitle: _( @"None" )]; - [fAudLang2PopUp addItemWithTitle: _( @"None" )]; + /* Display Currently Unavailable until crash is fixed */ + [fAudLang2PopUp addItemWithTitle: _( @"Currently Unavailable" )]; + //[fAudLang2PopUp addItemWithTitle: _( @"None" )]; for( int i = 0; i < hb_list_count( title->list_audio ); i++ ) { audio = (hb_audio_t *) hb_list_item( title->list_audio, i ); // PRI CHANGES 02/12/06 - audiotmppri=(NSString *) [NSString stringWithCString: audio->lang]; - // Try to find the desired default language - if ([audiotmppri hasPrefix:audiosearchpri] && indxpri==0) + if (audiosearchpri!= NULL) { - indxpri=i+1; + audiotmppri=(NSString *) [NSString stringWithCString: audio->lang]; + // Try to find the desired default language + if ([audiotmppri hasPrefix:audiosearchpri] && indxpri==0) + { + indxpri=i+1; + } } // End of pri changes 02/12/06 [[fAudLang1PopUp menu] addItemWithTitle: [NSString stringWithCString: audio->lang] action: NULL keyEquivalent: @""]; - [[fAudLang2PopUp menu] addItemWithTitle: + /* + [[fAudLang2PopUp menu] addItemWithTitle: [NSString stringWithCString: audio->lang] action: NULL keyEquivalent: @""]; + */ } // PRI CHANGES 02/12/06 if (indxpri==0) { indxpri=1; } - [fAudLang1PopUp selectItemAtIndex: indxpri]; + [fAudLang1PopUp selectItemAtIndex: indxpri]; // End of pri changes 02/12/06 [fAudLang2PopUp selectItemAtIndex: 0]; + + /* END pri */ } - (IBAction) ChapterPopUpChanged: (id) sender @@ -896,7 +1038,15 @@ static int FormatSettings[3][4] = switch( format ) { case 0: - ext = "mp4"; + /*Get Default MP4 File Extension*/ + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultMpegName"] > 0) + { + ext = "m4v"; + } + else + { + ext = "mp4"; + } [fDstCodecsPopUp addItemWithTitle: _( @"MPEG-4 Video / AAC Audio" )]; [fDstCodecsPopUp addItemWithTitle: @@ -976,6 +1126,103 @@ static int FormatSettings[3][4] = [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) + { + hb_job_t * job = fTitle->job; + job->pixel_ratio = 0 ; + + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DefaultPicSizeAutoiPod"] > 0) + { + + if (fTitle->job->width > 640) + { + fTitle->job->width = 640; + } + fTitle->job->keep_ratio = 1; + hb_fix_aspect( job, HB_KEEP_WIDTH ); + + } + } + +[self CalculatePictureSizing: sender]; + +} + +/* Get and Display Current Pic Settings in main window */ +- (IBAction) CalculatePictureSizing: (id) sender +{ + + hb_job_t * job = fTitle->job; + + [fPicSettingWidth setStringValue: [NSString stringWithFormat: + @"%d", fTitle->job->width]]; + [fPicSettingHeight setStringValue: [NSString stringWithFormat: + @"%d", fTitle->job->height]]; + [fPicSettingARkeep setStringValue: [NSString stringWithFormat: + @"%d", fTitle->job->keep_ratio]]; + [fPicSettingDeinterlace setStringValue: [NSString stringWithFormat: + @"%d", fTitle->job->deinterlace]]; + [fPicSettingPAR setStringValue: [NSString stringWithFormat: + @"%d", fTitle->job->pixel_ratio]]; + + if (fTitle->job->pixel_ratio == 1) + { + int titlewidth = fTitle->width-fTitle->job->crop[2]-fTitle->job->crop[3]; + int arpwidth = fTitle->job->pixel_aspect_width; + int arpheight = fTitle->job->pixel_aspect_height; + int displayparwidth = titlewidth * arpwidth / arpheight; + int displayparheight = fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]; + [fPicLabelPAROutp setStringValue: @"Anamorphic Output:"]; + [fPicLabelPAROutputX setStringValue: @"x"]; + [fPicSettingPARWidth setStringValue: [NSString stringWithFormat: + @"%d", displayparwidth]]; + [fPicSettingPARHeight setStringValue: [NSString stringWithFormat: + @"%d", displayparheight]]; + [fPicSettingHeight setStringValue: [NSString stringWithFormat: + @"%d", displayparheight]]; + fTitle->job->keep_ratio = 0; + } + else + { + [fPicLabelPAROutp setStringValue: @""]; + [fPicLabelPAROutputX setStringValue: @""]; + [fPicSettingPARWidth setStringValue: @""]; + [fPicSettingPARHeight setStringValue: @""]; + } + + /* Set ON/Off values for the deinterlace/keep aspect ratio according to boolean */ + if (fTitle->job->keep_ratio > 0) + { + [fPicSettingARkeepDsply setStringValue: @"On"]; + } + else + { + [fPicSettingARkeepDsply setStringValue: @"Off"]; + } + if (fTitle->job->deinterlace > 0) + { + [fPicSettingDeinterlaceDsply setStringValue: @"On"]; + } + else + { + [fPicSettingDeinterlaceDsply setStringValue: @"Off"]; + } + if (fTitle->job->pixel_ratio > 0) + { + [fPicSettingPARDsply setStringValue: @"On"]; + } + else + { + [fPicSettingPARDsply setStringValue: @"Off"]; + } + + +} + - (IBAction) CalculateBitrate: (id) sender { if( !fHandle || [fVidQualityMatrix selectedRow] != 0 ) @@ -1012,13 +1259,13 @@ static int FormatSettings[3][4] = - (IBAction) OpenHomepage: (id) sender { [[NSWorkspace sharedWorkspace] openURL: [NSURL - URLWithString:@"http://handbrake.m0k.org/"]]; + URLWithString:@"http://mediafork.dynalias.com/"]]; } - (IBAction) OpenForums: (id) sender { [[NSWorkspace sharedWorkspace] openURL: [NSURL - URLWithString:@"http://handbrake.m0k.org/forum/"]]; + URLWithString:@"http://mediafork.dynalias.com/forum/"]]; } @end diff --git a/macosx/DriveDetector.h b/macosx/DriveDetector.h index 2018309b1..468f779db 100644 --- a/macosx/DriveDetector.h +++ b/macosx/DriveDetector.h @@ -1,4 +1,4 @@ -/* DriveDetector.h $ +/* DriveDetector.h $ This file is part of the HandBrake source code. Homepage: <http://handbrake.m0k.org/>. diff --git a/macosx/DriveDetector.m b/macosx/DriveDetector.m index 61f722960..e9e941569 100644 --- a/macosx/DriveDetector.m +++ b/macosx/DriveDetector.m @@ -11,7 +11,7 @@ #include <IOKit/storage/IODVDMedia.h> #include "DriveDetector.h" -#include "hb.h" +#include "mediafork.h" @interface DriveDetector (Private) diff --git a/macosx/English.lproj/MainMenu.nib/classes.nib b/macosx/English.lproj/MainMenu.nib/classes.nib index 59629f07f..ec791480a 100644 --- a/macosx/English.lproj/MainMenu.nib/classes.nib +++ b/macosx/English.lproj/MainMenu.nib/classes.nib @@ -1,6 +1,5 @@ { IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, { ACTIONS = { AddToQueue = id; @@ -10,6 +9,7 @@ ChapterPopUpChanged = id; CodecsPopUpChanged = id; EnableQueue = id; + EncoderPopUpChanged = id; FormatPopUpChanged = id; OpenForums = id; OpenHomepage = id; @@ -42,6 +42,28 @@ fDstFormatField = NSTextField; fDstFormatPopUp = NSPopUpButton; fPauseButton = NSButton; + fPicLabelAnamorphic = NSTextField; + fPicLabelAr = NSTextField; + fPicLabelDeinter = NSTextField; + fPicLabelOutp = NSTextField; + fPicLabelOutputX = NSTextField; + fPicLabelPAROutp = NSTextField; + fPicLabelPAROutputX = NSTextField; + fPicLabelSettings = NSTextField; + fPicLabelSrc = NSTextField; + fPicLabelSrcX = NSTextField; + fPicSettingARkeep = NSTextField; + fPicSettingARkeepDsply = NSTextField; + fPicSettingDeinterlace = NSTextField; + fPicSettingDeinterlaceDsply = NSTextField; + fPicSettingHeight = NSTextField; + fPicSettingPAR = NSTextField; + fPicSettingPARDsply = NSTextField; + fPicSettingPARHeight = NSTextField; + fPicSettingPARWidth = NSTextField; + fPicSettingWidth = NSTextField; + fPicSrcHeight = NSTextField; + fPicSrcWidth = NSTextField; fPictureButton = NSButton; fPictureController = PictureController; fPicturePanel = NSPanel; @@ -123,6 +145,14 @@ fHeightStepper = NSStepper; fInfoField = NSTextField; fNextButton = NSButton; + fPARCheck = NSButton; + fPicSettingARkeep = NSTextField; + fPicSettingDeinterlace = NSTextField; + fPicSettingHeight = NSTextField; + fPicSettingWidth = NSTextField; + fPicSettingsDisplay = NSTextField; + fPicSrcHeight = NSTextField; + fPicSrcWidth = NSTextField; fPictureGLView = HBPictureGLView; fPrevButton = NSButton; fRatioCheck = NSButton; @@ -136,7 +166,16 @@ ACTIONS = {CheckChanged = id; ClosePanel = id; OpenPanel = id; }; CLASS = PrefsController; LANGUAGE = ObjC; - OUTLETS = {fPanel = NSPanel; fUpdateCheck = NSButton; }; + OUTLETS = { + fDefCrf = NSButton; + fDefDeinterlace = NSButton; + fDefPicSizeAutoSetipod = NSButton; + fDefPixelRatio = NSButton; + fFileExtItunes = NSButton; + fPanel = NSPanel; + fUpdateCheck = NSButton; + fdefaultlanguage = NSComboBox; + }; SUPERCLASS = NSObject; }, { diff --git a/macosx/English.lproj/MainMenu.nib/info.nib b/macosx/English.lproj/MainMenu.nib/info.nib index 36f69f000..9a988cc6b 100644 --- a/macosx/English.lproj/MainMenu.nib/info.nib +++ b/macosx/English.lproj/MainMenu.nib/info.nib @@ -3,15 +3,35 @@ <plist version="1.0"> <dict> <key>IBDocumentLocation</key> - <string>73 30 382 380 0 0 1440 878 </string> + <string>281 448 555 411 0 0 1440 878 </string> <key>IBEditorPositions</key> <dict> <key>29</key> - <string>157 764 261 44 0 0 1280 832 </string> + <string>69 330 258 44 0 0 1440 878 </string> </dict> <key>IBFramework Version</key> - <string>443.0</string> + <string>446.1</string> + <key>IBLockedTabItems</key> + <array> + <integer>1477</integer> + </array> + <key>IBOpenObjects</key> + <array> + <integer>21</integer> + </array> <key>IBSystem Version</key> - <string>8I127</string> + <string>8L127</string> + <key>IBUserGuides</key> + <dict> + <key>21</key> + <dict> + <key>guideLocations</key> + <array> + <string>Horizontal:567.000000</string> + </array> + <key>guidesLocked</key> + <false/> + </dict> + </dict> </dict> </plist> diff --git a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib Binary files differindex 5bbb71eab..814a09dab 100644 --- a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib +++ b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib diff --git a/macosx/Express.plist b/macosx/Express.plist index 81703d1d6..002ee8f88 100644 --- a/macosx/Express.plist +++ b/macosx/Express.plist @@ -6,6 +6,8 @@ <string>English</string> <key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIconFile</key> + <string>MediaFork</string> <key>CFBundleIdentifier</key> <string>org.m0k.handbrake.instant</string> <key>CFBundleInfoDictionaryVersion</key> @@ -16,8 +18,6 @@ <string>????</string> <key>CFBundleVersion</key> <string>1.0a2</string> - <key>CFBundleIconFile</key> - <string>HandBrake.icns</string> <key>NSMainNibFile</key> <string>Express</string> <key>NSPrincipalClass</key> diff --git a/macosx/ExpressController.h b/macosx/ExpressController.h index 5841f4e1f..f1e0d1904 100644 --- a/macosx/ExpressController.h +++ b/macosx/ExpressController.h @@ -1,7 +1,7 @@ /* ExpressController */ #import <Cocoa/Cocoa.h> -#import "hb.h" +#import "mediafork.h" @class DriveDetector; diff --git a/macosx/HandBrake.icns b/macosx/HandBrake.icns Binary files differdeleted file mode 100644 index f81352be3..000000000 --- a/macosx/HandBrake.icns +++ /dev/null diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj deleted file mode 100644 index 6920e3a91..000000000 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ /dev/null @@ -1,713 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 4D1125D809D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; }; - 4D1125D909D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; }; - 4D1EA2EA0993B09A00FDC1A2 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; }; - 4D1EA2F60993B0CA00FDC1A2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - 4D1EA3010993B13700FDC1A2 /* Express.nib in Resources */ = {isa = PBXBuildFile; fileRef = 4D1EA3000993B13700FDC1A2 /* Express.nib */; }; - 4D1EA31C0993B24700FDC1A2 /* ExpressController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D1EA31B0993B24700FDC1A2 /* ExpressController.m */; }; - 4D2AE78B09CCB24C007E18F6 /* DriveDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */; }; - 4D2AEA1A09CCB332007E18F6 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DEB2024052B055F00C39CA9 /* IOKit.framework */; }; - 4D2AEA2909CCB8F9007E18F6 /* DriveDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */; }; - 4D2AEA2A09CCB8FC007E18F6 /* DriveDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */; }; - 4D3ECC2709A4917000B2E45F /* WhiteBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3ECC2609A4917000B2E45F /* WhiteBox.m */; }; - 4DD93F8F082036E8008E1322 /* Controller.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DF3C8CB052889CD00A80101 /* Controller.h */; }; - 4DD93F90082036E8008E1322 /* PictureGLView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D85758F052B78E300C39CA9 /* PictureGLView.h */; }; - 4DD93F91082036E8008E1322 /* ScanController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D86C74F07281F4E007BA979 /* ScanController.h */; }; - 4DD93F92082036E8008E1322 /* PictureController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D1FD381073D19CE00E46515 /* PictureController.h */; }; - 4DD93F93082036E8008E1322 /* QueueController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DD27BA507C0065C0023D231 /* QueueController.h */; }; - 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 /* HandBrake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4D118405053054CD00C39CA9 /* HandBrake.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 */; }; - 4DD93F9D082036E8008E1322 /* ScanController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D86C74E07281F4E007BA979 /* ScanController.mm */; }; - 4DD93F9E082036E8008E1322 /* PictureController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D1FD382073D19CE00E46515 /* PictureController.mm */; }; - 4DD93F9F082036E8008E1322 /* QueueController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4DD27BA607C0065C0023D231 /* QueueController.mm */; }; - 4DD93FA0082036E8008E1322 /* PrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DE93A3607F5A2C900F3C78F /* PrefsController.m */; }; - 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 /* HandBrake.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4DE09E62082038A400FB751F /* HandBrake.plist */; }; - 52AFF8690B59BCFB000DA7C4 /* HandBrake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4D118405053054CD00C39CA9 /* HandBrake.icns */; }; - 52AFF86A0B59BD07000DA7C4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 52AFF86B0B59BD14000DA7C4 /* Express.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4D1EA2DC0993B01000FDC1A2 /* Express.plist */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 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 /* HandBrake.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = HandBrake.icns; sourceTree = "<group>"; }; - 4D1EA2DA0993B01000FDC1A2 /* Instant HandBrake.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; 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>"; }; - 4D1EA31B0993B24700FDC1A2 /* ExpressController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ExpressController.m; sourceTree = "<group>"; }; - 4D1FD381073D19CE00E46515 /* PictureController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PictureController.h; sourceTree = "<group>"; }; - 4D1FD382073D19CE00E46515 /* PictureController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = PictureController.mm; sourceTree = "<group>"; }; - 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DriveDetector.m; sourceTree = "<group>"; }; - 4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DriveDetector.h; sourceTree = "<group>"; }; - 4D3ECC2509A4917000B2E45F /* WhiteBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WhiteBox.h; sourceTree = "<group>"; }; - 4D3ECC2609A4917000B2E45F /* WhiteBox.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WhiteBox.m; sourceTree = "<group>"; }; - 4D85758E052B78E300C39CA9 /* PictureGLView.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = PictureGLView.mm; sourceTree = "<group>"; }; - 4D85758F052B78E300C39CA9 /* PictureGLView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PictureGLView.h; sourceTree = "<group>"; }; - 4D86C74E07281F4E007BA979 /* ScanController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ScanController.mm; sourceTree = "<group>"; }; - 4D86C74F07281F4E007BA979 /* ScanController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ScanController.h; sourceTree = "<group>"; }; - 4DD27BA507C0065C0023D231 /* QueueController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = QueueController.h; sourceTree = "<group>"; }; - 4DD27BA607C0065C0023D231 /* QueueController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = QueueController.mm; sourceTree = "<group>"; }; - 4DD93FA6082036E8008E1322 /* HandBrake.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HandBrake.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; - 4DE09E62082038A400FB751F /* HandBrake.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = HandBrake.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>"; }; - 5260EDCB0B4CACBE00C096C5 /* hb.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = hb.c; path = ../libhb/hb.c; sourceTree = SOURCE_ROOT; }; - 526FBC760B4CA8F40064E04C /* test.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; 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 = ../libhb/common.c; sourceTree = SOURCE_ROOT; }; - 526FBC9C0B4CAB100064E04C /* common.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../libhb/common.h; 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; }; - 526FBC9F0B4CAB100064E04C /* declpcm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = declpcm.c; path = ../libhb/declpcm.c; sourceTree = SOURCE_ROOT; }; - 526FBCA00B4CAB100064E04C /* decmpeg2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decmpeg2.c; path = ../libhb/decmpeg2.c; sourceTree = SOURCE_ROOT; }; - 526FBCA10B4CAB100064E04C /* decsub.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decsub.c; path = ../libhb/decsub.c; sourceTree = SOURCE_ROOT; }; - 526FBCA20B4CAB100064E04C /* demuxmpeg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = demuxmpeg.c; path = ../libhb/demuxmpeg.c; sourceTree = SOURCE_ROOT; }; - 526FBCA30B4CAB100064E04C /* dvd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dvd.c; path = ../libhb/dvd.c; sourceTree = SOURCE_ROOT; }; - 526FBCA40B4CAB100064E04C /* encavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encavcodec.c; path = ../libhb/encavcodec.c; sourceTree = SOURCE_ROOT; }; - 526FBCA50B4CAB100064E04C /* encfaac.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encfaac.c; path = ../libhb/encfaac.c; sourceTree = SOURCE_ROOT; }; - 526FBCA60B4CAB100064E04C /* enclame.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = enclame.c; path = ../libhb/enclame.c; sourceTree = SOURCE_ROOT; }; - 526FBCA70B4CAB100064E04C /* encvorbis.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encvorbis.c; path = ../libhb/encvorbis.c; sourceTree = SOURCE_ROOT; }; - 526FBCA80B4CAB100064E04C /* encx264.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encx264.c; path = ../libhb/encx264.c; sourceTree = SOURCE_ROOT; }; - 526FBCA90B4CAB100064E04C /* encxvid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encxvid.c; path = ../libhb/encxvid.c; sourceTree = SOURCE_ROOT; }; - 526FBCAA0B4CAB100064E04C /* fifo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fifo.c; path = ../libhb/fifo.c; sourceTree = SOURCE_ROOT; }; - 526FBCAB0B4CAB100064E04C /* hb.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = hb.h; path = ../libhb/hb.h; sourceTree = SOURCE_ROOT; }; - 526FBCAC0B4CAB100064E04C /* internal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = internal.h; path = ../libhb/internal.h; sourceTree = SOURCE_ROOT; }; - 526FBCAD0B4CAB100064E04C /* lang.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = lang.h; path = ../libhb/lang.h; sourceTree = SOURCE_ROOT; }; - 526FBCAE0B4CAB100064E04C /* muxavi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxavi.c; path = ../libhb/muxavi.c; sourceTree = SOURCE_ROOT; }; - 526FBCAF0B4CAB100064E04C /* muxcommon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxcommon.c; path = ../libhb/muxcommon.c; sourceTree = SOURCE_ROOT; }; - 526FBCB00B4CAB100064E04C /* muxmp4.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxmp4.c; path = ../libhb/muxmp4.c; sourceTree = SOURCE_ROOT; }; - 526FBCB10B4CAB100064E04C /* muxogm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxogm.c; path = ../libhb/muxogm.c; sourceTree = SOURCE_ROOT; }; - 526FBCB20B4CAB100064E04C /* ports.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ports.c; path = ../libhb/ports.c; sourceTree = SOURCE_ROOT; }; - 526FBCB30B4CAB100064E04C /* ports.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ports.h; path = ../libhb/ports.h; sourceTree = SOURCE_ROOT; }; - 526FBCB40B4CAB100064E04C /* reader.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = reader.c; path = ../libhb/reader.c; sourceTree = SOURCE_ROOT; }; - 526FBCB50B4CAB100064E04C /* render.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = render.c; path = ../libhb/render.c; sourceTree = SOURCE_ROOT; }; - 526FBCB60B4CAB100064E04C /* scan.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scan.c; path = ../libhb/scan.c; sourceTree = SOURCE_ROOT; }; - 526FBCB70B4CAB100064E04C /* sync.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sync.c; path = ../libhb/sync.c; sourceTree = SOURCE_ROOT; }; - 526FBCB80B4CAB100064E04C /* update.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = update.c; path = ../libhb/update.c; sourceTree = SOURCE_ROOT; }; - 526FBCB90B4CAB100064E04C /* work.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = work.c; path = ../libhb/work.c; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 4D1EA2D80993B01000FDC1A2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4D1EA2F60993B0CA00FDC1A2 /* Cocoa.framework in Frameworks */, - 4D2AEA1A09CCB332007E18F6 /* IOKit.framework in Frameworks */, - 4D1125D909D72FD200E0657B /* libz.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4DD93FA1082036E8008E1322 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4DD93FA2082036E8008E1322 /* Cocoa.framework in Frameworks */, - 4DD93FA3082036E8008E1322 /* IOKit.framework in Frameworks */, - 4DD93FA4082036E8008E1322 /* OpenGL.framework in Frameworks */, - 4D1125D809D72FD200E0657B /* libz.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 4DD93FA6082036E8008E1322 /* HandBrake.app */, - 4D1EA2DA0993B01000FDC1A2 /* Instant HandBrake.app */, - ); - name = Products; - sourceTree = "<group>"; - }; - 29B97314FDCFA39411CA2CEA /* HandBrake */ = { - isa = PBXGroup; - children = ( - 526FBC940B4CAA310064E04C /* Instant HandBrake Sources */, - 526FBC930B4CAA260064E04C /* HandBrake Sources */, - 526FBC920B4CAA120064E04C /* HBTest Sources */, - 526FBC8D0B4CA9F90064E04C /* libhb Sources */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = HandBrake; - sourceTree = "<group>"; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 29B97316FDCFA39411CA2CEA /* main.mm */, - ); - name = "Other Sources"; - sourceTree = "<group>"; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, - 4D118405053054CD00C39CA9 /* HandBrake.icns */, - 4D1EA3000993B13700FDC1A2 /* Express.nib */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = "<group>"; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4D1125D709D72FD200E0657B /* libz.dylib */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - 4DEB2024052B055F00C39CA9 /* IOKit.framework */, - 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 526FBC8D0B4CA9F90064E04C /* libhb Sources */ = { - isa = PBXGroup; - children = ( - 5260EDCB0B4CACBE00C096C5 /* hb.c */, - 526FBC9B0B4CAB100064E04C /* common.c */, - 526FBC9C0B4CAB100064E04C /* common.h */, - 526FBC9D0B4CAB100064E04C /* deca52.c */, - 526FBC9E0B4CAB100064E04C /* decavcodec.c */, - 526FBC9F0B4CAB100064E04C /* declpcm.c */, - 526FBCA00B4CAB100064E04C /* decmpeg2.c */, - 526FBCA10B4CAB100064E04C /* decsub.c */, - 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 */, - 526FBCAB0B4CAB100064E04C /* hb.h */, - 526FBCAC0B4CAB100064E04C /* internal.h */, - 526FBCAD0B4CAB100064E04C /* lang.h */, - 526FBCAE0B4CAB100064E04C /* muxavi.c */, - 526FBCAF0B4CAB100064E04C /* muxcommon.c */, - 526FBCB00B4CAB100064E04C /* muxmp4.c */, - 526FBCB10B4CAB100064E04C /* muxogm.c */, - 526FBCB20B4CAB100064E04C /* ports.c */, - 526FBCB30B4CAB100064E04C /* ports.h */, - 526FBCB40B4CAB100064E04C /* reader.c */, - 526FBCB50B4CAB100064E04C /* render.c */, - 526FBCB60B4CAB100064E04C /* scan.c */, - 526FBCB70B4CAB100064E04C /* sync.c */, - 526FBCB80B4CAB100064E04C /* update.c */, - 526FBCB90B4CAB100064E04C /* work.c */, - ); - name = "libhb Sources"; - sourceTree = "<group>"; - }; - 526FBC920B4CAA120064E04C /* HBTest Sources */ = { - isa = PBXGroup; - children = ( - 526FBC760B4CA8F40064E04C /* test.c */, - ); - name = "HBTest Sources"; - sourceTree = "<group>"; - }; - 526FBC930B4CAA260064E04C /* HandBrake Sources */ = { - isa = PBXGroup; - children = ( - 4DE09E62082038A400FB751F /* HandBrake.plist */, - 4D1FD381073D19CE00E46515 /* PictureController.h */, - 4D1FD382073D19CE00E46515 /* PictureController.mm */, - 4DF3C8CB052889CD00A80101 /* Controller.h */, - 4DF3C8CC052889CD00A80101 /* Controller.mm */, - 4D86C74E07281F4E007BA979 /* ScanController.mm */, - 4D86C74F07281F4E007BA979 /* ScanController.h */, - 4D85758E052B78E300C39CA9 /* PictureGLView.mm */, - 4D85758F052B78E300C39CA9 /* PictureGLView.h */, - 4DD27BA507C0065C0023D231 /* QueueController.h */, - 4DD27BA607C0065C0023D231 /* QueueController.mm */, - 4DE93A3507F5A2C900F3C78F /* PrefsController.h */, - 4DE93A3607F5A2C900F3C78F /* PrefsController.m */, - 4D3ECC2509A4917000B2E45F /* WhiteBox.h */, - 4D3ECC2609A4917000B2E45F /* WhiteBox.m */, - 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */, - 4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */, - ); - name = "HandBrake Sources"; - sourceTree = "<group>"; - }; - 526FBC940B4CAA310064E04C /* Instant HandBrake Sources */ = { - isa = PBXGroup; - children = ( - 4D1EA31A0993B24700FDC1A2 /* ExpressController.h */, - 4D1EA31B0993B24700FDC1A2 /* ExpressController.m */, - 4D1EA2DC0993B01000FDC1A2 /* Express.plist */, - ); - name = "Instant HandBrake Sources"; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 4DD93F8E082036E8008E1322 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 4DD93F8F082036E8008E1322 /* Controller.h in Headers */, - 4DD93F90082036E8008E1322 /* PictureGLView.h in Headers */, - 4DD93F91082036E8008E1322 /* ScanController.h in Headers */, - 4DD93F92082036E8008E1322 /* PictureController.h in Headers */, - 4DD93F93082036E8008E1322 /* QueueController.h in Headers */, - 4DD93F94082036E8008E1322 /* PrefsController.h in Headers */, - 4D2AEA2A09CCB8FC007E18F6 /* DriveDetector.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 4D1EA2D90993B01000FDC1A2 /* Instant HandBrake */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant HandBrake" */; - buildPhases = ( - 4D1EA2D60993B01000FDC1A2 /* Resources */, - 4D1EA2D70993B01000FDC1A2 /* Sources */, - 4D1EA2D80993B01000FDC1A2 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Instant HandBrake"; - productName = "Instant HandBrake"; - productReference = 4D1EA2DA0993B01000FDC1A2 /* Instant HandBrake.app */; - productType = "com.apple.product-type.application"; - }; - 4DD93F8D082036E8008E1322 /* HandBrake */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "HandBrake" */; - buildPhases = ( - 4DD93F8E082036E8008E1322 /* Headers */, - 4DD93F95082036E8008E1322 /* Resources */, - 4DD93F99082036E8008E1322 /* Sources */, - 4DD93FA1082036E8008E1322 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = HandBrake; - productName = HandBrake; - productReference = 4DD93FA6082036E8008E1322 /* HandBrake.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 4D4E7BC4087804870051572B /* Build configuration list for PBXProject "HandBrake" */; - hasScannedForEncodings = 1; - mainGroup = 29B97314FDCFA39411CA2CEA /* HandBrake */; - projectDirPath = ""; - targets = ( - 4DD93F8D082036E8008E1322 /* HandBrake */, - 4D1EA2D90993B01000FDC1A2 /* Instant HandBrake */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 4D1EA2D60993B01000FDC1A2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 52AFF86B0B59BD14000DA7C4 /* Express.plist in Resources */, - 52AFF86A0B59BD07000DA7C4 /* InfoPlist.strings in Resources */, - 52AFF8690B59BCFB000DA7C4 /* HandBrake.icns in Resources */, - 4D1EA3010993B13700FDC1A2 /* Express.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4DD93F95082036E8008E1322 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4DD93F96082036E8008E1322 /* MainMenu.nib in Resources */, - 4DD93F97082036E8008E1322 /* InfoPlist.strings in Resources */, - 4DD93F98082036E8008E1322 /* HandBrake.icns in Resources */, - 4DE09E63082038A400FB751F /* HandBrake.plist in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 4D1EA2D70993B01000FDC1A2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4D1EA2EA0993B09A00FDC1A2 /* main.mm in Sources */, - 4D1EA31C0993B24700FDC1A2 /* ExpressController.m in Sources */, - 4D3ECC2709A4917000B2E45F /* WhiteBox.m in Sources */, - 4D2AE78B09CCB24C007E18F6 /* DriveDetector.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4DD93F99082036E8008E1322 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4DD93F9A082036E8008E1322 /* main.mm in Sources */, - 4DD93F9B082036E8008E1322 /* Controller.mm in Sources */, - 4DD93F9C082036E8008E1322 /* PictureGLView.mm in Sources */, - 4DD93F9D082036E8008E1322 /* ScanController.mm in Sources */, - 4DD93F9E082036E8008E1322 /* PictureController.mm in Sources */, - 4DD93F9F082036E8008E1322 /* QueueController.mm in Sources */, - 4DD93FA0082036E8008E1322 /* PrefsController.m in Sources */, - 4D2AEA2909CCB8F9007E18F6 /* DriveDetector.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; - 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { - isa = PBXVariantGroup; - children = ( - 29B97319FDCFA39411CA2CEA /* English */, - ); - name = MainMenu.nib; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 4D1EA2DE0993B01100FDC1A2 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - HEADER_SEARCH_PATHS = ../libhb; - INFOPLIST_FILE = Express.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - ../libhb/libhb.a, - ../contrib/lib/liba52.a, - ../contrib/lib/libavformat.a, - ../contrib/lib/libavcodec.a, - ../contrib/lib/libavutil.a, - ../contrib/lib/libdvdread.a, - ../contrib/lib/libdvdcss.a, - ../contrib/lib/libfaac.a, - ../contrib/lib/libmp3lame.a, - ../contrib/lib/libmpeg2.a, - ../contrib/lib/libvorbis.a, - ../contrib/lib/libvorbisenc.a, - ../contrib/lib/libogg.a, - ../contrib/lib/libsamplerate.a, - ../contrib/lib/libx264.a, - ../contrib/lib/libxvidcore.a, - ); - PREBINDING = NO; - PRODUCT_NAME = "Instant HandBrake"; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Development; - }; - 4D1EA2DF0993B01100FDC1A2 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - HEADER_SEARCH_PATHS = ../libhb; - INFOPLIST_FILE = Express.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - ../libhb/libhb.a, - ../contrib/lib/liba52.a, - ../contrib/lib/libavformat.a, - ../contrib/lib/libavcodec.a, - ../contrib/lib/libavutil.a, - ../contrib/lib/libdvdread.a, - ../contrib/lib/libdvdcss.a, - ../contrib/lib/libfaac.a, - ../contrib/lib/libmp3lame.a, - ../contrib/lib/libmpeg2.a, - ../contrib/lib/libvorbis.a, - ../contrib/lib/libvorbisenc.a, - ../contrib/lib/libogg.a, - ../contrib/lib/libsamplerate.a, - ../contrib/lib/libx264.a, - ../contrib/lib/libxvidcore.a, - ); - PREBINDING = NO; - PRODUCT_NAME = "Instant HandBrake"; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 4D1EA2E00993B01100FDC1A2 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; - HEADER_SEARCH_PATHS = ../libhb; - INFOPLIST_FILE = Express.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_LDFLAGS = ( - ../libhb/libhb.a, - ../contrib/lib/liba52.a, - ../contrib/lib/libavformat.a, - ../contrib/lib/libavcodec.a, - ../contrib/lib/libavutil.a, - ../contrib/lib/libdvdread.a, - ../contrib/lib/libdvdcss.a, - ../contrib/lib/libfaac.a, - ../contrib/lib/libmp3lame.a, - ../contrib/lib/libmpeg2.a, - ../contrib/lib/libvorbis.a, - ../contrib/lib/libvorbisenc.a, - ../contrib/lib/libogg.a, - ../contrib/lib/libsamplerate.a, - ../contrib/lib/libx264.a, - ../contrib/lib/libxvidcore.a, - ); - PREBINDING = NO; - PRODUCT_NAME = "Instant HandBrake"; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Default; - }; - 4D4E7BC1087804870051572B /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 0.7.1a2; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_DYNAMIC_NO_PIC = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 3; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = ../libhb; - INFOPLIST_FILE = HandBrake.plist; - LIBRARY_SEARCH_PATHS = ""; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - ../libhb/libhb.a, - ../contrib/lib/liba52.a, - ../contrib/lib/libavformat.a, - ../contrib/lib/libavcodec.a, - ../contrib/lib/libavutil.a, - ../contrib/lib/libdvdread.a, - ../contrib/lib/libdvdcss.a, - ../contrib/lib/libfaac.a, - ../contrib/lib/libmp3lame.a, - ../contrib/lib/libmpeg2.a, - ../contrib/lib/libvorbis.a, - ../contrib/lib/libvorbisenc.a, - ../contrib/lib/libogg.a, - ../contrib/lib/libsamplerate.a, - ../contrib/lib/libx264.a, - ../contrib/lib/libxvidcore.a, - ); - PRODUCT_NAME = HandBrake; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Development; - }; - 4D4E7BC2087804870051572B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - FRAMEWORK_SEARCH_PATHS = ""; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_OPTIMIZATION_LEVEL = 3; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = ../libhb; - INFOPLIST_FILE = HandBrake.plist; - LIBRARY_SEARCH_PATHS = ""; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - ../libhb/libhb.a, - ../contrib/lib/liba52.a, - ../contrib/lib/libavformat.a, - ../contrib/lib/libavcodec.a, - ../contrib/lib/libavutil.a, - ../contrib/lib/libdvdread.a, - ../contrib/lib/libdvdcss.a, - ../contrib/lib/libfaac.a, - ../contrib/lib/libmp3lame.a, - ../contrib/lib/libmpeg2.a, - ../contrib/lib/libvorbis.a, - ../contrib/lib/libvorbisenc.a, - ../contrib/lib/libogg.a, - ../contrib/lib/libsamplerate.a, - ../contrib/lib/libx264.a, - ../contrib/lib/libxvidcore.a, - ); - PRODUCT_NAME = HandBrake; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 4D4E7BC3087804870051572B /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ""; - GCC_OPTIMIZATION_LEVEL = 3; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = ../libhb; - INFOPLIST_FILE = HandBrake.plist; - LIBRARY_SEARCH_PATHS = ""; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - ../libhb/libhb.a, - ../contrib/lib/liba52.a, - ../contrib/lib/libavformat.a, - ../contrib/lib/libavcodec.a, - ../contrib/lib/libavutil.a, - ../contrib/lib/libdvdread.a, - ../contrib/lib/libdvdcss.a, - ../contrib/lib/libfaac.a, - ../contrib/lib/libmp3lame.a, - ../contrib/lib/libmpeg2.a, - ../contrib/lib/libvorbis.a, - ../contrib/lib/libvorbisenc.a, - ../contrib/lib/libogg.a, - ../contrib/lib/libsamplerate.a, - ../contrib/lib/libx264.a, - ../contrib/lib/libxvidcore.a, - ); - PRODUCT_NAME = HandBrake; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = app; - }; - name = Default; - }; - 4D4E7BC5087804870051572B /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Development; - }; - 4D4E7BC6087804870051572B /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Deployment; - }; - 4D4E7BC7087804870051572B /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - }; - name = Default; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant HandBrake" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4D1EA2DE0993B01100FDC1A2 /* Development */, - 4D1EA2DF0993B01100FDC1A2 /* Deployment */, - 4D1EA2E00993B01100FDC1A2 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "HandBrake" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4D4E7BC1087804870051572B /* Development */, - 4D4E7BC2087804870051572B /* Deployment */, - 4D4E7BC3087804870051572B /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 4D4E7BC4087804870051572B /* Build configuration list for PBXProject "HandBrake" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4D4E7BC5087804870051572B /* Development */, - 4D4E7BC6087804870051572B /* Deployment */, - 4D4E7BC7087804870051572B /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/macosx/MediaFork.icns b/macosx/MediaFork.icns Binary files differnew file mode 100644 index 000000000..aeadb7982 --- /dev/null +++ b/macosx/MediaFork.icns diff --git a/macosx/HandBrake.plist b/macosx/MediaFork.plist index 482e5a9bf..c9fa39748 100644 --- a/macosx/HandBrake.plist +++ b/macosx/MediaFork.plist @@ -5,29 +5,29 @@ <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleDisplayName</key> - <string>HandBrake</string> + <string>MediaFork</string> <key>CFBundleExecutable</key> - <string>HandBrake</string> + <string>MediaFork</string> <key>CFBundleGetInfoString</key> - <string>0.7.1a5</string> + <string>0.8.0b1</string> <key>CFBundleIconFile</key> - <string>HandBrake.icns</string> + <string>MediaFork</string> <key>CFBundleIdentifier</key> - <string>org.m0k.handbrake</string> + <string>org.mediafork.dynalias</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> - <string>HandBrake</string> + <string>MediaFork</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.7.1a5</string> + <string>0.8.0b1</string> <key>CFBundleSignature</key> <string>HB##</string> <key>CFBundleVersion</key> <string>2006022400</string> <key>NSHumanReadableCopyright</key> - <string>By Eric Petit <[email protected]></string> + <string>MediaFork Devs</string> <key>NSMainNibFile</key> <string>MainMenu</string> <key>NSPrincipalClass</key> diff --git a/macosx/MediaFork.xcodeproj/project.pbxproj b/macosx/MediaFork.xcodeproj/project.pbxproj new file mode 100644 index 000000000..5fdc2bba4 --- /dev/null +++ b/macosx/MediaFork.xcodeproj/project.pbxproj @@ -0,0 +1,1654 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 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 */; }; + 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 */; }; + 4D1EA2EA0993B09A00FDC1A2 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; }; + 4D1EA2F60993B0CA00FDC1A2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + 4D1EA3010993B13700FDC1A2 /* Express.nib in Resources */ = {isa = PBXBuildFile; fileRef = 4D1EA3000993B13700FDC1A2 /* Express.nib */; }; + 4D1EA31C0993B24700FDC1A2 /* ExpressController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D1EA31B0993B24700FDC1A2 /* ExpressController.m */; }; + 4D2AE78B09CCB24C007E18F6 /* DriveDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */; }; + 4D2AEA1A09CCB332007E18F6 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DEB2024052B055F00C39CA9 /* IOKit.framework */; }; + 4D2AEA2909CCB8F9007E18F6 /* DriveDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */; }; + 4D2AEA2A09CCB8FC007E18F6 /* DriveDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */; }; + 4D3ECC2709A4917000B2E45F /* WhiteBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3ECC2609A4917000B2E45F /* WhiteBox.m */; }; + 4DD93F8F082036E8008E1322 /* Controller.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DF3C8CB052889CD00A80101 /* Controller.h */; }; + 4DD93F90082036E8008E1322 /* PictureGLView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D85758F052B78E300C39CA9 /* PictureGLView.h */; }; + 4DD93F91082036E8008E1322 /* ScanController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D86C74F07281F4E007BA979 /* ScanController.h */; }; + 4DD93F92082036E8008E1322 /* PictureController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D1FD381073D19CE00E46515 /* PictureController.h */; }; + 4DD93F93082036E8008E1322 /* QueueController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DD27BA507C0065C0023D231 /* QueueController.h */; }; + 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 */; }; + 4DD93F9D082036E8008E1322 /* ScanController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D86C74E07281F4E007BA979 /* ScanController.mm */; }; + 4DD93F9E082036E8008E1322 /* PictureController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D1FD382073D19CE00E46515 /* PictureController.mm */; }; + 4DD93F9F082036E8008E1322 /* QueueController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4DD27BA607C0065C0023D231 /* QueueController.mm */; }; + 4DD93FA0082036E8008E1322 /* PrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DE93A3607F5A2C900F3C78F /* PrefsController.m */; }; + 4DD93FA2082036E8008E1322 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + 4DD93FA3082036E8008E1322 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DEB2024052B055F00C39CA9 /* IOKit.framework */; }; + 4DD93FA4082036E8008E1322 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */; }; + 4DE09E63082038A400FB751F /* MediaFork.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4DE09E62082038A400FB751F /* MediaFork.plist */; }; + 52AFF86A0B59BD07000DA7C4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 52AFF86B0B59BD14000DA7C4 /* Express.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4D1EA2DC0993B01000FDC1A2 /* Express.plist */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0D6E35900B6BD5FA005AABB3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0DFF0B710B6BC6E600549488; + remoteInfo = libmediafork; + }; + 0DFF0BF10B6BCCB400549488 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0DFF0B710B6BC6E600549488; + remoteInfo = libmediafork; + }; + 0DFF0BF30B6BCCB900549488 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0DFF0B710B6BC6E600549488; + remoteInfo = libmediafork; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; + 0D096DFF0B707D1200A845D4 /* libmediafork.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libmediafork.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 0D6E35760B6BD4F0005AABB3 /* MediaFork.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; 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; }; + 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; }; + 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; }; + 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>"; }; + 4D1EA31B0993B24700FDC1A2 /* ExpressController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ExpressController.m; sourceTree = "<group>"; }; + 4D1FD381073D19CE00E46515 /* PictureController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PictureController.h; sourceTree = "<group>"; }; + 4D1FD382073D19CE00E46515 /* PictureController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = PictureController.mm; sourceTree = "<group>"; }; + 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DriveDetector.m; sourceTree = "<group>"; }; + 4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DriveDetector.h; sourceTree = "<group>"; }; + 4D3ECC2509A4917000B2E45F /* WhiteBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WhiteBox.h; sourceTree = "<group>"; }; + 4D3ECC2609A4917000B2E45F /* WhiteBox.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = WhiteBox.m; sourceTree = "<group>"; }; + 4D85758E052B78E300C39CA9 /* PictureGLView.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = PictureGLView.mm; sourceTree = "<group>"; }; + 4D85758F052B78E300C39CA9 /* PictureGLView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PictureGLView.h; sourceTree = "<group>"; }; + 4D86C74E07281F4E007BA979 /* ScanController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ScanController.mm; sourceTree = "<group>"; }; + 4D86C74F07281F4E007BA979 /* ScanController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ScanController.h; sourceTree = "<group>"; }; + 4DD27BA507C0065C0023D231 /* QueueController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = QueueController.h; sourceTree = "<group>"; }; + 4DD27BA607C0065C0023D231 /* QueueController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = QueueController.mm; sourceTree = "<group>"; }; + 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; + 4DE09E62082038A400FB751F /* MediaFork.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = MediaFork.plist; sourceTree = "<group>"; }; + 4DE93A3507F5A2C900F3C78F /* PrefsController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrefsController.h; sourceTree = "<group>"; }; + 4DE93A3607F5A2C900F3C78F /* PrefsController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PrefsController.m; sourceTree = "<group>"; }; + 4DEB2024052B055F00C39CA9 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; + 4DF3C8CB052889CD00A80101 /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = "<group>"; }; + 4DF3C8CC052889CD00A80101 /* Controller.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = Controller.mm; sourceTree = "<group>"; }; + 526FBC760B4CA8F40064E04C /* test.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = test.c; path = ../test/test.c; sourceTree = SOURCE_ROOT; }; + 526FBC9B0B4CAB100064E04C /* common.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = common.c; path = ../libmediafork/common.c; sourceTree = SOURCE_ROOT; }; + 526FBC9D0B4CAB100064E04C /* deca52.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = deca52.c; path = ../libmediafork/deca52.c; sourceTree = SOURCE_ROOT; }; + 526FBC9E0B4CAB100064E04C /* decavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decavcodec.c; path = ../libmediafork/decavcodec.c; sourceTree = SOURCE_ROOT; }; + 526FBC9F0B4CAB100064E04C /* declpcm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = declpcm.c; path = ../libmediafork/declpcm.c; sourceTree = SOURCE_ROOT; }; + 526FBCA00B4CAB100064E04C /* decmpeg2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decmpeg2.c; path = ../libmediafork/decmpeg2.c; sourceTree = SOURCE_ROOT; }; + 526FBCA10B4CAB100064E04C /* decsub.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = decsub.c; path = ../libmediafork/decsub.c; sourceTree = SOURCE_ROOT; }; + 526FBCA20B4CAB100064E04C /* demuxmpeg.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = demuxmpeg.c; path = ../libmediafork/demuxmpeg.c; sourceTree = SOURCE_ROOT; }; + 526FBCA30B4CAB100064E04C /* dvd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dvd.c; path = ../libmediafork/dvd.c; sourceTree = SOURCE_ROOT; }; + 526FBCA40B4CAB100064E04C /* encavcodec.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encavcodec.c; path = ../libmediafork/encavcodec.c; sourceTree = SOURCE_ROOT; }; + 526FBCA50B4CAB100064E04C /* encfaac.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encfaac.c; path = ../libmediafork/encfaac.c; sourceTree = SOURCE_ROOT; }; + 526FBCA60B4CAB100064E04C /* enclame.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = enclame.c; path = ../libmediafork/enclame.c; sourceTree = SOURCE_ROOT; }; + 526FBCA70B4CAB100064E04C /* encvorbis.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encvorbis.c; path = ../libmediafork/encvorbis.c; sourceTree = SOURCE_ROOT; }; + 526FBCA80B4CAB100064E04C /* encx264.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encx264.c; path = ../libmediafork/encx264.c; sourceTree = SOURCE_ROOT; }; + 526FBCA90B4CAB100064E04C /* encxvid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = encxvid.c; path = ../libmediafork/encxvid.c; sourceTree = SOURCE_ROOT; }; + 526FBCAA0B4CAB100064E04C /* fifo.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fifo.c; path = ../libmediafork/fifo.c; sourceTree = SOURCE_ROOT; }; + 526FBCAE0B4CAB100064E04C /* muxavi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxavi.c; path = ../libmediafork/muxavi.c; sourceTree = SOURCE_ROOT; }; + 526FBCAF0B4CAB100064E04C /* muxcommon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxcommon.c; path = ../libmediafork/muxcommon.c; sourceTree = SOURCE_ROOT; }; + 526FBCB00B4CAB100064E04C /* muxmp4.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxmp4.c; path = ../libmediafork/muxmp4.c; sourceTree = SOURCE_ROOT; }; + 526FBCB10B4CAB100064E04C /* muxogm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxogm.c; path = ../libmediafork/muxogm.c; sourceTree = SOURCE_ROOT; }; + 526FBCB20B4CAB100064E04C /* ports.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ports.c; path = ../libmediafork/ports.c; sourceTree = SOURCE_ROOT; }; + 526FBCB40B4CAB100064E04C /* reader.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = reader.c; path = ../libmediafork/reader.c; sourceTree = SOURCE_ROOT; }; + 526FBCB50B4CAB100064E04C /* render.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = render.c; path = ../libmediafork/render.c; sourceTree = SOURCE_ROOT; }; + 526FBCB60B4CAB100064E04C /* scan.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = scan.c; path = ../libmediafork/scan.c; sourceTree = SOURCE_ROOT; }; + 526FBCB70B4CAB100064E04C /* sync.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sync.c; path = ../libmediafork/sync.c; sourceTree = SOURCE_ROOT; }; + 526FBCB80B4CAB100064E04C /* update.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = update.c; path = ../libmediafork/update.c; sourceTree = SOURCE_ROOT; }; + 526FBCB90B4CAB100064E04C /* work.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = work.c; path = ../libmediafork/work.c; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0D096DFD0B707D1200A845D4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D096EA30B70884A00A845D4 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0DFF0B700B6BC6E600549488 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0DFF0C080B6BCEC200549488 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4D1EA2D80993B01000FDC1A2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D1EA2F60993B0CA00FDC1A2 /* Cocoa.framework in Frameworks */, + 4D2AEA1A09CCB332007E18F6 /* IOKit.framework in Frameworks */, + 4D1125D909D72FD200E0657B /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4DD93FA1082036E8008E1322 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DD93FA2082036E8008E1322 /* Cocoa.framework in Frameworks */, + 4DD93FA3082036E8008E1322 /* IOKit.framework in Frameworks */, + 4DD93FA4082036E8008E1322 /* OpenGL.framework in Frameworks */, + 4D1125D809D72FD200E0657B /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 4D1EA2DA0993B01000FDC1A2 /* Instant MediaFork.app */, + 0DFF0B720B6BC6E600549488 /* libmediafork.a */, + 0DFF0C0A0B6BCEC200549488 /* MediaForkCLI */, + 0D6E35760B6BD4F0005AABB3 /* MediaFork.app */, + 0D096DFF0B707D1200A845D4 /* libmediafork.dylib */, + ); + name = Products; + sourceTree = "<group>"; + }; + 29B97314FDCFA39411CA2CEA /* HandBrake */ = { + isa = PBXGroup; + children = ( + 526FBC940B4CAA310064E04C /* Instant MediaFork Sources */, + 526FBC930B4CAA260064E04C /* MediaFork Sources */, + 526FBC920B4CAA120064E04C /* MediaForkCLI Sources */, + 526FBC8D0B4CA9F90064E04C /* libmediafork Sources */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = HandBrake; + sourceTree = "<group>"; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 29B97316FDCFA39411CA2CEA /* main.mm */, + ); + name = "Other Sources"; + sourceTree = "<group>"; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, + 4D118405053054CD00C39CA9 /* MediaFork.icns */, + 4D1EA3000993B13700FDC1A2 /* Express.nib */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = "<group>"; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4D1125D709D72FD200E0657B /* libz.dylib */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + 4DEB2024052B055F00C39CA9 /* IOKit.framework */, + 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + 526FBC8D0B4CA9F90064E04C /* libmediafork Sources */ = { + isa = PBXGroup; + children = ( + 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"; + sourceTree = "<group>"; + }; + 526FBC920B4CAA120064E04C /* MediaForkCLI Sources */ = { + isa = PBXGroup; + children = ( + 0DF377970B7BF99A00115CB0 /* fakexcode.cpp */, + 526FBC760B4CA8F40064E04C /* test.c */, + ); + name = "MediaForkCLI Sources"; + sourceTree = "<group>"; + }; + 526FBC930B4CAA260064E04C /* MediaFork Sources */ = { + isa = PBXGroup; + children = ( + 4DE09E62082038A400FB751F /* MediaFork.plist */, + 4D1FD381073D19CE00E46515 /* PictureController.h */, + 4D1FD382073D19CE00E46515 /* PictureController.mm */, + 4DF3C8CB052889CD00A80101 /* Controller.h */, + 4DF3C8CC052889CD00A80101 /* Controller.mm */, + 4D86C74E07281F4E007BA979 /* ScanController.mm */, + 4D86C74F07281F4E007BA979 /* ScanController.h */, + 4D85758E052B78E300C39CA9 /* PictureGLView.mm */, + 4D85758F052B78E300C39CA9 /* PictureGLView.h */, + 4DD27BA507C0065C0023D231 /* QueueController.h */, + 4DD27BA607C0065C0023D231 /* QueueController.mm */, + 4DE93A3507F5A2C900F3C78F /* PrefsController.h */, + 4DE93A3607F5A2C900F3C78F /* PrefsController.m */, + 4D3ECC2509A4917000B2E45F /* WhiteBox.h */, + 4D3ECC2609A4917000B2E45F /* WhiteBox.m */, + 4D2AE78909CCB24C007E18F6 /* DriveDetector.m */, + 4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */, + ); + name = "MediaFork Sources"; + sourceTree = "<group>"; + }; + 526FBC940B4CAA310064E04C /* Instant MediaFork Sources */ = { + isa = PBXGroup; + children = ( + 4D1EA31A0993B24700FDC1A2 /* ExpressController.h */, + 4D1EA31B0993B24700FDC1A2 /* ExpressController.m */, + 4D1EA2DC0993B01000FDC1A2 /* Express.plist */, + ); + name = "Instant MediaFork Sources"; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0D096DFB0B707D1200A845D4 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0DFF0B6E0B6BC6E600549488 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4DD93F8E082036E8008E1322 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DD93F8F082036E8008E1322 /* Controller.h in Headers */, + 4DD93F90082036E8008E1322 /* PictureGLView.h in Headers */, + 4DD93F91082036E8008E1322 /* ScanController.h in Headers */, + 4DD93F92082036E8008E1322 /* PictureController.h in Headers */, + 4DD93F93082036E8008E1322 /* QueueController.h in Headers */, + 4DD93F94082036E8008E1322 /* PrefsController.h in Headers */, + 4D2AEA2A09CCB8FC007E18F6 /* DriveDetector.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0D096DFE0B707D1200A845D4 /* libmediafork dlib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0D096E650B707D5800A845D4 /* Build configuration list for PBXNativeTarget "libmediafork dlib" */; + buildPhases = ( + 0D096DFB0B707D1200A845D4 /* Headers */, + 0D096DFC0B707D1200A845D4 /* Sources */, + 0D096DFD0B707D1200A845D4 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "libmediafork dlib"; + productName = "libmediafork dlib"; + productReference = 0D096DFF0B707D1200A845D4 /* libmediafork.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; + 0DFF0B710B6BC6E600549488 /* libmediafork */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libmediafork" */; + buildPhases = ( + 0DFF0B6E0B6BC6E600549488 /* Headers */, + 0DFF0B6F0B6BC6E600549488 /* Sources */, + 0DFF0B700B6BC6E600549488 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libmediafork; + productName = libmediafork; + productReference = 0DFF0B720B6BC6E600549488 /* libmediafork.a */; + productType = "com.apple.product-type.library.static"; + }; + 0DFF0C090B6BCEC200549488 /* MediaForkCLI */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "MediaForkCLI" */; + buildPhases = ( + 0DFF0C070B6BCEC200549488 /* Sources */, + 0DFF0C080B6BCEC200549488 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0D6E35910B6BD5FA005AABB3 /* PBXTargetDependency */, + ); + name = MediaForkCLI; + productName = MediaForkCLI; + productReference = 0DFF0C0A0B6BCEC200549488 /* MediaForkCLI */; + productType = "com.apple.product-type.tool"; + }; + 4D1EA2D90993B01000FDC1A2 /* Instant MediaFork */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant MediaFork" */; + buildPhases = ( + 4D1EA2D60993B01000FDC1A2 /* Resources */, + 4D1EA2D70993B01000FDC1A2 /* Sources */, + 4D1EA2D80993B01000FDC1A2 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0DFF0BF20B6BCCB400549488 /* PBXTargetDependency */, + ); + name = "Instant MediaFork"; + productName = "Instant HandBrake"; + productReference = 4D1EA2DA0993B01000FDC1A2 /* Instant MediaFork.app */; + productType = "com.apple.product-type.application"; + }; + 4DD93F8D082036E8008E1322 /* MediaFork */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "MediaFork" */; + buildPhases = ( + 4DD93F8E082036E8008E1322 /* Headers */, + 4DD93F95082036E8008E1322 /* Resources */, + 4DD93F99082036E8008E1322 /* Sources */, + 4DD93FA1082036E8008E1322 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0DFF0BF40B6BCCB900549488 /* PBXTargetDependency */, + ); + name = MediaFork; + productName = HandBrake; + productReference = 0D6E35760B6BD4F0005AABB3 /* MediaFork.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 4D4E7BC4087804870051572B /* Build configuration list for PBXProject "MediaFork" */; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* HandBrake */; + projectDirPath = ""; + targets = ( + 4DD93F8D082036E8008E1322 /* MediaFork */, + 4D1EA2D90993B01000FDC1A2 /* Instant MediaFork */, + 0DFF0B710B6BC6E600549488 /* libmediafork */, + 0DFF0C090B6BCEC200549488 /* MediaForkCLI */, + 0D096DFE0B707D1200A845D4 /* libmediafork dlib */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4D1EA2D60993B01000FDC1A2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D75EDC00B6FF9DA0090EA86 /* MediaFork.icns in Resources */, + 52AFF86B0B59BD14000DA7C4 /* Express.plist in Resources */, + 52AFF86A0B59BD07000DA7C4 /* InfoPlist.strings in Resources */, + 4D1EA3010993B13700FDC1A2 /* Express.nib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4DD93F95082036E8008E1322 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DD93F96082036E8008E1322 /* MainMenu.nib in Resources */, + 4DD93F97082036E8008E1322 /* InfoPlist.strings in Resources */, + 4DD93F98082036E8008E1322 /* MediaFork.icns in Resources */, + 4DE09E63082038A400FB751F /* MediaFork.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0D096DFC0B707D1200A845D4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 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; + }; + 0DFF0B6F0B6BC6E600549488 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 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; + }; + 0DFF0C070B6BCEC200549488 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0DFF0C100B6BCEE800549488 /* test.c in Sources */, + 0DF377980B7BF99A00115CB0 /* fakexcode.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4D1EA2D70993B01000FDC1A2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D1EA2EA0993B09A00FDC1A2 /* main.mm in Sources */, + 4D1EA31C0993B24700FDC1A2 /* ExpressController.m in Sources */, + 4D3ECC2709A4917000B2E45F /* WhiteBox.m in Sources */, + 4D2AE78B09CCB24C007E18F6 /* DriveDetector.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 4DD93F99082036E8008E1322 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DD93F9A082036E8008E1322 /* main.mm in Sources */, + 4DD93F9B082036E8008E1322 /* Controller.mm in Sources */, + 4DD93F9C082036E8008E1322 /* PictureGLView.mm in Sources */, + 4DD93F9D082036E8008E1322 /* ScanController.mm in Sources */, + 4DD93F9E082036E8008E1322 /* PictureController.mm in Sources */, + 4DD93F9F082036E8008E1322 /* QueueController.mm in Sources */, + 4DD93FA0082036E8008E1322 /* PrefsController.m in Sources */, + 4D2AEA2909CCB8F9007E18F6 /* DriveDetector.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0D6E35910B6BD5FA005AABB3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0DFF0B710B6BC6E600549488 /* libmediafork */; + targetProxy = 0D6E35900B6BD5FA005AABB3 /* PBXContainerItemProxy */; + }; + 0DFF0BF20B6BCCB400549488 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0DFF0B710B6BC6E600549488 /* libmediafork */; + targetProxy = 0DFF0BF10B6BCCB400549488 /* PBXContainerItemProxy */; + }; + 0DFF0BF40B6BCCB900549488 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0DFF0B710B6BC6E600549488 /* libmediafork */; + targetProxy = 0DFF0BF30B6BCCB900549488 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = "<group>"; + }; + 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { + isa = PBXVariantGroup; + children = ( + 29B97319FDCFA39411CA2CEA /* English */, + ); + name = MainMenu.nib; + sourceTree = "<group>"; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 0D096E660B707D5800A845D4 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + EXECUTABLE_PREFIX = lib; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ( + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-ldl", + "-flat_namespace", + "-read_only_relocs", + suppress, + ); + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SEPARATE_STRIP = YES; + ZERO_LINK = NO; + }; + name = Development; + }; + 0D096E670B707D5800A845D4 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + COPY_PHASE_STRIP = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + EXECUTABLE_PREFIX = lib; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ( + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-ldl", + "-flat_namespace", + "-read_only_relocs", + suppress, + ); + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SEPARATE_STRIP = YES; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 0D096E680B707D5800A845D4 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + EXECUTABLE_PREFIX = lib; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ( + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-ldl", + "-flat_namespace", + "-read_only_relocs", + suppress, + ); + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SEPARATE_STRIP = YES; + ZERO_LINK = NO; + }; + name = Default; + }; + 0D096E690B707D5800A845D4 /* UB */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + EXECUTABLE_PREFIX = lib; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ""; + MACOSX_DEPLOYMENT_TARGET = 10.4; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ( + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-ldl", + "-flat_namespace", + "-read_only_relocs", + suppress, + ); + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SEPARATE_STRIP = YES; + ZERO_LINK = NO; + }; + name = UB; + }; + 0D88F56B0B6CDCD400F81F26 /* UB */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ""; + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = UB; + }; + 0D88F56C0B6CDCD400F81F26 /* UB */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = ..; + CURRENT_PROJECT_VERSION = 0.7.1a2; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_OPTIMIZATION_LEVEL = s; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + HEADER_SEARCH_PATHS = ../libmediafork; + INFOPLIST_FILE = MediaFork.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PRODUCT_NAME = MediaFork; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + }; + name = UB; + }; + 0D88F56D0B6CDCD400F81F26 /* UB */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = ..; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + 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; + INFOPLIST_FILE = Express.plist; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + ); + LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PREBINDING = NO; + PRODUCT_NAME = "Instant MediaFork"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = UB; + }; + 0D88F56E0B6CDCD400F81F26 /* UB */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = ..; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + HEADER_SEARCH_PATHS = ../libmediafork; + INSTALL_PATH = /usr/local/bin; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-lz", + ); + PREBINDING = NO; + PRODUCT_NAME = MediaForkCLI; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = UB; + }; + 0D88F56F0B6CDCD400F81F26 /* UB */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + MACOSX_DEPLOYMENT_TARGET = 10.3; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = UB; + }; + 0DFF0B740B6BC70400549488 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ""; + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = Development; + }; + 0DFF0B750B6BC70400549488 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ""; + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 0DFF0B760B6BC70400549488 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/../libmediafork"; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../contrib/include"; + INSTALL_PATH = /usr/local/lib; + OTHER_CFLAGS = ( + "-D__LIBMEDIAFORK__", + "-DSYS_DARWIN", + "$(OTHER_CFLAGS_QUOTED_1)", + "-DHB_BUILD=2006022400", + "-DUSE_PTHREAD", + ); + OTHER_CFLAGS_QUOTED_1 = "-DHB_VERSION=\\\"0.7.1\\\""; + OTHER_LDFLAGS = ""; + PER_ARCH_CFLAGS_ppc = "-DWORDS_BIGENDIAN"; + PREBINDING = NO; + PRODUCT_NAME = mediafork; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = Default; + }; + 0DFF0C0D0B6BCEE000549488 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = ..; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + HEADER_SEARCH_PATHS = ../libmediafork; + INSTALL_PATH = /usr/local/bin; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-lz", + ); + PREBINDING = NO; + PRODUCT_NAME = MediaForkCLI; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = Development; + }; + 0DFF0C0E0B6BCEE000549488 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = ..; + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + HEADER_SEARCH_PATHS = ../libmediafork; + INSTALL_PATH = /usr/local/bin; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-lz", + ); + PREBINDING = NO; + PRODUCT_NAME = MediaForkCLI; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 0DFF0C0F0B6BCEE000549488 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + CONFIGURATION_BUILD_DIR = ..; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = s; + HEADER_SEARCH_PATHS = ../libmediafork; + INSTALL_PATH = /usr/local/bin; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + "-lz", + ); + PREBINDING = NO; + PRODUCT_NAME = MediaForkCLI; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + ZERO_LINK = NO; + }; + name = Default; + }; + 4D1EA2DE0993B01100FDC1A2 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + 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; + INFOPLIST_FILE = Express.plist; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + ); + LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PREBINDING = NO; + PRODUCT_NAME = "Instant MediaFork"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Development; + }; + 4D1EA2DF0993B01100FDC1A2 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G5; + 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; + INFOPLIST_FILE = Express.plist; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + ); + LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PREBINDING = NO; + PRODUCT_NAME = "Instant MediaFork"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 4D1EA2E00993B01100FDC1A2 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + 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; + INFOPLIST_FILE = Express.plist; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + ); + LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PREBINDING = NO; + PRODUCT_NAME = "Instant MediaFork"; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Default; + }; + 4D4E7BC1087804870051572B /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 0.7.1a2; + 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; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PRODUCT_NAME = MediaFork; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Development; + }; + 4D4E7BC2087804870051572B /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 0.7.1a2; + 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; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PRODUCT_NAME = MediaFork; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 4D4E7BC3087804870051572B /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + CURRENT_PROJECT_VERSION = 0.7.1a2; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_OPTIMIZATION_LEVEL = s; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + HEADER_SEARCH_PATHS = ../libmediafork; + INFOPLIST_FILE = MediaFork.plist; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + ../libmediafork/libmediafork.a, + ../contrib/lib/libmp4v2.a, + ../contrib/lib/liba52.a, + ../contrib/lib/libavformat.a, + ../contrib/lib/libavcodec.a, + ../contrib/lib/libavutil.a, + ../contrib/lib/libdvdread.a, + ../contrib/lib/libdvdcss.a, + ../contrib/lib/libfaac.a, + ../contrib/lib/libmp3lame.a, + ../contrib/lib/libmpeg2.a, + ../contrib/lib/libvorbis.a, + ../contrib/lib/libvorbisenc.a, + ../contrib/lib/libogg.a, + ../contrib/lib/libsamplerate.a, + ../contrib/lib/libx264.a, + ../contrib/lib/libxvidcore.a, + ); + PRODUCT_NAME = MediaFork; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + }; + name = Default; + }; + 4D4E7BC5087804870051572B /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.3; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Development; + }; + 4D4E7BC6087804870051572B /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.3; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Deployment; + }; + 4D4E7BC7087804870051572B /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.3; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0D096E650B707D5800A845D4 /* Build configuration list for PBXNativeTarget "libmediafork dlib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0D096E660B707D5800A845D4 /* Development */, + 0D096E670B707D5800A845D4 /* Deployment */, + 0D096E680B707D5800A845D4 /* Default */, + 0D096E690B707D5800A845D4 /* UB */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 0DFF0B730B6BC70400549488 /* Build configuration list for PBXNativeTarget "libmediafork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0DFF0B740B6BC70400549488 /* Development */, + 0DFF0B750B6BC70400549488 /* Deployment */, + 0DFF0B760B6BC70400549488 /* Default */, + 0D88F56B0B6CDCD400F81F26 /* UB */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 0DFF0C0C0B6BCEE000549488 /* Build configuration list for PBXNativeTarget "MediaForkCLI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0DFF0C0D0B6BCEE000549488 /* Development */, + 0DFF0C0E0B6BCEE000549488 /* Deployment */, + 0DFF0C0F0B6BCEE000549488 /* Default */, + 0D88F56E0B6CDCD400F81F26 /* UB */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 4D1EA2DD0993B01100FDC1A2 /* Build configuration list for PBXNativeTarget "Instant MediaFork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D1EA2DE0993B01100FDC1A2 /* Development */, + 4D1EA2DF0993B01100FDC1A2 /* Deployment */, + 4D1EA2E00993B01100FDC1A2 /* Default */, + 0D88F56D0B6CDCD400F81F26 /* UB */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 4D4E7BC0087804870051572B /* Build configuration list for PBXNativeTarget "MediaFork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D4E7BC1087804870051572B /* Development */, + 4D4E7BC2087804870051572B /* Deployment */, + 4D4E7BC3087804870051572B /* Default */, + 0D88F56C0B6CDCD400F81F26 /* UB */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 4D4E7BC4087804870051572B /* Build configuration list for PBXProject "MediaFork" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4D4E7BC5087804870051572B /* Development */, + 4D4E7BC6087804870051572B /* Deployment */, + 4D4E7BC7087804870051572B /* Default */, + 0D88F56F0B6CDCD400F81F26 /* UB */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/macosx/PictureController.h b/macosx/PictureController.h index 3a279e133..7f750f031 100644 --- a/macosx/PictureController.h +++ b/macosx/PictureController.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "hb.h" +#include "mediafork.h" #include "PictureGLView.h" @interface PictureController : NSObject @@ -37,10 +37,15 @@ IBOutlet NSTextField * fCropRightField; IBOutlet NSStepper * fCropRightStepper; IBOutlet NSButton * fDeinterlaceCheck; + IBOutlet NSButton * fPARCheck; IBOutlet NSButton * fEffectsCheck; IBOutlet NSButton * fPrevButton; IBOutlet NSButton * fNextButton; IBOutlet NSTextField * fInfoField; + + int MaxOutputWidth; + int MaxOutputHeight; + } - (void) SetHandle: (hb_handle_t *) handle; diff --git a/macosx/PictureController.mm b/macosx/PictureController.mm index f4e9d51d9..2ed27ab54 100644 --- a/macosx/PictureController.mm +++ b/macosx/PictureController.mm @@ -73,6 +73,7 @@ static int GetAlignedSize( int size ) fTexBuf[1] = (uint8_t *) realloc( fTexBuf[1], fTexBufSize ); } + [fWidthStepper setMaxValue: title->width]; [fWidthStepper setIntValue: job->width]; [fWidthField setIntValue: job->width]; @@ -85,7 +86,10 @@ static int GetAlignedSize( int size ) [fCropLeftStepper setMaxValue: title->width/2-2]; [fCropRightStepper setMaxValue: title->width/2-2]; [fDeinterlaceCheck setState: job->deinterlace ? NSOnState : NSOffState]; + [fPARCheck setState: job->pixel_ratio ? NSOnState : NSOffState]; + MaxOutputWidth = title->width; + MaxOutputHeight = title->height; fPicture = 0; [self SettingsChanged: nil]; } @@ -127,10 +131,28 @@ static int GetAlignedSize( int size ) [fPictureGLView Display: anim buffer1: fTexBuf[0] buffer2: fTexBuf[1] width: ( fTitle->width + 2 ) height: ( fTitle->height + 2 )]; - - [fInfoField setStringValue: [NSString stringWithFormat: - @"Source %dx%d, output %dx%d", fTitle->width, fTitle->height, - fTitle->job->width, fTitle->job->height]]; + + /* Set the Output Display below the Preview Picture*/ + if (fTitle->job->pixel_ratio == 1) + { + int titlewidth = fTitle->width-fTitle->job->crop[2]-fTitle->job->crop[3]; + int arpwidth = fTitle->job->pixel_aspect_width; + int arpheight = fTitle->job->pixel_aspect_height; + int displayparwidth = titlewidth * arpwidth / arpheight; + int displayparheight = fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]; + [fInfoField setStringValue: [NSString stringWithFormat: + @"Source: %dx%d, Output: %dx%d, Anamorphic: %dx%d", fTitle->width, fTitle->height, + titlewidth, fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1], displayparwidth, + fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]]]; + + + } + else + { + [fInfoField setStringValue: [NSString stringWithFormat: + @"Source: %dx%d, Output: %dx%d", fTitle->width, fTitle->height, + fTitle->job->width, fTitle->job->height]]; + } [fPrevButton setEnabled: ( fPicture > 0 )]; [fNextButton setEnabled: ( fPicture < 9 )]; @@ -139,11 +161,42 @@ static int GetAlignedSize( int size ) - (IBAction) SettingsChanged: (id) sender { hb_job_t * job = fTitle->job; + + if ([fPARCheck state] == 1 ) + { + [fWidthStepper setIntValue: MaxOutputWidth]; + [fWidthField setIntValue: MaxOutputWidth]; + + [fHeightStepper setIntValue: fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]]; + [fHeightField setIntValue: fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]]; + [fRatioCheck setState: 0]; + [fWidthStepper setEnabled: NO]; + [fWidthField setEnabled: NO]; + [fHeightStepper setEnabled: NO]; + [fHeightField setEnabled: NO]; + [fRatioCheck setEnabled: NO]; + + + } + else + { + [fWidthStepper setEnabled: YES]; + [fWidthField setEnabled: YES]; + [fHeightStepper setEnabled: YES]; + [fHeightField setEnabled: YES]; + [fRatioCheck setEnabled: YES]; + } + + + job->width = [fWidthStepper intValue]; job->height = [fHeightStepper intValue]; job->keep_ratio = ( [fRatioCheck state] == NSOnState ); job->deinterlace = ( [fDeinterlaceCheck state] == NSOnState ); + job->pixel_ratio = ( [fPARCheck state] == NSOnState ); + + bool autocrop = ( [fCropMatrix selectedRow] == 0 ); [fCropTopStepper setEnabled: !autocrop]; @@ -222,7 +275,8 @@ static int GetAlignedSize( int size ) - (IBAction) ClosePanel: (id) sender { - [NSApp stopModal]; + + [NSApp stopModal]; } @end diff --git a/macosx/PictureGLView.h b/macosx/PictureGLView.h index 229d822ac..518ba1268 100644 --- a/macosx/PictureGLView.h +++ b/macosx/PictureGLView.h @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "hb.h" +#include "mediafork.h" #define HB_ANIMATE_NONE 1 #define HB_ANIMATE_BACKWARD 2 diff --git a/macosx/PrefsController.h b/macosx/PrefsController.h index 46ff48b3b..a9c198c55 100644 --- a/macosx/PrefsController.h +++ b/macosx/PrefsController.h @@ -7,6 +7,13 @@ IBOutlet NSPanel * fPanel; IBOutlet NSButton * fUpdateCheck; IBOutlet NSComboBox * fdefaultlanguage; + IBOutlet NSButton * fFileExtItunes; + IBOutlet NSButton * fDefCrf; + IBOutlet NSButton * fDefDeinterlace; + IBOutlet NSButton * fDefPicSizeAutoSetipod; + IBOutlet NSButton * fDefPixelRatio; + + } - (IBAction) OpenPanel: (id) sender; diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index a4622ae51..6f98400e5 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -8,17 +8,32 @@ NSDictionary * appDefaults; /* Unless the user specified otherwise, default is to check - for update */ + for update fDefPicSizeAutoSetipod*/ defaults = [NSUserDefaults standardUserDefaults]; appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"CheckForUpdates"]; appDefaults = [NSDictionary dictionaryWithObject:@"English" forKey:@"DefaultLanguage"]; + appDefaults = [NSDictionary dictionaryWithObject:@"NO" + forKey:@"DefaultMpegName"]; + appDefaults = [NSDictionary dictionaryWithObject:@"NO" + forKey:@"DefaultCrf"]; + appDefaults = [NSDictionary dictionaryWithObject:@"NO" + forKey:@"DefaultDeinterlaceOn"]; + appDefaults = [NSDictionary dictionaryWithObject:@"YES" + forKey:@"DefaultPicSizeAutoiPod"]; + appDefaults = [NSDictionary dictionaryWithObject:@"NO" + forKey:@"PixelRatio"]; + + [defaults registerDefaults: appDefaults]; - /* Check or uncheck according to the preferences */ + /* fUpdateCheck Check or uncheck according to the preferences */ [fUpdateCheck setState: [defaults boolForKey:@"CheckForUpdates"] ? NSOnState : NSOffState]; + + + // Fill the languages combobox [fdefaultlanguage removeAllItems]; [fdefaultlanguage addItemWithObjectValue: @"Afar"]; @@ -185,10 +200,37 @@ [fdefaultlanguage addItemWithObjectValue: @"Yoruba"]; [fdefaultlanguage addItemWithObjectValue: @"Zhuang"]; [fdefaultlanguage addItemWithObjectValue: @"Zulu"]; + [fdefaultlanguage setStringValue:@"English"]; + + /* If a Default Language is selected then write it otherwise let English as default */ - [fdefaultlanguage setStringValue:[defaults stringForKey:@"DefaultLanguage"]]; - [fdefaultlanguage selectItemWithObjectValue:[defaults stringForKey:@"DefaultLanguage"]]; + if ([defaults stringForKey:@"DefaultLanguage"]!=NULL) + { + [fdefaultlanguage setStringValue:[defaults stringForKey:@"DefaultLanguage"]]; + } + [fdefaultlanguage selectItemWithObjectValue:[defaults stringForKey:@"DefaultLanguage"]]; + + + + + /* fFileExtItunes Check or uncheck according to the preferences */ + [fFileExtItunes setState: [defaults boolForKey:@"DefaultMpegName"] ? + NSOnState : NSOffState]; + + /* fDefCrf Check or uncheck according to the preferences*/ + [fDefCrf setState: [defaults boolForKey:@"DefaultCrf"] ? + 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*/ + [fDefPicSizeAutoSetipod setState: [defaults boolForKey:@"DefaultPicSizeAutoiPod"] ? + NSOnState : NSOffState]; + /* fDefPixelRatio */ + [fDefPixelRatio setState: [defaults boolForKey:@"PixelRatio"] ? + NSOnState : NSOffState]; } @@ -207,7 +249,8 @@ { NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; - if( [fUpdateCheck state] == NSOnState ) + /* Check Update CheckForUpdates Set */ + if( [fUpdateCheck state] == NSOnState ) { [defaults setObject:@"YES" forKey:@"CheckForUpdates"]; } @@ -216,8 +259,68 @@ [defaults setObject:@"NO" forKey:@"CheckForUpdates"]; } + /* Preferred Language Combobox Set */ + [defaults setObject:[fdefaultlanguage objectValueOfSelectedItem] forKey:@"DefaultLanguage"]; + + /* File Extension Itunes Set */ + + if( [fFileExtItunes state] == NSOnState ) + { + [defaults setObject:@"YES" forKey:@"DefaultMpegName"]; + } + else + { + [defaults setObject:@"NO" forKey:@"DefaultMpegName"]; + } + + /* Use CRF for constant mode */ + + if( [fDefCrf state] == NSOnState ) + { + [defaults setObject:@"YES" forKey:@"DefaultCrf"]; + } + else + { + [defaults setObject:@"NO" forKey:@"DefaultCrf"]; + } + + /* Use Deinterlace on as a default*/ + + if( [fDefDeinterlace state] == NSOnState ) + { + [defaults setObject:@"YES" forKey:@"DefaultDeinterlaceOn"]; + } + else + { + [defaults setObject:@"NO" forKey:@"DefaultDeinterlaceOn"]; + } + + /* Use Picture size set to 640 upon x264 (iPod) Selection as a default*/ + + if( [fDefPicSizeAutoSetipod state] == NSOnState ) + { + [defaults setObject:@"YES" forKey:@"DefaultPicSizeAutoiPod"]; + } + else + { + [defaults setObject:@"NO" forKey:@"DefaultPicSizeAutoiPod"]; + } + + /* Use Pixel Ratio*/ + + if( [fDefPixelRatio state] == NSOnState ) + { + [defaults setObject:@"YES" forKey:@"PixelRatio"]; + } + else + { + [defaults setObject:@"NO" forKey:@"PixelRatio"]; + } + + + } @end diff --git a/macosx/QueueController.h b/macosx/QueueController.h index 635adc7b8..94feab4fb 100644 --- a/macosx/QueueController.h +++ b/macosx/QueueController.h @@ -2,7 +2,7 @@ #include <Cocoa/Cocoa.h> -#include "hb.h" +#include "mediafork.h" @interface QueueController : NSObject { diff --git a/macosx/ScanController.h b/macosx/ScanController.h index 47a7f6132..63c50b65c 100644 --- a/macosx/ScanController.h +++ b/macosx/ScanController.h @@ -1,4 +1,4 @@ -/* $Id: ScanController.h,v 1.4 2005/03/21 12:37:32 titer Exp $ +/* $Id: ScanController.h,v 1.4 2005/03/21 12:37:32 titer Exp $ This file is part of the HandBrake source code. Homepage: <http://handbrake.m0k.org/>. @@ -6,7 +6,7 @@ #include <Cocoa/Cocoa.h> -#include "hb.h" +#include "mediafork.h" @class DriveDetector; @interface ScanController : NSObject { diff --git a/macosx/ScanController.mm b/macosx/ScanController.mm index b38d2b999..9ce44f8fe 100644 --- a/macosx/ScanController.mm +++ b/macosx/ScanController.mm @@ -1,4 +1,4 @@ -/* $Id: ScanController.mm,v 1.10 2005/04/27 21:05:24 titer Exp $ +/* $Id: ScanController.mm,v 1.10 2005/04/27 21:05:24 titer Exp $ This file is part of the HandBrake source code. Homepage: <http://handbrake.m0k.org/>. @@ -80,8 +80,8 @@ [fFolderField setEnabled: 1]; [fBrowseButton setEnabled: 1]; [fOpenButton setEnabled: 0]; - [fBrowseButton setEnabled: 0]; - //fOpenButton + [fBrowseButton setEnabled: 1]; + [fMatrix selectCell: fFolderCell]; } @@ -163,8 +163,9 @@ } else { - [fMatrix selectCell: fFolderCell]; + [fMatrix selectCell: fFolderCell]; [fDetectedCell setEnabled: NO]; + [fMatrix selectCellAtRow:1 column:0]; } /* Enable controls related to the current choice */ diff --git a/macosx/i18n/Localizable.strings b/macosx/i18n/Localizable.strings Binary files differindex d2415f302..ed2dec69b 100644 --- a/macosx/i18n/Localizable.strings +++ b/macosx/i18n/Localizable.strings diff --git a/macosx/i18n/de.strings b/macosx/i18n/de.strings Binary files differindex c00468936..2066572a0 100644 --- a/macosx/i18n/de.strings +++ b/macosx/i18n/de.strings diff --git a/macosx/i18n/es.strings b/macosx/i18n/es.strings Binary files differindex 1bbce67e8..94c6cbe74 100644 --- a/macosx/i18n/es.strings +++ b/macosx/i18n/es.strings diff --git a/macosx/i18n/fr.strings b/macosx/i18n/fr.strings Binary files differindex a2841c40e..198638e51 100644 --- a/macosx/i18n/fr.strings +++ b/macosx/i18n/fr.strings diff --git a/macosx/i18n/it.strings b/macosx/i18n/it.strings Binary files differindex 115eab928..de3dbf736 100644 --- a/macosx/i18n/it.strings +++ b/macosx/i18n/it.strings diff --git a/macosx/i18n/ja.strings b/macosx/i18n/ja.strings Binary files differindex fc457a7a6..e5162f58d 100644 --- a/macosx/i18n/ja.strings +++ b/macosx/i18n/ja.strings diff --git a/macosx/i18n/nl.strings b/macosx/i18n/nl.strings Binary files differindex 71ad84e66..7d5575526 100644 --- a/macosx/i18n/nl.strings +++ b/macosx/i18n/nl.strings diff --git a/macosx/i18n/pl.strings b/macosx/i18n/pl.strings Binary files differindex 8713a365a..f022f65d1 100644 --- a/macosx/i18n/pl.strings +++ b/macosx/i18n/pl.strings diff --git a/macosx/i18n/pt.strings b/macosx/i18n/pt.strings index a9048acdf..6c9e4ef95 100644 --- a/macosx/i18n/pt.strings +++ b/macosx/i18n/pt.strings @@ -173,7 +173,7 @@ "Video bitrate is too low." = "Video bitrate e muito baixo."; /* No comment provided by engineer. */ -"Welcome to HandBrake" = "Bemvindo ao HandBrake"; +"Welcome to MediaFork" = "Bemvindo ao MediaFork"; /* No comment provided by engineer. */ "Yes" = "Sim"; diff --git a/macosx/i18n/ru.strings b/macosx/i18n/ru.strings Binary files differindex cc6080f7c..118746733 100644 --- a/macosx/i18n/ru.strings +++ b/macosx/i18n/ru.strings diff --git a/macosx/localize.sh b/macosx/localize.sh new file mode 100755 index 000000000..27c423caa --- /dev/null +++ b/macosx/localize.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# This script localize the built application + cd macosx/i18n/ +export LNG=`ls *strings | sed 's/.strings//g' | sed 's/Localizable//g'` +cd ../../$1/Contents/Resources +for l in $LNG +do + cp -r English.lproj $l.lproj + cp ../../../macosx/i18n/$l.strings $l.lproj/Localizable.strings +done diff --git a/test/BUILDSHARED b/test/BUILDSHARED new file mode 100644 index 000000000..a2f015555 --- /dev/null +++ b/test/BUILDSHARED @@ -0,0 +1,36 @@ +To test the MediaFork 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 + +Validate that the test Binary is really using the shared library + +otool -L test + +------------------------------------------------------------------------ + +To test the Mediafork .so on Linux issue the following commands: +================================================================ + +cp ../libmediafork/libmediafork.so . +gcc -I../libmediafork -L. -lmediafork test.c -o test -lz -lpthread + +Validate that the test Binary is really using the shared library + +ldd test + +------------------------------------------------------------------------ + +To test the MediaFork .dll on cygwin issue the following commands: +================================================================== + +cp ../libmediafork/libmediafork.dll . +gcc -I../libmediafork -L. -lmediafork test.c -o test -lz -lpthread + +The resulting binary test should depend on the cygwin dll and the mediafork dll. + +I works like that but wasn't tested yet outside of cygwin. + +------------------------------------------------------------------------ diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 000000000..3e7a65971 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,29 @@ +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 +else + LIBS = a52 avformat avcodec avutil dvdread dvdcss faac mp3lame mpeg2 vorbis vorbisenc ogg samplerate x264 xvidcore mp4v2 +endif + +all: ../MediaForkCLI + +CFLAGS += -I../libmediafork +CXXFLAGS += -I../libmediafork +LIBS2 = ../libmediafork/libmediafork.a $(LIBS:%=../contrib/lib/lib%.a) +LDFLAGS += $(LIBS2) + +../MediaForkCLI: 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 "Compile line for $@ was:"; echo $$CMD; false ) + + +clean: + @echo "Clean MediaForkCLI" + @$(RM) ../MediaForkCLI + @$(RM) ../MediaForkCLI.exe + @$(RM) *.o + diff --git a/test/fakexcode.cpp b/test/fakexcode.cpp new file mode 100644 index 000000000..d3782be7a --- /dev/null +++ b/test/fakexcode.cpp @@ -0,0 +1,3 @@ +/* + * Force Xcode to use g++ + */ diff --git a/test/test.c b/test/test.c index dc66aa6f4..1d9781c49 100644 --- a/test/test.c +++ b/test/test.c @@ -10,7 +10,7 @@ #include <time.h> #include <unistd.h> -#include "hb.h" +#include "mediafork.h" /* Options */ static int debug = HB_DEBUG_NONE; @@ -39,6 +39,7 @@ static int size = 0; static int abitrate = 0; static int mux = 0; static int acodec = 0; +static int pixelratio = 0; static int chapter_start = 0; static int chapter_end = 0; static int crf = 0; @@ -71,7 +72,7 @@ int main( int argc, char ** argv ) h = hb_init( debug, update ); /* Show version */ - fprintf( stderr, "HandBrake %s (%d) - http://handbrake.m0k.org/\n", + fprintf( stderr, "MediaFork %s (%d) - http://mediafork.dynalias.com/\n", hb_get_version( h ), hb_get_build( h ) ); /* Check for update */ @@ -80,12 +81,12 @@ int main( int argc, char ** argv ) if( ( build = hb_check_update( h, &version ) ) > -1 ) { fprintf( stderr, "You are using an old version of " - "HandBrake.\nLatest is %s (build %d).\n", version, + "MediaFork.\nLatest is %s (build %d).\n", version, build ); } else { - fprintf( stderr, "Your version of HandBrake is up to " + fprintf( stderr, "Your version of MediaFork is up to " "date.\n" ); } hb_close( &h ); @@ -173,7 +174,7 @@ int main( int argc, char ** argv ) if( format ) free( format ); if( audios ) free( audios ); - fprintf( stderr, "HandBrake has exited.\n" ); + fprintf( stderr, "MediaFork has exited.\n" ); return 0; } @@ -182,7 +183,7 @@ static void ShowCommands() { fprintf( stderr, "Commands:\n" ); fprintf( stderr, " [h]elp Show this message\n" ); - fprintf( stderr, " [q]uit Exit HBTest\n" ); + fprintf( stderr, " [q]uit Exit MediaForkCLI\n" ); fprintf( stderr, " [p]ause Pause encoding\n" ); fprintf( stderr, " [r]esume Resume encoding\n" ); } @@ -310,6 +311,7 @@ static int HandleEvents( hb_handle_t * h ) job->deinterlace = deinterlace; job->grayscale = grayscale; + job->pixel_ratio = pixelratio; if( width && height ) { @@ -326,7 +328,7 @@ static int HandleEvents( hb_handle_t * h ) job->height = height; hb_fix_aspect( job, HB_KEEP_HEIGHT ); } - else + else if( !pixelratio ) { hb_fix_aspect( job, HB_KEEP_WIDTH ); } @@ -402,7 +404,7 @@ static int HandleEvents( hb_handle_t * h ) fprintf( stderr, "Calculated bitrate: %d kbps\n", job->vbitrate ); } - + if( sub ) { job->subtitle = sub - 1; @@ -506,7 +508,7 @@ static void ShowHelp() int i; fprintf( stderr, - "Syntax: HBTest [options] -i <device> -o <file>\n" + "Syntax: MediaForkCLI [options] -i <device> -o <file>\n" "\n" " -h, --help Print help\n" " -u, --update Check for updates and exit\n" @@ -534,6 +536,7 @@ static void ShowHelp() " -2, --two-pass Use two-pass mode\n" " -d, --deinterlace Deinterlace video\n" " -g, --grayscale Grayscale encoding\n" + " -p, --pixelratio Store pixel aspect ratio in video stream\n" "\n" " -r, --rate Set video framerate (" ); for( i = 0; i < hb_video_rates_count; i++ ) @@ -589,6 +592,7 @@ static int ParseOptions( int argc, char ** argv ) { "two-pass", no_argument, NULL, '2' }, { "deinterlace", no_argument, NULL, 'd' }, { "grayscale", no_argument, NULL, 'g' }, + { "pixelratio", no_argument, NULL, 'p' }, { "width", required_argument, NULL, 'w' }, { "height", required_argument, NULL, 'l' }, { "crop", required_argument, NULL, 'n' }, @@ -608,7 +612,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:2dgw: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:Q", long_options, &option_index ); if( c < 0 ) { @@ -680,6 +684,9 @@ static int ParseOptions( int argc, char ** argv ) case 'g': grayscale = 1; break; + case 'p': + pixelratio = 1; + break; case 'e': if( !strcasecmp( optarg, "ffmpeg" ) ) { |