summaryrefslogtreecommitdiffstats
path: root/contrib/ffmpeg
Commit message (Collapse)AuthorAgeFilesLines
* hw-encoder-vaapi: Enables VAAPI if available and supported for h264 (tested ↵Sven Gothel2021-04-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | w/ AMD NAVI10), untested: h265, vp8 and vp9 Tested using lates mesa master branch patched with - contrib/mesa/A00-gallium_vaapi_encpackedheader01-commit-5e10db6.patch to enable Matroska and correct packed header in general using ffmpeg. Test hardware and configuration: - Mesa Gallium driver 20.2.0-devel for AMD Radeon RX 5700 XT (NAVI10, DRM 3.37.0, 5.7.0-1-amd64, LLVM 9.0.1) Codev h264_vaapi, avcodec_open options: rc_mode=CQP,qp=24,b_depth=2,profile=100,level=40 (profile high, level 4.0) HD1080 source ~45min with 212fps PSNR and SSIM difference to x264 below 1%, having x264 using profile high, level 4.0, preset fast, rc 23. Both using constant-quality w/ variable bitrate. ++++ If FEATURE vaapi is enable (autodetected), the following libraries are linked: X11 va va-drm va-x11. - hb.c: - Adding global static 'vaapi_device_ctx0' default device initialized via hb_avcodec_init() and released via hb_avcodec_free(). The 'vaapi_device_ctx0' is used in vaa_common hb_avcodec_vaapi_set_hwframe_ctx(..). - hb_avcodec_vaapi_set_hwframe_ctx() attaches the new AVHWFramesContext to the AVCodecContext at initializing the encoder. This is the final sink for the vaapi hw-encoder and Encode(..) performs the frame conversion into it. - hb_avcodec_test_encoder(..) adds VAAPI branch, needs refinement - encavcodec.c - adding VAAPI branches, enabling available, needs refinement. Currently profile and level are set to the user preferences, additionally 'b_depth=2' is being passed. - added hb_avcodec_test_encoder*(..) functions, currently only used to check vaapi-*codec*-availability. We used this codefragment regularly in an earlier HB version. +++ Discussion: Previous version of this patch of mine worked well on Intel hardware, as described above - AMD NAVI10 also performs quite well. VAAPI Workflow: - It uses hardware frames on the target device, which are being transported from the software device. The frame transport implicitly converts the pix_fmt. - 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(..) allocates a hw_frame and the source frame is being transported to the hw-frame target using the pic_fmt conversion to NV12. Finally the hw_frame is being sent 'avcodec_send_frame' and the code-path re-aligns with non VAAPI. Further fixes to do: Validate whether 'b_depth=2' (b-frames) works for all vaapi implementations, add custom extra-video-encoder field!
* nvenc-encoder2: ffmpeg/module.defs: Removed 'disable-hwaccels' as I hoped we ↵Sven Gothel2021-04-201-1/+0
| | | | get some decode support (not yet)
* contrib: fix FFmpeg VideoToolbox HEVC 10bit extradata on Kaby Lake.Damiano Galassi2021-03-011-0/+40
|
* libhb: add videotoolbox 10bit hevc encoder.Damiano Galassi2021-02-282-0/+57
|
* Gate MediaFoundation encoder behind --enable-mf.Bradley Sepos2021-02-201-3/+7
| | | | Windows (mingw-w64) only for now.
* contrib: ffmpeg: Enable the MediaFoundation encoder wrappersMartin Storsjö2021-02-201-1/+3
|
* contrib: add zimg.Damiano Galassi2021-01-231-3/+10
|
* qsv: add scaling modes and interpolation methods for qsv scale filteragalin892021-01-221-0/+49
|
* qsv: fixed corrupted images in scale_qsv filteragalin892020-11-291-0/+35
|
* qsv: added AV1 HW decoding capabilitiesagalin892020-11-121-0/+77
|
* contrib: macOS arm and intel cross compilation.Damiano Galassi2020-11-051-0/+4
|
* qsv: fix dx11 crop/resizeagalin892020-08-291-1/+10
|
* contrib: add back patch to enable b-frames in hevc videotoolbox encoder.Damiano Galassi2020-08-251-0/+12
|
* libhb: improve videotoolbox detection and add support for constant quality ↵Damiano Galassi2020-08-231-0/+51
| | | | encoding mode when available.
* qsv: update dx11 patch for ffmpeg 4.3.1agalin892020-08-221-294/+937
|
* contrib: Update to FFmpeg 4.3.1.Bradley Sepos2020-08-221-3/+3
|
* contrib: Restore and update QSV DX11 patch for FFmpeg 4.3.Bradley Sepos2020-08-221-0/+611
|
* contrib: Update to FFmpeg 4:3.Bradley Sepos2020-08-229-1326/+28
|
* contrib: Update most contribs for Apple Silicon.Bradley Sepos2020-08-051-0/+2
|
* qsv: fixing log printDmitrichenko, Max2020-06-071-2/+2
|
* contrib: Update to FFmpeg 4.2.3.Bradley Sepos2020-05-301-3/+3
| | | | Numerous bug fixes.
* libav: fix remuxing aac from ts to mkvJohn Stebbins2020-05-031-0/+36
| | | | Fixes https://github.com/HandBrake/HandBrake/issues/2809
* contrib: ffmpeg: Remove a patch that has been merged upstreamMartin Storsjö2020-04-271-17/+0
| | | | | | | This patch (with a minor modification) has been merged upstream in http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=08b1d1d8122517d07f2335437cde0aeedc50143f, which was part of the 4.1 release - and we currently build 4.2.2.
* ffmpeg: support 'H265' FourCC in AVI.Tim Walker2020-03-301-0/+26
| | | | | Produced by security cameras, see: https://forum.handbrake.fr/viewtopic.php?f=11&t=39824
* decavsub: patch ffmpeg to fix workaround hacksJohn Stebbins2020-03-293-0/+131
|
* decavsub: use libav to decode dvd subtitlesJohn Stebbins2020-03-291-0/+49
| | | | Simplifies code, removes encvobsub.c (was never used) and decvobsub.c.
* decavsub: use libav to decode EIA 608 subtitlesJohn Stebbins2020-03-291-0/+27
| | | | simplifies code, eliminates deccc608sub.c
* qsv: hw decoding improvementsArtem Galin2020-03-051-92/+846
|
* contrib: Switch to using GitHub to host our contrib binaries. Their CDN ↵sr552020-02-251-1/+1
| | | | should be global and more reliable than our own server.
* qsv: add support for FreeBSDJan Beich2020-01-231-1/+1
|
* contrib: Configure FFmpeg with --enable-small when using ↵Nomis1012020-01-161-0/+5
| | | | | | --optimize=size-aggressive. Closes #2571.
* contrib: Update to ffmpeg 4.2.2.Bradley Sepos2020-01-021-3/+3
|
* contrib: Add AMF/VCE H.264 loop filter flag patch to FFmpeg.Bradley Sepos2019-10-151-0/+23
|
* contrib: Update to FFmpeg 4.2.1.Bradley Sepos2019-10-142-42/+3
|
* qsv: d3d11 enablingagalin892019-09-221-0/+309
|
* contrib: Use libdav1d for AV1 decoding in FFmpeg.Justin Bull2019-09-171-1/+3
|
* VCE: Vulkan support on linux.OvchinnikovDmitrii2019-08-281-0/+78
|
* ffmpeg: fix seeking in mkv > 2GBJohn Stebbins2019-08-221-0/+39
| | | | maybe fixes https://github.com/HandBrake/HandBrake/issues/2248
* Create A12-videotoolbox-smpte2084-hlg-transfer.patchNomis1012019-08-181-0/+69
| | | | Closes #2237.
* contrib: Update to FFmpeg 4.2.Bradley Sepos2019-08-163-66/+3
|
* ffmpeg: make track names visible regarless of localeJohn Stebbins2019-08-111-0/+77
| | | | | | | | | | | | | | Apple will not show a track name if it doesn't match the current locale or it's language is not "und". This patch results in the language being set to "und". writes 3gpp track names for all language variations in metadata. when the language is not specified, uses "und" as default. HandBrake doesn't actually allow multiple track name languages, but one of the side effects of this patch is to use "und" when the track name language is unspecified. Before this patch, language specific variants of metadata were ignored and "eng" was always set as the language.
* ffmpeg: add support to read/write mp4 'titl' track tagJohn Stebbins2019-08-113-11/+297
|
* ffmpeg: add 'name' track udta tag readingJohn Stebbins2019-08-111-0/+65
|
* Fix gcc 9 compiler warningsJohn Stebbins2019-06-281-0/+33
| | | | | gcc 9 is quite a lot chattier and clutters the build log with useless information :\
* Fix build of ffmpeg under NetBSDRyo ONODERA2019-06-181-1/+1
| | | | Pick up external libraries from LOCALBASE.
* make: finish correcting host/build semanticsJohn Stebbins2019-04-171-9/+9
|
* contrib: Update to FFmpeg 4.1.3.Bradley Sepos2019-04-131-3/+3
|
* qsv: disable xlib in ffmpegJohn Stebbins2019-03-071-2/+3
| | | | | It is autodetected and results in link failure if ffmpeg finds it bacause we do not add it to final link flags
* LinGui: make QSV encoding actually workJohn Stebbins2019-03-071-1/+6
| | | | | | 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.
* contrib: Restore FFmpeg VideoToolbox patch.Bradley Sepos2019-02-111-0/+27
| | | | Mistakenly removed in 66a362ee92331fa1393fbdb0c1e1b26d8f39de6a.