Issue an error and return a more meaningful error code in case the
maximum number of registered filters has been reached.
This is better than silently ignore the error, improve feedback.
* qatar/master:
vp6: Fix illegal read.
avfilter: Don't copy garbage from the stack when setting up video pictures.
avcodec: Make sure codec_type is set by avcodec_get_context_defaults2
avcodec: Remove a misplaced and useless attribute_deprecated
avconv: add -dump_attachment option.
avconv: add -attach option.
avconv: make negative mappings disable only streams from the specified file
fmtconvert: fix int32_to_float_fmul_scalar() for windows x86_64
Conflicts:
libavcodec/options.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
All current usages of it are incompatible with localization.
For example strcasecmp("i", "I") != 0 is possible, but would
break many of the places where it is used.
Instead use our own implementations that always treat the data
as ASCII.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* qatar/master: (44 commits)
replacement Indeo 3 decoder
gsm demuxer: do not allocate packet twice.
flvenc: use first packet delay as global delay.
ac3enc: doxygen update.
imc: return error codes instead of 0 for error conditions.
imc: return meaningful error codes instead of -1
imc: do not set channel layout for stereo
imc: validate channel count
imc: check for ff_fft_init() failure
imc: check output buffer size before decoding
imc: use DSPContext.bswap16_buf() to byte-swap packet data
rtsp: add allowed_media_types option
libgsm: add flush function to reset the decoder state when seeking
libgsm: simplify decoding by using a loop
gsm: log error message when packet is too small
libgsmdec: do not needlessly set *data_size to 0
gsmdec: do not needlessly set *data_size to 0
gsmdec: add flush function to reset the decoder state when seeking
libgsmdec: check output buffer size before decoding
gsmdec: log error message when output buffer is too small.
...
Conflicts:
Changelog
ffplay.c
libavcodec/indeo3.c
libavcodec/mjpeg_parser.c
libavcodec/vp3.c
libavformat/cutils.c
libavformat/id3v2.c
libavutil/parseutils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Current implementation fades to 0. This implementation fades to 16 for
YUV formats that contain CCIR601/709 video levels. RGB and YUVJ
formats are not altered.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
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
Without this patch each displayed second is incremented 1 frame early,
second 0 is only 24 frames long where as every other second is 25 frames
long.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Factorize code, extend the functionality of the filter, and make it
return empty buffers. This is useful for filters which ignore the input
frames content.
This is also changing the syntax of the nullsrc source, and dropping the
framerate expression evaluation, which does not look particularly useful.
* qatar/master:
presets: rename presets directory
lavc: make avcodec_get_context_defaults3 "officially" public
lavf: replace av_new_stream->avformat_new_stream part II.
lavf,lavd: replace av_new_stream->avformat_new_stream part I.
lavf: add avformat_new_stream as a replacement for av_new_stream.
Use correct scaling table for bwd-pred MVs in second B-field
Ut Video decoder
Makefile: change presets extension to .avpreset
lavfi: add rgbtestsrc source, ported from MPlayer libmpcodecs
lavfi: add testsrc source
AVOptions: add documentation.
presets: update libx264 ffpresets
Conflicts:
Changelog
doc/APIchanges
doc/ffmpeg.texi
ffpresets/libx264-ipod320.ffpreset
ffpresets/libx264-ipod640.ffpreset
ffserver.c
libavcodec/avcodec.h
libavcodec/options.c
libavcodec/version.h
libavdevice/libdc1394.c
libavfilter/avfilter.h
libavfilter/vsrc_testsrc.c
libavformat/flvdec.c
libavformat/riff.c
libavformat/version.h
libavformat/wtv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The licence was changed from GPL to LGPL with explicit approval from
the original author.
See thread:
Subject: [FFmpeg-devel] [PATCH] lavfi: add rgbtestsrc source,
ported from MPlayer libmpcodecs
Date: Mon, 11 Jul 2011 16:32:41 +0200
Signed-off-by: Anton Khirnov <anton@khirnov.net>
The function strtok_r() is part of the POSIX.1 specification, but is not
available on some platforms. We provide an internal implementation, so we
do not need to rely on a platform implementation.
* qatar/master:
avconv: add presets
rtsp: Expose the flag options via private AVOptions for sdp and rtp, too
rtsp: Make the rtsp flags avoptions set via a define
rtpenc: Set a default video codec
avoptions: Fix av_opt_flag_is_set
rtp: Fix ff_rtp_get_payload_type
doc: Update the documentation on setting options for RTSP
rtsp: Remove the separate filter_source variable
rtsp: Accept options via private avoptions instead of URL options
rtsp: Simplify AVOption definitions
rtsp: Merge the AVOption lists
lavfi: port libmpcodecs delogo filter
lavfi: port boxblur filter from libmpcodecs
lavfi: add negate filter
lavfi: add LUT (LookUp Table) generic filters
AVOptions: don't segfault on NULL parameter in av_set_options_string()
avio: Check for invalid buffer length.
mpegenc/mpegtsenc: add muxrate private options.
lavf: deprecate AVFormatContext.file_size
mov: add support for TV metadata atoms tves, tvsn and stik
Conflicts:
Changelog
doc/filters.texi
doc/protocols.texi
libavfilter/Makefile
libavfilter/allfilters.c
libavfilter/avfilter.h
libavfilter/formats.c
libavfilter/internal.h
libavfilter/vf_boxblur.c
libavfilter/vf_delogo.c
libavfilter/vf_lut.c
libavformat/mpegtsenc.c
libavformat/utils.c
libavformat/version.h
libavutil/opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
With the following additions:
* support to gray format
* support to yuva420p format
* parametric luma/chroma/alpha radius
* consistency check on the radius values, avoid crashes with invalid values
Signed-off-by: Anton Khirnov <anton@khirnov.net>
In particular: set output timebase to 1/output_sample_rate, fix output
PTS computation, and do not forget to copy properties values from the
input buffer.
In apply_unsharp(), when y is >= height, prevent out-of-buffer reading
from src, read from the last buffer line in src2 instead.
The check was implemented in the original unsharp libmpcodecs code and
lost in the port.
This also fixes output discrepancy between the two filters.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master: (23 commits)
avconv: Reformat s16 volume adjustment.
ARM: NEON optimised vector_fmac_scalar()
dca: use vector_fmac_scalar from dsputil
dsputil: add vector_fmac_scalar()
latmenc: Fix private options
vf_unsharp: store hsub/vsub in the filter context
vf_unsharp: adopt a more natural order of params in apply_unsharp()
vf_unsharp: rename method "unsharpen" to "apply_unsharp"
vf_scale: apply the same transform to the aspect during init that is applied per frame
vf_pad: fix "vsub" variable value computation
vf_scale: add a "sar" variable
lavfi: fix realloc size computation in avfilter_add_format()
vsrc_color: use internal timebase
lavfi: fix signature for avfilter_graph_parse() and avfilter_graph_config()
graphparser: prefer void * over AVClass * for log contexts
avfiltergraph: use meaningful error codes
avconv: Initialize return value for codec copy path.
fate: use 'run' helper for seek-test
fate: remove seek-mpeg2reuse test
Fix memory (re)allocation in matroskadec.c, related to MSVR-11-0080.
...
Conflicts:
doc/filters.texi
libavfilter/avfilter.h
libavfilter/avfiltergraph.c
libavfilter/avfiltergraph.h
libavfilter/graphparser.c
libavfilter/vf_scale.c
libavfilter/vsrc_color.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This block was probably leftovers from code refactoring.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Replace sizeof((*avff)->formats)
with sizeof(*(*avff)->formats)
as the size of the array element is given by the pointed element
rather than by its pointer.
In particular fix computation with the pending patch when
sizeof(int64_t) != sizeof(int64_t *).
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Or in other word, do not go to the next line when the text cannot be
rendered within the frame.
The rationale is that wrapping is hard to manage, as it depends on the
position of the text, thus making hard/impossible to compute the size
occupied by the rendered text, and makes the filter behavior
unpredictible with moving text (implemented in a pending patch).
Also the current wrapping code is very limited (for example it splits
words in the middle), and correctly handling wrapping requires much
more complexity (alignment, gravity, word parsing etc.), while
drawtext is meant to be only a thin wrapper around libfreetype, so
such advanced features don't belong here.
drawbox() expects a color specified in RGBA format, while the code was
providing a color with the components specified in the same order of
the input pixel format.
In particular, fix box coloring with AXXX RGB formats.
(code from mplayer see their svn for detailed authorship)
parameters must be integers as we do not have mplayers parser
also the stuff passed to it through non constant globals is not supported
this should be fixed in mplayer first.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The new syntax is more extensible and more user-friendly.
This breaks the previous syntax, should not be an issue as possibly
no-one is already using anullsrc.
* qatar/master:
lavfi: add select filter
oggdec: fix out of bound write in the ogg demuxer
movenc: create an alternate group for each media type
lavd: add libcdio-paranoia input device for audio CD grabbing
rawdec: refactor private option for raw video demuxers
pcmdec: use unique classes for all pcm demuxers.
rawdec: g722 is always 1 channel/16kHz
Conflicts:
Changelog
configure
doc/filters.texi
libavdevice/avdevice.h
libavfilter/avfilter.h
libavfilter/vf_select.c
tests/ref/lavf/mov
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Behaviour has been changed to fail negotiation if fields have been
left empty.
Patch was originally based on a patch by Hemanth.
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Add aconvert filter to perform sample format, channel layout, and
packing format conversion.
The aconvert code depends on audio conversion code in libavcodec, so
this requires a dependency on libavcodec.
Based on previous work by S.N. Hemanth Meenakshisundaram and Mina Nagy
Zaki, performed for the GSoC 2010 and 2011.
This list is mainly useful to be directly used as a parameter by the
audio sink buffer, when there is no need to force a specific channel
layout.
The list of formats is generated programmatically, and avoids channel
layouts not supported by libavfilter (with more than 8 channels).
We preferred to avoid compile-time generation in order to avoid some
unnecessary complexity (build hacks, generating code maintainance
etc.).
A more compact way to express this list through the use of macros
should be possible when libavfilter will support more than 8 channels,
as there will be no need to filter out channel layouts with more than
8 channels.
See thread:
Subject: [FFmpeg-devel] [PATCH] lavfi: add ff_all_channel_layouts internal symbol
Date: Sat, 20 Aug 2011 15:33:16 +0200
A function name should tell what the function does rather than what
the function returns. This also avoids possible conflicts
(e.g. between a function and a public list of all supported formats),
and clarifies the code.
Breaks audio API/ABI, add a backward compatibility layer for video
API/ABI.
These changes were forgotten in commits:
lavfi: simplify signature for avfilter_get_audio_buffer() and friends
(commit 2c0317419b)
and
lavfi: consistently use int for sample_rate in AVFilterLink and AVFilterBufferRefAudioProps
(commit 4381bddc9f)
* qatar/master:
adpcm: split ADPCM encoders and decoders into separate files.
doc/avconv: fix typo.
rv34: check that subsequent slices have the same type as first one.
smacker demuxer: handle possible av_realloc() failure.
lavfi: add split filter from soc.
lavfi: add showinfo filter
libxavs: add private options corresponding to deprecated global options
Conflicts:
Changelog
libavcodec/adpcm.c
libavfilter/avfilter.h
libavfilter/vf_showinfo.c
libavfilter/vf_split.c
libavformat/smacker.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The additional parameters were never used and are complicating the
function interface. Also, they were inconsistent with the way the
video API works.
So this assumes that a requested samples buffer will have *always* the
format specified in the requested link.
This breaks audio filtering API and ABI.
It's a hack which was created to allow for multiple options with
different defaults to refer to same field (e.g. 'b' vs 'ab'). There is
no need for it anymore.
This is done in order to clarify the non-video-specific nature of the
buffersink code, as the result of the video/audio API unification of
the previous commit, and for improving overall consistency.
The new API is more generic (no distinction between audio/video for
pulling frames), and avoids code duplication.
A backward compatibility layer is kept for avoiding tools ABI breaks
(only for the video binary interface, audio interface was never used
in the tools).
* qatar/master:
fifo: add FIFO API test program, and fate test
fifo: add av_fifo_peek2(), and deprecate av_fifo_peek()
postprocess.c: filter name needs to be double 0 terminated
doxygen: fix wrong comment syntax, //< vs. ///<
doxygen: drop pointless star from pointer variable names
Replace deprecated av_find_stream_info() by avformat_find_stream_info().
xmv: eliminate superfluous zeroing of zero data
configure: fix typo in avconv dependency list
Conflicts:
configure
doc/APIchanges
libavutil/Makefile
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fix GCC warning:
asrc_abuffer.c: In function ‘init’:
asrc_abuffer.c:258: warning: passing argument 1 of ‘strtok_r’ discards qualifiers from pointer target type
In apply_unsharp(), when y is >= height, prevent out-of-buffer reading
from src, read from the last buffer line in src2 instead.
The check was implemented in the original unsharp libmpcodecs code and
lost in the port.
This also fixes output discrepancy between the two filters.
Allow to cache more than one frame (e.g. for filters which return
more than one frame when avfilter_request_frame() is called on them),
and do not discard previously cached frames when a new one is added.
The gradfun filter was already integrated natively in libavfilter.
Both filters issue the same output, and have a comparable performance.
See thread:
Subject: [FFmpeg-devel] [PATCH] lavfi: remove gradfun mp wrapper
Date: Fri, 5 Aug 2011 00:19:04 +0200
Previously both the buffer and buffersink elements were associated to
the "BUFFER" symbol in allfilters.c, so it was not possible to enable
one without the other.
void* pointer arithmetic semantics is undefined, use uint8_t* instead.
Also fix GCC warnings:
defaults.c: In function ‘set_common_formats’:
defaults.c:184: warning: pointer of type ‘void *’ used in arithmetic
defaults.c:189: warning: pointer of type ‘void *’ used in arithmetic
Update/extend documentation related to the link fields to set, and fix
a pads->filters braino.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Link properties have to be checked after config_props() is called to
make sure everything is sane, so the default config_props() for output
links was redundant.
Also remove channel_layout check as it is now negotiated.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Previously, "dar" and "a" were documented like "input display aspect
ratio", but their actual value was "in_w/in_h".
In order to avoid to break scripts which rely on the "a" variable, the
patch keeps the same semantics but fixes the corresponding docs, and
fixes the semantics of the recently added "dar" variable, which
now correctly expresses the input Display Aspect Ratio value as
"(inw_w/in_h)*sar".
avfilter_draw_slice() is already called in the end_frame() callback,
this avoids multiple calls. This is done by adding a null draw_slice()
callback.
In particular fix crash occurring with -vf transpose=3,hflip, fix trac
issue #371.
The licence was changed from GPL to LGPL with explicit approval from
the original author.
See thread:
Subject: [FFmpeg-devel] [PATCH] lavfi: add rgbtestsrc source,
ported from MPlayer libmpcodecs
Date: Mon, 11 Jul 2011 16:32:41 +0200
In particular creates a special test_init function, which calls a
common init, and introduces a fill_picture_fn which points to the
filling function.
This is required by the pending patch for adding the rgbtestsrc
source.
* qatar/master:
APIchanges: fill in missing hashes and dates.
Add an APIChanges entry and bump minor versions for recent changes.
ffmpeg: print the low bitrate warning after the codec is openend.
doxygen: Move function documentation into the macro generating the function.
doxygen: Make sure parameter names match between .c and .h files.
h264: move fill_decode_neighbors()/fill_decode_caches() to h264_mvpred.h
H.264: Add more x86 assembly for 10-bit H.264 predict functions
lavf: fix invalid reads in avformat_find_stream_info()
cmdutils: replace opt_default with opt_default2() and remove set_context_opts
ffmpeg: use new avcodec_open2 and avformat_find_stream_info API.
ffplay: use new avcodec_open2 and avformat_find_stream_info API.
cmdutils: store all codec options in one dict instead of video/audio/sub
ffmpeg: check experimental flag after codec is opened.
ffmpeg: do not set GLOBAL_HEADER flag in the options context
Conflicts:
cmdutils.c
doc/APIchanges
ffmpeg.c
ffplay.c
libavcodec/version.h
libavformat/version.h
libswscale/swscale_unscaled.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
With the following additions:
* support to gray format
* support to yuva420p format
* parametric luma/chroma/alpha radius
* consistency check on the radius values, avoid crashes with invalid values
* commit '142e76f1055de5dde44696e71a5f63f2cb11dedf':
swscale: fix crash with dithering due incorrect offset calculation.
matroskadec: fix stupid typo (!= -> ==)
build: remove duplicates from order-only directory prerequisite list
build: rework rules for things in the tools dir
configure: fix --cpu=host with gcc 4.6
ARM: use const macro to define constant data in asm
bitdepth: simplify FUNC/FUNCC macros
dsputil: remove ff_emulated_edge_mc macro used in one place
9/10-bit: simplify clipping macros
matroskadec: reindent
matroskadec: defer parsing of cues element until we seek.
lavc: add support for codec-specific defaults.
lavc: make avcodec_alloc_context3 officially public.
lavc: remove a half-working attempt at different defaults for audio/video codecs.
ac3dec: add a drc_scale private option
lavf: add avformat_find_stream_info()
lavc: introduce avcodec_open2() as a replacement for avcodec_open().
Conflicts:
Makefile
libavcodec/utils.c
libavformat/avformat.h
libswscale/swscale_internal.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Declaring tools associated with each library in their respective
makefiles allows these tools to easily depend on the correct
prerequisites and link against the libs they need.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Since avfilter_graph_parse() creates the "[in]" inout for the first
unlabelled input pad, it is expected that it will create an "[out]"
inout for last unlabelled output pad, even in the case where it cannot
find any open input pad with that name.
This change removes the check on the existence of an open input pad
named "out", so it simplifies the checked condition while implementing
a more intuitive behavior.
libavfilter/vf_drawtext.c:427:22: warning: variable 'dst_pixel' set but not used
libavfilter/vf_drawtext.c:463:22: warning: variable 'dst_pixel' set but not used
Create open_inputs and open_outputs structs if they are not provided by
the user, and free them before exit.
In particular, fix NULL pointer dereference and crash, in case the
passed open_inputs/outputs is NULL and the parsing failed.
* qatar/master:
Add some missing mathematics.h #includes for av_rescale().
opencore-amr: Add missing initializer braces to shut up gcc warning.
ARM: workaround for bug in GNU assembler
dv: fix comment wording mistake
Rename libavcodec/high_bit_depth.h ---> libavcodec/bit_depth_template.c
dv: fix valgrind use of uninitialised value warnings.
mxfenc: fix ignored drop flag in binary timecode representation.
PPC: use Altivec IMDCT only for supported sizes
dv: fix comment spelling
configure: simplify -rpath-link linker flag
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master: (36 commits)
ARM: allow unaligned buffer in fixed-point NEON FFT4
fate: test more FFT etc sizes
dca: set AVCodecContext frame_size for DTS audio
YASM: Shut up unused variable compiler warning with --disable-yasm.
x86_32: Fix build on x86_32 with --disable-yasm.
iirfilter: add fate test
doxygen: Add qmul docs.
ogg: propagate return values and return more meaningful error values
H.264: fix overreads of qscale_table
Remove unused static tables and static inline functions.
eval: clear Parser instances before using
dct-test: remove 'ref' function pointer from tables
build: Remove deleted 'check' target from .PHONY list.
oggdec: Abort Ogg header parsing when encountering a data packet.
Add LGPL license boilerplate to files lacking it.
mxfenc: small typo fix
doxygen: Fix documentation for some VP8 functions.
sha: use AV_RB32() instead of assuming buffer can be cast to uint32_t*
des: allow unaligned input and output buffers
aes: allow unaligned input and output buffers
...
Conflicts:
libavcodec/dct-test.c
libavcodec/libvpxenc.c
libavcodec/x86/dsputil_mmx.c
libavcodec/x86/h264_qpel_mmx.c
libavfilter/x86/gradfun.c
libavformat/oggdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master: (40 commits)
H.264: template left MB handling
H.264: faster fill_decode_caches
H.264: faster write_back_*
H.264: faster fill_filter_caches
H.264: make filter_mb_fast support the case of unavailable top mb
Do not include log.h in avutil.h
Do not include pixfmt.h in avutil.h
Do not include rational.h in avutil.h
Do not include mathematics.h in avutil.h
Do not include intfloat_readwrite.h in avutil.h
Remove return statements following infinite loops without break
RTSP: Doxygen comment cleanup
doxygen: Escape '\' in Doxygen documentation.
md5: cosmetics
md5: use AV_WL32 to write result
md5: add fate test
md5: include correct headers
md5: fix test program
doxygen: Drop array size declarations from Doxygen parameter names.
doxygen: Fix parameter names to match the function prototypes.
...
Conflicts:
libavcodec/x86/dsputil_mmx.c
libavformat/flvenc.c
libavformat/oggenc.c
libavformat/wtv.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The value for inpic->data[plane] with plane >=4 is undefined, and it
will contain in general random data. This change adds a check for
exiting the loop when plane reaches the value 4.
Fix crash (occurring for example with: format=rgba,lut).
* qatar/master: (21 commits)
swscale: Add Doxygen for hyscale_fast/hScale.
fate: enable lavfi-pixmt tests on big endian systems
PPC: swscale: disable altivec functions for unsupported formats
fate: merge identical pixdesc_be/le tests
swscale: Add Doxygen for yuv2planar*/yuv2packed* functions.
build: call texi2pod.pl with full path instead of symlink
build: include sub-makefiles using full path instead of symlinks
swscale: update big endian reference values after dff5a835.
wavpack: skip blocks with no samples
cosmetics: remove outdated comment that is no longer true
build: replace some addprefix/addsuffix with substitution refs
avutil: Remove unused arbitrary precision integer code.
configure: Drop check for availability of ten assembler operands.
aacenc: Save channel configuration for later use.
aacenc: Fix codebook trellising for zeroed bands.
swscale: change prototypes of scaled YUV output functions.
swscale: re-add support for non-native endianness.
swscale: disentangle yuv2rgbX_c_full() into small functions.
swscale: split yuv2packed[12X]_c() remainders into small functions.
swscale: split yuv2packedX_altivec in smaller functions.
...
Conflicts:
Makefile
configure
libavcodec/x86/dsputil_mmx.c
libavfilter/Makefile
libavformat/Makefile
libavutil/integer.c
libavutil/integer.h
libswscale/swscale.c
libswscale/swscale_internal.h
libswscale/x86/swscale_template.c
tests/ref/lavfi/pixdesc_le
tests/ref/lavfi/pixfmts_scale
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This avoid a crash with in avfilter_merge_formats() in case one of the
filter formats list has multiple time the same entry.
Thanks to Mina Nagy Zaki for helping figuring out the issue.
Fix compilatin after removal of FF_INTERNAL_MEM_TYPE_MAX_VALUE.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Fix warnings of the type:
vf_drawtext.c:NNN: warning: missing braces around initializer
vf_drawtext.c:NNN: warning: (near initialization for ‘drawtext_options[X].default_val’)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
The list type was changed to int64_t to be able to hold
channel layouts.
avfilter_make_format_list() still takes a int32_t array and converts
it to int64_t. A new function, avfilter_make_format64_list, that
takes int64_t arrays has been added.
Replace sizeof((*avff)->formats)
with sizeof(*(*avff)->formats)
as the size of the array element is given by the pointed element
rather than by its pointer.
In particular fix computation with the pending patch when
sizeof(int64_t) != sizeof(int64_t *).
* qatar/master:
lavc: add opt_find to AVCodecContext class.
h264: Complexify frame num gap shortening code
intreadwrite.h: fix AV_RL32/AV_RB32 signedness.
Fix decoding of mpegts streams with h264 video that does *NOT* have b frames
Add minor bumps and APIChanges entries for lavf private options.
ffmpeg: deprecate -vc and -tvstd
ffmpeg: use new avformat_open_* API.
ffserver: use new avformat_open_* API.
ffprobe: use new avformat_open_* API.
ffplay: use new avformat_open_* API.
cmdutils: add opt_default2().
dict: add AV_DICT_APPEND flag.
lavf: add avformat_write_header() as a replacement for av_write_header().
Deprecate av_open_input_* and remove their uses.
lavf: add avformat_open_input() as a replacement for av_open_input_*
AVOptions: add av_opt_find() as a replacement for av_find_opt.
AVOptions: add av_opt_set_dict() mapping a dictionary struct to a context.
ffmpeg: don't abuse a global for passing frame size from input to output
ffmpeg: don't abuse a global for passing pixel format from input to output
ffmpeg: initialise encoders earlier.
Conflicts:
cmdutils.c
doc/APIchanges
ffmpeg.c
ffplay.c
ffprobe.c
libavcodec/h264.c
libavformat/avformat.h
libavformat/utils.c
libavformat/version.h
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Fix a crash occurring when open_inputs is NULL and *open_inputs is
checked, the crash was introduced by the recent avfilter_graph_parse()
syntax change.
In particular, fix graph2dot crash.
Remove AVFilterBufferRefAudioProps.size, and use nb_samples in
avfilter_get_audio_buffer() and avfilter_default_get_audio_buffer() in
place of size.
This is required as the size in the audio buffer may be aligned, so it
may not contain a well defined number of samples.
The new flags parameter allows to specify if the video ref to add
should overwrite the cache, if the flag is not set vsrc_buffer will
complain and abort; otherwise it will clean the already cached video
ref before to overwrite it, thus avoiding a leak.
Since this is only a compilation check (the actual function used is
selected at runtime) and HAVE_SSE indicates that we can also compile
SSE2 code, this is correct.
* qatar/master:
ARM: enable UAL syntax in asm.S
v4l2: don't leak video standard string on error.
swscale: Remove disabled code.
avfilter: Surround function only used in debug mode by appropriate #ifdef.
vf_crop: Replace #ifdef DEBUG + av_log() by av_dlog().
build: remove BUILD_ROOT variable
vp8: use av_clip_uintp2() where possible
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master: (22 commits)
configure: enable memalign_hack automatically when needed
swscale: unbreak the build on non-x86 systems.
swscale: remove if(bitexact) branch from functions.
swscale: remove if(canMMX2BeUsed) conditional.
swscale: remove swScale_{c,MMX,MMX2} duplication.
swscale: use emms_c().
Move emms_c() from libavcodec to libavutil.
tiff: set palette in the context when specified in TIFF_PAL tag
rtsp: use strtoul to parse rtptime and seq values.
pgssubdec: fix incorrect colors.
dvdsubdec: fix incorrect colors.
ape: Allow demuxing of files with metadata tags.
swscale: remove dead macro WRITEBGR24OLD.
swscale: remove AMD3DNOW "optimizations".
swscale: remove duplicate code in ppc/ subdirectory.
swscale: remove duplicated x86/ functions.
swscale: force --enable-runtime-cpudetect and remove SWS_CPU_CAPS_*.
vsrc_buffer.h: add file doxy
vsrc_buffer: tweak error message in init()
msmpeg4: reindent.
...
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Change:
Expected 7 arguments, but only %d found in '%s'\n
to:
Expected 7 arguments, but %d found in '%s'\n
as the user may provide more than 7 arguments, in that case the error
is not misleading.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master:
ffmpeg: get rid of the -vglobal option.
dct32: Add AVX implementation of 32-point DCT
dct32: Change pass 6 permutation to allow for AVX implementation
dct32: port SSE 32-point DCT to YASM
multiple inclusion guard cleanup
avio: document buffer must created with av_malloc() and friends
avio: check AVIOContext malloc failure
swscale: point out an alternative to sws_getContext
svq3: Do initialization after parsing the extradata
add changelog entries for 0.7_beta2
mp3lame: add #include required for AV_RB32 macro.
Conflicts:
Changelog
libavcodec/svq3.c
libavcodec/x86/dct32_sse.c
libavfilter/vsrc_buffer.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Require the presence of opencv/cxcore.h in place of opencv/cxtypes.h,
which has been removed. Fix compilation with libopencv > 2.1.0.
Fix trac issue #221.
The new function is a wrapper around
av_vsrc_buffer_add_video_buffer_ref(), and allows to simplify the act
of pushing AVFrame data to the source buffer.
Rename av_vsrc_buffer_add_frame to
av_vsrc_buffer_add_video_buffer_ref(), and change its inteface to make
it accept in input an AVFilterBufferRef rather than an AVFrame.
This way the interface can be used without requiring the
inclusion/installation of libavcodec headers.
Fix warnings of the type:
vf_drawtext.c:NNN: warning: missing braces around initializer
vf_drawtext.c:NNN: warning: (near initialization for ‘drawtext_options[X].default_val’)
* qatar/master:
log: Fix an oob array read.
cosmetics: trim trailing whitespace in postproc
Ban strncpy() it's too easy to misuse.
psymodel: Remove wrapper functions.
aacenc: Replace loop counters in aac_encode_frame() with more descriptive 'ch' and 'w'.
regtest: remove redundant flags in jpg test
regtest: use run_ffmpeg in do_image_formats
regtest: simplify encoding functions
ffmpeg.c: check for interlaced flag in the correct place.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
drawtext: add documentation for the shadow parameters
drawtext: add shadow support.
drawtext: factor draw_glyphs.
drawtext: fix and optimize yuv blend.
drawtext: get rid of divisions in the inner loop.
drawtext: simplify chroma blend and fix chroma alpha.
lavfi: Port drawtext filter by Hemanth from the libavfilter soc repo
Conflicts:
configure
libavfilter/avfilter.h
libavfilter/vf_drawtext.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
avfilter_copy_frame_props() avoids code duplication and increases
robustness.
The added files libavfilter/avcodec.[ch] are used for containing
utilities useful for gluing togheter libavfilter and libavcodec.
The format is a per-frame property, having it in AVFrame simplify the
operation of extraction of that information, since avoids the need to
access the codec/stream context.
width and height are per-frame properties, setting these values in
AVFrame simplify the operation of extraction of that information,
since avoids the need to check the codec/stream context.
With the following additions:
* support to anti-aliased glyph rendering
* support to UTF-8 text and Unicode chars rendering
* support for RGB packed formats
* fix minor errors and typos in the filter description
* extend/clarify examples in the filter description
Signed-off-by: Anton Khirnov <anton@khirnov.net>
* qatar/master: (23 commits)
doc: Check standalone compilation before submitting new components.
Fix standalone compilation of pipe protocol.
Fix standalone compilation of ac3_fixed encoder.
Fix standalone compilation of binkaudio_dct / binkaudio_rdft decoders.
Fix standalone compilation of IMC decoder.
Fix standalone compilation of WTV demuxer.
Fix standalone compilation of MXPEG decoder.
flashsv: K&R cosmetics
matroskaenc: fix memory leak
vc1: make overlap filter for I-frames bit-exact.
vc1dec: use s->start/end_mb_y instead of passing them as function args.
Revert "VC1: merge idct8x8, coeff adjustments and put_pixels."
Replace strncpy() with av_strlcpy().
indeo3: Eliminate use of long.
get_bits: make cache unsigned to eliminate undefined signed overflow.
asfdec: fix assert failure on invalid files
avfilter: check malloc return values.
Not pulled as reason for reindent is not pulled: mpegvideo: reindent.
nutenc: check malloc return values.
Not pulled due to much simpler solution in ffmpeg *: don't av_malloc(0).
...
Conflicts:
doc/developer.texi
libavcodec/Makefile
libavcodec/get_bits.h
libavcodec/mpegvideo.c
libavformat/Makefile
libavutil/log.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Improve consistency with libavcodec.
This breaks libavfilter API/ABI.
The non-sequential 2.1.0 -> 2.4.0 bump is due to the mess previously
done with the lavfi minor number.
The sample aspect ratio is a per-frame property, so it makes sense to
define it in AVFrame rather than in the codec/stream context.
Simplify application-level sample aspect ratio information extraction,
and allow further simplifications.
This is similar to what was done with pkt_pts. This simplifies the
operation of extracting the pos information from the AVPacket, and
allows further simplifications.
* commit '85770f2a2651497861ed938efcd0df3696ff5e45':
AVOptions: make default_val a union, as proposed in AVOption2.
Move ff_dynarray_add to lavu and make it public.
lavf: remove duplicate assignment in avformat_alloc_context.
lavf: use designated initializers for AVClasses.
options: simplify av_find_opt by using av_next_option.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Also deprecate av_get_pict_type_char() in favor of
av_get_picture_type_char().
The new enum and av_get_picture_type_char() are defined in libavutil.
This allows the use in libavfilter without the need to link against
libavcodec.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Roger Pau Monné <roger.pau@entel.upc.edu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Also set movie->picref to NULL, in order to avoid a crash in uninit()
when movie->picref is unreffed again and it was already freed.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Make the filter accept parametric expressions for the output video
size.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
draw_slice() checks that the fade factor is < 65536 and only
calculates the fade if so. But the fade factor is clipped in
end_frame() by av_clip_uint16() to 65535, so the fade is calculated
for every frame. This patch alters the check so that it compares with
< 65535 (UINT16_MAX).
Signed-off-by: Anton Khirnov <anton@khirnov.net>
draw_slice() checks that planes 0 and 1 of AVFilterBufferRef's data
are not NULL before manipulating planes 1 and 2. This patch makes the
check against planes 1 and 2. More senseful and possibly more robust.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
The old API was deprecated and will be possibly removed, fix warnings
in libavfilter/libmpcodecs/vf_geq.c and libavfilter/libmpcodecs/vf_qp.c.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
* qatar/master: (37 commits)
In avcodec_open(), set return code to an error value only when an error occurs instead of unconditionally at the start of the function.
lavc: remove reference to opt.h from Makefile.
prefer avio_check() over url_exist()
avio: remove AVIO_* access symbols in favor of new AVIO_FLAG_* symbols
lavu: remove misc disabled cruft
lavu: remove FF_API_OLD_IMAGE_NAMES cruft
NOT PULLED lavu: remove FF_API_OLD_EVAL_NAMES cruft
lavc: remove misc disabled cruft.
lavc: remove the FF_API_INOFFICIAL cruft.
lavc: remove the FF_API_SET_STRING_OLD cruft.
lavc: remove the FF_API_USE_LPC cruft.
lavc: remove the FF_API_SUBTITLE_OLD cruft.
lavc: remove the FF_API_VIDEO_OLD cruft.
lavc: remove the FF_API_AUDIO_OLD cruft.
lavc: remove the FF_API_OPT_SHOW cruft.
lavc: remove the FF_API_MM_FLAGS cruft.
lavf: remove misc disabled cruft.
lavf: remove FF_API_INDEX_BUILT cruft
lavf: remove FF_API_URL_CLASS cruft.
lavf: remove FF_API_SYMVER cruft
...
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Also set movie->picref to NULL, in order to avoid a crash in uninit()
when movie->picref is unreffed again and it was already freed.
Fix trac issue #66.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
* qatar/master:
ac3dec: fix processing of delta bit allocation information.
vc1: fix fate-vc1 after previous commit.
wmv3dec: fix playback of complex WMV3 files using simple_idct.
make av_dup_packet() more cautious on allocation failures
make containers pass palette change in AVPacket
introduce side information for AVPacket
Politic commits that have not been pulled:
Update regtest checksums after revision 6001dad.
Replace more FFmpeg references by Libav.
Replace references to ffmpeg-devel with libav-devel; fix roundup URL.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The constant values were never set, thus the evaluation of expressions
referencing those constants were resulting in an error.
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Change:
Expected 7 arguments, but only %d found in '%s'\n
to:
Expected 7 arguments, but %d found in '%s'\n
as the user may provide more than 7 arguments, in that case the error
is not misleading.
* qatar/master:
fate: fix partial run when no samples path is specified
ARM: NEON fixed-point forward MDCT
ARM: NEON fixed-point FFT
lavf: bump minor version and add an APIChanges entry for avio changes
avio: simplify url_open_dyn_buf_internal by using avio_alloc_context()
avio: make url_fdopen internal.
avio: make url_open_dyn_packet_buf internal.
avio: avio_ prefix for url_close_dyn_buf
avio: avio_ prefix for url_open_dyn_buf
avio: introduce an AVIOContext.seekable field
ac3enc: use generic fixed-point mdct
lavfi: add fade filter
Change yadif to not use out of picture lines.
lavc: deprecate AVCodecContext.antialias_algo
lavc: mark mb_qmin/mb_qmax for removal on next major bump.
Conflicts:
doc/filters.texi
libavcodec/ac3enc_fixed.h
libavcodec/ac3enc_float.h
libavfilter/Makefile
libavfilter/allfilters.c
libavfilter/vf_fade.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Port fade filter from libavfilter soc repo, with minor fixes by
Stefano.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Make the mp wrapper accept the syntax mp=filter=params as alternative
to mp=filter:params. The alternative syntax is sligthly more readable
and should simplify copy&paste of MPlayer filter strings to the mp
filter.
Fixes issue2632 if interl=1 is used or the automatic interlace detection is enabled
and works. This has the advantage compared to the patch in issue2632 that it causes
no speed loss and it also works when scaling is used. The disadvantage is that
interlacing autodetection does not yet work very well it seems.
This is the same method mplayer uses
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
draw_slice() checks that the fade factor is < 65536 and only
calculates the fade if so. But the fade factor is clipped in
end_frame() by av_clip_uint16() to 65535, so the fade is calculated
for every frame. This patch alters the check so that it compares with
< 65535 (UINT16_MAX).
draw_slice() checks that planes 0 and 1 of AVFilterBufferRef's data
are not NULL before manipulating planes 1 and 2. This patch makes the
check against planes 1 and 2. More senseful and possibly more robust.
right now swab is defined in libavfilter/libmpcodecs/mpbswap.h
this breaks mingw32 cross compiles. since it its not used, it should be
removed. alternatively swab has to be added to HAVE_LIST in configure.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This fixes compilation with preprocessors which do not add whitespace
around replaced tokens, resulting in invalid expressions like 1--1.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This fixes compilation with preprocessors which do not add whitespace
around replaced tokens, resulting in invalid expressions like 1--1.
Signed-off-by: Mans Rullgard <mans@mansr.com>
the following additions:
* support to anti-aliased glyph rendering
* support to UTF-8 text and Unicode chars rendering
* support for RGB packed formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Add drawutils.h and drawutils.c, and use them in the pad filter.
The new functions are going to be shared by other filters.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Add drawutils.h and drawutils.c, and use them in the pad filter.
The new functions are going to be shared by other filters.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Make avfilter_graph_free() free not only the internal structures, but
also the allocated graph, and set the graph pointer to NULL for
increased safety.
Simplify usage.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit 4359288c56)
Make avfilter_graph_parse() only release the internal structures
allocated during the parsing, and leave to free the graph itself to
the calling code.
This approach looks cleaner, as the graph is not allocated by the
function.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit e8e5dde779)
Make avfilter_graph_free() free not only the internal structures, but
also the allocated graph, and set the graph pointer to NULL for
increased safety.
Simplify usage.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Make avfilter_graph_parse() only release the internal structures
allocated during the parsing, and leave to free the graph itself to
the calling code.
This approach looks cleaner, as the graph is not allocated by the
function.
Signed-off-by: Mans Rullgard <mans@mansr.com>
That's required because -1 is evaluated as NAN, which converted back
to int looks like a random number, this is especially annoying when
debugging sources with undefined pos (as the video4linux2 device).
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit 3e5bc7ff6a)
That's required because -1 is evaluated as NAN, which converted back
to int looks like a random number, this is especially annoying when
debugging sources with undefined pos (as the video4linux2 device).
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
This removes ff_get_ref_perms_string, ff_dprintf_ref and ff_dprintf_link
fro the interface of libavfilter.
Signed-off-by: Mans Rullgard <mans@mansr.com>
(cherry picked from commit eb7ccf8f33)
This removes ff_get_ref_perms_string, ff_dprintf_ref and ff_dprintf_link
fro the interface of libavfilter.
Signed-off-by: Mans Rullgard <mans@mansr.com>
libavfilter/defaults.c: In function 'avfilter_default_get_audio_buffer':
libavfilter/defaults.c:129: warning: 'buf' is used uninitialized in this function
Originally committed as revision 26382 to svn://svn.ffmpeg.org/ffmpeg/trunk
More consistent with the rest of FFmpeg and sounds more natural to
English speaking people.
Originally committed as revision 26374 to svn://svn.ffmpeg.org/ffmpeg/trunk
Previously the pad filter just drawed borders in the surrounding of the input
without checking if this area was allocated or writeable. Now we check and
allocate a new buffer if the input is unsuitable.
Originally committed as revision 26315 to svn://svn.ffmpeg.org/ffmpeg/trunk
These fields are needed to be able to know which area of memory is allocated and
which is off limits.
This reverts 24291 and parts of r24424.
Originally committed as revision 26314 to svn://svn.ffmpeg.org/ffmpeg/trunk
evaluated crop area coordinates.
Prevent debug log spamming, define the DEBUG symbol for enabling them.
Originally committed as revision 26110 to svn://svn.ffmpeg.org/ffmpeg/trunk
FILTERNAME=ARGS and FILTERNAME:ARGS syntax.
The same filter class will be used for managing all the libopencv
filtering functions.
Originally committed as revision 26079 to svn://svn.ffmpeg.org/ffmpeg/trunk
commit ab8610aa176c13b5e25a2d8770df28a14665e169
Author: koorogi <koorogi@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Date: Thu Mar 18 23:13:04 2010 +0000
The vflip filter does not need to keep ownership of a picture reference.
Avoid creating and releasing useless extra picture references in the
start_frame and end_frame callbacks.
Originally committed as revision 22596 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new reference creation is required when the linesizes are used by the
previous filters in the filterchain, for example as in "pad=W:H:X:Y,vflip".
Originally committed as revision 26059 to svn://svn.ffmpeg.org/ffmpeg/trunk
Patch by Nolan L nol888 <=> gmail >=< com.
See thread:
Subject: [FFmpeg-devel] [PATCH] Port gradfun to libavfilter (GCI)
Date: Mon, 29 Nov 2010 07:18:14 -0500
Originally committed as revision 25942 to svn://svn.ffmpeg.org/ffmpeg/trunk
libavcodec to libavcore.
Remove another compile-time dependancy of libavfilter on libavcodec.
Originally committed as revision 25923 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make it accept the frei0r=filtername=params as alternative to
frei0r=filtername:params.
Originally committed as revision 25856 to svn://svn.ffmpeg.org/ffmpeg/trunk
Compute the outpicref PTS in start_frame(), since it is required for
comparing that value with the value of the overpicref.
Originally committed as revision 25828 to svn://svn.ffmpeg.org/ffmpeg/trunk
Fix issue #2269.
Interpolate pts for the second frame when using field output mode.
Originally committed as revision 25798 to svn://svn.ffmpeg.org/ffmpeg/trunk
This also allows to remove a linking dependency of libavfilter on
libavcodec.
Originally committed as revision 25789 to svn://svn.ffmpeg.org/ffmpeg/trunk
AV_PERM_REUSE and AV_PERM_REUSE2 flags, avoid conflict with the char
'r' used for AV_PERM_READ.
Originally committed as revision 25739 to svn://svn.ffmpeg.org/ffmpeg/trunk
ff_avfilter_graph_check_validity()
ff_avfilter_graph_config_links()
ff_avfilter_graph_config_formats()
and move their declaration to internal.h. These functions are never
used in application code, so it is better to consider them internal
functions, this can be changed later if necessary. Simplify API.
Originally committed as revision 25737 to svn://svn.ffmpeg.org/ffmpeg/trunk
eval API.
More grep-friendly and more consistent with the rest of the FFmpeg
API.
Originally committed as revision 25708 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new name is shorter and more consistent with the FFmpeg API, and
sounds less evil.
Originally committed as revision 25707 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_graph_parse() declaration to libavfilter/avfiltergraph.h.
Simplify, and less confusing for the user.
Originally committed as revision 25705 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new name is shorter and more consistent with the rest of the API.
This change breaks libavfilter API/ABI.
Originally committed as revision 25674 to svn://svn.ffmpeg.org/ffmpeg/trunk
of a filter for setting the output timebase, if there is such a link,
rather than always use AV_TIME_BASE_Q.
This fixes configuration for all the filters which do not use the
default config_props for the output link, and do not set explicitely
the timebase.
Originally committed as revision 25456 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is required for allowing a filter to use a time base different
from AV_TIME_BASE_Q, as it was previously assumed.
Originally committed as revision 25441 to svn://svn.ffmpeg.org/ffmpeg/trunk
yadif.c:226: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
yadif.c:220: error: 'asm' operand has impossible constraints
Patch by Alexander Strange <astrange ithinksw com>.
Originally committed as revision 25251 to svn://svn.ffmpeg.org/ffmpeg/trunk
See thread:
Subject: [FFmpeg-devel] [PATCH] Port MPlayer blackframe filter.
Date: Sun, 26 Sep 2010 01:10:40 +0200
Originally committed as revision 25214 to svn://svn.ffmpeg.org/ffmpeg/trunk
r25185 | stefano | 2010-09-25 03:18:43 +0200 (Sat, 25 Sep 2010) | 1 line
Make the crop filters accept parametric expressions.
Originally committed as revision 25193 to svn://svn.ffmpeg.org/ffmpeg/trunk
Slightly more intuitive and required by a pending changes for making
the filter parametric.
Originally committed as revision 25184 to svn://svn.ffmpeg.org/ffmpeg/trunk
See thread:
Subject: [FFmpeg-devel] [POC] frei0r wrapper
Date: Tue, 24 Aug 2010 21:37:32 +0200
Originally committed as revision 25165 to svn://svn.ffmpeg.org/ffmpeg/trunk
link rather than avfilter_default_get_video_buffer().
This is required as the buffer requested may be greater than the
buffer allocated locally by avfilter_default_get_video_buffer(), for
example if in filterchain there is a pad filter (like in "fifo,pad").
In that case the pad filter will try to write beyond the data of the
allocated buffer, resulting in a crash.
Originally committed as revision 24895 to svn://svn.ffmpeg.org/ffmpeg/trunk
The plural form is preferred as it is more consistent with the other functions:
av_fill_image_linesizes()
av_fill_image_pointers()
and looks semantically more correct as it fills an array of elements.
Originally committed as revision 24851 to svn://svn.ffmpeg.org/ffmpeg/trunk
To display the other planes is usually not useful and add noise to the
output.
Originally committed as revision 24843 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is required to make AVFilterBufferRef able to contain also audio
data, required by audio filtering integration.
Patch by S.N. Hemanth Meenakshisundaram smeen?ks@ucsd.ed?.
Originally committed as revision 24773 to svn://svn.ffmpeg.org/ffmpeg/trunk
AVFilterContext *avfilter_open(AVFilter *filter, const char *inst_name);
to:
int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name);
This way it is possible to propagate an error code telling the reason
of the failure.
Originally committed as revision 24765 to svn://svn.ffmpeg.org/ffmpeg/trunk
Define a new struct AVFilterBufferRefVideoProps and add a type field
to AVFilterBufferRef.
Video specific properties in AVFilterBufferRefVideoProps are now
referred to by *video pointer in AVFilterBufferRef.
Patch by S.N. Hemanth Meenakshisundaram smeenaks->ucsd.edu.
Originally committed as revision 24763 to svn://svn.ffmpeg.org/ffmpeg/trunk
AVFilterLink.srcpic -> AVFilterLink.src_buf
AVFilterLink.cur_pic -> AVFilterLink.cur_buf
AVFilterLink.outpic -> AVFilterLink.out_buf
The new names are more generic and more consistent, since the struct
they contain, which was named AVFilterPicRef, has been renamed to
AVFilterBufferRef.
Patch by S.N. Hemanth Meenakshisundaram %smeenaks%ucsd%edu%.
Originally committed as revision 24732 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_(un)ref_pic -> avfilter_(un)ref_buffer
avfilter_copy_picref_props -> avfilter_copy_buffer_ref_props
AVFilterBufferRef.pic -> AVFilterBufferRef.buffer
They have been renamed to allow sharing with audio.
Patch by S.N. Hemanth Meenakshisundaram $smeenaks$ucsd$edu$.
Originally committed as revision 24731 to svn://svn.ffmpeg.org/ffmpeg/trunk
The struct is going to be used for storing audio buffer references as
well, and the new name is more generic.
Patch by S.N. Hemanth Meenakshisundaram @smeenaks@ucsd@edu@.
Originally committed as revision 24730 to svn://svn.ffmpeg.org/ffmpeg/trunk
AVFilterBuffereRef in avfilter_default_get_video_buffer().
The error was being caused by the previous patch which resized
AVFilterBuffer's data and linesize arrays to 8.
Patch by S.N. Hemanth Meenakshisundaram" &smeenaks&ucsd&edu&.
Originally committed as revision 24727 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is required for making AVFilterBuffer useful for storing audio
data.
Patch by S.N. Hemanth Meenakshisundaram revert <ude.dscu@skaneems>.
Originally committed as revision 24592 to svn://svn.ffmpeg.org/ffmpeg/trunk
libavcore/imgutils.c rather than ff_fill_linesize() and
ff_fill_pointer().
Also remove a dependency on libavcodec.
Originally committed as revision 24586 to svn://svn.ffmpeg.org/ffmpeg/trunk
Although with several limitations, lavfi can be compiled and used
without the scale filter.
Originally committed as revision 24570 to svn://svn.ffmpeg.org/ffmpeg/trunk
in favor of the newly added corresponding functions
av_parse_video_size() and av_parse_video_rate() defined in
libavcore/parseutils.h.
This change also adds a linking-time dependency of libavcodec and of
libavfilter on libavcore.
Originally committed as revision 24518 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is needed to make the libavfilter framework work with audio
filters.
In particular add a type field to AVFilterLink, change the field types:
enum PixelFormat format -> int format in AVFilterBuffer
enum PixelFormat *formats -> int *formats in AVFilterFormats
enum PixelFormat *format -> int format in AVFilterLink
and change the function signatures:
AVFilterFormats *avfilter_make_format_list(const enum PixelFormat *pix_fmts); ->
AVFilterFormats *avfilter_make_format_list(const int *fmts);
int avfilter_add_colorspace(AVFilterFormats **avff, enum PixelFormat pix_fmt); ->
int avfilter_add_format(AVFilterFormats **avff, int fmt);
AVFilterFormats *avfilter_all_colorspaces(void); ->
AVFilterFormats *avfilter_all_formats(enum AVMediaType type);
This change breaks libavfilter API/ABI.
Patch by S.N. Hemanth Meenakshisundaram |smeenaks|ucsd|edu|.
Originally committed as revision 24424 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make the buffer source accept a string for specifying the input pixel
format.
Originally committed as revision 24387 to svn://svn.ffmpeg.org/ffmpeg/trunk
definition.
This way it is easier to reference them in other structures, for
example in the pending AVFilterSamplesRef struct.
Patch by S.N. Hemanth Meenakshisundaram smeenaks AT ucsd DOT edu.
Originally committed as revision 24294 to svn://svn.ffmpeg.org/ffmpeg/trunk
These fields are never used, and they do not seem to belong to
AVFilterBuffer anymore, now that it is now a media-independent
structure and these fields are video-related.
Patch by S.N. Hemanth Meenakshisundaram smeenaks ! ucsd ! edu.
Originally committed as revision 24291 to svn://svn.ffmpeg.org/ffmpeg/trunk
The struct is going to be used for audio data as well, so the new name
is less misleading.
Patch by S.N. Hemanth Meenakshisundaram smeenaks AT ucsd DOT edu.
Originally committed as revision 24284 to svn://svn.ffmpeg.org/ffmpeg/trunk
The old names were not av_ prefixed, and they were causing linking
failure on many platforms. The new names are also more descriptive.
Patch by Stefano Sabatini.
Originally committed as revision 24101 to svn://svn.ffmpeg.org/ffmpeg/trunk
of the file, and put under #if CONFIG_PAD_FILTER the code specific to
the pad filter.
Simplify the inclusion of the color source.
Originally committed as revision 24067 to svn://svn.ffmpeg.org/ffmpeg/trunk
byte for the alpha component, as it is never used, clarify the code
and prevent bad usage of it.
Originally committed as revision 23834 to svn://svn.ffmpeg.org/ffmpeg/trunk
warning #188: enumerated type mixed with another type
enum PixelFormat pix_fmts[] = { c->pix_fmt, PIX_FMT_NONE };
^
Originally committed as revision 23640 to svn://svn.ffmpeg.org/ffmpeg/trunk
Keep an old ff_ named function for binary compatibility until the
next major bump.
Originally committed as revision 23254 to svn://svn.ffmpeg.org/ffmpeg/trunk
swscale context.
This makes eventual warnings issued in case of swscale context
creation failure to be shown after the conversion information rather
than before, which is slightly less confusing.
Originally committed as revision 23056 to svn://svn.ffmpeg.org/ffmpeg/trunk
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
In case of reallocation failure the pointer to the original filter
array was lost. The correct behavior seems to just keep the old array
and count.
Originally committed as revision 22905 to svn://svn.ffmpeg.org/ffmpeg/trunk
Avoid creating and releasing useless extra picture references in the
start_frame and end_frame callbacks.
Originally committed as revision 22596 to svn://svn.ffmpeg.org/ffmpeg/trunk
byte position information, as stored in the pkt.pos, through the
filterchain.
Note that the pos field is added *non* at the end of the
AVFilterPicRef struct, thus breaking ABI compatibility, which is
allowed as the API is still considered non-stable.
Originally committed as revision 22506 to svn://svn.ffmpeg.org/ffmpeg/trunk
choosen between 8 and 32 when the supplied parameter is the string
"random".
This is useful for testing the slice support, but it is not supposed
to be used for other purposes and this interface may change in the
future, thus it is not documented.
The randomization algorithm adopted is the standard Numerical Recipes
LCG.
Originally committed as revision 22505 to svn://svn.ffmpeg.org/ffmpeg/trunk
This function is not referenced outside this file and has no
prototype. Feel free to flame if this is wrong.
Originally committed as revision 22314 to svn://svn.ffmpeg.org/ffmpeg/trunk
Also link avfiltergraph.o and graphparser.o against libavfilter, as it
uses them.
Originally committed as revision 22063 to svn://svn.ffmpeg.org/ffmpeg/trunk
avcodec_get_chroma_sub_sample(), directly access
av_pix_fmt_descriptors instead.
Remove some of the dependancies of lavfi on lavc.
Originally committed as revision 21575 to svn://svn.ffmpeg.org/ffmpeg/trunk
size of the output link of the destination filter, rather than of the
size of the input link.
In particular this fixes a crash in the rotate filter.
Originally committed as revision 21238 to svn://svn.ffmpeg.org/ffmpeg/trunk
auto-inserted scale filter, rather than the filter name, as this
provides more information.
Originally committed as revision 21123 to svn://svn.ffmpeg.org/ffmpeg/trunk
AVFilter.query_formats doxy.
The doxy expresses what a function does, not what it should do.
Originally committed as revision 21075 to svn://svn.ffmpeg.org/ffmpeg/trunk
*avff, so that an AVFilterFormats struct is created and returned by
the function if *avff is NULL.
Make the function use more convenient.
Originally committed as revision 21035 to svn://svn.ffmpeg.org/ffmpeg/trunk
formats only the non-HW-accelerated formats, for which there is no
sense in filtering.
Originally committed as revision 21009 to svn://svn.ffmpeg.org/ffmpeg/trunk
Add ';' and '\n' to the terminating characters for the name of a
filter, and ';' to the terminating characters for its args.
Originally committed as revision 20800 to svn://svn.ffmpeg.org/ffmpeg/trunk
of the type 0xRRGBBAA parsed by av_parse_color(), using a simple int
was resulting in unexpected results as the most significant bit was
used for the sign.
Originally committed as revision 20778 to svn://svn.ffmpeg.org/ffmpeg/trunk
Avoid the need to implement slice direction detection code, thus
reducing code duplication.
See the thread:
"[FFmpeg-devel] [PATCH] Add a slice_dir parameter to avfilter_start_frame()".
Originally committed as revision 20734 to svn://svn.ffmpeg.org/ffmpeg/trunk
draw_slice().
The chroma values to use are supposed to be those of the input format,
not that of the output format, the latter case was causing crashes and
chroma issues.
Originally committed as revision 20660 to svn://svn.ffmpeg.org/ffmpeg/trunk
The assumption depends on the corresponding assumption done by
sws_scale() and by the scale filter.
Originally committed as revision 20655 to svn://svn.ffmpeg.org/ffmpeg/trunk
Create a new static array containing pointers to the AVFilter
definitions, so that the non-constant next filter in the AVFilter
struct is not anymore required and the AVFilter definitions may be
stored in shareable memory.
Also change the signature for avfilter_register(), make it return an
int since it may fail if there is not enough space in the static array
for the registered filters.
Originally committed as revision 20605 to svn://svn.ffmpeg.org/ffmpeg/trunk
not correctly supported.
See the thread:
"[FFmpeg-devel] [PATCH] Remove not truly supported formats support from the crop filter".
Originally committed as revision 20576 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_default_get_video_buffer() if the get_video_buffer() callback
is not defined in a filter.
Libavfilter filters author have to explicitely define the
get_video_buffer() callback if they want the buffer to be requested to
the filter following in the filterchain.
See the thread:
"[FFmpeg-devel] [PATCH] Make avfilter_get_video_buffer() use
default_get_video_buffer if callback not defined".
Originally committed as revision 20444 to svn://svn.ffmpeg.org/ffmpeg/trunk
"video format and noformat filters" to
"format and noformat video filters",
as suggested by Diego.
Originally committed as revision 20442 to svn://svn.ffmpeg.org/ffmpeg/trunk
That was never required since avfilter_get_video_buffer() already
calls itself on the next link if get_video_buffer is not defined.
Originally committed as revision 20419 to svn://svn.ffmpeg.org/ffmpeg/trunk
for registering and finding filters, rather than use the struct
AVFilterList, which is removed.
Simplify the filter registration management code.
Originally committed as revision 20387 to svn://svn.ffmpeg.org/ffmpeg/trunk
Simplify the registration and iteration of all the registered filters,
consistent with what is done with formats / codecs.
Originally committed as revision 20385 to svn://svn.ffmpeg.org/ffmpeg/trunk
argument of avfilter_make_format_list(), as the argument represents a
list of elements.
Originally committed as revision 20341 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_make_format_list().
See the thread:
"[PATCH] Implement avfilter_make_format_list2(enum PixelFormat pix_fmt, ...)".
Originally committed as revision 20299 to svn://svn.ffmpeg.org/ffmpeg/trunk
min = FFMIN(min, avfilter_poll_frame(link->src->inputs[i]))
which, since FFMIN is a macro, was calling itself
twice for every input, causing an exponential cost in time.
Originally committed as revision 20295 to svn://svn.ffmpeg.org/ffmpeg/trunk
When called on a link with a filter whose destination pad has not a
get_video_buffer callback defined, it will call
avfilter_get_video_buffer() on the first output link of the
destination filer, rather than use avfilter_default_get_buffer(), so
the video buffer can be allocated forward in the filterchain.
Also add the w and h parameters to avfilter_get_video_buffer(), as the
minimum width and height requested by each filter in the filterchain
may change, this allows for example a memcpy-less pad filter.
This change breaks API / ABI backward compatibility.
See the thread:
"[PATCH] Implement recusive avfilter_get_video_buffer()".
Originally committed as revision 20272 to svn://svn.ffmpeg.org/ffmpeg/trunk
result in a randomly choosen random color, as it is with the
"bikeshed" color.
Originally committed as revision 18828 to svn://svn.ffmpeg.org/ffmpeg/trunk
corresponding count is zero, rather than allocate a 16 bytes sized
block for them. Improve safety.
Originally committed as revision 16565 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_draw_slice() when the draw_slice callback is not defined in
the input pad.
Originally committed as revision 16554 to svn://svn.ffmpeg.org/ffmpeg/trunk
Consistently apply this rule: the guard name is obtained from the
filename by stripping the leading "lib", converting '/' and '.' to
'_' and uppercasing the resulting name. Guard names in the root
directory have to be prefixed by "FFMPEG_".
Originally committed as revision 15120 to svn://svn.ffmpeg.org/ffmpeg/trunk
framework. Split it.
Commited in SoC by Vitor Sessak on 2008-04-03 16:29:07
Originally committed as revision 13285 to svn://svn.ffmpeg.org/ffmpeg/trunk
framework. Split it.
Commited in SoC by Vitor Sessak on 2008-04-03 16:29:07
Originally committed as revision 12746 to svn://svn.ffmpeg.org/ffmpeg/trunk
Now the parser link the filters from the graph directly
with avfilter_link().
Commited in SoC by Vitor Sessak on 2008-03-29 15:12:47
Originally committed as revision 12743 to svn://svn.ffmpeg.org/ffmpeg/trunk
Functional as is, but still work-in-progress in the
sense that some things need to be fixed before sending
it as a patch to SVN.
Commited in SoC by Vitor Sessak on 2008-03-20 21:48:30
Originally committed as revision 12729 to svn://svn.ffmpeg.org/ffmpeg/trunk
Suggested by Baptiste Coudurier
Commited in SoC by Vitor Sessak on 2008-02-11 19:56:27
Originally committed as revision 12722 to svn://svn.ffmpeg.org/ffmpeg/trunk
This can now handle filters which are added to graphs out of order,
including auto-inserted scale filters. As an added bonus, it can
now detect circular filter chains which wouldn't work anyway.
Commited in SoC by Bobby Bingham on 2007-12-24 03:22:10
Originally committed as revision 12717 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes the code a little less confusing, and is needed for the patch to
improve the link configuration process, to be committed next.
Commited in SoC by Bobby Bingham on 2007-12-24 02:53:56
Originally committed as revision 12716 to svn://svn.ffmpeg.org/ffmpeg/trunk
can reuse the same graph creation code.
Commited in SoC by Bobby Bingham on 2007-12-22 19:13:04
Originally committed as revision 12715 to svn://svn.ffmpeg.org/ffmpeg/trunk
read said description from a file.
Commited in SoC by Bobby Bingham on 2007-12-22 17:16:21
Originally committed as revision 12714 to svn://svn.ffmpeg.org/ffmpeg/trunk
given to initially load.
Commited in SoC by Bobby Bingham on 2007-12-20 16:50:45
Originally committed as revision 12709 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_create_by_name.
Commited in SoC by Bobby Bingham on 2007-08-17 23:39:55
Originally committed as revision 12703 to svn://svn.ffmpeg.org/ffmpeg/trunk
work than it's worth.
Commited in SoC by Bobby Bingham on 2007-08-17 14:39:11
Originally committed as revision 12701 to svn://svn.ffmpeg.org/ffmpeg/trunk
can be created programmatically or loaded from a file.
Commited in SoC by Bobby Bingham on 2007-08-14 22:27:05
Originally committed as revision 12700 to svn://svn.ffmpeg.org/ffmpeg/trunk
Patch by Víctor Paesa
Commited in SoC by Vitor Sessak on 2008-02-12 20:31:53
Originally committed as revision 12117 to svn://svn.ffmpeg.org/ffmpeg/trunk
Suggested by Baptiste Coudurier
Commited in SoC by Vitor Sessak on 2008-02-11 19:56:27
Originally committed as revision 12116 to svn://svn.ffmpeg.org/ffmpeg/trunk
This can now handle filters which are added to graphs out of order,
including auto-inserted scale filters. As an added bonus, it can
now detect circular filter chains which wouldn't work anyway.
Commited in SoC by Bobby Bingham on 2007-12-24 03:22:10
Originally committed as revision 12107 to svn://svn.ffmpeg.org/ffmpeg/trunk
source filter will simply want to re-output the same image multiple times
and reuse a buffer to do it, and the case where the source filter will
output multiple image by modifying a single buffer and outputting it multiple
times.
Commited in SoC by Bobby Bingham on 2007-08-18 02:21:01
Originally committed as revision 12103 to svn://svn.ffmpeg.org/ffmpeg/trunk
avfilter_create_by_name.
Commited in SoC by Bobby Bingham on 2007-08-17 23:39:55
Originally committed as revision 12101 to svn://svn.ffmpeg.org/ffmpeg/trunk
This should make it easier to know what can be done to a buffer once
it's been passed to your filter without falling back to copying it "just
to be safe".
Commited in SoC by Bobby Bingham on 2007-08-17 18:21:07
Originally committed as revision 12099 to svn://svn.ffmpeg.org/ffmpeg/trunk
work than it's worth.
Commited in SoC by Bobby Bingham on 2007-08-17 14:39:11
Originally committed as revision 12096 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make them externally visible because they may be useful for filters to use.
Commited in SoC by Bobby Bingham on 2007-08-02 15:14:05
Originally committed as revision 12091 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes it possible to change filter callbacks (eg. to a SIMD version
on supported processors). It also allows filters to change their own
input and output pads.
Commited in SoC by Bobby Bingham on 2007-07-31 19:20:54
Originally committed as revision 12090 to svn://svn.ffmpeg.org/ffmpeg/trunk
AVFilterGraph structure and related functions.
Commited in SoC by Bobby Bingham on 2007-07-14 19:33:28
Originally committed as revision 12084 to svn://svn.ffmpeg.org/ffmpeg/trunk
the implementation of simple filters.
Commited in SoC by Bobby Bingham on 2007-07-08 16:48:15
Originally committed as revision 12082 to svn://svn.ffmpeg.org/ffmpeg/trunk
querying supported colorspaces, etc.
Commited in SoC by Bobby Bingham on 2007-07-05 20:48:48
Originally committed as revision 12080 to svn://svn.ffmpeg.org/ffmpeg/trunk
This can now handle filters which are added to graphs out of order,
including auto-inserted scale filters. As an added bonus, it can
now detect circular filter chains which wouldn't work anyway.
Commited in SoC by Bobby Bingham on 2007-12-24 03:22:10
Originally committed as revision 12073 to svn://svn.ffmpeg.org/ffmpeg/trunk
they're useless for outputting.
Commited in SoC by Bobby Bingham on 2007-08-17 22:52:18
Originally committed as revision 12070 to svn://svn.ffmpeg.org/ffmpeg/trunk
This should make it easier to know what can be done to a buffer once
it's been passed to your filter without falling back to copying it "just
to be safe".
Commited in SoC by Bobby Bingham on 2007-08-17 18:21:07
Originally committed as revision 12068 to svn://svn.ffmpeg.org/ffmpeg/trunk
Make them externally visible because they may be useful for filters to use.
Commited in SoC by Bobby Bingham on 2007-08-02 15:14:05
Originally committed as revision 12063 to svn://svn.ffmpeg.org/ffmpeg/trunk