summaryrefslogtreecommitdiffstats
path: root/libhb/sync.c
Commit message (Collapse)AuthorAgeFilesLines
* qsv: redesigned adapter capabilities collection and reporingagalin892021-03-121-1/+1
|
* sync: fix missing last subtitle in mp4, the subtitle sanitizer did not ↵Damiano Galassi2021-02-251-4/+14
| | | | receive the eof buffer. Fix missing initial subtitle when 'align a/v' option is enabled by adjusting the sub start timestamp.
* sync: tag the generated black buffer with the color code points, to avoid ↵Damiano Galassi2021-01-301-1/+5
| | | | tripping the colorspace filter.
* sync: fix PtoP hangDamiano Galassi2021-01-211-2/+1
| | | | start_found was never set if there was a subtitles starting at pts_to_start.
* Update copyright dates to 2021.Bradley Sepos2021-01-011-1/+1
|
* libhb: fix black buffer creation when the pixel format bit depth is 10 or more.Damiano Galassi2020-12-021-3/+9
|
* libhb: add 8bit to 10/12bit blend functions to rendersub.Damiano Galassi2020-11-181-1/+1
| | | | decode video to 10bit or 12bit yuv if there is no 8bit filter in the chain.
* qsv: better adjustments of pool sizes for LA case to prevent corner cases ↵agalin892020-10-171-7/+12
| | | | regressions
* qsv: fix AVC encoding hang when LA is enabled on Windowsagalin892020-10-111-0/+7
|
* sync: fix handling of overlapping SSA import subsJohn Stebbins2020-06-061-0/+1
|
* decavsub: fix dvb subtitle passthroughJohn Stebbins2020-03-291-2/+3
| | | | The "clear" subtitle packets were not making it through to the muxer
* decavsub: add general purpose avcodec subtitle decoderJohn Stebbins2020-03-291-0/+4
| | | | Currently using it for pgs, srt, and ssa subtitles.
* sync: fix PtoP end detection during flushJohn Stebbins2020-03-241-148/+32
| | | | Fixes https://github.com/HandBrake/HandBrake/issues/2603
* qsv: fix --start-at frames issue and dx surfaces leaks (#2533)Artem Galin2020-01-041-0/+4
|
* Update copyright dates to 2020.Bradley Sepos2020-01-011-1/+1
|
* libhb: resolve header conflicts with pango/harfbuzzJohn Stebbins2019-09-121-3/+3
| | | | | | | Newest versions appear to have a "common.h" somewhere that is interfering with libhb/common.h. move headers into "handbrake" subdirectory
* Resolve conflict with harfbuzz include file hb.hJohn Stebbins2019-09-101-1/+1
| | | | Rename hb.h to handbrake.h
* Remove libsamplerateJohn Stebbins2019-08-111-62/+42
| | | | Convert the last use of libsamplerate in sync.c to swresample
* Fix some typos (#2202)Nomis1012019-07-311-2/+2
| | | Fix some typos
* decsrtsub: fix missing initial sub with p-to-pJohn Stebbins2019-07-111-1/+9
| | | | | | | | 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
* LinGui: add queue statisticsJohn Stebbins2019-06-251-10/+8
| | | | and tweak the layout per BradleyS suggestions
* sync: imporve accuracy of logged min/max fpsJohn Stebbins2019-03-121-2/+2
|
* ssa: improve SSA to TX3G conversionJohn Stebbins2019-01-141-1/+14
| | | | | 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.
* Update copyright dates to 2019.Bradley Sepos2019-01-011-1/+1
|
* sync: fix duration of silence buffersJohn Stebbins2018-08-051-4/+10
| | | | | | | 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.
* 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.
* encx264: fix encoding of very short duration framesJohn Stebbins2018-05-301-5/+1
| | | | | | | | | | | | 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
* Misc. typosluz.paz2018-02-201-1/+1
| | | Found via `codespell -q 3 --skip="./gtk/po`
* 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
* Update copyright dates to 2018.Bradley Sepos2018-01-011-1/+1
|
* sync: fix size of silence bufferJohn Stebbins2017-07-121-4/+5
| | | | It was not an even number of sample size * num channels in some cases
* sync: fix potential stall when in_queue overflowsJohn Stebbins2017-07-121-42/+6
|
* sync: fix p-to-p hangJohn Stebbins2017-06-161-7/+12
| | | | | | | | 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.
* sync: work-around players with broken edit list supportJohn Stebbins2017-06-131-58/+310
| | | | | | | | | | | | | | | | | | | | | | | | 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
* decsrt: fix p-to-p start time after seekingJohn Stebbins2017-04-151-5/+24
| | | | | | | 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
* sync: fix small video dejitter errorJohn Stebbins2017-03-031-0/+5
| | | | | | | | | | | | | 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.
* sync: fix sync problem with delayed streamsJohn Stebbins2017-02-181-5/+5
| | | | | | 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.
* Update copyright dates to 2017.Bradley Sepos2017-01-011-1/+1
|
* sync: don't delay subtitles when duration is knownJohn Stebbins2016-12-151-5/+9
| | | | | | | | | | | | | | 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.
* sync: fix compiler warningJohn Stebbins2016-12-151-1/+1
|
* sync: fix PtoP hangJohn Stebbins2016-11-211-7/+10
| | | | | | 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.
* sync: more robust handling of p-to-p end timeJohn Stebbins2016-09-261-2/+2
| | | | | Continue processing input queues until none are full after p-to-p end time is reached.
* sync: fix off-by-one errorJohn Stebbins2016-09-261-1/+1
|
* sync: fix a hang with p-to-p end timeJohn Stebbins2016-09-261-1/+22
| | | | | | 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.
* sync: fix use of closed bufferJohn Stebbins2016-09-201-7/+12
| | | | Fixes https://github.com/HandBrake/HandBrake/issues/328
* sync: fix small memory leakJohn Stebbins2016-09-091-0/+3
| | | | an hb_list_t was not freed at the end of an encode
* sync: fix race condition hangJohn Stebbins2016-08-291-1/+8
| | | | | wake up potentially waiting sync threads when p-to-p end point is reached.
* sync: fix audio resamplingJohn Stebbins2016-08-081-0/+1
| | | | The output buffer size was not set correctly after resampling
* sync: speed up p-to-p finalization when there are subtitlesJohn Stebbins2016-06-101-0/+46
| | | | | | | | | | | | | 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.
* sync: fix potential stall when searching for p-to-p startJohn Stebbins2016-06-101-2/+11
| | | | A full input queue could cause the search to stall