summaryrefslogtreecommitdiffstats
path: root/libhb
Commit message (Collapse)AuthorAgeFilesLines
* Print more Auto Passthru information to the Activity Log: passthru mask ↵Rodeo2012-02-172-2/+76
| | | | | | (allowed codecs), fallback encoder. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4454 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Set default audio compression in hb_autopassthru_apply_settings to get rid ↵Rodeo2012-02-171-0/+1
| | | | | | of an annoying warning in the log. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4453 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use libdca to decode DTS-ES audio. While the Libav DTS decoder gives us an ↵Rodeo2012-02-011-11/+7
| | | | | | extra channel, we can't do anything with it for the time being. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4430 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use more correct check to detect 6.0/6.1 input.Rodeo2012-02-012-2/+2
| | | | | | | | The old check didn't cause any issues in practice, but wasn't 100% correct. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4429 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Update hb_ff_dts_request_5point1 to work with DTS-ES 6.0 Distcrete sources ↵Rodeo2012-01-314-22/+24
| | | | | | | | | | | | | | | | | | | | | (decode the DTS 5.0 core). Rename it to hb_ff_dts_disable_xch. Tested with: M2TS -> regular DTS 5.1 -> DTS-ES 6.1 Discrete MKV -> regular DTS 5.1 -> DTS-ES 6.0 Discrete -> DTS-ES 6.1 Discrete git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4428 b64f7644-9d1e-0410-96f1-a4d463321fa5
* ca_aac: set minimum VBR quality to 1 instead of 0.Rodeo2012-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | That way, (high-low)/granularity divides cleanly by 1. Old qualities (low to high in increments of granularity): { 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126 } (the default, 91, is not in that list) New qualities (low to high in increments of granularity): { 1, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91 (default), 100, 109, 118, 127 } Actual output is unchanged (ca_aac has quality ranges; a 1-point bump will not change the range for each quality). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4422 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Vorbis: adjust default VBR quality after revision 4385.Rodeo2012-01-251-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4421 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix crash in add_ffmpeg_attachment: the value for "filename" metadata may be ↵Rodeo2012-01-241-1/+1
| | | | | | | | | | NULL, so we can't call strlen without checking. Should fix https://forum.handbrake.fr/viewtopic.php?f=11&t=23018 and https://forum.handbrake.fr/viewtopic.php?f=12&t=23101 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4420 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Improve mpeg-ps detectionjstebbins2012-01-141-0/+20
| | | | | | | | Make mis-detects less likely by checking all the marker bits in the pack header. This makes it much less likely that we will be spoofed by data that looks like a pack header. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4406 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix flac md5 sumjstebbins2012-01-041-8/+10
| | | | | | | | | Two mistakes. First, we were sending NULL to the encoder twice, which causes libav to finalize the md5 a second time and corrupt it. Second, I forgot that the context extradata needs to be re-copied to our audio config before the muxer updates the flac header information. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4398 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add path to log when decoding previews in batch scanjstebbins2011-12-291-1/+8
| | | | | | The title number isn't very helpful in batch scan mode. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4391 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Use -2 to 10 range for Vorbis audio quality (same as what oggenc uses), ↵Rodeo2011-12-232-4/+5
| | | | | | instead of the native libvorbis API values. This is what users will expect. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4385 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix overlapping vobsubsjstebbins2011-12-221-10/+8
| | | | | | | | | vobsubs that don't have a stop time were persisting too long and being displayed under the next vobsub in the video. We don't need to guess the stop time of the vobsub. sync already handles unknown stop times for subtitles. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4383 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add utilities for debugging fifo and buffer poolsjstebbins2011-12-211-0/+166
| | | | | | | They are all ifdef'd out and not used anywhere. Enable and use as needed when fifo issues crop up. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4381 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix corruption of buffer pools by render subsjstebbins2011-12-211-0/+4
| | | | | | | A subtitle buffer's "next" pointer was being modified after the buffer was closed which corrupts the buffer pool. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4380 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Show P-to-P start and end times in activity logjstebbins2011-11-261-2/+32
| | | | | | | When start and end times are give in units of time or frames, show the appropriate start and end indications in the activity log. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4364 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Align stack of all threads created by libhbjstebbins2011-11-182-1/+12
| | | | | | | This is a preemptive measure to prevent any future crashes in SSE code that requires 16 byte stack alignment. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4358 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix out of memory condition on mingw32jstebbins2011-11-151-7/+4
| | | | | | | | | realloc doesn't really release memory under most circumstances, so it's not suitable for reducing the size of an hb_buffer_t. So instead, allocate a new smaller buffer, copy the data, and return the old larger buffer to the buffer pool for reuse. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4353 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Make sure decvobsub.c generates valid timestampsjstebbins2011-11-152-4/+29
| | | | | | | | | sync.c expects that timestamps will all be resolved by the time buffers reach it. Reader will invalidate timestamps while waiting to resynchronize the SCR. So decoders (inparticular decvobsub) need to extrapolate timestamps when they are not supplied. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4352 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix interleaving of subtitles in muxerjstebbins2011-11-143-8/+32
| | | | | | | | | | | | | 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
* Fix spurious audio compression & quality log warningjstebbins2011-11-141-0/+2
| | | | | | | 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
* Disable multi-threaded decoding of ProResjstebbins2011-11-131-2/+5
| | | | | | | It causes artifacts in some videos git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4346 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix closed captioning crashjstebbins2011-11-101-0/+3
| | | | | | | | 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
* revert an ffmpeg reader changejstebbins2011-11-091-31/+23
| | | | | | | 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
* Fix probing mpeg video in program streamsjstebbins2011-11-062-7/+39
| | | | | | | | | | | | | | | | | ... 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
* Fix ac3 mixdown to monojstebbins2011-11-021-1/+1
| | | | | | | 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
* Disable DTS-HD LBR secondary audio tracksjstebbins2011-11-021-2/+7
| | | | | | | | | 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
* Allow vorbis quality to go down to -0.2jstebbins2011-10-313-8/+8
| | | | | | | 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
* bump ffmpeg to v0.7-1470-gb95fbbajstebbins2011-10-261-2/+6
| | | | | | | | | 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
* use more sensitive threshold for pullup detectionjstebbins2011-10-251-1/+1
| | | | | | | 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
* initialize wait_for_keyframe in the right placejstebbins2011-10-251-1/+1
| | | | | | | 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
* Find font attachments by file name extensionjstebbins2011-10-251-1/+17
| | | | | | | 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
* Wrap encoder lists in functions to expose them to Pinvoke.randomengy2011-10-222-0/+31
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4311 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add new decomb modesjstebbins2011-10-221-132/+689
| | | | | | | | | | | | | | | 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
* ASS bump to 0.10.0jstebbins2011-10-211-0/+6
| | | | | | | | 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
* bump libvorbis from aoTuV b5 to b6.03jstebbins2011-10-211-1/+1
| | | | | | | | | | 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
* make build_gamma_lut staticjstebbins2011-10-201-1/+1
| | | | | | | | 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
* better detection of Libav audio bitratejstebbins2011-10-181-1/+7
| | | | | | | | 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
* detect progressive upsampling in vfrjstebbins2011-10-171-10/+163
| | | | | | | | | | 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
* fix a problem with resolution changes in h.264jstebbins2011-10-173-7/+43
| | | | | | | | | | | | 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
* set ac3 dolby flag when downmix is dolbyjstebbins2011-10-151-0/+8
| | | | | | | | 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
* bump Libav from v0.7.1 to v0.7-1241-g5f3fb59jstebbins2011-10-159-61/+53
| | | | | | | | | | | | 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
* fix crash during 2 pass encoding TS or PS sourcejstebbins2011-10-151-208/+160
| | | | | | | | | | | | | | | | | | | 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
* Add flac + quality + compression level supportjstebbins2011-10-1212-134/+539
| | | | | | | | | 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
* fix log spam during batch scan of TS filesjstebbins2011-10-111-0/+6
| | | | | | | | 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
* Check for negative stop times in subtitlesjstebbins2011-10-071-5/+19
| | | | | | | 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
* CLI: x264 preset, tuning, and profile supportjstebbins2011-10-023-22/+79
| | | | | | | | 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
* handle PCR discontinuities betterjstebbins2011-09-301-39/+33
| | | | | | | | | | 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
* log printable ascii with hexdumpsjstebbins2011-09-291-3/+14
| | | | | | Provides similar output to 'hexdump -C' *nix command. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4262 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix a crash in HandBrakeCLIjstebbins2011-09-271-0/+6
| | | | | | | | | | | | | 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