dynaflash [Fri, 6 Aug 2010 04:28:33 +0000 (04:28 +0000)]
MacGui: Store live previews in a sub directory in "~/Library/Application Support/HandBrake/Previews" named by pidnum.
- Allows multi-instances to encode live previews without overwriting the live preview for any other instance (since previously we assumed single instance so there was just one live preview file for each container.
- Clean up of the previews directory when a single instance is laucnhed to make sure we do not build up a pile of old previews.
- Removed old code for live previews which handled the deprecated avi and ogm containers.
dynaflash [Thu, 5 Aug 2010 16:45:00 +0000 (16:45 +0000)]
MacGui: Disable preview hud controls during new source scans.
- Fixes a crash where trying to get a preview image when a new source is being loaded will cause a crash
- Mirrors enableUI in the main window.
dynaflash [Thu, 5 Aug 2010 05:04:52 +0000 (05:04 +0000)]
MacGui: Do not call pictureSliderChanged in windowWillClose in HBPreviewController.m as it causes a crash when quitting the macgui without a source loaded up.
- Thanks Sean_McG for spotting the bug!
dynaflash [Wed, 4 Aug 2010 17:11:02 +0000 (17:11 +0000)]
MacGui: Add separate method for cancelling a Live Preview encode.
- Also replace deprecated removeFileAtPath:handler: with removeItemAtPath:error: in HBPreviewController
dynaflash [Tue, 3 Aug 2010 15:43:25 +0000 (15:43 +0000)]
MacGui: Re-locate logic for encode done notifications as per user preferences.
- Fixes an issue where a system beep would occur after every encode when Alert Window was chosen.
- Also means less calls to showGrowlDoneNotification as we were calling it after every encode and then checking the user prefs instead of checking prefs before calling it.
WinGui:
- Simply the versioning of the Windows GUI so it's less confusing.
- GUI now only displays the CLI Version. The GUI will however check that it's own executable build revision is not greater than the CLI and report an error if it is.
MacGui: Rework how we get encode and queue done alerts.
- Add separate checkbox for system alert sound in Preferences > General > When Done (previously it was automatic only when "When Done" included the alert panel")
- System alert sound will play whenever the specified Alert When Done event occurs if its checked (this includes the Growl alerts which come up as encodes roll off of the queue) which addresses the sound part of this forum thread http://forum.handbrake.fr/viewtopic.php?f=22&t=17347#p80456. Thanks to BradleyS for the suggestion.
- Also fix an issue introduced in the multi instance queue commmit (ref 3450) where the Alert Window would come up one encode too early instead of at the end of the queue if you use the alert window for when queue is completed. This addresses forum thread http://forum.handbrake.fr/viewtopic.php?f=12&t=17367 thanks to noved for picking up on it.
- Get rid of a touch of commented code from rev 3450 which is worthless.
MacGui: Fix how we get the current instances pid number since NSRunningApplication is a 10.6 only api and therefore breaks 10.5 compatibility (which also borked the nightly build).
- Many thanks to ritsuka for pointing this out.
- Also adds ability to get the full path to each running instance if we need it in the future.
- Note: Adds additional logging to hbInstances which can be removed when we see fit. But for now imho could be useful since we are early in multi-instance queue encoding.
x264: Add "--disable-swscale" to the config as it borked the nightly build server and is not used for libx264 anyway, only applies to the x264 cli which we do not use.
WinGui:
- Remove the old school splash screen. Doesn't really serve a purpose now.
- Added Jobs Pending to the current Encode status string in the Main window task bar.
- Some minor refactoring.
MacGui: Initial implementation of new queue sync code which allows multi-instance encoding.
This allows more than one instances of HandBrake.app to run off of the same queue file.
In the case of multi-instance use these changes occur in the queue window:
- The delete icon for a given queue item does not exist in the queue window if another instance is doing the encoding.
- The encoding icon does not spin if another instance is doing the encoding.
- As before if the queue window is for the instance doing the encoding on that item it will be animated and "spins".
- The queue window status readout now also includes the output file name for the file being encoded for that instance.
Known bugs:
- Drag and Drop queue reordering is somwehat borked. Doesn't corrupt queue but can not allow a drop in some instances.
- I have tested this over 20 multi instance encodes and not once had an issue, but anytime more than one instance is writing to the same external file anything can happen. Beware!
- The session activity log will of course be full of activity log info from all instances in a multi instance scenario. Individual encode logs are unaffected.
WinGui:
- Multiple instance support.
Each instance has a unique id. id = 0 will use the standard log/queue files.
id = 1,2...n will use standard file names but with the instance id added to the end.
This means that each instance will have it's own queue. Queue is not shared between Instances
If multiple queue files are found when starting up, it will offer to load them all in.
WinGui:
- Major rework of the Encode Service. This allows previews to be generated while an encode is running. I've left in a bunch of debug code for the moment so it may be a bit noisy at times if something goes a bit wrong. Will remove later when the code is known to work.
- The windows 7 Encode Progress Bar on the Task bar is working again.
fix crash due to processing invalid buf_out from work
if the work function doesn't null out buf_out (as decavcodecvWork)
then buf_out can be garbage, or worse a prevously used buffer.
I'm flabbergasted this has never bitten me before.
WinGui:
- Next step in the new Add Presets Window. Now added Picture Size modes "None" and "Source Maximum". Note cropping values are stored with "Source Maximum" if custom crop is selected. Also included option to include filter settings.
fix some preset issues
add b-pyramid=none to appletv presets and remove b-pyramid hack from encx264.c
change samplerate from 48 to 'Auto' in all presets
cap samplerate to 48khz since none of the encoders support higher rates
remove obsolete UsesMaxPictureSettings from all presets. replace with UsesPictureSettings=2
WinGui:
- Refactored The Query Generator to allow for more control on the AddPreset Window.
- Also fix an issue where an empty x264 query would still result in -x being added to the query.
WinGui:
- Improve the way Custom queries are handled form the query editor. It's now hooked up so that the "Add to Queue" feature can warn of duplicates and it will now also display the correct source and destination in the queue window when encoding a custom job.
jstebbins [Tue, 29 Jun 2010 00:15:59 +0000 (00:15 +0000)]
LinGui: improvements to maxWidth/maxHeight preset gui
Add checkbox for each of max width/height entries in the presets save dialog.
When not checked, the value is not stored to the preset.
If neither is checked, UsesPictureSettings=2 is assumed.
If either is checked, UsesPictureSettings=1 is assumed.
dynaflash [Mon, 28 Jun 2010 20:11:34 +0000 (20:11 +0000)]
MacGui: Presets - Add abliity to modify width and height on a preset independent of the currently loaded settings via repurposing the old "Current" picture size setting in the add new preset dialogue.
- Changes "Current" to "Custom".
- When Custom is selected two text fields for width and height appear, initially populated with the current picture settings which means that if not changed will behave as old "Current" settings used to.
- Editable fields means the preset can be save to pic dimensions other than what is setup for the current encode setup.
- For example you can have a dvd loaded up and then save a preset using say 1280 x 720 as max dims, even though the currently loaded source would not have allowed that before.
jstebbins [Mon, 28 Jun 2010 18:10:15 +0000 (18:10 +0000)]
Improve program stream detection
We were getting some false positives on some files.
In some cases this would lead to a crash. In all cases it leads
to a failure to scan or encode properly.
jstebbins [Mon, 28 Jun 2010 15:59:31 +0000 (15:59 +0000)]
LinGui: Add max width/height widgets to preset save dialog
These are only visible when autosize is disabled, meaning the user
has chosen to set specific video dimensions. These values are used
when a preset or title is loaded to set the default storage dimensions.
This allows setting arbitrary PictureWidth/PictureHeight in the preset
which was not previously possible. The values were previously limited
to what the currently loaded source would allow you to enter into
the picture settings width/height fields.
jstebbins [Sun, 27 Jun 2010 16:50:32 +0000 (16:50 +0000)]
MacGui: fix uninteded side effect of code that enforces maxWidth/Height when loading anamorphic preset
PictureControler relies on job->maxWidth and job->maxHeight being 0. These should only be set when
the preset is initailly loaded and the presets values are initialized.
jstebbins [Sat, 26 Jun 2010 22:54:36 +0000 (22:54 +0000)]
LinGui: fix some issues with loading custom anamorphic settings from preset.
as the settings were incrementally loaded, each changing widget triggered
updates that could conflict with the preset values being loaded.
fix an issue with hight getting stuck at certain values. Incorrect rounding
caused a recalculation that put height back to it's previous value.
jstebbins [Sat, 26 Jun 2010 22:51:00 +0000 (22:51 +0000)]
make hb_set_anamorphic_size keep storage aspect when maxHeight is applied
before, it would not recalculate width after changing height.
also, in ana mode 3, fix storage asepct if !keep_display_aspect
jstebbins [Sat, 26 Jun 2010 16:55:26 +0000 (16:55 +0000)]
Preserve subtitle track that matches foreign audio search when the
resulting output track would not be an exact duplicate. We
were removing the track even when forced flags differed.
sr55 [Fri, 25 Jun 2010 19:46:38 +0000 (19:46 +0000)]
WinGui:
- Allow files to be dropped on the GUI executable. (Including shortcuts). This will automatically try to scan the file. Users can add their own registry entries to add an "open with" if they choose.
- Fixed an exception that occurs when a scanned file returns no titles.
- Fixed an issue where pressing "No" to the on close warning (when encodes are running) would cancel the encode anyway.
jstebbins [Thu, 24 Jun 2010 21:04:40 +0000 (21:04 +0000)]
LinGui: fix audio preset initialization
sometimes audio settings were to being initialized correctly
to the values in the preset. some code that sets reasonable
values when the encoder changes from passthru to non-passthru
was getting invoked and overwriting the preset values.
jstebbins [Sun, 20 Jun 2010 21:22:52 +0000 (21:22 +0000)]
guard against excessive memory consumption in the muxer better
if there is a persistant skew in timestamps from 2 streams, the
fifo depth could still continue to grow. Added extra check for
fullness of fifo.
jstebbins [Sun, 20 Jun 2010 21:20:40 +0000 (21:20 +0000)]
fix problem with spurious timestamp change
some rearrangement of code that was previously done to reader caused
scr_offset to be subtracted from renderOffset twice whenever a
new scr_offset was calculated. this could cause subsequent timestamp
calculations to be way off and in at least one known case lead to
a crash due to consuming too much memory in hb_buffer_t's
jbrjake [Fri, 18 Jun 2010 20:40:34 +0000 (20:40 +0000)]
MacGui: Advanced x264 panel overhaul. - Updates labeling
- Updates tooltips
- Rearranges layout to group options by encoding features, analysis options, and psychovisual options
- Adds weightp checkbox
- Adds adaptive quantization slider going from 0 - 2.0
- Removes mixed-refs switch
- Removes weightb switch
- Removes no-fast-pskip switch
- Removes spurious 0 value for reference frames, clamps values to 1-16
- Converts b-pyramid from a checkbox to a menu to allow strict, makes normal instead of off the default
- Defaults b-pyramid to being on, removes it from string when it's on, and converts text values of strict or normal to a checked box since we're not offering strict.
- Makes psy-rd slider go to 2.0
- Changes analyse some (default) to most, add new some (i4x4,i8x8)
- Makes psy-trellis go in 0.05 increments instead of 0.1 increments.
- Stops hiding 8x8dct when analyse is none (thanks, Rodeo)
- Fixes animated reset of psy-rd and psy-trellis sliders when hidden (thanks, Rodeo)
- Hides psy-trellis when cabac goes off (thanks, Rodeo)
dynaflash [Fri, 18 Jun 2010 19:49:26 +0000 (19:49 +0000)]
MacGui: Peak Framerate initial implementation
- Adds a checkbox below the fps drop down to allow selecting pfr as long as Same as Source is not selected.
- Checkbox is shows and hides based on the fps dropdown.
- Uses job->cfr = 2 instead of 1 to enable libhb's pfr mode.
jstebbins [Thu, 17 Jun 2010 22:59:19 +0000 (22:59 +0000)]
LinGui: revert part of the resource management changes of r3382
Since fedora's pygtk is broken, I can't parse gdk_pixbuf's with python.
So revert to doing this in C code.
jstebbins [Wed, 16 Jun 2010 15:23:50 +0000 (15:23 +0000)]
LinGui: update build dependencies to include python2.6 package
by default the lauchpad build farm only installs a minimal python which is missing plistlib
jstebbins [Tue, 15 Jun 2010 16:21:22 +0000 (16:21 +0000)]
LinGui: changes to resource preprocessor
During the build, I was compiling tools for preprocessing and packaging
the gui description xml, preset defaults, widget dependencies, and icons.
The resulting resource_data.h file gets compiled into the binary. These
tools are now implemented in python. This eliminates the need to compile
the tools which caused complications when cross compiling.
This work was actually done many months ago. But all the distributions
I wanted to support didn't have the libplist python module. Now they all
do.
jstebbins [Tue, 15 Jun 2010 16:15:53 +0000 (16:15 +0000)]
LinGui: refresh x264 tab
updated layout, labeling & tooltips
group options by encoding features, analysis options, and psychovisual options
change b-pyramid from checkbox to combo box to support None, Strict, and Normal options
expand psy-rd slider range to 0-2 (was 0-1)
relabel "Analysis" to "Partitions".
Add new "Most" option to Partitions that is the same as the old "Some"
Change "Some" option of Partitions to mean i4x4:i8x8
add weightp combo
add adaptive quantization strength slider
remove weightb checkbox
remove no-fast-pskip checkbox