Anton Khirnov
565e4993c6
lavfi: merge start_frame/draw_slice/end_frame
Any alleged performance benefits gained from the split are purely
mythological and do not justify added code complexity.
12 years ago
Mark Himsley
13c6252536
lavfi/overlay: enable yuva420p as overlay background
Same calculation as for RGBA etc to create unpremultiplied output.
Useful for creating an intermediate "Mix/Effects bank", in vision mixer
(switcher) terminology.
Example command:
ffmpeg -i input.mov -vf
"[in]scale=iw:ih:interl=1,format=yuv420p[bg];movie=BBC_blocks_watermark.png,scale=iw:ih:interl=1,format=yuva420p[dog];movie=Kickabout_strap.mov,scale=iw:ih:interl=1,format=yuva420p[strap];[strap][dog]overlay=0:0[me1];[bg][me1]overlay=0:0,scale=0:0:interl=1[out]"
-b:v 3M -an output.mov
Fix trac ticket #549 .
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
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
Anton Khirnov
59ee9f78b0
lavfi: do not use av_pix_fmt_descriptors directly.
12 years ago
Mans Rullgard
568c70e79e
lavfi: convert input/ouput list compound literals to named objects
A number of compilers, for example those from TI and IBM, choke on
these initialisers. The current style is also quite ugly.
Signed-off-by: Mans Rullgard <mans@mansr.com>
13 years ago
Anton Khirnov
716d413c13
Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat
12 years ago
Anton Khirnov
4673a5a761
vf_overlay: properly sync inputs.
Right now it incorrectly assumes that the frames are sent in the proper
order, which worked with old ffmpeg and avconv versions by accident.
12 years ago
Anton Khirnov
ab35ec29a4
vf_overlay: get rid of pointless messing with timebase.
Output frames correspond 1:1 to input frames on the main input.
So use the main input timebase for output.
12 years ago
Nicolas George
52820bc578
lavfi/overlay: fix return values.
They were only roughly adapted when error return was
added to the push functions.
12 years ago
Stefano Sabatini
42d621d131
lavfi: add priv class to filter definitions and flags to filter internal options
This allows the iteration callbacks to discover the internal class and
options, and show them when required.
12 years ago
Nicolas George
616c3f3ee2
vf_overlay: fix permissions.
12 years ago
Martin Storsjö
1d9c2dc89a
Don't include common.h from avutil.h
Signed-off-by: Martin Storsjö <martin@martin.st>
12 years ago
Clément Bœsch
ad55244c96
lavfi/overlay: remove dead initialization.
12 years ago
Anton Khirnov
f431315a86
vf_overlay: ensure the overlay frame does not get leaked.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years ago
Michael Niedermayer
08fc1ad151
vf_overlay: prevent premature freeing of cur_buf
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
13 years ago
Michael Niedermayer
67a304985e
vf_overlay: fix missed return
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Nicolas George
9c1d649ce5
overlay: clear cur_buf on main input link.
A reference is kept in the queue and freed after use.
13 years ago
Anton Khirnov
1dc4205018
lavfi: check all avfilter_ref_buffer() calls for errors.
13 years ago
Anton Khirnov
02ac7311c8
lavfi: use avfilter_unref_bufferp() where appropriate.
13 years ago
Anton Khirnov
d4f89906e3
lavfi: add error handling to end_frame().
13 years ago
Anton Khirnov
e9b992d035
lavfi: add error handling to draw_slice().
13 years ago
Anton Khirnov
ebc8d97481
lavfi: add error handling to start_frame().
13 years ago
Ronald S. Bultje
3db407038e
lavfi: use const for AVFilterPad declarations in all filters.
13 years ago
Michael Niedermayer
f7e0c18549
vf_overlay: prevent premature freeing of cur_buf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Michael Niedermayer
0ecaa447f6
vf_overlay: use unref_bufferP()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Anton Khirnov
07bad27810
lavfi: unref AVFilterLink.cur_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
13 years ago
Anton Khirnov
ad8b6326aa
vf_overlay: don't access a buffer reference that's been given away.
13 years ago
Anton Khirnov
1a49a169eb
lavfi: make filters less verbose.
13 years ago
Anton Khirnov
a5e8c41c28
lavfi: remove 'opaque' parameter from AVFilter.init()
It is not used in any filters currently and is inherently evil. If
passing binary data to filters is required in the future, it should be
done with some AVOptions-based system.
13 years ago
Stefano Sabatini
c17808cebd
lavfi: define macro AVFILTER_DEFINE_CLASS
The macro can be used to define consistently the internal class of a
filter, save some typing and factorize.
13 years ago
Paul B Mahol
54101214d8
lavfi: use designated initializers for AVClass
While here:
- add missing .version and .category,
- make .class_name consistent across filters,
- align declarations.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
13 years ago
Anton Khirnov
6d58358a3a
lavfi: make avfilter_get_video_buffer() private on next bump.
They are only useful inside filters and we don't allow user filters for
now.
13 years ago
Anton Khirnov
803391f719
lavfi: remove request/poll and drawing functions from public API on next bump
They are only useful inside filters and we don't allow user filters for
now.
13 years ago
Anton Khirnov
b74a1da49d
lavfi: make formats API private on next bump.
It is only useful inside filters and we don't allow user filters for
now.
13 years ago
Stefano Sabatini
0f0f3bd1e0
lavfi: use av_default_item_name() as filter private context logger
avfilter_default_filter_name() is supposed to access an AVFilterContext
struct, if used with a private struct it will cause a crash since it will
access fields which are non defined in the private struct.
13 years ago
Stefano Sabatini
4d6a8a2bdb
lavfi: add avfilter_default_filter_name()
The function is modelled after av_default_item_name(), and will print the
name of the instance filter if defined, otherwise the name of the filter.
This allows to show the instance name in the log, which is useful when
debugging complex filter graphs.
13 years ago
Nicolas George
06bf6d3bc0
vf_overlay: rewrite request/push logic.
The old implementation, upon receiving a frame on the main
input, would request an overlay frame if necessary. This could
generate an infinite recursion, off-by-one frame mismatch and
other harmful effects, especially it the split filter is present
upgraph.
The new implementation uses the linear approach: it uses two
buffer queues for frames received out of turn and forwards
request_frame calls to the input where a frame is necessary.
13 years ago
Anton Khirnov
e36b25d1df
vf_overlay: implement poll_frame()
Signal that it can output a frame when there are frames on the main
input and EOF on the overlay input, but a frame is buffered -- e.g.
single picture overlay.
13 years ago
Alex Converse
b0f29db5c2
Mark mutable static data const where appropriate.
13 years ago
Stefano Sabatini
7bdefc0f12
lavfi/overlay: add logic for avoiding overlaying frames with PTS > main frame PTS
Also add debug logging messages for helping tracking down similar
issues.
Fix trac ticket #467 .
13 years ago
Nicolas George
bbf372e145
overlay: do not leak x/y expressions.
13 years ago
Reimar Döffinger
5af7daabc4
Mark AVFilterPad[] compound literals as const.
GCC 4.6.2 at least still seems to fail to put them in .rodata though,
see also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37303
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
13 years ago
Reimar Döffinger
6f6ab1d9f3
Make another PixelFormat list const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
13 years ago
Reimar Döffinger
d78473334e
Add const to static arrays where it was forgotten.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
13 years ago
Stefano Sabatini
0b3e9d5dc6
vf_overlay: adopts FAST_DIV255 macro for calculating destination alpha
Ease readability, improve exactness.
13 years ago
Stefano Sabatini
2f7c8aefa8
vf_overlay: add support to alpha pre-multiplication in the RGBA path
Based on the work of Mark Himsley <mark@mdsh.com>.
See thread:
Subject: [FFmpeg-devel] libavfilter: extending overlay filter
Date: Sun, 13 Mar 2011 14:18:42 +0000
13 years ago
Stefano Sabatini
3013bfa81e
vf_overlay: enable RGB path
Add option rgb which forces the RGB path.
13 years ago
Stefano Sabatini
b54c0a552d
vf_overlay: use opt.h API for setting options
Extend syntax, allow to easily add more options later.
13 years ago
Nicolas George
8c88d734a5
vf_overlay: remove mathematical constants now redundant.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
13 years ago
Mans Rullgard
0ebcdf5cda
Do not include mathematics.h in avutil.h
Signed-off-by: Mans Rullgard <mans@mansr.com>
14 years ago