| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifically, this affects closed captions which are pushed into the
pipeline very late. CC's are dribbled in 2 bytes per video frame.
The entire CC that we put into a subtitle frame isn't available till
we see the signal for the end of the CC. This can be several seconds
after it began. So I have established a minimum buffer size that the
muxer accumulates before it outputs any data. This allows CCs to get
into the pipeline before the muxer outputs the interleave interval that
they belong in.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4351 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
quality and compression_level were not getting initialized to -1 for
passthru.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4350 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
It causes artifacts in some videos
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4346 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
Prevent the same CC buffer from being attached to multiple tags. The
same buffer would get pushed to a fifo multiple times and ultimately
freed multiple times.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4345 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
I did this a while back to improve seek performance for some samples
that are demuxed by ffmpeg. But it causes crashes with some file types.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4343 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... and probably some other formats as well. Libav's probe routine
doesn't necessarily return names that match the codec names
that can be looked up by avcodec_find_decoder_by_name(). So we
have to manually map the names if the lookup fails. Lookup for
mpeg video started failing with the last Libav bump because
they removed an obsolete "mpegvideo" decoder that we were matching
on. The correct decoder is "mpeg2video", but probe doesn't return
that string.
Also fix our implementation of the ff_lockmgr callback. Current
git Libav fails if we don't fix it. So might as well fix it now.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4341 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
we were setting the wrong mixdown flag. Funny how something like this
can go for so long unnoticed.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4337 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
| |
DTS-HD LBR used in HD-DVD and bluray for secondary audio
streams. Libav can not decode yet. Having it in the audio
list causes long delays during scan while we try to get stream
parameters. So skip this audio type for now.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4336 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
Bizzaro vorbis allows negative quality factors. They go to 11 in the
wrong direction.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4332 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
| |
Fixes problem setting dsur_mode in ac3 encoder that caused encode
failures if using ac3 encoder and mixdown is dolby or dplii.
Fixes a VC-1 decode issue that caused scattered misplaced blocks.
Fixes swscale bug that caused banding.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4322 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
This improves our accuracy at detecting the framerate of telecined
material.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4320 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
It was in in the wrong initialization function. So wasn't doing
anything very useful :p
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4317 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
Some font attachments don't have the correct mime type. So check the
file name extension as well when looking for fonts.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4316 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4311 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is jbrjakes decomb3 patch.
New modes are gamma compensation and erode dialate filter.
Gamma adjusting pixel values makes less visible differences count less
in the metric that is calculated. Filtering removes isolated "hits"
that are more likely noise. This all makes decomb more discerning and
therefore the thresholds can be lowered.
The filter's defaults use these new modes with lower thresholds. If you
want the old behavior, use:
7:2:6:9:1:80
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4308 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
libass has a new dependency on fribidi. So also add fribidi to
contribs. I repackaged the libass distribution because the configure
script shipped with it is damaged beyond repair for darwin.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4304 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
Libvorbis aoTuV was unified with Xiph.Org's libvorbis1.3.2.
Many bug fixes and improvements.
Enlarge buffer for audio headers. The new vorbis generates
larger code book headers.
patch configure to fix llvm -O4 bug
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4302 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
This function is specific to renderers duplicate frame detection method
and conflicts with the decomb3 patch with uses a floating point gamma
lut.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4300 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
For some codecs, Libav does not set the codec context bitrate. They
expect you to compute it from bits per sample, sample rate, and
channels.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4298 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
progressive 23.976 fps content that has upsampled to progressive 59.94
fps can result in juddery output if you don't drop the "right" frames
while downsampling back to 23.976. This adds a test that computes the
sum of squared errors between 2 candidate frames to drop and makes a
more intelligent decision based on this metric.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4297 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, the scaling code in decavcodec.c was broken and didn't properly
compensate for frames that had a different resolution than the rest of
the stream.
Second, libav can not handle resolution changes when doing frame based
multi-threading. So disable threading when resolution changes are
detected.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4295 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
If doing dolby or dplii downmix and encoding to ac3, set the
dolby flag in output ac3 stream so players (and handbrake) will
know that the stream is dolby matrix encoded.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4292 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes VC-1 decode issue
Adds partial support for interlaced VC-1 decode
Adds ProRes decoder
Fixes ac3 encoder dolby flag
Fixes DCA frame size setting (delete patch A04)
Fixes VC-1 repeat field processing (delete patch A05)
Numerous other bug fixes and enhancements
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4291 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
stream.c cached information that it probed during the first time it
opened any source. Then later it would re-use that cached data. I
was prematurely deleting the cached data during 2 pass encodes.
The problem is that there is no way to know when the cached data is no
longer needed. You could have a thousand items in the queue all using
the same source, or you could have only 1. So you either have to (a)
keep the cached data indefinitely, or (b) you have to be able to handle
the case where scanned cached data is flushed before you start an
encode. (a) is poor design. And if you choose (b) you might as well
eliminate the cache all together. It doesn't really save any time and
only complicates the code.
In summary, the cache is gone.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4286 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
| |
Adds flac audio to cli, lingui, and macgui
Adds quality and compression level options to cli
Adds quality option to lingui
Quality option works for vorbis and lame
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4281 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
IDRs detected before generating previews were not being remembered. So
we started decoding on non-IDR boundaries which generates a lot of
decoder log spam.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4279 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
A subtitle may not have a stop time. Set it to something reasonable
when missing.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4268 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
New cli options --x264-preset, --x264-tune, and --x264-profile. x264
preset and tune are set first, followed by any custom x264 option string,
and finally the profile is applied.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4265 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
The PCR comparison we were doing could cause us to drop all the
timestamps for an audio stream when the audio packets are very widely
spaced. Now, it detects PCR changes explicitely and only drops the
timestamps if a discontinuity PCR prior to the packets current PCR has
already been sent to the reader.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4263 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
| |
Provides similar output to 'hexdump -C' *nix command.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4262 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the audio tracks are omitted (no -a), the cli uses the first source
audio track and replicates it for each audio output codec. The way it
knows what to replicate is to look at audio->in.track for the last audio
that was added to the job. This track number was being copied from the
title's in.track. But title track numbers are not guaranteed to be
sequential (e.g. scan drops tracks it can't decode). So when adding an
audio to a job, set in.track to the value of in.track that is passed in
the audio_config structure passed to hb_audio_add.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4260 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
I find myself re-writing a quick and dirty hexdump function far too
often when debugging. This will save some time in the future.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4259 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
Extracts duplicated code from decomb.c and deinterlace.c and puts
it in a shared module. Fixes a bug that existed in the decomb
version of mcdeint_filter.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4257 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For TS streams that don't have PCRs, we substitute the DTS timestamp
from the video track (or PTS if we don't see DTS). But these can bounce
around or be wider spaced in the stream that PCRs are meant to be. So I
have added a test to see if the timestamp looks like a discontinuity.
Then I only pass the timestamp as a PCR if there appears to be a
discontinuity. This prevents a lot of scr_offset thrashing.
I have also fixed an error in our scr_offset processing. It is rarely
triggered and it's effects are so minor with well behaved streams that
it would be completely unnoticed. But with the test stream I was using,
it caused a factor of 10 times more "audio went backwards" errors.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4254 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
| |
A new obfuscation technique it to add UDF-16 filenames that have junk in
the high byte and things like "VIDEO_TS.IFO" in the low byte.
libdvdread throws away the high byte which results in references to the
bogus copy of the file.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4252 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
| |
SSA subtitles have an empty layer field (bare ','). The
scanf format specifier "%*128[^,]" will not match on a
bare ','. There must be at least one non ',' character in
the match. So the format specifier is placed directly next
to the 'Dialogue:' string so that the next expected ' '
after the ':' will be the character it matches on when
there is no layer field.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4244 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
| |
i let part of another patch leak in
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4243 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
The AVCHD-Lite specification only supports 50 or 60 fps. So to get
25 or 30 fps, they double every frame using repeat flags. Detect
this and adjust the framerate accordingly.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4242 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
HandBrake's video pipeline uses yuv420 color which requires even
dimensions. The input video may be a diffent color space that allows
odd dimensions. So crop a row or colomn if necessary.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4239 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
| |
AC3 Passthru when loading a preset.
Also, update an outdated comment.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4238 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds Auto Passthru as another encoder in libhb.
Used in LinGUI and CLI. MacGUI features a partial impplmentation (with hardcoded values), which is disabled for now.
Also, audio and video encoders are now stored in "lists", like we previously did for mixdowns.
New mixdown "None" (HB_AMIXDOWN_NONE) added to hb_audio_mixdowns (was previously declared in MacGUI/LinGUI).
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4237 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
Slightly more meaningful log messages.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4233 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
Periodic intra refresh has no IDR frames, but x264 signals a keyframe at
recovery points. Use this flag to fake keyframes in the container so
that seeking in these files works properly.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4232 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
| |
Seek point may be a recovery point which will not be a complete clean
frame. So consume frames till we reach the recovery frame count.
Patches Libav so it can tell us when the recovery point has been
reached.
Also improves detection of recovery points in TS files.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4231 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
I ran across a stream that has bad timestamps in the Teletext track
which causes the demux to think there are discontinuities and drop
packets. makes a real mess of things.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4224 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
| |
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4223 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
| |
fixes streams that have broken frame count field. since this
value can be computed from the frame size, we can ignore it.
Also fixes some decode errors in 20 and 24bit lpcm.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4221 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds support for MPEG-1 PS, HDDVD EVOB, and video codecs other
than mpeg1/2 in PS
Improves probing of unknown stream types by using Libav's probing
utilities
Use Libav to probe for dts profile in TS and PS files when profile is
unknown
Improves framerate detection (improved telecine detection)
Fixes preview generation for mpeg video that has only a single sequence
header
Patches Libav to handle VC-1 pulldown flags properly
Improve PS and TS stream log information
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4220 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1, not 0. Also, explicitly log that we are dropping the track when we find an incompatible passthru.
Fixes:
[01:26:41] Sample rate 24000 not supported (ca_haac). Using 32kHz for track 1
track 1 suddenly becomes track 0:
[01:26:41] work: sanitizing track 0 mixdown Dolby Pro Logic II to Stereo
[01:26:41] work: sanitizing track 0 audio bitrate 160 to 80
[…]
[01:26:41] * audio track 0
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4210 b64f7644-9d1e-0410-96f1-a4d463321fa5
|
|
|
|
|
|
|
|
|
|
|
|
| |
libhb doesn't support 6.1 sources and assumes they're 7.0 instead. This breaks downmixing.
Libav can decode the DTS-ES 6.1 core of DTS-HD 6.1 audio tracks; tell it to not process the additional channel so that such tracks can be re-encoded correctly.
See https://reviews.handbrake.fr/r/200/ for more information.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4209 b64f7644-9d1e-0410-96f1-a4d463321fa5
|