| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The threshold in bytes for when to give up trying to decode a frame was
too big for a lot of streams. It was made large to accomodate 4K raw
video. Instead of counting bytes, count frames fed to the decoder.
This is more consistant regardless of video resolution and codec.
|
|
|
|
|
| |
The samplerate was incorrectly copied to the job as a string instead of
an int which caused invalid sanitizing of audio settings.
|
|
|
|
|
|
|
|
| |
Setting this flag signals to libav to not wait for IDR or recovery
points before returning frames to us. Some videos have neither IDRs or
recovery points, so this fixes transcoding such video.
Fixes https://github.com/HandBrake/HandBrake/issues/456
|
|
|
|
|
|
| |
Raw video has no timestamps. But we drop frames in sync that have no
timestamps. So detect raw video and extrapolate timestamps from
framerate.
|
| |
|
| |
|
|
|
|
| |
function, fix build with icc mac compiler. Patch by jwardnh.
|
|
|
|
| |
Closes #625.
|
|
|
|
| |
opencl: cleaning more leaks
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* subtitles: simplify and shorten subtitle descriptions
Generally, it eliminates parens to make things more readable.
I.e. it turns this:
English (Closed Caption)(Wide Screen)(Bitmap)(VOBSUB)
Into this:
English, Closed Caption [Wide Screen, VOBSUB]
* Revise punctuation per BradleyS request
* fix subtitle description formatting
* incorporate suggestions from PR
|
|
|
|
|
|
|
|
|
|
|
|
| |
* text subs: use generic font family names
Allows the platform more flexibility in choosing the "best" font for the
platform.
* rendersub: make font configurable per platform
Use Lucida Console for mono font on windows since it chooses ugly,
difficult to read Courier New when using monospace family name.
|
|
|
|
|
|
|
|
|
|
| |
* Fix spelling of 'source'
* Fix spelling of 'specify'
* Fix spelling of 'internal'
* Fix spelling of 'quitting'
|
| |
|
|
|
|
| |
Closes #617 and closes #618.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This very small error snowballs into a crash in x264 :-p
If the amount of jitter on the first frame in the queue was small
(about 1 tick) then jitter would not be removed from that frame.
This extra tick of jitter can appear on different frames depending
on when frame arrives and how much has been queued. This very small
amount of randomness lead to problems in the VFR filter. A frame
duration difference as small as 1 tick can lead to an extra frame
getting duplicated when doing CFR. When doing 2 pass encoding, this
extra frame causes x264 to crash at the end of the 2nd pass.
|
|
|
|
|
|
|
|
|
| |
It was getting set to the title's rate instead of the rate that the
filter chain sets.
An incorrect vrate causes x265 rate control breakage.
Fixes https://github.com/HandBrake/HandBrake/issues/600
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/501
|
|
|
|
|
|
| |
Probably the cause of crash seen in nightly builds
fixes https://github.com/HandBrake/HandBrake/issues/597
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* audio_resample: fix mapping of mono to single channel
libav's mixer code can't map single channel layouts to other single
channel layouts. And we were asking it to map e.g. front left to front
center because out MONO mixdown == libav front center. So when we
request MONO and the source is any single channel, change our output
layout to match the input.
fixes
https://forum.handbrake.fr/viewtopic.php?f=12&t=36016&sid=c5993fa7375792a940152c8adda19a54
* Incorporate Rodeo's suggestions
* fix grammar
|
| |
|
|
|
|
|
|
| |
x265 expects the framerate specified to be the same for both passes. So
we must set the same value even when we compute that the actual
framerate differs from what the file's header says.
|
| |
|
|
|
|
|
|
| |
We were only adding subtitle tracks specifically designed for letterbox
when letterbox is permitted. We should also add the subtitle tracks
that are specifically designed for wide screen.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These logs can be enabled by uncommenting HB_DEBUG_CFR_DROPS at the top
of the file.
If you have any sources that use progressive frame upsampling that you
would like to test with this new frame drop algo, enable these debug
logs to get full details of what frames are dropped and passed.
They show which frames are dropped and the metrics that the decision to
drop is based on. They also show which frames are passed and the
cadence of passed vs. dropped frames.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new algo caches extra frames so it can select a "best" frame to drop
from a list. A metric for each buffer is calculated as it is added to
the list. The metric indicates how much the frame differes from the
previous frame. The one with the lowest metric is selected for dropping
when a drop is required.
The old algo tried to latch on to a pattern without keeping any extra
frames. When "in sync" it would drop the buffer that fit the pattern.
But this only worked for a few specific patterns I had tested with and
did not work for all possible patterns (e.g. issue 50 where 1 in 5
needed to be dropped to convert 29.97 to 23.976).
fixes https://github.com/HandBrake/HandBrake/issues/50
|
|
|
|
|
|
| |
These are samples that were not in the original source and were added by
the encoder. To get a faithful reproduction of the source, they must be
dropped.
|
|
|
|
|
| |
Setting the time_base to 90khz reduces rounding errors when converting
back and forth from the default which was sample_rate.
|
|
|
|
|
| |
When exactly input_samples were left in the input buffer, we were
dropping them when they could be encoded.
|
| |
|
| |
|
|
|
|
|
| |
And set audio init_delay so that we can record the encoder delay in the
output container.
|
| |
|
|
|
|
|
|
| |
If a stream is delayed by a large amount and the first timestamp from
the stream is AV_NOPTS_VALUE, sync assumed a 0 timestamp which caused
loss of sync. Drop the buffer instead.
|
| |
|
|
|
|
| |
Missed changing this when moving init_delay out of esconfig union
|
|
|
|
|
|
|
| |
initial_padding is used to inform libav muxers of initial encoder delay
duration. When set for mkv it can be used to remove the silence samples
during playback since the delay value gets stored in the mkv CodecDelay
element.
|
|
|
|
|
|
|
|
| |
Ugh! I need a brain transplant! This would have cause a properly
functioning player to insert silence at the start of playback that
wasn't in the original source.
reverts 5429a92c51682240acbbe7b150d314d993d7d3a0
|
|
|
|
|
| |
This prevents libav from adding an mp4 edit list entry that causes a
properly functioning player to drop the first couple of audio frames.
|
|
|
|
|
|
|
|
| |
The bob filter predicts the resulting output framerate as 2 * input
framerate. So during 2 pass encoding, we must adjust the framerate with
the knows 1st pass values *after* any predictions made by filters.
Fixes https://github.com/HandBrake/HandBrake/issues/556
|
|
|
|
|
|
| |
Better performance and less prone to crashing.
Fixes #540 and closes #558.
|
|
|
|
|
| |
When true, this is meant to use the secondary encoder only for the first
selected audio track. It was completely broken :(
|