summaryrefslogtreecommitdiffstats
path: root/libhb
Commit message (Collapse)AuthorAgeFilesLines
* libhb: Sanitize BD chapter durationsjstebbins2014-08-111-2/+43
| | | | | | | | | | | | | | It appears some BDs have invalid chapter durations, see https://forum.handbrake.fr/viewtopic.php?f=12&t=30479 This compares chapter start time deltas and title duration to chapter duration to make best guess corrections. Note that chapter events generated by libbluray are based on the chapter start times. So the start time should be trusted more than the duration. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6292 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix mp4 audio track titlesjstebbins2014-08-061-0/+7
| | | | | | | mp4 audio track titles were not being applied by libavformat git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6270 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix mp4 post tagging problemsjstebbins2014-08-061-0/+1
| | | | | | | | | | | A couple common mp4 taggers (mp3Tag and iTunes) fail to tag files that have the Nero chapter atom (chpl). This atom was added when we switched to libavformat for muxing. I haven't found any players yet that rely on this for chapters. If we ever find any, we can consider adding an option somewhere to enable chpl. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6269 b64f7644-9d1e-0410-96f1-a4d463321fa5
* fix comment in isIframe()jstebbins2014-07-301-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6248 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add i-frame detection for mpeg4 ts/ps streamsjstebbins2014-07-301-0/+15
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6247 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix potential seg fault in hb_hexdumpjstebbins2014-07-301-1/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6246 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add new function for retrieving previewsjstebbins2014-07-296-36/+190
| | | | | | | | | | | | | | | | This new function has a couple advantages over the old one (which we should phase out). It does not require hb_job_t as a parameter, instead it uses hb_ui_geometry_t which is a smaller and simpler struct. The entire job struct is overkill as input to this function. It returns an hb_image_t that fully describes the returned image instead of just a uint8_t array. The caller does not have to make assumptions about image size, line stide, or pixel format since hb_image_t specifies these things. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6242 b64f7644-9d1e-0410-96f1-a4d463321fa5
* LinGui/CLI/libhb: add nlmeans denoise filter to linguijstebbins2014-07-212-0/+229
| | | | | | | Move nlmeans preset&tune parsing from cli to libhb git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6239 b64f7644-9d1e-0410-96f1-a4d463321fa5
* cli: allow user cli options to override defaults for fallback audio encoderjstebbins2014-07-162-10/+66
| | | | | | | Solves: https://forum.handbrake.fr/viewtopic.php?f=10&t=28074&sid=68d8c5bfffd7081625bcd56fb7c4dad1 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6236 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Improve handling of streams with broken video timestampsjstebbins2014-07-161-4/+11
| | | | | | | Addresses https://forum.handbrake.fr/viewtopic.php?f=12&t=30307&p=140045#p139847 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6235 b64f7644-9d1e-0410-96f1-a4d463321fa5
* cli: Simplify output geometry calculationjstebbins2014-07-161-15/+13
| | | | | | | | Fix bug where non-anamorphic mode ignores modulus Change default modulus to 2 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6234 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: work around libav decoder error durint p-to-p encodingjstebbins2014-07-143-23/+65
| | | | | | | | | In some cases, initial data when in p-to-p mode causes libav decoder initialization to fail. This only happens when multi-threaded encoding is enabled. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6229 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix typo in flag definitionjstebbins2014-07-011-1/+1
| | | | | | | NO_IDR and SCAN_COMPLETE values overlapped git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6226 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Improve nlmeans edgeboost prefilter.bradleys2014-06-281-11/+53
| | | | | | | | | Fixes a typo (1/27 instead of 1/127) that caused edgeboost to match on nearly everything, and tweaks this number slightly. Adds a post-processing step to handle marked pixels having too few marked neighboring pixels as false positives. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6224 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Add median prefilter to nlmeans.bradleys2014-06-271-5/+118
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6223 b64f7644-9d1e-0410-96f1-a4d463321fa5
* bd: fix long delays caused by updated libblurayjstebbins2014-06-251-4/+4
| | | | | | | | bd_seek and the new m2ts_filter in libbluray have a bad interaction. So use bd_seek_time instead. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6221 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: New denoiser, nlmeans.bradleys2014-06-194-0/+748
| | | | | | | | Non-local means averages multiple patches of similar pixels together, preserving similarities and attenuating variance (usually noise). This is typically more effective than lowpass and more faithfully restores the appearance of structure and detail found in the original source, especially in the high frequency range. Parameters for origin patch weight tuning and pre-filtering further improve on the original algorithm. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6216 b64f7644-9d1e-0410-96f1-a4d463321fa5
* macui/cli/libhb: cleanupjstebbins2014-06-184-193/+15
| | | | | | | | | | | | macui: Simplifies code in Controller.m and fixes a few bugs macui: Fixes "Windows 8 Phone" preset aspect ratio problem macui: round up to next mod boundary when limiting to title dimensions - crop libhb: Eliminates hb_fix_aspect and hb_set_size functions. libhb: Makes hb_validate_size a passthru to hb_set_anamorphic_size cli: eliminage use of hb_validate_size git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6215 b64f7644-9d1e-0410-96f1-a4d463321fa5
* decpgssub: partial fix for "multi-object" PGS subsjstebbins2014-06-131-24/+50
| | | | | | | | | | | We were packaging multiple subtitle packets with the same pts and passing down to rendersub which would then throw away all but the last sub with a given pts. So put all AVSubtitleRects into the same hb_buffer_t. A patch to libav is also required to fix the multi-object problem. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6211 b64f7644-9d1e-0410-96f1-a4d463321fa5
* macui: fix PcitureController geometry calculationsjstebbins2014-06-103-141/+302
| | | | | | | | simplifies the code and makes it work better also updates preview window size calculations git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6209 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Fix decoding avi with palettejstebbins2014-05-294-7/+46
| | | | | | | | | ... and probably other formats that use a palette. The palette is stored in AVPacket side data which we did not read. So read the side data and stash it in hb_buffer_t so that it can be used later by the decoder. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6207 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix overwriting of source pathjstebbins2014-05-273-8/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6206 b64f7644-9d1e-0410-96f1-a4d463321fa5
* deccc608sub: fix positioning once againjstebbins2014-05-231-3/+4
| | | | | | | | after last change, CCs were getting positioned too far into the middle of the image. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6204 b64f7644-9d1e-0410-96f1-a4d463321fa5
* deccc608sub: fix invalid subtitle position when extreme cropping applied.jstebbins2014-05-221-5/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6203 b64f7644-9d1e-0410-96f1-a4d463321fa5
* mux: fix problems created by >32 track limit patchjstebbins2014-05-141-14/+12
| | | | | | | | | | | | First problem was pre-existing, but hidden. Interleaving was severely broken because we relied on buf->s.stop to determin interleave points. stop is not guaranteed to be set. Other problems with the new bit vector code caused failure to complete muxing. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6187 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Bump x265 to version 1.0Rodeo2014-05-131-35/+91
| | | | | | | Miscellaneous bugfixes and performance improvements. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6185 b64f7644-9d1e-0410-96f1-a4d463321fa5
* demux: fix problem with widely spaced SCRsjstebbins2014-05-134-7/+25
| | | | | | | | | | | | | | | | | Fixes this bug report https://forum.handbrake.fr/viewtopic.php?f=12&t=30032 Split MPEG demuxer into TS demuxer and PS demuxer to allow using different PCR/SCR delta tolerance in each scenario. We were using a PCR/SCR delta tolerance that was a bit of a compromise between the max allowed by the specification for TS vs PS streams. But the spec for TS PCR is 100ms and the spec for PS SCR is 700ms, so we risked false detection of discontinuities in PS. In PS streams that pack multiple frames into one PES packet, the detection of a discontinuity causes recalculation of an scr offset which jumps around wildly. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6183 b64f7644-9d1e-0410-96f1-a4d463321fa5
* mux: eliminate 32 track limitjstebbins2014-05-111-35/+191
| | | | | | | | | The limit was due to using an uint32_t as a bit vector. This solves the limitation by introducing an hb_bitvec_t struct for bit vectors of unlimited size. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6181 b64f7644-9d1e-0410-96f1-a4d463321fa5
* encx265: fix chapter insertion.Rodeo2014-05-101-0/+1
| | | | | | | | | Checking whether we should attach a chapter to the output buffer is not enough, we actually have to attach it too. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6176 b64f7644-9d1e-0410-96f1-a4d463321fa5
* deccc608sub: fix cropping of CCsjstebbins2014-05-061-5/+6
| | | | | | | | If the CC was in the crop area at the top of the image, it's position was not moved properly. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6172 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add VP8 supportjstebbins2014-04-157-102/+191
| | | | | | | Thanks to Matthew Harvey for this patch git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6165 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Convert all text subtitles to ASS subsjstebbins2014-04-1314-1935/+1377
| | | | | | | | | Add support for font color to tx3g. Allow more than one style flag at time in tx3g. Add positioning support to CC subs git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6163 b64f7644-9d1e-0410-96f1-a4d463321fa5
* rendersub: fix rendering SRT markup in CC subsjstebbins2014-04-091-0/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6160 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: always use our own DTS.Rodeo2014-04-081-58/+40
| | | | | | | | | | | | | Previously, the DTS provided by MSDK was used if it was available and the frame rate was constant. Our own DTS is indentical to MSDK's (when the frame rate is constant), but MSDK will sometimes provide 1 or 2 bogus DTS over the duration of a file, causing the encode to abort (lavf is picky). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6158 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: fix logging of whether B-frames are enabled.Rodeo2014-04-071-7/+7
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6157 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add generic code for converting NALRodeo2014-04-073-89/+254
| | | | | | | | | | | | | | unit bitstreams (H.264, HEVC) to and from Annex B format. Only used by QSV for now, but could always come in handy down the road. May also fix an issue introduced by the recent QSV cleanup patchset. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6156 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix previous commit again. This is not my day.Rodeo2014-04-061-91/+35
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6155 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: fix previous commit (outdated version of the same patch, sorry9.Rodeo2014-04-062-51/+98
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6154 b64f7644-9d1e-0410-96f1-a4d463321fa5
* QSV: reset the encoder at chapter points to force a keyframeRodeo2014-04-061-13/+37
| | | | | | | | This replaces the mfxEncodeCtrl-based solution used up to this point, as it's not guaranteed to work with some parameter combinations. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6153 b64f7644-9d1e-0410-96f1-a4d463321fa5
* pgssubs: fix pgs passthrujstebbins2014-04-062-10/+28
| | | | | | | Subtitles were being dropped because of the new condition I added that drops subtitles when start == end. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6152 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: cleanup encoding loop, part 3.Rodeo2014-04-051-158/+169
| | | | | | | Move encoding loop to its own function and simplify encqsvWork. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6150 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: cleanup encoding loop, part 2.Rodeo2014-04-051-231/+369
| | | | | | | | Move related code to separate functions whenever possible; simplify or improve the code where applicable. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6149 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: cleanup encoding loop, part 1.Rodeo2014-04-051-214/+172
| | | | | | | | | | | | Mainly: - allocate frame surface data in qsv_enc_init - setup input frame surface outside the loop - remove unnecessary variable - handle errors via a common path git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6148 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: simplify qsv_enc_init.Rodeo2014-04-051-19/+10
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6147 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: simplify encqsvClose.Rodeo2014-04-051-53/+43
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6146 b64f7644-9d1e-0410-96f1-a4d463321fa5
* enc_qsv: general cleanup.Rodeo2014-04-054-340/+369
| | | | | | | | | | | | | | | | | Mainly: - coding style - formatting - indentation Also: - fix two warnings - remove unnecessary header - remove unused parameter in parse_nalus git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6145 b64f7644-9d1e-0410-96f1-a4d463321fa5
* deccc608sub: fix roll-up subtitlesjstebbins2014-04-032-19/+19
| | | | | | | | Roll-up CC timestamps need similar treatment as the popup CC timestamps. Also, the simulated carriage return command that was added during a rollup command was inserting blank lines in the CC, so fix that. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6144 b64f7644-9d1e-0410-96f1-a4d463321fa5
* decccsub: fix timestamp of "clear" subtitlesjstebbins2014-04-031-0/+6
| | | | | | | This broke CC passthru and is probably the cause of https://forum.handbrake.fr/viewtopic.php?f=11&t=29835 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6143 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: enable burn-in of all supported text subtitle formatsjstebbins2014-03-309-535/+1307
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6141 b64f7644-9d1e-0410-96f1-a4d463321fa5
* CLI: clean up encoder preset/tune/profile/level option namesRodeo2014-03-281-19/+5
| | | | | | | | | | | | | | | | | | | | | | The new generic option names are: --encoder-preset --encoder-tune --encoder-profile --encoder-level In addition, the supported values for these options can be listed via: --encoder-preset-list <encoder> --encoder-tune-list <encoder> --encoder-profile-list <encoder> --encoder-level-list <encoder> Existing encoder-specific option names are preserved so as not to break existing scripts, but only the new generic names are documented and supported. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6135 b64f7644-9d1e-0410-96f1-a4d463321fa5