OSDN Git Service

Merge the 0.8.0_mpeg4ip branch into the trunk
authorprigaux <prigaux@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sun, 11 Feb 2007 20:00:15 +0000 (20:00 +0000)
committerprigaux <prigaux@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sun, 11 Feb 2007 20:00:15 +0000 (20:00 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@285 b64f7644-9d1e-0410-96f1-a4d463321fa5

98 files changed:
BUILD
BuildContribsDarwin.sh [new file with mode: 0755]
DownloadMacOsXContribBinaries.sh [new file with mode: 0755]
Jamfile
Jamrules
MacOsXContribBinariesVersion.txt [new file with mode: 0644]
Makefile [new file with mode: 0644]
configure
contrib/Jamfile
contrib/patch_mpeg4ip_cygwin.patch [new file with mode: 0644]
contrib/version_a52dec.txt
contrib/version_faac.txt
contrib/version_ffmpeg.txt
contrib/version_lame.txt
contrib/version_libdvdcss.txt
contrib/version_libdvdread.txt
contrib/version_libogg.txt
contrib/version_libsamplerate.txt
contrib/version_libvorbis.txt
contrib/version_mpeg2dec.txt
contrib/version_mpeg4ip.txt [new file with mode: 0644]
contrib/version_x264.txt
contrib/version_xvidcore.txt
jam
jamintel [deleted file]
libhb/muxmp4.c [deleted file]
libmediafork/Jamfile [moved from libhb/Jamfile with 52% similarity]
libmediafork/Makefile [new file with mode: 0644]
libmediafork/common.c [moved from libhb/common.c with 95% similarity]
libmediafork/common.h [moved from libhb/common.h with 92% similarity]
libmediafork/deca52.c [moved from libhb/deca52.c with 99% similarity]
libmediafork/decavcodec.c [moved from libhb/decavcodec.c with 99% similarity]
libmediafork/declpcm.c [moved from libhb/declpcm.c with 98% similarity]
libmediafork/decmpeg2.c [moved from libhb/decmpeg2.c with 99% similarity]
libmediafork/decsub.c [moved from libhb/decsub.c with 99% similarity]
libmediafork/demuxmpeg.c [moved from libhb/demuxmpeg.c with 99% similarity]
libmediafork/dvd.c [moved from libhb/dvd.c with 99% similarity]
libmediafork/encavcodec.c [moved from libhb/encavcodec.c with 94% similarity]
libmediafork/encfaac.c [moved from libhb/encfaac.c with 99% similarity]
libmediafork/enclame.c [moved from libhb/enclame.c with 99% similarity]
libmediafork/encvorbis.c [moved from libhb/encvorbis.c with 99% similarity]
libmediafork/encx264.c [moved from libhb/encx264.c with 55% similarity]
libmediafork/encxvid.c [moved from libhb/encxvid.c with 97% similarity]
libmediafork/fifo.c [moved from libhb/fifo.c with 99% similarity]
libmediafork/internal.h [moved from libhb/internal.h with 97% similarity]
libmediafork/ipodutil.cpp [new file with mode: 0644]
libmediafork/lang.h [moved from libhb/lang.h with 100% similarity]
libmediafork/mediafork.c [moved from libhb/hb.c with 87% similarity]
libmediafork/mediafork.h [moved from libhb/hb.h with 93% similarity]
libmediafork/muxavi.c [moved from libhb/muxavi.c with 99% similarity]
libmediafork/muxcommon.c [moved from libhb/muxcommon.c with 99% similarity]
libmediafork/muxmp4.c [new file with mode: 0644]
libmediafork/muxogm.c [moved from libhb/muxogm.c with 99% similarity]
libmediafork/ports.c [moved from libhb/ports.c with 99% similarity]
libmediafork/ports.h [moved from libhb/ports.h with 98% similarity]
libmediafork/reader.c [moved from libhb/reader.c with 99% similarity]
libmediafork/render.c [moved from libhb/render.c with 99% similarity]
libmediafork/scan.c [moved from libhb/scan.c with 96% similarity]
libmediafork/sync.c [moved from libhb/sync.c with 99% similarity]
libmediafork/update.c [moved from libhb/update.c with 99% similarity]
libmediafork/work.c [moved from libhb/work.c with 96% similarity]
macosx/Controller.h
macosx/Controller.mm
macosx/DriveDetector.h
macosx/DriveDetector.m
macosx/English.lproj/MainMenu.nib/classes.nib
macosx/English.lproj/MainMenu.nib/info.nib
macosx/English.lproj/MainMenu.nib/keyedobjects.nib
macosx/Express.plist
macosx/ExpressController.h
macosx/HandBrake.icns [deleted file]
macosx/HandBrake.xcodeproj/project.pbxproj [deleted file]
macosx/MediaFork.icns [new file with mode: 0644]
macosx/MediaFork.plist [moved from macosx/HandBrake.plist with 76% similarity]
macosx/MediaFork.xcodeproj/project.pbxproj [new file with mode: 0644]
macosx/PictureController.h
macosx/PictureController.mm
macosx/PictureGLView.h
macosx/PrefsController.h
macosx/PrefsController.m
macosx/QueueController.h
macosx/ScanController.h
macosx/ScanController.mm
macosx/i18n/Localizable.strings
macosx/i18n/de.strings
macosx/i18n/es.strings
macosx/i18n/fr.strings
macosx/i18n/it.strings
macosx/i18n/ja.strings
macosx/i18n/nl.strings
macosx/i18n/pl.strings
macosx/i18n/pt.strings
macosx/i18n/ru.strings
macosx/localize.sh [new file with mode: 0755]
test/BUILDSHARED [new file with mode: 0644]
test/Makefile [new file with mode: 0644]
test/fakexcode.cpp [new file with mode: 0644]
test/test.c

diff --git a/BUILD b/BUILD
index b682295..8f4788a 100644 (file)
--- a/BUILD
+++ b/BUILD
@@ -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 (executable)
index 0000000..312a133
--- /dev/null
@@ -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 (executable)
index 0000000..93be47c
--- /dev/null
@@ -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
+
diff --git a/Jamfile b/Jamfile
index c9c0450..8d3b2a4 100644 (file)
--- a/Jamfile
+++ b/Jamfile
@@ -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 ;
index 6fcca52..3f14282 100644 (file)
--- a/Jamrules
+++ b/Jamrules
@@ -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 (file)
index 0000000..1ce74b6
--- /dev/null
@@ -0,0 +1 @@
+0003
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..ed1f053
--- /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
index 02cea51..19df858 100755 (executable)
--- a/configure
+++ b/configure
@@ -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."
index 33e9c2e..94016f0 100644 (file)
@@ -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 (file)
index 0000000..0bc19cd
--- /dev/null
@@ -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             dmackie@cisco.com
+- */
+-
+ #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;
+       }
index 3aa0ed8..37aee86 100644 (file)
@@ -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
index 5974895..8073606 100644 (file)
@@ -1 +1 @@
-http://download.handbrake.dynalias.com/contrib/faac-1.24.tar.gz
+http://download.mediafork.dynalias.com/contrib/faac-1.24.tar.gz
index 8a76b72..e7934a0 100644 (file)
@@ -1 +1 @@
-http://download.handbrake.dynalias.com/contrib/ffmpeg-7444.tar.gz
+http://download.mediafork.dynalias.com/contrib/ffmpeg-7444.tar.gz
index d001c67..0563f98 100644 (file)
@@ -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
index 555f390..c10c39d 100644 (file)
@@ -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
index ff442ba..e230e3c 100644 (file)
@@ -1 +1 @@
-http://download.handbrake.dynalias.com/contrib/libdvdread-20050928.tar.gz
+http://download.mediafork.dynalias.com/contrib/libdvdread-20050928.tar.gz
index f7e4573..e7cee15 100644 (file)
@@ -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
index d8dd6a1..636ace2 100644 (file)
@@ -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
index 8761077..3235254 100644 (file)
@@ -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
index e58f080..ca31e0c 100644 (file)
@@ -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 (file)
index 0000000..a374de8
--- /dev/null
@@ -0,0 +1 @@
+http://download.mediafork.dynalias.com/contrib/mpeg4ip-1.3.tar.gz
\ No newline at end of file
index eff0d42..73a659b 100644 (file)
@@ -1 +1 @@
-http://download.handbrake.dynalias.com/contrib/x264-r604.tar.gz
+http://download.mediafork.dynalias.com/contrib/x264-r604.tar.gz
index 0a8812c..8906405 100644 (file)
@@ -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
diff --git a/jam b/jam
index 7952f38..12884f5 100755 (executable)
Binary files a/jam and b/jam differ
diff --git a/jamintel b/jamintel
deleted file mode 100755 (executable)
index 7dc2e78..0000000
Binary files a/jamintel and /dev/null differ
diff --git a/libhb/muxmp4.c b/libhb/muxmp4.c
deleted file mode 100644 (file)
index 971c4bf..0000000
+++ /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( &params, 0, sizeof( params ) );
-    if( av_set_parameters( oc, &params ) < 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;
-}
-
similarity index 52%
rename from libhb/Jamfile
rename to libmediafork/Jamfile
index 29f9c77..10a30ed 100644 (file)
@@ -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 (file)
index 0000000..0ce595c
--- /dev/null
@@ -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
+
similarity index 95%
rename from libhb/common.c
rename to libmediafork/common.c
index e9d366f..7b41a93 100644 (file)
@@ -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
similarity index 92%
rename from libhb/common.h
rename to libmediafork/common.h
index 859711f..ed9d7c5 100644 (file)
@@ -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 ** );
similarity index 99%
rename from libhb/deca52.c
rename to libmediafork/deca52.c
index b18acf6..c7688ed 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "a52dec/a52.h"
 
similarity index 99%
rename from libhb/decavcodec.c
rename to libmediafork/decavcodec.c
index 4d74fc6..dfc61dc 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "ffmpeg/avcodec.h"
 
similarity index 98%
rename from libhb/declpcm.c
rename to libmediafork/declpcm.c
index f6a703d..718cf55 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "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 ** );
similarity index 99%
rename from libhb/decmpeg2.c
rename to libmediafork/decmpeg2.c
index 214444a..e3188df 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "mpeg2dec/mpeg2.h"
 
similarity index 99%
rename from libhb/decsub.c
rename to libmediafork/decsub.c
index 3666ea3..f68e763 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 struct hb_work_private_s
 {
similarity index 99%
rename from libhb/demuxmpeg.c
rename to libmediafork/demuxmpeg.c
index 721478e..54bef2b 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 /* Basic MPEG demuxer, only works with DVDs (2048 bytes packets) */
 
similarity index 99%
rename from libhb/dvd.c
rename to libmediafork/dvd.c
index 4082a18..04695a3 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 #include "lang.h"
 
 #include "dvdread/ifo_read.h"
similarity index 94%
rename from libhb/encavcodec.c
rename to libmediafork/encavcodec.c
index f046069..c1d7df9 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "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;
similarity index 99%
rename from libhb/encfaac.c
rename to libmediafork/encfaac.c
index 8e2bd43..19787a5 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "faac.h"
 
similarity index 99%
rename from libhb/enclame.c
rename to libmediafork/enclame.c
index f663e62..82bca11 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "lame/lame.h"
 
similarity index 99%
rename from libhb/encvorbis.c
rename to libmediafork/encvorbis.c
index 4bdb6ef..1e916a4 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "vorbis/vorbisenc.h"
 
similarity index 55%
rename from libhb/encx264.c
rename to libmediafork/encx264.c
index 1bc2486..cdd8e9b 100644 (file)
@@ -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( &param );
-       
+
     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( &param );
-       
-    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;
 }
 
similarity index 97%
rename from libhb/encxvid.c
rename to libmediafork/encxvid.c
index 87c42b0..64b38a4 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "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;
similarity index 99%
rename from libhb/fifo.c
rename to libmediafork/fifo.c
index 93e3e16..9e5ea15 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #ifndef SYS_DARWIN
 #include <malloc.h>
similarity index 97%
rename from libhb/internal.h
rename to libmediafork/internal.h
index 36ead1b..3948d5d 100644 (file)
@@ -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 (file)
index 0000000..ba37e47
--- /dev/null
@@ -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());
+}
+
similarity index 100%
rename from libhb/lang.h
rename to libmediafork/lang.h
similarity index 87%
rename from libhb/hb.c
rename to libmediafork/mediafork.c
index 98e014f..6eb115f 100644 (file)
@@ -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.
similarity index 93%
rename from libhb/hb.h
rename to libmediafork/mediafork.h
index e989a6b..8b5d469 100644 (file)
@@ -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 ); \
similarity index 99%
rename from libhb/muxavi.c
rename to libmediafork/muxavi.c
index 8746a3c..4231d32 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #define AVIF_HASINDEX  0x10
 #define AVIIF_KEYFRAME 0x10
similarity index 99%
rename from libhb/muxcommon.c
rename to libmediafork/muxcommon.c
index 70e384e..3f66137 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 struct hb_mux_object_s
 {
diff --git a/libmediafork/muxmp4.c b/libmediafork/muxmp4.c
new file mode 100644 (file)
index 0000000..1fc201f
--- /dev/null
@@ -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;
+}
+
similarity index 99%
rename from libhb/muxogm.c
rename to libmediafork/muxogm.c
index 6a3b1ec..62ff4e7 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include <ogg/ogg.h>
 
similarity index 99%
rename from libhb/ports.c
rename to libmediafork/ports.c
index bdeadc1..1e0b622 100644 (file)
@@ -28,7 +28,7 @@
 #include <netinet/in.h>
 //#endif
 
-#include "hb.h"
+#include "mediafork.h"
 
 /************************************************************************
  * hb_get_date()
similarity index 98%
rename from libhb/ports.h
rename to libmediafork/ports.h
index 47df1ce..740252e 100644 (file)
@@ -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
 
similarity index 99%
rename from libhb/reader.c
rename to libmediafork/reader.c
index 47ec9d5..7be2823 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 typedef struct
 {
similarity index 99%
rename from libhb/render.c
rename to libmediafork/render.c
index cf6d7b3..9711708 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "ffmpeg/avcodec.h"
 
similarity index 96%
rename from libhb/scan.c
rename to libmediafork/scan.c
index 097f116..1f74f62 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "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;
similarity index 99%
rename from libhb/sync.c
rename to libmediafork/sync.c
index cd526c1..7053016 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "samplerate.h"
 #include "ffmpeg/avcodec.h"
similarity index 99%
rename from libhb/update.c
rename to libmediafork/update.c
index 7678070..c12204f 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "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"
similarity index 96%
rename from libhb/work.c
rename to libmediafork/work.c
index 6529e2f..b692754 100644 (file)
@@ -4,7 +4,7 @@
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include "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 );
index c32dacc..6dc4c02 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "hb.h"
+#include "mediafork.h"
 
 #include "ScanController.h"
 #include "PictureController.h"
     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;
     IBOutlet NSButton            * fRipButton;
 
     hb_handle_t                  * fHandle;
+       hb_title_t               * fTitle;
 }
 
 - (void)     TranslateStrings;
 
 - (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;
 - (IBAction) QualitySliderChanged: (id) sender;
 
 - (IBAction) ShowPicturePanel: (id) sender;
+- (IBAction) CalculatePictureSizing: (id) sender;
 
 - (IBAction) EnableQueue: (id) sender;
 - (IBAction) AddToQueue: (id) sender;
index 281c337..3bf5f4f 100644 (file)
@@ -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
index 2018309..468f779 100644 (file)
@@ -1,4 +1,4 @@
-/* DriveDetector.h $
+/*  DriveDetector.h $
 
    This file is part of the HandBrake source code.
    Homepage: <http://handbrake.m0k.org/>.
index 61f7229..e9e9415 100644 (file)
@@ -11,7 +11,7 @@
 #include <IOKit/storage/IODVDMedia.h>
 
 #include "DriveDetector.h"
-#include "hb.h"
+#include "mediafork.h"
 
 @interface DriveDetector (Private)
 
index 59629f0..ec79148 100644 (file)
@@ -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; 
                 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; 
                 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; 
             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; 
         }, 
         {
index 36f69f0..9a988cc 100644 (file)
@@ -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>
index 5bbb71e..814a09d 100644 (file)
Binary files a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib and b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib differ
index 81703d1..002ee8f 100644 (file)
@@ -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>
index 5841f4e..f1e0d19 100644 (file)
@@ -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
deleted file mode 100644 (file)
index f81352b..0000000
Binary files a/macosx/HandBrake.icns and /dev/null differ
diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj
deleted file mode 100644 (file)
index 6920e3a..0000000
+++ /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
new file mode 100644 (file)
index 0000000..aeadb79
Binary files /dev/null and b/macosx/MediaFork.icns differ
similarity index 76%
rename from macosx/HandBrake.plist
rename to macosx/MediaFork.plist
index 482e5a9..c9fa397 100644 (file)
@@ -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 &lt;titer@m0k.org&gt;</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 (file)
index 0000000..5fdc2bb
--- /dev/null
@@ -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 */;
+}
index 3a279e1..7f750f0 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "hb.h"
+#include "mediafork.h"
 #include "PictureGLView.h"
 
 @interface PictureController : NSObject
     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;
index f4e9d51..2ed27ab 100644 (file)
@@ -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
index 229d822..518ba12 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "hb.h"
+#include "mediafork.h"
 
 #define HB_ANIMATE_NONE     1
 #define HB_ANIMATE_BACKWARD 2
index 46ff48b..a9c198c 100644 (file)
@@ -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;
index a4622ae..6f98400 100644 (file)
@@ -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"];
        [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];
 }
 
 
 {
     NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
     
-    if( [fUpdateCheck state] == NSOnState )
+    /* Check Update CheckForUpdates Set */
+       if( [fUpdateCheck state] == NSOnState )
     {
         [defaults setObject:@"YES" forKey:@"CheckForUpdates"];
     }
         [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
index 635adc7..94feab4 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <Cocoa/Cocoa.h>
 
-#include "hb.h"
+#include "mediafork.h"
 
 @interface QueueController : NSObject
 {
index 47a7f61..63c50b6 100644 (file)
@@ -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
 {
index b38d2b9..9ce44f8 100644 (file)
@@ -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];
 
 
     }
     }
     else
     {
-        [fMatrix       selectCell: fFolderCell];
+       [fMatrix selectCell: fFolderCell];
         [fDetectedCell setEnabled: NO];
+               [fMatrix selectCellAtRow:1 column:0];
     }
 
     /* Enable controls related to the current choice */
index d2415f3..ed2dec6 100644 (file)
Binary files a/macosx/i18n/Localizable.strings and b/macosx/i18n/Localizable.strings differ
index c004689..2066572 100644 (file)
Binary files a/macosx/i18n/de.strings and b/macosx/i18n/de.strings differ
index 1bbce67..94c6cbe 100644 (file)
Binary files a/macosx/i18n/es.strings and b/macosx/i18n/es.strings differ
index a2841c4..198638e 100644 (file)
Binary files a/macosx/i18n/fr.strings and b/macosx/i18n/fr.strings differ
index 115eab9..de3dbf7 100644 (file)
Binary files a/macosx/i18n/it.strings and b/macosx/i18n/it.strings differ
index fc457a7..e5162f5 100644 (file)
Binary files a/macosx/i18n/ja.strings and b/macosx/i18n/ja.strings differ
index 71ad84e..7d55755 100644 (file)
Binary files a/macosx/i18n/nl.strings and b/macosx/i18n/nl.strings differ
index 8713a36..f022f65 100644 (file)
Binary files a/macosx/i18n/pl.strings and b/macosx/i18n/pl.strings differ
index a9048ac..6c9e4ef 100644 (file)
 "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";
index cc6080f..1187467 100644 (file)
Binary files a/macosx/i18n/ru.strings and b/macosx/i18n/ru.strings differ
diff --git a/macosx/localize.sh b/macosx/localize.sh
new file mode 100755 (executable)
index 0000000..27c423c
--- /dev/null
@@ -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 (file)
index 0000000..a2f0155
--- /dev/null
@@ -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 (file)
index 0000000..3e7a659
--- /dev/null
@@ -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 (file)
index 0000000..d3782be
--- /dev/null
@@ -0,0 +1,3 @@
+/*
+ * Force Xcode to use g++
+ */
index dc66aa6..1d9781c 100644 (file)
@@ -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" ) )
                 {