John Stebbins [Wed, 20 Mar 2019 22:01:36 +0000 (16:01 -0600)]
LinGui: work around GTK slider value formatting bug
When the range of a slider changes, GTK used to sample all the
possible values to determine the correct amount of screen space to
allocate for the value strings. Some *genius* decided it would be
more effecient to just sample the first and last value which means
that if certain characters are wider than others and the middle
values happen to use those characters, the space allocated is
too small and the string wraps to the next line or is truncated.
So, we have to randomly add some extra space to the first and
last value string in order for the string to be displayed properly.
WTF guys!
John Stebbins [Tue, 12 Mar 2019 19:57:17 +0000 (13:57 -0600)]
qsv: add i965 VA driver fallback
The iHD VA driver does not work for Sandy bridge, Ivy bridge and
Haswell. iHD will fail to initialize on these CPUs. So when a failure
occurs, fallback to i965.
John Stebbins [Tue, 12 Mar 2019 15:06:24 +0000 (09:06 -0600)]
encavcodec: fix bitrate ceiling overflow for VP8/9
When using constant quality encoding with VP8/9, we set a bitrate
ceiling to prevent bitrate spikes. The calculation of this ceiling was
duplicated at some point and the second copy was not transcribed
properly and resulted in integer overflow.
John Stebbins [Mon, 11 Mar 2019 21:43:47 +0000 (15:43 -0600)]
qsv: fix 'quality' preset on linux
Drop back to MediaSDK 18.4.1 and Media Driver 18.4.1.
The MSS KBL 19.1.0 version of MediaSDK results in a shared lib that
can't be cached by ldconfig. We need shared object caching in the
flatpak plugin for things to work correctly. Version 18.4.1 creates a
properly versioned library that ldconfig can cache.
sr55 [Sat, 9 Mar 2019 20:50:06 +0000 (20:50 +0000)]
WinGui: Bind "Ctrl-C" on the Error window. This *may* be usable in some instances where the screen doesn't render correctly to allow us to see the error. #1950
John Stebbins [Sun, 24 Feb 2019 20:53:56 +0000 (13:53 -0700)]
flatpak: add Intel MediaSDK plugin
Defines a flatpak manifest that is used to download and build all the
dependencies for MediaSDK 19.1.pre2. These are built into a flatpak
plugin that can be installed independently from the main HandBrake flatpak.
When the plugin is installed, HandBrake gains the ability to do QSV
encoding with the latest MediaSDK and VA drivers.
When HandBrake is configured with '--flatpak --enable-qsv' and
'make pkg.create.flatpak' is run, both the HandBrake flatpak and the
MediaSDK plugin will be built.
The name of the MediaSDK plugin file is:
fr.handbrake.plugin.IntelMediaSDK-$(HB.version)-$(HB.machine).flatpak
I've also changed the the name of the HandBrake flatpak file to conform
better with flatpak naming:
fr.handbrake.ghb-$(HB.version)-$(HB.machine).flatpak
fr.handbrake.HandBrakeCLI-$(HB.version)-$(HB.machine).flatpak
John Stebbins [Fri, 22 Feb 2019 22:07:04 +0000 (15:07 -0700)]
LinGui: make QSV encoding actually work
Assuming you built HandBrake with 'configure --enable-qsv' and you have
built and installed Intel MediaSDK in a directory that is in your LD search
path, the QSV encoders now work. HW decode is not supported.
Frederick Ding [Wed, 27 Feb 2019 22:09:24 +0000 (22:09 +0000)]
Fix Py3 compat and logic/syntax in handling version.txt
The first fix addresses the problem that readlines() gives back a
list of strings, which do not have the `.decode()` method that bytes do.
But `_parseSession()` is used both for the bytes output by running
`repo-info.sh` and for the strings output by ingesting `version.txt`.
So we still need to handle the bytes case.
The second fix addresses syntax and logic problems. If a string is
not empty, `if self.hash` will check that it's non-empty (I don't think
`is not empty` actually works -- it has given me a NameError). And the
string comparison should be done by value equality, not reference
equality.
John Stebbins [Wed, 13 Feb 2019 17:00:12 +0000 (10:00 -0700)]
CLI: interpret --all-audio as implicit list of all tracks
--all-audio was setting up the preset to apply each audio encoder in the
preset to each source track. And it was adding new entries in the presets
audio encoder list for any audio command line overrides. This results in very
unintuitive behavior.