| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
receive the eof buffer. Fix missing initial subtitle when 'align a/v' option is enabled by adjusting the sub start timestamp.
|
|
|
|
| |
tripping the colorspace filter.
|
|
|
|
| |
start_found was never set if there was a subtitles starting at pts_to_start.
|
| |
|
| |
|
|
|
|
| |
decode video to 10bit or 12bit yuv if there is no 8bit filter in the chain.
|
|
|
|
| |
regressions
|
| |
|
| |
|
|
|
|
| |
The "clear" subtitle packets were not making it through to the muxer
|
|
|
|
| |
Currently using it for pgs, srt, and ssa subtitles.
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/2603
|
| |
|
| |
|
|
|
|
|
|
|
| |
Newest versions appear to have a "common.h" somewhere that is
interfering with libhb/common.h.
move headers into "handbrake" subdirectory
|
|
|
|
| |
Rename hb.h to handbrake.h
|
|
|
|
| |
Convert the last use of libsamplerate in sync.c to swresample
|
|
|
| |
Fix some typos
|
|
|
|
|
|
|
|
| |
If the p-to-p start time starts in the middle of a subtitle, that sub
was getting dropped. Only drop the sub if the *stop* time is after the
p-to-p *start* time
fixes https://github.com/HandBrake/HandBrake/issues/2176
|
|
|
|
| |
and tweak the layout per BradleyS suggestions
|
| |
|
|
|
|
|
| |
We were only applying SSA inline override tags. With this patch we now
parse SSA style descritions in the SSA header and apply them per event.
|
| |
|
|
|
|
|
|
|
| |
Audio mixdown occurs in decoders before sync. So number of channels
in a silence buffer is the output channel count. But audio samplerate
conversion happens in later here in sync.c FilterAudioFrame, so
samples_per_frame in silence buffers are still the input sample count.
|
|
|
|
|
| |
*really* fix https://github.com/HandBrake/HandBrake/issues/1374 this
time.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
| |
Found via `codespell -q 3 --skip="./gtk/po`
|
|
|
|
| |
fixes https://forum.handbrake.fr/viewtopic.php?f=11&t=37311
|
| |
|
|
|
|
| |
It was not an even number of sample size * num channels in some cases
|
| |
|
|
|
|
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/673
If the end point is near the end of file and one of the streams reaches
eof before the end point is detected, the eof buffer for that stream was
not sent. Flush all streams when end point is reached.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a preset key AlignAVStart that enables this work-around. When
enabled, blank frames are inserted or frames are dropped to force
alignment of the initial timestamp of every audio and video stream.
Aligning the start times minimizes the impact of broken edit list
support in players.
Closes #763.
Squashed:
sync: improve alignment when passthru audio is present
presets: enable AlignAVStart for General and Gmail presets
LinGui: Improve AlignAVStart tooltip
sync: avoid inserting a black frame < nominal frame duration
sync: fix start alignment when doing p-to-p encoding
sync: add comments
|
|
|
|
|
|
|
| |
Reader can skip data at the beginning of the file. We were not
informing decsrt how much was skipped when pts_to_start caused the skip.
Fixes https://forum.handbrake.fr/viewtopic.php?f=11&t=36258
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Delayed subtitles were causing incorrect muxing in mkv. The mkv muxer
writes chunks where all samples should be relative to a chunk's base
timestamp. When the subtitle is delayed long enough for a new chunk to
start before it gets muxed, the calculated offset to the chunk's base
time is negative (which is illegal).
Note that this is still a possibility with subtitles that must be
delayed (e.g. CC and VOBSUB) because the duration is not known until
the next subtitle's start time is known. The only fix for this would be
to add a special subtitle parsing pass that caches subtitle timestamps
before the main encoding pass is performed.
|
| |
|
|
|
|
|
|
| |
reader adjusts pts_to_start after seeking. if the adjustment makes
pts_to_start == 0, sync didn't properly search for the start point and
hung.
|
|
|
|
|
| |
Continue processing input queues until none are full after p-to-p end
time is reached.
|
| |
|
|
|
|
|
|
| |
When a stream is finished, we need to see if there were any other
streams that were pending. The other streams could be blocking on a
condition variable and need to be unstuck.
|
|
|
|
| |
Fixes https://github.com/HandBrake/HandBrake/issues/328
|
|
|
|
| |
an hb_list_t was not freed at the end of an encode
|
|
|
|
|
| |
wake up potentially waiting sync threads when p-to-p end point is
reached.
|
|
|
|
| |
The output buffer size was not set correctly after resampling
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When doing point-to-point encoding, subtitles can cause a long
delay in finishing the job when the stop point is reached. This
is due to the sparse nature of subtitles. We may not even see
any additional subtitle till we reach the end of the file.
So when all audio and video streams have reached the end point,
force the termination of all subtitle streams by pushing an
end-of-stream buffer into each subtitles input fifo.
This will cause each subtitle sync worker to wake and return
HB_WORK_DONE.
|
|
|
|
| |
A full input queue could cause the search to stall
|