summaryrefslogtreecommitdiffstats
path: root/libhb/module.defs
Commit message (Collapse)AuthorAgeFilesLines
* VAAPI: Initial Patch (WIP)vaapi-encoderSven Gothel2018-01-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* FFMPEG #974: Use latest FFMPEG 3.4.1 (1/2)Sven Gothel2017-12-251-1/+1
| | | | | | | | 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.
* FreeBSD 11.1 compatibility.Bradley Sepos2017-12-061-3/+5
|
* Remove Fontconfig on Windows (#610)Oleg Oshmyan2017-03-121-2/+6
| | | | | | | | | | | * 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
* contrib: Add opus audio encoder.John Stebbins2016-09-021-2/+2
| | | | | | | | | | Remove: hb_audio_samplerate_get_best() Add: hb_audio_samplerate_is_supported() hb_audio_samplerate_find_closest() hb_audio_samplerate_get_sr_shift()
* configure: check for strerror_r()Sean McGovern2016-07-101-0/+4
|
* libhb: Move ogg in link order.Bradley Sepos2016-07-011-2/+2
| | | | For consistency with test/module.defs.
* contrib: Update to libass 0.13.2 and add HarfBuzz 1.2.6.Bradley Sepos2016-05-251-2/+3
| | | | | | | | | | | | 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 (#189)John Stebbins2016-05-171-4/+0
| | | | | | | | | * 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
* libhb: Add libavfilter support and pad filterJohn Stebbins2016-01-211-1/+1
| | | | | | | | | | | | | | 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".
* libhb,cli: add preset management to libhb, use it in clijstebbins2015-05-061-0/+6
| | | | | | | | 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
* libhb: fix mingw link, undefined symbol CoTaskMemFreejstebbins2015-05-011-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7141 b64f7644-9d1e-0410-96f1-a4d463321fa5
* ports: add functions for looking up user config directoryjstebbins2015-04-191-1/+4
| | | | | | | 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
* Move strtok_r fallback to dedicated "compat" files.Rodeo2015-04-101-0/+4
| | | | | | | 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
* build: fix mingw Jenkins buildsjstebbins2015-01-191-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6773 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Work around fedora mingw pthread library requirementjstebbins2015-01-181-2/+7
| | | | | | | | | | 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
* contrib: build and link new jansson libjstebbins2014-12-051-5/+5
| | | | | | | 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
* contrib: Add libgnurx to provide POSIX regex on Windows.bradleys2014-10-151-1/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6445 b64f7644-9d1e-0410-96f1-a4d463321fa5
* build: remove mp4v2 and libmkv dependenciesjstebbins2014-08-181-19/+2
| | | | | | | ...and enable x265 by default git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6309 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add VP8 supportjstebbins2014-04-151-2/+2
| | | | | | | Thanks to Matthew Harvey for this patch git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6165 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove libfaacsr552014-03-021-8/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6094 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: dynamic detection of availability of libav audio encodersjstebbins2014-03-011-4/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6089 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: remove a52decjstebbins2014-02-201-1/+1
| | | | | | | replace it with libavcodec ac3 decoder git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6049 b64f7644-9d1e-0410-96f1-a4d463321fa5
* encx265: miscellaneous fixes, cleanup and refactoring.Rodeo2014-02-111-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6026 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Initial x265 integration. Patch by Zhang Zhiqiang. Thanks!Rodeo2014-02-101-1/+9
| | | | | | | | | | | 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
* libhb: change libhb.a to libhandbrake.ajstebbins2014-02-091-1/+1
| | | | | | | | | | | | 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
* Remove some leftovers from the mpeg2dec contrib removal.Rodeo2014-01-151-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5976 b64f7644-9d1e-0410-96f1-a4d463321fa5
* remove contrib mpeg2decjstebbins2014-01-131-3/+0
| | | | | | | | 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
* OpenCL: use the new library loading architecture for all OpenCL code.Rodeo2013-11-081-7/+0
| | | | | | | | | | | 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
* OpenCL: ship our own headers, to reduce our dependency on external OpenCL SDKs.Rodeo2013-10-201-1/+1
| | | | | | | | Part 1 of a broader OpenCL refactoring. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5844 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: use ifdefs rather than filtering to bypass libmfx references during ↵Rodeo2013-09-241-5/+0
| | | | | | compilation without --enable-qsv. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5805 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Merging-in the OpenCL Scaling code from the OpenCL branch to trunk. sr552013-09-211-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Big merge, QSV to trunk: part 1 (tracked files).Rodeo2013-08-221-1/+14
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5737 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Solaris: add proper POSIX definesRodeo2013-07-131-1/+1
| | | | | | | | | | 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
* libhb: add experimental avformat muxer for mkv and mp4jstebbins2013-06-301-1/+18
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5620 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix the build under MinGWsr552013-06-161-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5590 b64f7644-9d1e-0410-96f1-a4d463321fa5
* improve aac encoder build options and change some aac encoder defaultsjstebbins2013-06-151-0/+10
| | | | | | | | | | 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
* Add optional fdk-aac encoderjstebbins2013-03-031-2/+10
| | | | | | | 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+libmkv dependency on libiberty.konablend2012-09-081-1/+1
| | | | | | | | 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
* Use libav for dts audio decoding instead of libdca jstebbins2012-07-151-1/+1
| | | | | | | | | 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
* bump libav to libav-v0.8-2197-g1a068bfjstebbins2012-07-111-1/+1
| | | | | | | | | | | | 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
* ASS bump to 0.10.0jstebbins2011-10-211-0/+6
| | | | | | | | 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
* bump ffmpeg from git-185a155 to git-0b32da9jstebbins2011-02-271-1/+1
| | | | | | | fixes win64 crash git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3818 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Remove a couple more remnants of faad from make filesjstebbins2011-02-111-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3794 b64f7644-9d1e-0410-96f1-a4d463321fa5
* remove libfaad from buildjstebbins2011-02-111-1/+1
| | | | | | | 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
* Add build option --enable-ff-mpeg2 to use ffmpeg for mpeg2 decodingjstebbins2010-10-231-0/+3
| | | | | | | instead of mpeg2dec. disabled by default. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3610 b64f7644-9d1e-0410-96f1-a4d463321fa5
* SSA subtitle burn injstebbins2010-09-281-4/+4
| | | | | | | | | | 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
* Bump ffmpeg from 22950 to 25082jstebbins2010-09-141-1/+1
| | | | | | | | | | | | | | 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
* Add Bluray supportjstebbins2010-09-081-2/+2
| | | | | | | | | | | | | | | | | | 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
* link hb.dll with -static flag so that extra dll's are not requiredjstebbins2010-06-011-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3340 b64f7644-9d1e-0410-96f1-a4d463321fa5