aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/tinterlace.h
Commit message (Collapse)AuthorAgeFilesLines
* avfilter/ccfifo: remove unnecessary context allocationsJames Almer2023-05-121-1/+1
| | | | | | | This is not public API, no it has no need for an alloc() and free() functions. The struct can reside on stack. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/tinterlace: Properly preserve CEA-708 closed captionsDevin Heitmueller2023-05-111-0/+2
| | | | | | | | | | | | | | | Because the interlacing filter halves the effective framerate, we need to ensure that no CEA-708 data is lost as frames are merged. Make use of the new ccfifo mechanism to ensure that caption data is properly preserved as frames pass through the filter. Thanks to Thomas Mundt for review and noticing a couple of missed codepaths for injection on output. Thanks to Lance Wang for pointing out a memory leak. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_tinterlace: support full-range YUVNiklas Haas2022-12-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | This filter, when used in the "pad" mode, currently makes the distinction between limited and full range solely by testing for YUVJ pixel formats at link setup time. This is deprecated and should be improved to perform the detection based on the per-frame metadata. In order to make this distinction based on color range metadata, which is only known at the time of filtering frames, for simplicity, we simply allocate two copies of the "black" frame - one for limited range and the other for full range metadata. This could be done more dynamically (e.g. as-needed or simply by blitting the appropriate pixel value directly), but this change is relatively simple and preserves the structure of the existing code. This commit actually fixes a bug in FATE - the new output is correct for the first time. The previous md5 ref was of a frame that incorrectly combined full-range pixel data with limited-range black fields. The corresponding result has been updated. Signed-off-by: Niklas Haas <git@haasn.dev>
* avfilter/vf_tinterlace: use frame counter from lavfiPaul B Mahol2020-07-171-1/+0
| | | | Remove internal counter.
* avfilter/vf_tinterlace: add support for bypassing already interlaced framesMarton Balint2019-12-151-0/+1
| | | | | | The old interlace filter worked this way before it was merged with tinterlace. Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/vf_interlace: restore lowpass mode constantsMarton Balint2019-12-141-0/+7
| | | | | | | | The documentation still mentions numerical constants in addition to textual ones. It is also wrong to use distinct modes as flags and it disallows us to actually use the flags field for real flags in the future. Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/vf_interlace: fix numerical optionsThomas Mundt2018-09-071-2/+7
| | | | | | Regression since 9c01cdb94e24aaf50f867a0a5c42b097c17c42b1 Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
* avfilter/interlace: add support for 10 and 12 bitThomas Mundt2017-09-231-1/+4
| | | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Thomas Mundt <tmundt75@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/tinterlace: use drawutils for pad modeThomas Mundt2017-09-231-0/+3
| | | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Thomas Mundt <tmundt75@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter: don't anonymously typedef structsPaul B Mahol2017-05-131-1/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter/interlace: add complex vertical low-pass filterThomas Mundt2017-05-021-0/+4
| | | | | | | This complex (-1 2 6 2 -1) filter slightly less reduces interlace 'twitter' but better retain detail and subjective sharpness impression compared to the linear (1 2 1) filter. Signed-off-by: Thomas Mundt <tmundt75@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/interlace: change lowpass_line function prototypeThomas Mundt2017-04-221-1/+1
| | | | | Signed-off-by: Thomas Mundt <tmundt75@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vf_tinterlace: add mergex2 modePaul B Mahol2015-10-031-0/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter/tinterlace: Change enum to int, which is accessed via AVOption as intMichael Niedermayer2015-03-301-1/+1
| | | | | | This fixes depending on implementation defined behavior Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/vf_tinterlace: Favor using standard timebases for the outputMichael Niedermayer2014-12-021-0/+1
| | | | | | Reported-by: Vittorio Giovara <vittorio.giovara@gmail.com> Inspired by discussion with Kieran Kunhya <kierank@obe.tv> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/tinterlace: add Support for ff_lowpass_line_avx() & ↵Michael Niedermayer2014-11-151-0/+2
| | | | | | | | ff_lowpass_line_sse2() Based-on: 2e1704059ae8625beda2ffde847ad22c5ba416dc by Kieran Kunhya Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/tinterlace: Move lowpass_line to a separate function and call it ↵Michael Niedermayer2014-11-151-0/+2
| | | | | | | | | through a function pointer This permits replacing it by a optimized implementation Based-on / Idea-from: 2e1704059ae8625beda2ffde847ad22c5ba416dc by Kieran Kunhya Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* avfilter/tinterlace: split context definition into seperate header so it can ↵Michael Niedermayer2014-11-151-0/+56
be used by future optimizations Idea from 2e1704059ae8625beda2ffde847ad22c5ba416dc from Kieran Kunhya Signed-off-by: Michael Niedermayer <michaelni@gmx.at>