summaryrefslogtreecommitdiffstats
path: root/libhb/decomb.c
Commit message (Collapse)AuthorAgeFilesLines
* Misc. typosluz.paz2018-02-201-1/+1
| | | Found via `codespell -q 3 --skip="./gtk/po`
* Update copyright dates to 2018.Bradley Sepos2018-01-011-1/+1
|
* decomb: add an additional null check to avoid a crash if the filter receive ↵Damiano Galassi2017-08-071-3/+6
| | | | the EOF flag before reciving a valid frame.
* Update copyright dates to 2017.Bradley Sepos2017-01-011-1/+1
|
* decomb: split comb detection out into it's own filterJohn Stebbins2016-03-111-1562/+174
|
* filters: make job filter settings an hb_dict_tJohn Stebbins2016-03-091-41/+74
| | | | | | This simplifies accessing and changing filter parameters programatically. It also changes the custom filter string format to a ':' separated list of key/value pairs.
* decomb: fix decomb checkJohn Stebbins2016-02-161-2/+1
| | | | Only the last segment's results were being checked!
* 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-1/+0
| | | | | | | | | | | | | 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.
* libhb: add hb_buffer_listJohn Stebbins2015-09-241-19/+14
| | | | | This brings together several independent implementations of a simple buffer list manager.
* libhb: remove unused hb_buffer_t.subJohn Stebbins2015-09-041-3/+0
|
* libhb: fix green bottom line in preview with deinterlacejstebbins2015-06-031-0/+1
| | | | | | ... and "fast" deinterlace git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7267 b64f7644-9d1e-0410-96f1-a4d463321fa5
* decomb: fix color distortion in last row of imagejstebbins2015-06-011-3/+28
| | | | | | Prevent blending uninitialized lines of data into last row. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7261 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Use a buffer flat to indicate EOFjstebbins2015-05-011-1/+1
| | | | | | | | | | | | ... instead of a 0 length buffer. This fixes this issue: https://forum.handbrake.fr/viewtopic.php?f=12&t=31959 Theora can create 0 length output. These 0 length frames indicate duplicate frames. So we can't use 0 length buffers to indicate the end of the stream. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@7143 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Eliminate global variable hb_gui_use_hwd_flagjstebbins2015-03-291-0/+2
| | | | | | | | | | | | 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
* decomb: oops, fix overread when height is mod 4jstebbins2015-03-161-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6994 b64f7644-9d1e-0410-96f1-a4d463321fa5
* decomb: fix green line when source hight is modulus 2jstebbins2015-03-141-4/+4
| | | | | | | | | decomb requires mod 4 height. we pad our frame buffer heights to allow for this kind of thing, but need to allow decomb to operate on those extra blank lines. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6989 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: add json APIsjstebbins2014-12-161-19/+23
| | | | | | | | | | 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
* Update some copyright dates to 2014.Rodeo2014-02-181-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6042 b64f7644-9d1e-0410-96f1-a4d463321fa5
* remove contrib mpeg2decjstebbins2014-01-131-1/+0
| | | | | | | | We no longer need mpeg2dec. libav now has all the features we need for mpeg2 decoding. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5966 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix green line in deinterlace preview and fast deinterlacejstebbins2013-12-291-2/+2
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5947 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: remove use of avpicture_deinterlacejstebbins2013-12-021-81/+137
| | | | | | | | This function is being remove from libav. so replace it's functionality with a threaded implementation of our own. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5911 b64f7644-9d1e-0410-96f1-a4d463321fa5
* decomb: don't use frame flags to modify deinterlace behaviorjstebbins2013-11-051-15/+5
| | | | | | | | | They are not a reliable indicator that the frame is truly progressive. Also, fix mask mode. It generated nothing but black frames. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5875 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: remove mcdeint deinterlacerjstebbins2013-09-031-55/+5
| | | | | | | | It's slow and it's quality isn't perticularly impressive... and it relies on the snow encoder which no longer exists in libav. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5766 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated all the copyright headers to 2013.sr552013-03-091-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5318 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix eedi2 crash in decombjstebbins2012-11-301-1/+0
| | | | | | | | | When converting to using tasksets, I missed a free(thread_args_v) that needed to be removed. So we freed a bad pointer when the eedi2 thread closed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5087 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix a collection of small memory leaksjstebbins2012-09-131-0/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4963 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix potential invalid memory access in decomb (again)jstebbins2012-09-121-6/+15
| | | | | | | | I missed a spot where an even wider left/right margin is needed. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4961 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix potential invalid memory access in decombjstebbins2012-09-121-50/+44
| | | | | | | | | YADIF_CHECK in MODE_CUBIC touches pixels -3 and +3 from the current position. We had a conditional to bypass this check if we were 2 away from left or right edges which was insuffecient for this mode. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4960 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: learn to spell "dilate"jstebbins2012-09-111-1/+1
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4957 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix logs for decomb threadsjstebbins2012-09-111-3/+3
| | | | | | | | Several threads used the exact same log message when starting which is confusing. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4956 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Fix error when setting timestamps for bobbed frames in decombjstebbins2012-09-111-14/+6
| | | | | | | | is_combed flag was not getting updated, so the timestamp recalculation was skipped even though 2 frames were output. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4951 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: decomb and deinterlace improvementsjstebbins2012-08-271-1020/+1277
| | | | | | | | | | | | | | | | | | Use hb_buffer_t for reference buffers. This is what eliminates extra buffer copies. Simplified a lot of the code. This resulted in some minor speed improvements and easier to read code. Allow mcdeint+bob. Previously these could not be used together. Thread the erode-dilate-erode-check steps in decomb3. More speed improvement. Speed of default decomb went from 62fps to 76fps. Speed of fast decomb went from 90fps to 95fps. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4919 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix comb detection crash and decomb crashjstebbins2012-07-061-9/+8
| | | | | | | | | | | | | hb_detect_comb() could crash because the dimensions of the video buffer don't have to match the dimensions returned by work object info() method if the video has segments of differeing resolutions. decomb was allocating reference buffers that were too small. This bug appears to have always existed but doesn't usually get triggered because malloc usually rounds allocation sizes up. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4812 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: fix deinterlace fast problem with sources that have <mod8 alignmentjstebbins2012-06-251-19/+26
| | | | | | | | | | avpicture_deinterlace requires that both width and height of the input be 8 pixel aligned. Video buffers already have padding to align horizontally to 16 pixels, but they were not padded vertically. This adds vertical padding. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4776 b64f7644-9d1e-0410-96f1-a4d463321fa5
* last "fix" was flawed. try again :(jstebbins2012-06-221-3/+3
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4771 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fix second crash in denoisejstebbins2012-06-221-2/+2
| | | | | | | | Problem is actually in decomb. It was chaning the resolution of the image :O git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4768 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Updated file copyright / GPL headerssr552012-06-151-3/+5
| | | | git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4737 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: tasksets API provided by scsiguyjstebbins2012-05-171-282/+107
| | | | | | | | | | This is an easier to use API for launching multithreaded tasks. And it is more portable since it does not rely on undefined/implementation specific behavior of POSIX mutexes. That is, the ability for one thread to unlock a mutex owned by another thread. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4685 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: Fix problem with positions of burned-in subsjstebbins2012-05-051-1/+0
| | | | | | | | | | | | | | | | | When cropping and/or scaling, the position of burned-in SSA subs was broken. Also, when scaling, the position of all other burned-in subs was broken. Part of this fix is to revert a bit of filter initialization changes that were made in this commit https://trac.handbrake.fr/changeset/4605 The other part of the fix is to add cropping parameters to the initialization of the subtitle rendering filter. This filter needs the *original* title dimensions and the crop values in order to compute the positions properly. The changes that I am reverting gave it the scaled job dimensions and the crop values. This was wrong in so many ways it's embarassing :p git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4642 b64f7644-9d1e-0410-96f1-a4d463321fa5
* don't do combing check twice per frame when bobbingjstebbins2012-05-011-1/+13
| | | | | | | and fix saving bob setting in LinGui presets git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4626 b64f7644-9d1e-0410-96f1-a4d463321fa5
* libhb: bob deinterlacingjstebbins2012-05-011-80/+107
| | | | | | | | This is jbrjake's patch for bob deinterlacing applied to decomb and deinterlace filters. Thanks to yeasah's for refinements and testing of this patch. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4625 b64f7644-9d1e-0410-96f1-a4d463321fa5
* PGS (bluray) subtitle support \o/jstebbins2012-04-261-0/+1
| | | | | | | | | | | | Thanks to patches supplied by David Mitchell and Rob McMullen we finally have PGS support. I added a fix for libav pgs timestamp processing and detection of forced subtitles to their work, then made foreign audio search work with PGS subs. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4605 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Rework filter pipelinejstebbins2012-03-271-85/+73
| | | | | | | | | | | | | | | | | | | | This patch enhances the filter objects. The 2 key improvements are: 1. A filter can change the image dimensions as frames pass through it. 2. A filter can output more than one frame. In addition, I have: Moved cropping & scalling into a filter object Added 90 degree rotation to the rotate filter Moved subtitle burn-in rendering to a filter object. Moved VFR/CFR handling into a framerate shaping filter object. Removed render.c since all it's responsibilities got moved to filters. Improves VOBSUB and SSA subtitle handling. Allows subtitle animations. SSA karaoke support. My apologies in advance if anything breaks ;) git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4546 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
* Extract common mcdeint code from decomb/deintjstebbins2011-09-261-198/+14
| | | | | | | | 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
* libhb: Enable multi-threaded decode in ffmpegjstebbins2011-06-081-1/+1
| | | | | | | | Enable both slice and frame based mutli-threaded decode in ffmpeg. Uses cpu_count/2 + 1 threads. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4034 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Faster combing detection through slightly less stupid use of pointers. Also ↵jbrjake2009-12-081-68/+61
| | | | | | realigns boundary points for the combing mask checker to match what the code actually does. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3015 b64f7644-9d1e-0410-96f1-a4d463321fa5
* Fixes a missing and misplace option in decomb's comments and in-line CLI ↵jbrjake2009-11-231-1/+1
| | | | | | help. Thanks, Rodeo\! git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2956 b64f7644-9d1e-0410-96f1-a4d463321fa5