Michael Niedermayer
ac3f6429ba
vfilter/vf_tinterlace: Fix issues with linesize and cols
Based on patch by Vittorio Giovara <vittorio.giovara@gmail.com> from 696141e898
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
59f1f764d6
avfilter/vf_tinterlace: Favor using standard timebases for the output
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>
10 years ago
Michael Niedermayer
08ee02deca
avfilter/vf_tinterlace: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
fb3eb57369
avfilter/tinterlace: add Support for ff_lowpass_line_avx() & ff_lowpass_line_sse2()
Based-on: 2e1704059a
by Kieran Kunhya
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
18b46ecc93
avfilter/tinterlace: Move lowpass_line to a separate function and call it through a function pointer
This permits replacing it by a optimized implementation
Based-on / Idea-from: 2e1704059a
by Kieran Kunhya
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
9d548fce24
avfilter/tinterlace: split context definition into seperate header so it can be used by future optimizations
Idea from 2e1704059a
from Kieran Kunhya
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
f043965cd5
avfilter/vf_tinterlace: fix linesize vs. width
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
05e0ea6050
avfilter/vf_tinterlace: Fix output top field first flag for MODE_INTERLACEX2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Aleksey Vasenev
8349001638
avfilter/vf_tinterlace: fix frame rate
Signed-off-by: Aleksey Vasenev <margtu-fivt@ya.ru>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Reimar Döffinger
c9a4ec7969
lavfi: add const/static const to pix_fmts arrays.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
10 years ago
Jasper Taylor
0d5ae023b2
avfilter/vf_tinterlace: Fix vf_tinterlace mode 6 (interlacex2)
The purpose of this filter mode is to allow interlaced content to
display properly in interlaced video modes, as described in
http://forum.xbmc.org/showthread.php?tid=81834 and
https://github.com/mpv-player/mpv/issues/624#issuecomment-37685195 . The
filter doubles the video frame rate, but does not work properly because:
(1) it does not set the properties of the output stream to indicate the
doubled frame rate, and
(2) it does not set an appropriate PTS on the extra frames.
The attached patch fixes these problems by settling these values the
same way they are set in vf_yadif mode 1 (field) which also doubles the
frame rate.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
6a71efff33
avfilter/vf_tinterlace: check clone return value
Inspired by: 3a16ec19d2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Paul B Mahol
8ac0eb2cd7
avfilter/vf_tinterlace: add yuv411p, yuv440p, yuva422p and yuva444p
Signed-off-by: Paul B Mahol <onemda@gmail.com>
11 years ago
Paul B Mahol
b211607b5c
avfilter: various cosmetics
Signed-off-by: Paul B Mahol <onemda@gmail.com>
11 years ago
Paul B Mahol
4f8e4b8a54
lavfi/tinterlace: remove request frame hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
12 years ago
Clément Bœsch
50e66726a2
lavfi: use ceil right shift for chroma width/height.
This should fix several issues with odd dimensions inputs.
lut, vflip, pad and crop video filters also need to be checked for such
issues. It's possible sws is also affected.
12 years ago
Clément Bœsch
570d63eef3
lavu: add FF_CEIL_RSHIFT and use it in various places.
12 years ago
Michael Niedermayer
e92862e75f
avfilter/vf_tinterlace: fix handling of not so even sizes
Fixes green bottom line
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Clément Bœsch
c85f56bb4f
lavfi/tinterlace: switch to an AVOptions-based system.
12 years ago
Paul B Mahol
ed8373e7db
lavfi: always check return value of ff_get_{audio,video}_buffer()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
12 years ago
Clément Bœsch
cbf224b631
lavfi/tinterlace: use standard options parsing.
12 years ago
Michael Niedermayer
e797f22efa
vf_tinterlace: fix logical/bit op mixup
Fixes CID966642
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Michael Niedermayer
b84871b8eb
vf_tinterlace: dont mix declarations and expressions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Mark Himsley
8997a0fa79
lavfi/tinterlace: add low-pass-filter for top/bottom interleave modes
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
12 years ago
Michael Niedermayer
b11a889055
vf_tinterlace: default of mode switch is impossible, add assert.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Stefano Sabatini
da9a45b681
lavfi/tinterlace: drop redundant NULL checks in uninit()
12 years ago
Stefano Sabatini
c6a216771f
lavfi/tinterlace: add support to option parsing
Simplify code, and provide introspection through the AVOption system.
12 years ago
Stefano Sabatini
fef7b2e0be
lavfi/tinterlace: switch to filter_frame API
Also add missing NULL checks.
12 years ago
Clément Bœsch
2d9d444051
lavfi: convert remaining input/output list compound literals to named objects.
This is following 568c70e79e
.
12 years ago
Michael Niedermayer
ac2a3a7a05
vf_tinterlace: check av_image_get_linesize() return value
Fixes CID703717
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Stefano Sabatini
b420b87848
lavfi/tinterlace: remove poll_frame() callback
That interface is deprecated, and apparently useless.
12 years ago
Hendrik Leppkes
79393a8363
Replace usage of the deprecated av_pix_fmt_descriptors array with av_pix_fmt_desc_get
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Stefano Sabatini
9a2daef53f
lavfi/tinterlace: declare source buffers in copy_picture_field() as const
Increase performance (slightly).
12 years ago
Stefano Sabatini
fd5293d216
lavfi/tinterlace: set inlink->cur to NULL, since it is stored internally
If not set to NULL, the reference is freed by ff_end_frame(), and later
accessed in end_frame() by the filter code, causing a crash.
12 years ago
Nicolas George
71adb74059
vf_tinterlace: leave harmless permissions alone.
12 years ago
Stefano Sabatini
fda968aa8f
lavfi: decrease logging level of message showing initial parameters
Reduce log clutter, consistent with 1a49a169eb
.
13 years ago
Michael Niedermayer
e145afb4b0
vf_tinterlace: use av_assert
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Stefano Sabatini
abb0a9982f
lavfi: do not pass opaque field to init functions
Fix signature mismatch warnings.
13 years ago
Paul B Mahol
c9e183b490
lavfi: update some deprecated functions
Signed-off-by: Paul B Mahol <onemda@gmail.com>
13 years ago
Stefano Sabatini
5f161c2357
lavfi/tinterlace: support symbolic names for the parameter
Also deprecate the use of numerical values.
13 years ago
Stefano Sabatini
837d034787
lavfi/tinterlace: make video as interlaced in mode 6
This is useful for marking progressive video processed by the filter as
interlaced, avoiding the interlaced flag to switch back and forth at each
frame.
13 years ago
Stuart Morris
820c023142
lavfi/tinterlace: add tinterlace mode 6
This new mode is useful for generating frames for interlaced video
displays. Typically interlaced video displays have no form of field
synchronisation. This new mode guarantees correct field order without
any requirement for field synchronisation.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
13 years ago
Stefano Sabatini
18c6bd098b
lavfi/tinterlace: remove unnecessary NULL check in start_frame()
13 years ago
Stefano Sabatini
cf9f7e40cc
lavfi/tinterlace: use avfilter_unref_bufferp()
13 years ago
Stefano Sabatini
a853e88af2
lavfi/tinterlace: fix doxy in copy_picture_field()
13 years ago
Stefano Sabatini
42a8ac94d9
vf_tinterlace: implement interlace mode 5
Allow creating interlaced bottom field first video.
13 years ago
Stefano Sabatini
8fb03b4d70
lavfi: port tinterlace filter from MPlayer
Port MPlayer tinterlace filter from MPlayer, with some ideas taken
from the FFmbc/libavfilter port, with the following main differences:
* added support for full-scale YUVJ formats
* added support for YUVA420P
* request_frame() on the filter is forced to return a frame
* some code factorization (related to the copy_picture_fields() function)
* fixed black padding values for mode 3
14 years ago