summaryrefslogtreecommitdiffstats
path: root/libhb/common.h
Commit message (Collapse)AuthorAgeFilesLines
* libhb: fix incorrect assumption that video quality is always positive.Tim Walker2016-03-311-1/+4
|
* decomb: split comb detection out into it's own filterJohn Stebbins2016-03-111-0/+2
|
* filters: make job filter settings an hb_dict_tJohn Stebbins2016-03-091-36/+20
| | | | | | This simplifies accessing and changing filter parameters programatically. It also changes the custom filter string format to a ':' separated list of key/value pairs.
* libhb: Add libavfilter support and pad filterJohn Stebbins2016-01-211-32/+40
| | | | | | | | | | | | | | New filter types HB_FILTER_AVFILTER and HB_FILTER_PAD. Settings for HB_FILTER_AVFILTER are the same as you would pass to avconv from the command line -vf option, except that we do not support multi-input or multi-output filters. Settings for HB_FILTER_PAD are "width:height:color:x_offset:y_offset". width x height is the size of the output frame after padding. color may be a w3c color name or RGB value (default black). x_offset, y_offset is the position of the video within the padded area (default centered). Any of the values may be omitted or "auto".
* sync: gut and rewriteJohn Stebbins2016-01-211-1/+1
| | | | | | | | | | | sync.c was difficult to read, fragile, and prone to difficult to diagnose bugs (see https://forum.handbrake.fr/viewtopic.php?f=12&t=33147) This rewrite simplifies the code, removes signals, locking and yield that probably cause the above problem and is much more flexible. It fixes a wider variety of timestamp issues than before and is much easier to extend if other timestamp analysis is desired.
* Update copyright dates to 2016.Bradley Sepos2016-01-011-1/+1
|
* x265: add support for 10, 12, and 16 bit x265 libsJohn Stebbins2015-11-121-2/+7
| | | | | automatically pull in shared versions of these libs or allow statically building against any one of them.
* x264: add multilib support (a.k.a. 10-bit)John Stebbins2015-11-121-6/+11
| | | | | This adds the structure to load an libx264 10-bit shared library. The user must install this library themselves to an appropriate place.
* libhb: repair split packets in readerJohn Stebbins2015-11-101-0/+2
| | | | | | | | We split PES packets when there is a PCR change in the middle of the packet. This works fine for audio and video where the decoder parses the ES to find frame boundaries. But it does not work for some decoders such as PGS subtitles. So mark split buffers and reassemble them in reader after processing the PCR change.
* libhb: make muxer, sync, and reader behave like other work objectsJohn Stebbins2015-11-091-1/+10
| | | | | | | | | | | | | simplify job initialization sequence, clean up code, and document dependencies in the sequence better. Make hb_add set job->sequence_id. It is no longer necessary for the frontend to do this. If the frontend needs the sequence_id, it is returned by hb_add(). Clean up use of interjob. do_job() now uses sequence_id to detect when a new sequence of related jobs is running and automatically clears interjob.
* Double HB_MAX_WIDTH/HEIGHTJohn Stebbins2015-10-261-2/+2
| | | | Per BradleyS suggestion
* Enforce min/max dimensionsJohn Stebbins2015-10-261-0/+5
| | | | | | In both hb_set_anamorphic_size and hb_get_preview, check that image dimensions are > 32x32 and < 10240x10240. This should help to prevent crashes with unusual dimensions settings.
* lame: Use libav wrapper to encode mp3lameJohn Stebbins2015-10-261-1/+0
| | | | | | | | | | Fixes https://forum.handbrake.fr/viewtopic.php?f=12&t=33345 Some players expect each packet to start on an mp3 frame header. Our mp3lame encoder did not ensure this and resulted in failure to play audio on these players. libav already has the necessary code to parse headers and accumulate a full frame of data, so use it.
* grayscale: make it a real filterJohn Stebbins2015-10-141-0/+2
| | | | | It only worked properly with the x264 encoder. Now it works with all encoders.
* scan: fix rescan avoidance logicJohn Stebbins2015-09-291-0/+1
| | | | We need to rescan when the number of previews changes.
* libhb: add hb_buffer_listJohn Stebbins2015-09-241-0/+19
| | | | | This brings together several independent implementations of a simple buffer list manager.
* qsv: HEVC encoding support.Tim Walker2015-09-201-0/+2
|
* libhb: Clock/frame rate handling improvements.Bradley Sepos2015-09-101-0/+1
| | | | | | | | Allows for arbitrary frame rates between 1 and 1000 fps. Adds min/max frame rates to CLI help. Removes hardcoded instances of the internal clock rate in favor of hb_video_framerate_get_limits(). Unfortunately, much of the codebase generally refers to clock rate as frame rate, so a little extra care is still necessary going forward.
* libhb: detect read errors and propagatejstebbins2015-06-291-5/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7332 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: remove HB_API_OLD_PRESET_GETTERS cruft.Rodeo2015-06-271-12/+0
| | | | | | | None of the frontends are using it anymore. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7322 b64f7644-9d1e-0410-96f1-a4d463321fa5
* DXVA2: cleanup decode support checks.Rodeo2015-06-231-6/+3
| | | | | | | This should fix https://forum.handbrake.fr/viewtopic.php?f=11&t=32520 git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7310 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Minor cleanup after last commit.Rodeo2015-06-231-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7309 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add DXVA2-accelerated HEVC decoding.Rodeo2015-06-231-0/+2
| | | | | | | Patch by Zhang Zhiqiang. Thanks! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7308 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Eliminate string length limit in hb_valogjstebbins2015-06-091-0/+1
| | | | | | | | This eliminates the length limit of all libhb logging functions. The previous limit was 361 chars. Now it is only limited by available memory. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7280 b64f7644-9d1e-0410-96f1-a4d463321fa5
* scan: skip scan if title has already been scannedjstebbins2015-05-261-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7226 b64f7644-9d1e-0410-96f1-a4d463321fa5
* sync: fix frame p-to-p extra audio after end framejstebbins2015-04-221-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7119 b64f7644-9d1e-0410-96f1-a4d463321fa5
* deccc608sub: improve CC positioningjstebbins2015-04-051-1/+1
| | | | | | | | The safe zone margin was not wide enough and the font size was a little too small. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7063 b64f7644-9d1e-0410-96f1-a4d463321fa5
* deccc608sub: fix column alignment issuesjstebbins2015-04-051-1/+2
| | | | | | | | Use a fixed width font, and insert hard spaces where necessary to allign columns correctly in multi-line CCs. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7061 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Add filter preset/tune lookup and setting validation for more filter ↵jstebbins2015-04-041-4/+0
| | | | | | | | | | | | | | types All filters except for crop_scale now have preset/tune support and basic validation. This code could also be used by the other frontends to simplify some things. For example, it can be used to query libhb for a list of available presets and tunes for each filter. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7050 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add functions to lookup details of mixdown, video, audio, containerjstebbins2015-04-021-2/+16
| | | | | | | | ... from int id. And add defines to eliminate some magic numbers. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7037 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Eliminate global variable hb_gui_use_hwd_flagjstebbins2015-03-291-4/+5
| | | | | | | | | | | | This global was shared between the CLI and libhb and used as a back door to force scan and encode passes to use the same ffmpeg context for hardware decoding. Aside from the fact that this context sharing should not be necessary and needs fixing, this information belongs in the hb_handle_t that is shared between the scan and the encode. So put it there and make sure the hb_handle_t get propagated to where the flag is needed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7028 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: automatically scan title when processing json jobsjstebbins2015-03-071-4/+10
| | | | | | | | | | | | | | | Simplifies the WinGui. This also changes how jobs are processed. Creating the sub-jobs for multiple passes is delayed until after scanning and immediately before running the job. Working status has also changed. Sub-job passes are identified in status with an ID that allows the frontend to definitively identify what pass is in progress. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6976 b64f7644-9d1e-0410-96f1-a4d463321fa5
* New audio output options.Rodeo2015-02-151-10/+17
| | | | | | | | | Dolby Digital Plus (E-AC-3), Dolby TrueHD and FLAC can now be passed through without re-encoding. They aren't covered by Auto Passthru yet, however. In addition, encoding to E-AC-3 is now possible. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6908 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Update year to 2015.bradleys2015-02-011-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6852 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Add support for open type font attachments.ritsuka2015-01-311-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6839 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: automatically add rendersub filter when requiredjstebbins2015-01-301-5/+6
| | | | | | | | | | | | This requires the addition of a filter->post_init function to inform filters of the final job configuration after all filters have been initialized. Rendersub needs to know cropping, but cropping isn't known till after crop_scale filter is initialized. Since crop_scale is initialized *after* rendersub is initialized, post_init is needed. Currently, rendersub is the only filter that defines post_init. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6830 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Simplify frontend useage of hb_add()jstebbins2015-01-121-1/+2
| | | | | | | | | Modify hb_add() to automatically add all necessary passes, so hb_add() only needs to be called once per job. It now automatically adds subtitle scan and 2-pass encoding passes. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6738 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add "Codec" to audio list itemsjstebbins2014-12-231-0/+2
| | | | | | | and add hb_audio_can_apply_drc2 API which doesn't require audio codec_param git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6651 b64f7644-9d1e-0410-96f1-a4d463321fa5
* eliminate job->largeFileSizejstebbins2014-12-231-2/+0
| | | | | | | It is no longer needed since we eliminated mp4v2 support git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6647 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: remove deprecated job and title fieldsjstebbins2014-12-221-26/+0
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6639 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix building with qsv enabled.jstebbins2014-12-161-0/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6603 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add json APIsjstebbins2014-12-161-110/+92
| | | | | | | | | | There are several changes to job and title structs that break current windows interop code. The interop code should be changed such that it only uses json APIs. So if there is any missing features (or bugs) in these APIs, please let me know. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6602 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Add filter parameter validation.bradleys2014-10-151-0/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6447 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: thread nlmeans filterjstebbins2014-09-091-0/+2
| | | | | | | Scales well with number of CPUs, so is 4x faster on quad cores. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6397 b64f7644-9d1e-0410-96f1-a4d463321fa5
* CLI: fix dimensions problem when both width and height are specifiedjstebbins2014-08-271-5/+4
| | | | | | | | | | | | | The GUI will precompute both width and height and specify both on the command line. But then the CLI recomputes width based on height which can result in the width being changed. So, in non-anamorphic mode, disable keep_aspect so that width and heigh are both kept. And in other anamorphic modes, use custom ana when computing dimensions so that both width and height are kept (i.e. recompute par). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6369 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: add new function for retrieving previewsjstebbins2014-07-291-0/+21
| | | | | | | | | | | | | | | | 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-211-0/+3
| | | | | | | Move nlmeans preset&tune parsing from cli to libhb git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6239 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: New denoiser, nlmeans.bradleys2014-06-191-0/+1
| | | | | | | | 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-181-3/+0
| | | | | | | | | | | | 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