| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Enabling VAAPI for GNU/Linux (SYS_LINUX) only, adding libraries 'X11 va-drm va-x11 va'
and USE_VAAPI define.
- hb.c:
- Adding global static 'vaapi_device_ctx0' default device
initialized via hb_avcodec_init() and released via hb_avcodec_free()
- hb_avcodec_vaapi_set_hwframe_ctx() attaches the new AVHWFramesContext
to the AVCodecContext
- hb_avcodec_test_encoder(..) adds VAAPI branch,
needs refinement
- encavcodec.c
- adding VAAPI branches, enabling available, needs refinement
Discussion:
First of all, only on Intel hardware I was able to produce a correct
encoded result. On AMD we seemingly have YUV420 / NV12 artifacts.
Therefor I need to learn more details on the pix_fmt handling
as described below.
While adding the VAAPI ffmpeg support the following might be an issue.
Usually HB seems to operate with AV_PIX_FMT_YUV420P in general
being set in the AVCodecContext's pix_fmt.
VAAPI performs as follows:
- It uses hardware frames on the target device, which are being transported
from the software device. Both format should be allowed to differ??
- AVCodecContext's pix_fmt uses AV_PIX_FMT_VAAPI
- AVHWFramesContext: format uses AV_PIX_FMT_VAAPI and sw_format AV_PIX_FMT_NV12,
the latter hinting on the actual hw-frame's target format.
- AV_PIX_FMT_NV12 uses interleaved UV data, where AV_PIX_FMT_YUV420P uses
seperated planes. Both use a separated Y plane upfront.
Therefor both formats are not picture compatible, memory requirements are same.
- Encode(..) hardcodes the source frame's to AV_PIX_FMT_YUV420P in VAAPI case,
usually the AVCodecContext's pix_fmt is being used.
I need to identify how HB uses AVCodecContext's pix_fmt, i.e. respects
the desired pix_fmt.
Then a hw_frame gets allocated and the source frame is being transported
to this target. Probably it happens here in VAAPI AMD case, that the YUV420
data is not being transformed to NV12.
Now the hw_frame is being sent 'avcodec_send_frame' and the code-path re-aligns
with non VAAPI.
Further fixes to do:
Naming of VAAPI's profile and level .. figuring out which settings are generally accepted.
Now the bf (b-frames) is set to zero, since it produces a failure otherwise.
The latter should only happen in certain profiles, but .. it does even in 100=high
|
|
|
|
|
|
|
|
| |
Patch 1/2 for https://github.com/HandBrake/HandBrake/issues/974
moving to FFMPEG 3.4.1 from LIBAV 12.2.
The re-ordering of to be linked modules was required to solve
statically linked dependencies. See libhb/module.defs etc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove Fontconfig on Windows
Let libass use its DirectWrite font provider backend instead of Fontconfig.
This eliminates Fontconfig's font cache generation delay that occurred
at the start of an encode after a system font was (un)installed or when
HandBrake was installed and used to burn text subtitles for the first time.
* Remove LibHB's dependency on Fontconfig when it's not used
|
|
|
|
|
|
|
|
|
|
| |
Remove:
hb_audio_samplerate_get_best()
Add:
hb_audio_samplerate_is_supported()
hb_audio_samplerate_find_closest()
hb_audio_samplerate_get_sr_shift()
|
| |
|
|
|
|
| |
For consistency with test/module.defs.
|
|
|
|
|
|
|
|
|
|
|
|
| |
HarfBuzz is now enabled when building libass.
Resolves #162.
Additional libass notes:
- Add yasm dependency for better performance.
- Remove no longer valid configure params.
- Disable new coretext and directwrite font selection backends pending additional testing (coretext did not build properly).
|
|
|
|
|
|
|
|
|
| |
* remove dxva hw decode
It provides practically no speed increase even on a slow CPU and results
in a speed decrease on fast CPUs. And the code is exceptionally fugly.
* cli: remove USE_HWD
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New filter types HB_FILTER_AVFILTER and HB_FILTER_PAD.
Settings for HB_FILTER_AVFILTER are the same as you would pass to avconv
from the command line -vf option, except that we do not support
multi-input or multi-output filters.
Settings for HB_FILTER_PAD are "width:height:color:x_offset:y_offset".
width x height is the size of the output frame after padding.
color may be a w3c color name or RGB value (default black).
x_offset, y_offset is the position of the video within the padded area
(default centered).
Any of the values may be omitted or "auto".
|
|
|
|
|
|
|
|
| |
This results in custom preset support in the CLI and additional
command line options to fully support all preset keys.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7158 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7141 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
These will be used by the CLI for loading custom user presets.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7105 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
Also, check whether the toolchain already provides strtok_r instead of building it unconditionally.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7076 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6773 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
Fedora mingw seems to require it's own pthread library which causes build
conflicts with our pthread lib. So this patch distinguishes whether
libpthread or libpthreadGC2 is already installed on the system and uses
the appropriate system lib when found.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6766 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
No new functionality yet. To be used for new json APIs.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6590 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6445 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
...and enable x265 by default
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6309 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
Thanks to Matthew Harvey for this patch
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6165 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6094 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6089 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
replace it with libavcodec ac3 decoder
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6049 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6026 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
| |
Build with --enable-x265 (requires CMake).
Use via HandBrakeCLI with -a none -e x265 -f raw
Only raw HEVC output is supported for now (no audio or subtitles).
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6023 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
| |
On linux, there is a problem with some distros that dynamically link
harfbuzz (libhb) to libass. The name conflicts with our libhb. So this
changes the library name to resolve the conflict.
It only changes libhb.a. It does not affect the windows libraries
hb.lib and hb.dll
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6020 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5976 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
We no longer need mpeg2dec. libav now has all the features we need
for mpeg2 decoding.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5966 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
| |
An OpenCL SDK is no longer needed to build OpenCL support.
Note: as a result, the --enable-opencl configure option is removed.
Also, libOpenCL is no longer needed to run the application (it is still necessary to use OpenCL features, of course).
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5886 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
Part 1 of a broader OpenCL refactoring.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5844 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
| |
compilation without --enable-qsv.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5805 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch originally by the Multicoreware Inc team, followed by improvements and fixes by Micheal Wootton from AMD Inc,
OpenCL:
This patch implements Bicubic Scaling in OpenCL.
Note that HandBrake currently uses Lanczos so the performance difference appears to be much more significant. We may offer an option of BiCubic in software later.
Bicubic scaling may appear a bit sharper than the equivalent Lanczos encode and may increase file size a bit. Quality may be better or worse depending on the scaling and content and personal preference towards sharpness.
When comparing performance with a custom HandBrake build that runs Software Bicubic to OpenCL Bicubic, performance increase is about 5~7% on average on a modern GPU.
Hardware Decode via DXVA:
We also have optional DXVA decoding which may come in useful for slower/lower end systems that have a capable GPU.
This is only available on input sources that use the libav decode path.
Most GPU hardware for decoding is designed for playback, so if you are running on a high end CPU, it will bottleneck the encode process.
Requires OpenCL 1.1 or later supporting GPU.
Front end changes and testing framework are not included in this patch. This will be resolved later.
Patch will be revised further before the UI is implemented.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5792 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5737 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
On Solaris, some POSIX functions are hidden behind a define. This patch adds the proper defines to the compiler command line when building for Solaris.
Patch by icchan. Thanks!
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5642 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5620 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5590 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
By default, faac is no longer built.
Libav aac is now the default aac encoder on all platforms except osx
where ca_aac is the default.
fdk-aac is now built by default (except on osx).
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5581 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
configure --enable-fdk-aac to enable this encoder
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5287 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
Remove mingw+test dependency on libiberty.
Add build system support for propagating compiler DEFINES to contrib configure.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4942 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
| |
libdca has no advantage over libav for dts audio decoding. It doesn't do
drc and it's downmix capabilities are actually inferior to libav. So this
completely removes libdca from libhb
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4844 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resolves several deprecated api's
Eliminates several libav patches
Eliminates our builtin downmix in favour of avresample
Eliminate HB_INPUT_CH_LAYOUT_* and replace with AV_CH_LAYOUT_*
Resolves 6.x and 7.0 input channel layout issues HB had
Adds downmix support to declpcm. We never had it!
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4825 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
libass has a new dependency on fribidi. So also add fribidi to
contribs. I repackaged the libass distribution because the configure
script shipped with it is damaged beyond repair for darwin.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4304 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
fixes win64 crash
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3818 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3794 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
We don't use it anymore. We have been using ffaac decoder for a while now.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3793 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
instead of mpeg2dec. disabled by default.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3610 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
Anime fans rejoice! This patch adds SSA subtitle burn-in support with libass.
Therefore SSA subtitles should now be rendered in full quality, with the
appropriate embedded fonts and positioning information.
Thanks to davidfstr
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3557 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's been 5 months since an ffmpeg bump.
One negative is that we loose LATM support.
The LATM patch is just impossible to apply
anymore since ffmpeg dropped support for using
the external faad lib. There are ifdef's in the
code should anyone wish to revert to an earlier
ffmpeg and enable LATM.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3526 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unencrypted BD directory trees only. Doesn't support iso images.
Also, no PGS subtitle support yet.
Chapters and angles are supported.
Adds a new contrib libbluray.
Adds new option to hb_scan() for duration of short titles to filter.
This applies to BD and DVD multi-title scans only. Does not apply
to any single title scans.
Fixes memory leak during scan. hb_buffer_close() was not freeing
all buffers in a chain of buffers passed to it.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3510 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3340 b64f7644-9d1e-0410-96f1-a4d463321fa5
|