FFmpeg AAC was originally disabled when FDK enabled, but this did not seem to work correctly. When I "fixed" the issuein 7b035348b714f945cff1ae2940332960a8eb0f00, WinGUI started throwing exceptions. This should fix the problem for now.
Cross-compiling for Windows now requires winpthreads which is part of the toolchain provided by scripts/mingw-w64-build, and similar packages provided by Linux distros.
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.
Fixes#1674.
We use the compiler that CC environment variable indicates.
If CC is ommited, use gcc or clang which is installed.
If gcc is chosen, we need to add `-Wl,-rpath` option to make runtime linker
linking gcc's runtime libraries from installed path. For example, gcc7's
runtime libraries are installed in `/usr/local/lib/gcc7` by default.
And we also need to link libc++ first to make libc++ initializer is called
on runtime.
Adding the Nvidia NVEnc H.264 and H.265 encoders.
Based on Initial work by sgothel
--enable-nvenc is the new compile time configure option to enable for builds.
file is a Python built-in (https://docs.python.org/2/library/functions.html?highlight=file#file) so it should be avoided as a variable name.
Use "with open" syntax to automate file close where possible.
os.getenv() will return None if the key is not in os.environ.
Use ternary if to simplify conditional assignment where it improves, not hinders, readability.
Closes#500.
Strings in python are immutable and it results in:
Traceback (most recent call last):
File "make/configure.py", line 1592, in <module>
action.run()
File "make/configure.py", line 287, in run
self._action()
File "make/configure.py", line 506, in _action
self.systemf[0] = self.systemf[0].upper()
TypeError: 'str' object does not support item assignment
configure.py fails hard when .git or version.txt are not present, usually when downloading a source archive from GitHub or other git-archive use. This allows configure to fail gracefully, printing instructions to work from a git clone or download a proper source archive.
Also refactor test.* convenience targets for Darwin/Mac.
Configure parameter --prefix now sets HandBrakeCLI install directory [/usr/local] like on other systems.
New configure parameter --xcode-prefix sets HandBrake.app install directory [/Applications]. Not used on other systems.
* LinGui: add --flatpak configure option
For building a linux flatpak bundle
* LinGui: add rules to build flatpak repo and bundles
* LinGui: add flatpak compatible icon
* LinGui: add flatpak compatible desktop file
* LinGui: add flatpak appdata xml
* pkg: disable building LinGui when creating cli flatpak
* pkg: clean flatpak build cache when updating source package
* pkg: fix source package build dependencies
Fixes errors when the git ref being packaged changes and you have not
manually deleted stage and pkg build directories.
- moved common python code to lib/hb_distfile.py
- beautified tmpfile creation
- added stack-style resource management to df-fetch
- fixed contrib assumptions about single URL
Fetch is now python-based and runs on the same version as does
configure. The source script is make/fetch.py. New features:
MD5 hash tracking for tarballs. Data values for all contribs added.
Upon download, the file will be verified, and only then will it be moved
into place inside downloads/ . Files that exist before the build system
does a fetch will not be md5-checked.
Multiple URLs for tarballs. Each module may specify one or more URLs and
by convention the official HandBrake should be first when possible. Each
URL is tried in sequence, and if it fails for any reason, the next URL
is tried. If no URL succeeds, a hard-error is reported.
Network fetching may be disabled via configure options. --disable-fetch
will hard-error if a fetch is attempted. --accept-fetch-url=SPEC and
--deny-fetch-url=SPEC offer an ACL-style mechanism using regex to match
against URLs. For example, --accept-fecth-url='.*/download.handbrake.fr/.*'
would skip any non-matching URLs.
Build dependencies have been lightened. wget and curl are no longer
required. TODO: GTK packaging should also be able to remove those deps.