sr55 [Fri, 22 Jun 2007 18:02:27 +0000 (18:02 +0000)]
WinGui:
- New Message-box alert design. These include Warning, Information and Error Icons just like the standard windows alerts. Along with this, some of the messages have been changed slightly so should easier to understand now.
sr55 [Fri, 22 Jun 2007 13:46:22 +0000 (13:46 +0000)]
# Start of Version 2.3
- New Title drop down menu's Added
- Fixed Profile bug where if anamorphic was selected when the profile was clicked, the resolution boxes would not be filled out.
- Fixed Anamorphic and Chapter markers were saved in the wrong order.
- Added version tag code to avoid having to update all the windows manually. Pulls version straight from settings file now.
dynaflash [Wed, 20 Jun 2007 20:08:20 +0000 (20:08 +0000)]
MacGui: ScanController modification so it skips the opening scan choice sheet and goes right to the file browse window if the "DVD Auto Detect" is turned off in the preferences.
Saves a few clicks on selecting source files.
Also, small change to controller.mm so that if an invalid source is selected, it shows up instead of the dvd name.
Scan panel if no auto detect could use a bit of fine tuning, but it works.
dynaflash [Tue, 19 Jun 2007 17:44:09 +0000 (17:44 +0000)]
MacGui: Close Main Window issue fixed.
- Can now close the main HB window while HB is running and then re-open it with the "Main Window" selection in the "Window" toolbar menu without disturbing the current encode.
- Note: should probably add "Main Window" to the Dock Icon Context menu as well.
dynaflash [Tue, 19 Jun 2007 15:18:11 +0000 (15:18 +0000)]
MacGui: Chapter Popup fix condition where user can select a start chapter greater than the end chapter
- Old behavior would result in a 00:00:00 encode
- Now checks upon change and defaults to a single chapter rip relative to the start chapter.
- Also fixed audio bitrate title in gui window from (Hz) to (khz)
dynaflash [Mon, 18 Jun 2007 19:02:20 +0000 (19:02 +0000)]
MacGui: Pref for Encode Done alert added
- Added combobox to the Preferences nib so user can select "None", "Alert Window", "Growl Notification", "Alert Window and Growl Notification".
- Defaults to "Alert Window" if user has never set it before.
saintdev [Sun, 17 Jun 2007 00:51:17 +0000 (00:51 +0000)]
Switch buf->key to buf->frametype which is a bitmask telling us what type of frame we are dealing with.
This doesn't change any functionality, but I need to be able to distinguish between x264 IDR and I frames for the upcoming matroska muxer.
This also has the side effect of making the code a little easier to read and maintain.
dynaflash [Thu, 14 Jun 2007 20:19:59 +0000 (20:19 +0000)]
MacGui: Disable DVD Drive Auto-Detect option in preferences.
- this feature allows you to use other dvd aware apps (mactheripper, dvd player, etc.) while using HB to encode a folder on your hard drive.
- checkbox in prefs nib to disable dvd drive auto detect
- when checked, hb does not poll for available drives at all.
- can still manually navigate to a dvd and select it though.
- is unchecked by default.
dynaflash [Thu, 14 Jun 2007 15:56:36 +0000 (15:56 +0000)]
MacGui: + 4 GB Mpeg-4 modification
- adds a preference in the preferences window under advanced to turn on the option to use 64 bit formatting.
- default is unchecked, so unless the user checks this preference, they will never even see the option in the main window, and HB will ignore it all of the time.
dynaflash [Thu, 14 Jun 2007 15:04:53 +0000 (15:04 +0000)]
MacGui: Enable + 4GB Mpeg-4 file output
- Add a checkbox under "Format" field to allow > 4 gb file output.
- Slightly raised the Format and Codecs popups to allow for checkbox (not totally conviced this is a good place for it, but should work for now).
- checkbox auto hides if any format other than mpeg-4 is chosen.
- checkbox unchecked by default.
- automatically unchecks if h.264 ipod is chosen
Note: It Might make sense to add some kind of global in preferences that controls whether or not that feature even presents itself at all, and default it to off so its only available if a user enables it in prefs.
jbrjake [Wed, 13 Jun 2007 18:41:23 +0000 (18:41 +0000)]
Finally recommitting clee's patch from r518 to allow 64-bit mp4 files that can hold more than 4 gigs... controlled by a boolean called job->largeFileSize and enabled from the cli with -4 or --large-file. Note that this breaks compatibility with stuff like the iPod, AppleTV, PS3 (I think), etc...so it is off by default.
Also converted a few stray hard tabs into soft tabs.
dynaflash [Wed, 13 Jun 2007 16:07:42 +0000 (16:07 +0000)]
MacGui: Add Turbo option for x264 two pass encoding
- Adds a Turbo checkbox under the 2-pass checkbox in the video tab if x264 is selected and 2-pass is checked, otherwise the Turbo checkbox is hidden and deselected
- Appends ":ref=1:subme=1:me=dia:analyse=none:weightb=0:trellis=0:no-fast-pskip=0:8x8dct=0" to a given x264 option string on the first pass of a two pass encode if the Turbo checkbox is checked.
- in testing, roughly doubles the first pass encoding speed using the HB-AppleTV preset opt string on a 2 pass encode.
jbrjake [Tue, 12 Jun 2007 03:39:39 +0000 (03:39 +0000)]
Disables extra audio tracks so they don't all play over the main audio track in QuickTime. They can be re-enabled from the Properties menu in QT Pro or with Dumpster. Shouldn't have any affect on people who use sane video players. Props to eddyg for reporting the issue, identifying the atom in question, and castigating me for my lazy and unkempt coding ways.
cleaner [Sun, 10 Jun 2007 17:07:43 +0000 (17:07 +0000)]
MacGui: Proposal for replacing UpdateUI timer in HBController. HBCore is a more ObjC-like interface to the core libhb library. It provides notifications of libhb state changes via NSNotificationCenter. Interfaces for scanning, encoding, bindings etc. can be added later. Note: this class is not used in HB (yet).
cleaner [Wed, 6 Jun 2007 17:12:12 +0000 (17:12 +0000)]
- Moved preferences window from MainMenu.nib to Preferences.nib
- Moved languages from PrefsController.m to Preferences.nib
- Renamed PrefsController to HBPreferencesController
- Implemented bindings in Preferences.nib
- Enabled autocomplete in audio language combobox
jbrjake [Wed, 6 Jun 2007 02:09:41 +0000 (02:09 +0000)]
A big batch of patches from eddyg.
Adds following options to the CLI:
--subtitle-scan for auto-selecting subtitles for foreign language segments in native language audio tracks
--native-language for auto-selecting subtitles for foreign language audio without knowing the track number
--longest for auto-selecting the longest title like in the MacGui
--turbo for improving speed on the first pass of a two pass encode with x264 (based on superdump's turbo x264 options in mencoder).
cleaner [Tue, 5 Jun 2007 20:09:13 +0000 (20:09 +0000)]
Moved initialization of default preferences from [PrefsController awakeFromNib] to class method [PrefsController registerUserDefaults], which is called from [HBController init].
This fixes problem with preferences when using HB for the first time, or after deleting the user defaults file.
jbrjake [Sun, 27 May 2007 20:24:11 +0000 (20:24 +0000)]
MacGui: switches the x264 option widgets for mixed-refs, weightb, brdo, bime, b-pyramid, no-dct-decimate, and no-fast-pskip to be checkboxes, which makes more sense than popup buttons for booleans.
I've never worked with switches before, so hopefully I didn't break anything. Also never checked in this many GUI changes at once. So maybe I did break something =)
jbrjake [Tue, 22 May 2007 16:42:46 +0000 (16:42 +0000)]
MacGui: adds deblocking widgets for the x264 advanced options tab. God this one was a pain. Haven't decided yet whether to include a boolean to turn deblocking on and off. Not sure where I'd stick it right now, at least.
dynaflash [Mon, 21 May 2007 16:50:21 +0000 (16:50 +0000)]
MacGui: Debug Window to read libhb output like cli in inspector window
- Thank You Cleaner!!
- Adds Debug Output to Window menu
- Adds Verbose pref to preferences menu
- MacGui now reads output from libhb like cli
- May add pref to open Debug Output window upon launch
- All credit goes to Cleaner, Thank You!
jbrjake [Wed, 16 May 2007 18:34:29 +0000 (18:34 +0000)]
MacGui: adds x264 option widgets for b-rdo, weight, and b-pyramid. And a little layout reorganization to take advantage of the space freed up by dynaflash's last commit. Yes, I know the dividing lines are ugly. They are temporary.
dynaflash [Wed, 16 May 2007 14:43:08 +0000 (14:43 +0000)]
macGui: move "Duration" to the title/chapter line for source and move "Output" section up into that space.
Increase the height of the tabbed views to free up space for more tabbed info.
jbrjake [Tue, 15 May 2007 20:49:03 +0000 (20:49 +0000)]
MacGui: use subq for subpixel motion estimation instead of subme. This helps avoid those string-searching issues touched on in the past two commits.
This will have to be revisited when I add a "bime" option, because that will probably conflict with what dynaflash added in the last commit to sort this problem out.
dynaflash [Tue, 15 May 2007 20:33:42 +0000 (20:33 +0000)]
macGui: fix bug in Advanced x264 option widgets
Modify the test to see if an optName already exists to avoid conflict with similar name patterns in the -X264AdvancedOptionsChanged: method where we test for the presence of the optNameToChange in the existing string.
jbrjake [Tue, 15 May 2007 19:11:17 +0000 (19:11 +0000)]
MacGui: x264 options widget for motion estimation. This is the first widget to use strings for values instead of numbers, so it's a little wonky. Right now, if you don't have a motion est. value specified, but you do have another option with "me" in the name (like "subME" or "b-fraMEs"), the widget will be unresponsive.
Hopefully I'm not accidentally breaking anything with this commit. Had to revert, update, and rewire some stuff after I tried to commit and realized I'd missed a revision.
jbrjake [Tue, 15 May 2007 16:24:30 +0000 (16:24 +0000)]
MacGui: pretty up the x264 option section of controller.mm by using uniform white space (soft 4-space tabs) and adding a few carriage returns in clutch places for human legibility.
jbrjake [Wed, 9 May 2007 21:41:13 +0000 (21:41 +0000)]
Removes thread limitation for iPod encoding. With x264's new-ish sliceless threading method, there is no longer any need, if there ever was, of keeping the video to 1 slice. This should significantly speed up iPod encodes and shut up the people claiming HB can't use more than 70% of a processor.
dynaflash [Wed, 9 May 2007 17:31:31 +0000 (17:31 +0000)]
MacGui: Advanced Tab only shows x264 opt widgets when x264 is selected as the codec. Otherwise, displays a message to that effect.
- Put the x264 options in a custom NSView which hides it and its contents unless x264 is selected
- add field at the top to show the status of the Advanced Tabs contents which is triggered in the - CodecsPopUpChanged method.
dynaflash [Wed, 9 May 2007 15:05:26 +0000 (15:05 +0000)]
MacGui: Main Window Layout Change
- Moved the Codecs popup from below Format to the right of Format. They are now on one line.
- Expanded the height of the NSTabView to allow for more controls in each tab
jbrjake [Wed, 9 May 2007 00:37:49 +0000 (00:37 +0000)]
MacGui: rearranges the x264 option widgets in preparation for adding more, and gives them tool tips so they're a little more accessible to the average user. Oh yeah, and instead of "Unspecified" I've hard-coded in for display what the default option values are.
dynaflash [Tue, 8 May 2007 17:16:20 +0000 (17:16 +0000)]
macGui: Advanced Tab - Initial Implementation
- add gui "widgets" to control the x264 advanced option string.
- Not all options are "widgetized" yet.
- Modifies those it has widgets for, leaves the rest of the string intact.
- This rev, only sets opts that have an integer value.
- Adding widgets requires adding values to controller.h as well as these methods in controller.mm:
-X264AdvancedOptionsSet: adds the actual values for the given outlet in the nib
-X264AdvancedOptionsStandardizeOptNames: standardizes the opt names that have multiple connotations
-X264AdvancedOptionsSetCurrentSettings: Reads and sets the widgets according to the current string whether pasted in by user, set by preset, or set by field in preferences
-X264AdvancedOptionsChanged: Changes the string based on the widget used, including "Unspecified" which just removes it from the string altogether.
maurj [Sun, 6 May 2007 21:32:01 +0000 (21:32 +0000)]
Updated the input channel layouts to store the source LFE information as well as the non-LFE layout. This is so muxavi.c can output the correct channel count for AC3 passthru for all AC3 sources. Updated Controller.mm, scan.c and work.c to use these revised layouts.
Added a new property to the work object, to remember the source audio codec for audio work objects. This enables encfaac to detect an 6-channel AC3 source to apply the QuickTime 6-channel audio mapping (as opposed to a DTS source, which doesn't need it).
Fixed the Dolby Pro Logic I/II downmix mappings in libdca and updated the libdca patch. Uploaded a new set of pre-built darwin contribs (0014) with this patch applied.
maurj [Fri, 4 May 2007 20:25:54 +0000 (20:25 +0000)]
Updated do_job() in work.c to remove any non-AC3 audio tracks from the job before performing AC3 passthru. This prevents Bad Things from happening when a DTS, MPEG2 or LPCM audio track is selected and AC3 passthru to AVI is selected.
maurj [Fri, 4 May 2007 20:06:33 +0000 (20:06 +0000)]
Reverted the rev567 "configure" change, as of course you don't need to run configure if you're just doing a make, so my change was inaccurate. So, this reverts back to the rev566 version of configure, albeit with the "MediaFork" reference changed to "HandBrake".
maurj [Fri, 4 May 2007 20:02:03 +0000 (20:02 +0000)]
Changed a few "MediaFork" references in the textfile docs to say "HandBrake" instead. Amended the "configure" success output to recommend "make" over "jam" for Mac OS X builds, as this is a better option for the average SVN checkout user now that the UB precompiled contribs system is working well.
maurj [Fri, 4 May 2007 19:53:10 +0000 (19:53 +0000)]
Updated BUILD to include information about the updated version of libtool, autoconf and automake needed to jam libdca on Mac OS X. Updated AUTHORS to give me credit for the DTS integration, and updated CREDITS to give credit to the libdca authors.
maurj [Fri, 4 May 2007 17:23:47 +0000 (17:23 +0000)]
Enabled DTS channel mixdowns by moving to a more generic input channel layout set of constants. Updated Controller.mm to use these generic input layout constants when deciding which mixdowns to offer.
jbrjake [Wed, 2 May 2007 23:26:18 +0000 (23:26 +0000)]
Tells x264 to use threads=cpus*1.5 instead of threads=cpus. This is because x264 implemented sliceless threading since we last updated the revision we use. The codec now works best with more threads than processors, as odd as that seems at first blush.
jbrjake [Wed, 2 May 2007 16:58:15 +0000 (16:58 +0000)]
Updates x264 from r604 to r654, giving HandBrake sliceless threading, among other things. Updates the MacIntel patch to continue working (needs testing), comments out the Linux patch since it seems all its changes have been merged into the x264 source (needs testing). New Mac and Cygwin contrib binary packs will have to be made.
maurj [Wed, 2 May 2007 15:56:39 +0000 (15:56 +0000)]
Added support for DTS audio. DTS audio streams (of 5.1 audio and below) will be detected and decoded. This requires a new library - libdca (and patch) - which is included (in patched form) in a new version of the pre-built UB Darwin contribs (0012). These have been uploaded to download.m0k.org/handbrake/contrib/ .
I haven't yet added any code to Controller.mm to recognise the DTS streams as supporting mono / 6ch DPL1 / DPL2 downmixes.
Note: running Jam on the new library required me to update some tools on Mac OS X - possibly libtool, autoconf, automake. Not sure which made the difference, but these were the ones I updated. it won't jam successfully without this.
macGui: x264 Advanced preset strings, if user has specified a default string in prefs, it is used and the most recent one (whether manually entered or from a preset) is not used.
-Built in presets now use all values in their dictionary to make the .plist more compatible for export to the CLI
MacGui: Advanced Tab initial implementation
- Sets groundwork for more robust x264 advanced options implementation
- currently strings are displayed and editable via textfield for x264 encodes
- for right now, the x264 string from preferences is ignored, need to figure out best way to implement that string.
- New Preset now takes the value from that field in advanced, negating the need for the field in "Add new Preset" window.
- NOTE: this also implements the new "Use Picture Settings" in presets to allow for "None", Use Current","Use Max from source".
macGui: Growl Support initial implementation
- include Growl.framework in xcode project
- Growl notify when encode is done
- fix cancelled encode finished bug
- may want a user pref to let them select if they want a notification and what type, on screen or grow. or both
- right now, its both.
macGui: Encode Done Notification initial implementation
- System alert sound as well as an NSAlert window to notify the user their encode is completed.
- No dock icon bounce yet.
Various fixes:
- Include parsecsv.c in the Jamfile so we can compile the CLI with Jam
- Quiet some compiler warnings in parsecsv.{c,h}
- Check some return values in muxmp4.c and encfaac.c and die gracefully if there is a problem.
- Correctly set the number of audio channels in the stsd atom.
MacGui: Queue modifications
- Queue is now integral to encoding
- removed "Enable Queue" Checkbox
- made "Add to Queue" and "Show queue" always usable
- Rip method in controller.mm always calls addToQueue even for one rip, but then automatically rips it.
- Added queue status field.
- fixes bug in 0.8.5 where having queue enabled and clicking rip with nothing in the queue causes HB to do nothing.
Named Chapter Markers build fix
- xcode project required to successfully build.
- failed on previous commit.
- This should be last thing for successful build
Getting the Jamrules and Makefile.config ready for the return of the update checker.
- Ends HB_BUILD with an odd number, denoting an unstable (beta) build
- Updates HB_VERSION in Jamrules to 0.8.5b1
The LATEST file still needs to be iterated on the webserver, after which update checking can be switched on.
Improved the bitrate in Controller.mm to deal with different bitrates for different codecs, to avoid disappointed users, and applications crashes.
Instated a max of 320 kbps for MP3, as it won't encode at 384. Instated a min of 48 kbps for Vorbis, as it crashes if anything lower is selected.
Changed the approach to setting and retrieving the bitrates slightly, to use the NSPopUpButton's menuitem tags to store the bitrate for each item (since not all menus will have all items).
MacGui: Initial implementation of capping avialable bitrates depending on audio track mixdown
- added AudioTrackMixdownChanged method to controller.mm which evaluates other selections and adjusts available bitrates to choose from
- currently just caps bitrates at 160 for anything other than 6 channel discrete
- 6 channel discrete in either audio track mixdown enables bitrates up to 384.
- Will likely need to add other conditions as well
Small change to Controller.mm to ensure that Stereo is offered as a mixdown when we have a mono audio source but a non-mono-supporting output codec. Previously, no mixdown was being offered in this situation.
This change stops Presets from saving and loading "language / audio format" track selections (the "Track 1/2" popups) and mixdowns (the "Track 1/2 Mix" popups) in the Mac OS GUI. In practice, this was causing more confusion than the default behaviour.
Add 384 kbps to Audio Bitrates selection for use with 6 channel discrete
- We still need to filter out which bitrates are available depending on mixdown. Right now, you can select 320 in gui for a stereo track even though libhb limits it to 160, so its misleading.
MacGui: Replace the "Rip" button with "Start". As we are generally removing reference to ripping in regard to HandBrake ... even though it sort of still can.
MacGui: Minor cosmetic changes
- Change preset buttons "+", "-", and drawer toggle buttons to the Small Square type
- Blame jbrjake if you don't like them :)
MacGui: Cosmetic change and default pref change
- Make CRF the default method for Constant Quality encodes
- Change the "Audio" tab to "Audio & Subtitles" so people dont get all in an uproar about where the subtitles are located