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
sr55 [Fri, 11 Jun 2010 21:08:44 +0000 (21:08 +0000)]
WinGui:
- Fixes some issues with status labels not updating correctly on the queue window.
- Now includes encode status on the queue window.
- Minor UI tweaks.
jstebbins [Tue, 8 Jun 2010 23:47:07 +0000 (23:47 +0000)]
CLI: missed another conditional that forces burned subs in mp4
also, print "Foreign Audio Search" instead of "Render/Burn in" in the log
during an indepth_scan.
jstebbins [Mon, 7 Jun 2010 21:49:38 +0000 (21:49 +0000)]
LinGui: rework some of the logic behind the audio tab handler
gets rid of some duplication of values that i had. makes it
easier to keep the visible list and the data structures behind
it in sync.
jstebbins [Sun, 6 Jun 2010 18:20:53 +0000 (18:20 +0000)]
LinGui: Improvements to audio panel
When codec is "Choose for me", show the codec chosen in the list, but leave the combo
box showing "Choose for me". This way, if the user saves the settings in a new preset,
the audio codec saved remaines 'auto' instead of reverting to the codec that was chosen.
jstebbins [Sat, 5 Jun 2010 16:34:32 +0000 (16:34 +0000)]
CLI: remove 'L' from short opts so that getopt_long properly flags it as an invalid option
I forgot to remove this short option when the --longest was removed.
Also fix the default case of the switch to print the option that failed
rather than the next option.
sr55 [Fri, 4 Jun 2010 20:33:16 +0000 (20:33 +0000)]
WinGui:
# interop
- Fix Namespaces
- Changed so it's .NET 3.5 compatible.
- Removed usings which were not needed and placed usings inside the namespace.
sr55 [Fri, 4 Jun 2010 18:36:11 +0000 (18:36 +0000)]
WinGui:
- HandBrakeInterop Project. This can be used to tie into libhb.dll with C#. Thanks to RandomEdgy for writing this.
- Made a few minor changes to this source to make most of the libhb stuff internal to the library only. Added a 2008 project file. (This won't compile yet)
jstebbins [Fri, 4 Jun 2010 16:27:15 +0000 (16:27 +0000)]
MacGui: Add flexible dylib path manipulation so that we can handle external dylibs more easily
At startup, add any extra dylib paths to DYLD_FALLBACK_LIBRARY_PATH. This is the last path
searched by the system for dylibs and we add our paths to the end of it's list, so this
will never override any system libs or paths the user has explicitly set.
Since applications read the environment once at startup, these changes don't take effect
until we restart with execv. In order to avoid a possible exec bomb, we add a parameter to
the argv list to prevent any further exec's.
Note that this causes a minor glitch when running under gdb. The execv triggers a trap. You
just have to 'continue'.