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
MacGui: Clean up a few things w/x264optstring prefs and presets
- Change abr of AppleTV built in preset to 2500 kbps
- Note: as usual, after updating your copy, use "Update Built-In Presets" in the presets menu for changes to take effect.
- Fix so that closing picture window does not reset the preset chosen display to "Custom"
- Add a user preference to show or hide the chosen x264 option strings in the main gui window. Defaults to off.
Improved the Mac OS GUI's handling of language / audio track settings in presets. It is now much better placed to deal with scenarios where the preset's saved language / audio setting doesn't have a match in the selected title's audio list.
So, e.g. if you insert a disk with a title with only mono AC3 tracks, but the preset is "English AC3 5.1", then it will default to selecting the first audio track rather than selecting "None".
In making these changes, I've also added some utility functions to Controller.mm - one to add all audio tracks for a title to a popup menu, and one to select a track in a popup menu based on a search prefix string. These are really just tidying up what was already there in a reusable way.
Removed all references to the old job->surround variable, as it is no longer used. Also, removed the "Extract 5.1 Dolby Digital to 6-Channel AAC" preference option from the Mac OS GUI prefs window and controller, as it is no longer needed. It may be worth adding in a new "Default mixdown" preference in its place for a future version of Handbrake?
MacGui: Picture Preview - Anamorphic
- Properly show the anamorhic height instead of output height.
- This distorts the preview picture in HB's Picture Preview, but is actually correct.
MacGui: Fix Presets mangling the x264 option strings for the umpteenth time.
- Replace the Optional x264 string NSTextView with an NSTextField
- Change when the field is emptied after creation.
- Reset the value of the ChickenSandwich.
Much better B-frame muxing frame-reordering. This will preserve the sps/pps info, properly offset the first frame, and flush any remaining frames at the end of the encode.
Fixed a bug in the Mac GUI (Controller.mm), introduced in rev 511, whereby selecting "none" on an audio popup when "none" was already selected on the other audio popup would cause an infinite loop, leading to a crash.
Changed the audio popup logic in PrepareJob to use the second audio track settings as the first audio track when the first audio track is set to "none" but the second audio track has a source track selected.
Amended controller.mm to prevent the user from selecting the same audio track twice in the Mac GUI. This is because we are currently unable to extract the same track twice without ending up with silence in the second audio.
Amended a few calls to AudioTrackPopUpChanged to use the convenience version of this function, which passes in a mixdownToUse value of 0.
MacGui: Fix x264 options strings in the queue by implementing patch from Nyx. Thanks Nyx!
- x264 options passing to the queue no longer crash HandBrake.
MacGui: Show x264 options string right under the "Encoder" drop down in main window if x264 is selected and any advanced x264 options strings are going to be used. This fields reads any in presets and if a preset isnt selected, looks to see if any will be used from the preferences NSTextView.
- Temporary location most likely for debugging
- May move to another location
- May add a preference to toggle this info field on or off ?
MacGui: Presets - modify built in presets to work with the new audio formats. Make the x264 option strings available to all x264 profiles instead of just main profile
Built In Preset Changes:
- PS3: Change level to 41, audio one track, 160 kbps DPL2 mixdown
- AppleTV: Change Audio to one track, 160 kbps DPL2 mixdown
- iPod: Change Audio to one track, 128 kbps Stereo Mixdown
MacGui: Presets now utilize Audio Mixdowns Thanks maurj!
- Added second audio track support in presets
- Mixdowns regress gracefully depending on current dvd source
- Source Track 2 sets to "None" if one is specified that doesn't exist in current dvd.
Note: in initial testing, second track using 6 channel kills encode performance and yields a track with no sound. Needs to be tested and verified. Main track works flawlessly in initial testing.
Updated the Mac GUI to use the new audio mixdowns. This means that the Mac GUI now supports Dolby PRo Logic 2 mixdowns!
The Audio tab now has two mixdown NSPopUpButtons, which are set to display all of the possible mixdowns for the current input audio codec / output audio codec / input audio channel configuration.
A mixdown of HB_AMIXDOWN_DOLBYPLII is used by default (or the next best mixdown if this isn't possible). Ideally this will become a prefs option to specify your choice of default audio mixdown.
For AC3 passthru, a single mixdown of "AC3 Passthru" is displayed.
I've had to update the Xcode project file, to make the Handbrake target look for headers in the "../contrib/include" folder too. This is so that it can find the a52 headers which are now used by Controller.mm.
I've added an ac3flags property to hb_audio_s, to enable us to access the source ac3 flags outside of libhb. This is set in scan.c for each source audio.
I've updated hb_mixdown_s and the hb_audio_mixdowns[] to include the CLI "short name" version of the mixdowns too, ready for the Mac GUI "default mixdown" prefs saving / loading.
Made a small change to test.c to explicitly select the first audio track, and use the default mixdown, if no audio track has been specified via the -a option. This fixes a crash in rev 495 when no audio track was specified.
Checking in macosx/Controller.mm, which should have been included with rev 494. it contains some changes to make the Mac GUI compile with the new audio mixdown code.
Added libhb and CLI support for Dolby Pro Logic II 5.0 matrix encoding. *NOT YET ADDED TO THE GUI*. Handbrake now uses a more general "audio mixdown" concept. For each audio track to be converted you specify a mixdown. These are defined in common.h.
This checkin only allows you to specify one mixdown for all tracks in the CLI, although everything is in place internally to specify a different mixdown per track. In the CLI, the "-6 --surround" option has been repurposed as a "-6 --mixdown" option, with a string parameter of mono/stereo/dpl1/dpl2/6ch.
MacGui: Framerate
- Deprecate "Same as source"
- Use "23.976" as default
- All presets previously using "Same as source" will automatically use "23.976" instead without modification
MacGui: Built In Presets
- Modify both AppleTV and PS3 to use 2500 abr
- Modify PS3 x264 opts to "level=30" only
- as always remember to update your built in presets in the presets menu when updating working copy.
Added a new patch file, to patch liba52 to support a Dolby Pro Logic II matrix encoding. Note: this patch file isn't yet integrated into the Jam process, and the DPLII support in Handbrake isn't yet committed. I've really only committed the patch so that someone kind (Prigaux?) can add it to the Jam process, and therefore patch the precompiled contrib library download.
The changes in this patch are backwards-compatible, i.e. the contrib library download can be updated and used without breaking the current projects.
MacGui: Last source directory used is now remembered and used the next time instead of being reset by browsing for a new destination directory each time.
MacGui: Presets Menu now in Main Menu bar
- New "Update Built-in Presets" function automatically deletes existing built in presets and creates new up to date ones
- New "Delete Built-in Presets" deletes all built in presets
- "New Preset ..." accesses the new preset window
Ooops. Restores xvid-in-mp4 functionality, which I broke with b-frame muxing. (Thanks for the bug report, superdump, and thanks for pointing out where the problem was, saintdev.)
MacGui: x264 options in presets - initial implementation
- x264 options string can be entered in NSTextview in the create new preset window
NOTE:
- When using x264, the gui first looks for a preset with a x264 option string available and then looks for the string in the preferences if it cant find it in the preset. So, if there is a string available in the preset, it ignores the string (if there is one available) in the prefs.