summaryrefslogtreecommitdiffstats
path: root/libhb
Commit message (Collapse)AuthorAgeFilesLines
* libhb: Cosmetic in encavcodec.c.Bradley Sepos2018-06-061-1/+1
|
* Add support for VCE hardware encoding.Michael Wootton2018-06-066-10/+160
|
* bd: Don't fail titles with unknown aspectJohn Stebbins2018-06-061-2/+4
| | | | | | Assum 16:9 instead Fixes https://forum.handbrake.fr/viewtopic.php?f=11&t=37836
* libhb: allow muxing E-AC3 in mp4.Damiano Galassi2018-06-051-2/+2
|
* decavcodec: fix issues with audio that has no explicit channel_layoutJohn Stebbins2018-06-041-9/+32
| | | | | | | | ffmpeg doesn't set a default channel layout for audio that has no explicit layout (e.g. pcm_216le). So we need to guess it from the number of channels. Fixes "no audio" in https://github.com/HandBrake/HandBrake/issues/1387
* sync: don't drop short frames in OutputBuffer()John Stebbins2018-06-041-5/+1
| | | | | *really* fix https://github.com/HandBrake/HandBrake/issues/1374 this time.
* encavcodec: set AVFrame width and heightJohn Stebbins2018-06-021-0/+2
| | | | ffmpeg now requires this for video
* avfilter: fix flushing final frameJohn Stebbins2018-05-311-2/+11
| | | | Fixes https://github.com/HandBrake/HandBrake/issues/1357
* scan: fix crash due to last commitJohn Stebbins2018-05-301-1/+2
| | | | check codec_name and profile_name for NULL before strstr search.
* scan: rationalize ffmpeg codec/profile namesJohn Stebbins2018-05-301-45/+66
| | | | | | | | | ffmpeg is inconsistent in the format of returned profile names. Sometimes the profile name includes the codec name and sometimes it does not. So search for the codec name in the profile name and add codec name if it's not there. Ugh! Fixes https://github.com/HandBrake/HandBrake/issues/1375
* encx264: fix encoding of very short duration framesJohn Stebbins2018-05-302-46/+3
| | | | | | | | | | | | We had a hash of limited size where we stored frame durations in encx264. This hash has not been necessary since we moved to using libavformat for muxing. Since the limited size of the hash put constraints on how short frame durations could be, I've eliminated it. This means that after the encoder, hb_buffer_t s.stop and s.duration are no longer valid. But since they are not used during muxing, this is not a problem. Fixes https://github.com/HandBrake/HandBrake/issues/1374
* libhb: build: README: Replace instances of Libav with FFmpeg.Bradley Sepos2018-05-298-12/+12
|
* contrib: add lzma supportJohn Stebbins2018-05-291-0/+6
| | | | | lzma may be used by the ffmpeg tiff decoder which can be used in matroska files.
* libhb: fix segfault when decoding empty audio trackJohn Stebbins2018-05-291-1/+2
| | | | | | | If an audio track exists, but we receive no audio packets for that track, this causes a condition that results in a NULL dereference. Fixes https://github.com/HandBrake/HandBrake/issues/1358
* contrib: Add Speex decoder libspeex.Bradley Sepos2018-05-291-2/+2
|
* contrib: test: Strip dll and cli binary in build phase if debug=none.Bradley Sepos2018-05-291-0/+3
|
* libhb: cli: Link to libbcrypt on mingw-w64.Bradley Sepos2018-05-291-1/+1
|
* contrib: Use AV_CODEC_ID_ASS for FFmpeg.Bradley Sepos2018-05-282-4/+4
|
* FFMPEG: Use avcodec_free_context(..) instead of deprecated leaking ↵Sven Gothel2018-05-286-22/+16
| | | | | | | avcodec_close(..) Hence rename hb_avcodec_close -> hb_avcodec_free_context and pass the required ptr-ptr. avcodec_free_context(..) ensures releasing of all resources attached to the context.
* FFMPEG decavcodec: Consider returned error from av_buffersrc_add_frame(..)Sven Gothel2018-05-281-2/+6
|
* Using AV_CODEC_ID_SUBRIP instead of AV_CODEC_ID_SRT (libav->ffmpeg)Sven Gothel2018-05-281-2/+2
| | | | | | This fixes issue https://trac.ffmpeg.org/ticket/6304 See https://github.com/HandBrake/HandBrake/pull/981#issuecomment-347364763 See https://github.com/HandBrake/HandBrake/issues/974#issuecomment-353986772
* FFMPEG #974: Use latest FFMPEG 3.4.1 (1/2)Sven Gothel2018-05-282-1/+3
| | | | | | | | 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.
* libhb: Increase maximum packet read size in stream.c.Bradley Sepos2018-05-131-1/+1
| | | | | | Previous value maxed out at lossless x264 4K or so, new value should be large enough for lossless x264 8K. Fixes #1334.
* libhb: don't drop "escape" char in hb_str_vsplitJohn Stebbins2018-04-031-5/+0
| | | | | | | It's just wrong to begin with. And it may not be an escape char anyway. Could be a directory separator. Fixes https://github.com/HandBrake/HandBrake/issues/1249
* libhb/param: skip redundant checks.Tim Walker2018-02-261-3/+3
|
* libhb: fix parsing of filters' tunes.Tim Walker2018-02-261-12/+16
| | | | filter_param_get_entry() was using the preset count for bounds checking.
* Missed typo in previous commitluz.paz2018-02-201-1/+1
|
* please review....luz.paz2018-02-201-2/+2
| | | there is a redundant 'the the' in this string, please advise
* Misc. typosluz.paz2018-02-2032-46/+46
| | | Found via `codespell -q 3 --skip="./gtk/po`
* encx264: fix apply_h264_profile's lossless check for high bit depth.Tim Walker2018-02-181-4/+12
|
* sync: fix hang in searching for PtoP start frameJohn Stebbins2018-01-251-11/+21
| | | | fixes https://forum.handbrake.fr/viewtopic.php?f=11&t=37311
* libhb: Define SYS_FREEBSD in libhb module.Yuichiro NAITO2018-01-131-3/+5
|
* libhb: fix a number of issues reported by clang.Damiano Galassi2018-01-1212-50/+89
|
* libhb: Allow NLMeans prefilter passthru when strength is 0 (zero).Bradley Sepos2018-01-101-6/+6
|
* libhb: Make NLMeans prefilter order consistent.Bradley Sepos2018-01-101-6/+6
|
* libhb: Make prefiltered check in NLMeans more explicit.Bradley Sepos2018-01-101-1/+1
|
* libhb: Reorder some code in nlmeans_prefilter for clarity.Bradley Sepos2018-01-101-11/+7
|
* libhb: Plug memory leak in NLMeans.Bradley Sepos2018-01-101-2/+10
| | | | This reverts 0e072aa42e3affd6280447317375460753f9284b and implements a proper fix for some frames not being prefiltered correctly. Turns out it was an issue with an uninitialized variable.
* qsv: better dimensions adjustments for HEVC 10bmaxd2018-01-101-3/+5
|
* libhb: fixed a dead assignment in avfilter.c.Damiano Galassi2018-01-101-1/+1
|
* libhb: fix a leak in decssasubDamiano Galassi2018-01-101-0/+3
|
* ports: fix a possible null deference.Damiano Galassi2018-01-101-0/+2
|
* encx264: check correct build number in ifdefJohn Stebbins2018-01-101-4/+4
| | | | The multi-lib change actually happend in build 153
* x264: bump to build 155John Stebbins2018-01-101-3/+45
| | | | | | | Requires NASM to build Unified 8 and 10 bit library support AVX-512 optimizations Various other bug fixes and improvements
* libhb: Better prioritize NLMeans prefilter order.Bradley Sepos2018-01-091-11/+11
|
* libhb: Add CSM prefilter to NLMeans.Bradley Sepos2018-01-091-3/+108
| | | | | | | | | | | | | | | | CSM is a Conservative Smoothing filter with Median-like tendencies. Conservative Smoothing is a basic noise reduction method that ensures a given pixel is within the values of those around it. A value higher than all the others is clamped to the maximum value in the neighborhood. Likewise, a value lower than all the others is clamped to the minimum value in the neighborhood. Basically, pixel values that seem to "fit in" are left alone, and extreme values are brought in line. CSM takes this a step further. A pixel not affected by the previous part of the algorithm is subjected to additional thresholding. If the pixel value is closer to the minimum or maximum neighborhood value than the median, it is clamped to the half-way point. Finally, a pixel still not affected is subjected to a third level of thresholding, clamping to the half-way point between the median and the previous half-way point. Any other pixel value is deemed close enough to its peers and left alone. In effect, this creates a "soft" median-like filter, where relatively similar values are left alone and increasingly disparate values are nudged closer together. Practically, CSM is the best prefilter to date for improving weight decisions with sources containing a type or amount of noise proving difficult for NLMeans to uniformly dampen or completely remove on its own. Additionally, it does not significantly alter the strength metric in most cases, so it can simply be enabled wherever desired. From what I can tell in my limited testing, the algorithm respects proper detail and edges well enough that it seems to be safe with nearly any source. Perhaps it should be the default if I ever get around to creating NLMeans 2. Unlike the mean and median prefilters where a larger neighborhood increases the strength of the prefilter, a larger CSM neighborhood merely takes more pixels into account, theoretically decreasing the strength of the filter. In practice, the provided 3x3 and 5x5 neighborhoods typically do not produce significantly differing results. Basic usage: Add y-prefilter=16 to your desired parameters and NLMeans will use CSM for weighting decisions. Use y-prefilter=2064 if you want to see the output of the prefilter itself—the visual effect is mild. Adjust these values to 32 and 2080 for a 5x5 neighborhood; 3x3 works well in all cases I've tried.
* QSV: fix ICQ availability detection for HEVC encoder.Tim Walker2018-01-041-0/+3
| | | | | | | | Explicitly set all relevant rate control parameters when querying for availability of a given rate control method. I still "blame" Intel, as the existing code managed to query ICQ availability for the H.264 encoder just fine.
* Update copyright dates to 2018.Bradley Sepos2018-01-0189-89/+89
|
* libhb: Fix nlmeans prefilter passthru only outputting some frames.Bradley Sepos2017-12-301-7/+0
| | | | Closes #1088.
* libhb: Output result of nlmeans prefilter when passthru enabled.Chris Darroch2017-12-301-2/+11
| | | | | | | | | | | When the prefilter passthru flag is enabled, write the nlmeans prefilter result into the "main" memory buffer (mem) instead of the prefilter one (mem_pre) so that the prefilter result will be output as if it was the result of the nlmeans filter itself. Otherwise, when the passthru flag is enabled, the prefilter result is lost and the filter effectively just outputs its source input without any changes.