summaryrefslogtreecommitdiffstats
path: root/libhb/hb_json.c
Commit message (Collapse)AuthorAgeFilesLines
* Add adaptive streaming support (#972)John Stebbins2017-11-091-4/+8
| | | | | | | "Adaptive streaming" allows changing video parameters mid-stream at IDR boundaries. Such changes require new SPS and PPS NALs at the IDR. MP4 supports this with 'avc3' and 'hev1' sample entry types.
* CLI: add option to log version, title, and progress in jsonJohn Stebbins2017-11-061-21/+156
| | | This is useful for scripts and other frontends that need to parse CLI output.
* sync: work-around players with broken edit list supportJohn Stebbins2017-06-131-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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
* opencl: removit it (#777)John Stebbins2017-06-121-6/+4
| | | | It was only used for scaling, it fails far too often and is only faster on a limited selectoin of hardware.
* json: revise range "End" for time and frame rangesJohn Stebbins2017-01-111-11/+30
| | | | | "End" was a duration. It is now the actual "End" position in 90khz ticks or frames.
* json: Decoding JSON now checks if QSV is available before setting QSV… (#509)Scott2017-01-111-0/+4
| | | json: Decoding JSON now checks if QSV is available before setting QSV… #509
* json: fix use of freed memoryJohn Stebbins2017-01-081-18/+23
| | | | | | | | audio.out.name was getting assigned a string from a json object that could be freed resulting in a double free. also make unpack_s check for const char * type to help prevent such abuses in the future.
* libhb: allow removal of tagsJohn Stebbins2017-01-031-18/+81
| | | | | | Setting an empty string tag allows removal of existing tags. Note that setting a NULL string does not remove an existing tag but instead results in the tag getting passed through from the source.
* Update copyright dates to 2017.Bradley Sepos2017-01-011-1/+1
|
* json: fix extraction of negative SRT offsetsJohn Stebbins2016-06-091-9/+9
|
* remove dxva hw decode (#189)John Stebbins2016-05-171-12/+7
| | | | | | | | | * remove dxva hw decode It provides practically no speed increase even on a slow CPU and results in a speed decrease on fast CPUs. And the code is exceptionally fugly. * cli: remove USE_HWD
* json: fix typo.Tim Walker2016-04-031-1/+1
|
* json: fix sanitization of vqualityTim Walker2016-04-031-4/+8
| | | | …for encoders that check for a valid bitrate before quality.
* json: fix sanitization of vqualityJohn Stebbins2016-04-031-20/+31
| | | | ... and other assorted cleanups ;)
* hb_json: sanitize JSON where both of video bitrate and quality are valid.Tim Walker2016-03-311-0/+6
| | | | Check against vbitrate since it doesn't depend on a preprocessor define.
* libhb: fix incorrect assumption that video quality is always positive.Tim Walker2016-03-311-1/+1
|
* filters: make job filter settings an hb_dict_tJohn Stebbins2016-03-091-6/+5
| | | | | | This simplifies accessing and changing filter parameters programatically. It also changes the custom filter string format to a ':' separated list of key/value pairs.
* Update copyright dates to 2016.Bradley Sepos2016-01-011-1/+1
|
* libhb: make muxer, sync, and reader behave like other work objectsJohn Stebbins2015-11-091-3/+1
| | | | | | | | | | | | | 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.
* grayscale: make it a real filterJohn Stebbins2015-10-141-5/+3
| | | | | It only worked properly with the x264 encoder. Now it works with all encoders.
* scan: fix rescan avoidance logicJohn Stebbins2015-09-291-1/+1
| | | | We need to rescan when the number of previews changes.
* json: fix parsing job Audio->CopyMaskjstebbins2015-08-101-2/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7397 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix a couple of memory leaksjstebbins2015-06-011-0/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7254 b64f7644-9d1e-0410-96f1-a4d463321fa5
* scan: skip scan if title has already been scannedjstebbins2015-05-261-4/+6
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7226 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix packig audio track in titlejstebbins2015-04-271-1/+1
| | | | | | ChannelLayout was getting dropped due to missing format specifier git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7129 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix "End" parsing of p-to-p frame rangejstebbins2015-04-261-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7128 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix another cut/paste error. incorrect dither parsing.jstebbins2015-04-131-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7088 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix copy_mask (again) :(jstebbins2015-04-071-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7070 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix audio autopassthru copy_mask and fallbackjstebbins2015-04-071-4/+4
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7068 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix potential crash when source file or title number doesn't existjstebbins2015-04-071-0/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7064 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Improvements and key changes to json/hb_dict_t job definitionsjstebbins2015-04-041-129/+330
| | | | | | | | | | | | | | | | | | | | | | | | | | | MetaData -> Metadata Video {Codec} -> Video {Encoder} Filter -> Filters AudioList [Force] -> AudioList [Forced] Added audio key DitherMethod Simplified encoding range spec Was: Range {ChapterStart, ChapterEnd, PtsToStart, PtsToStop, FrameToStart, FrameToStop, StartAtPreview, SeekPoints} Now: Range {Type, Start, End, SeekPoints} Type is "chapter", "time", "frame", or "preview". Start and End units depend on Type. SeekPoints is only used for live preview. Added keys for control of hardware encode/decode OpenCL, HWDecode, QSV {Decode, AsyncDepth} Changed the data type of CopyMask. Was an int bitmask. Now it is an array of strings, each string describes a passthru option. e.g. "copy:ac3" git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7049 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: use hb_dict_t, hb_value_array_t, and hb_value_t in hb_json.cjstebbins2015-04-021-328/+363
| | | | | | | ...instead of going direct to json_t git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7040 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix crash when foreign audio search is *not* enabledjstebbins2015-03-111-1/+1
| | | | | | | | | Also, prevent crashes that occur when the json is not properly parsed. It will still fail to encode, but we will capture the parse failure in the log. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6983 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: use jansson for hb_dictjstebbins2015-03-091-0/+1
| | | | | | | | This paves the way to doing preset processing in libhb. Initially for the CLI but other frontends may benefit eventually. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6981 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: automatically scan title when processing json jobsjstebbins2015-03-071-10/+52
| | | | | | | | | | | | | | | 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
* Update year to 2015.bradleys2015-02-011-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6852 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: revert last commitjstebbins2015-01-221-4/+2
| | | | | | | | made a bad assumption. internal libhb track number is not needed by the front-end git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6795 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add "Track" to audio and subtitle in titlesjstebbins2015-01-221-2/+4
| | | | | | | | This is the track that must be passed to libhb in the job to select desired audio and subtitle tracks git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6794 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix srt filename parsingjstebbins2015-01-171-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6762 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Simplify frontend useage of hb_add()jstebbins2015-01-121-23/+4
| | | | | | | | | 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: simplify hb_add_json APIjstebbins2015-01-111-10/+25
| | | | | | | | Now automatically adds subtitle scan and 2-pass encoding jobs. Changed "Pass" integer to "TwoPass" boolean to facilite this. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6731 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix parsing of SRT subtitlesjstebbins2015-01-111-1/+1
| | | | | | | Previously required "Track" < 0 which is unintuitive and unnecessary. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6730 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add "Codec" to audio list itemsjstebbins2014-12-231-0/+1
| | | | | | | 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-5/+3
| | | | | | | 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
* json: fix hb_get_preview_jsonjstebbins2014-12-191-3/+124
| | | | | | | and add some routines for json conversion of preview parameters and images git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6614 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix plane size in hb_get_preview_image_jsonjstebbins2014-12-191-0/+1
| | | | | | | The actual size of the base64 encoded data is the length of the string git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6611 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: fix memory leak in hb_get_preview_jsonjstebbins2014-12-191-0/+1
| | | | | | | forgot to call hb_image_close on the image git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6610 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add hb_get_preview_jsonjstebbins2014-12-191-2/+112
| | | | | | | | | | | | | | No idea if it actually works as advertised. Probably not ;) Returns a json representation of an hb_image_t with the data encoded in base64. Also, fix a bug in hb_set_anamorphic_size_json that probably would have cause it to just fail. And fix a couple of memory leaks. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6609 b64f7644-9d1e-0410-96f1-a4d463321fa5
* json: add json APIsjstebbins2014-12-161-0/+1186
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