1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

45 Commits

Author SHA1 Message Date
Stefano Sabatini
386aee6864 sink_buffer: copy list of provided formats in the context
A list of formats may have been dynamically created by the calling code,
and thus should not be referenced by the sink buffer context.

Avoid possible invalid data reference.
2011-12-22 10:09:42 +01:00
Michael Niedermayer
248bb81ebc avfilter: Error out from avfilter_merge_formats() when there are duplicates
instead of trying to continue.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-23 14:14:01 +01:00
Michael Niedermayer
8cda755c2f avfilter: dont write out of array for duplicate formats in avfilter_merge_formats()
Note, this is a theoretical fix, iam not aware of a case where this function receives
duplicates in its input.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-23 13:18:11 +01:00
Reimar Döffinger
b052601b95 Make another static array const.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2011-11-05 15:37:02 +01:00
Michael Niedermayer
41215fdeb3 libavfilter/formats.c: fix compile of test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-16 06:07:07 +02:00
Stefano Sabatini
ea8de109af lavfi: add avfilter_all_channel_layouts public symbol
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
2011-09-16 00:46:41 +02:00
Stefano Sabatini
9899037dc6 lavfi: rename avfilter_all_* function names to avfilter_make_all_*
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.
2011-09-16 00:42:47 +02:00
Stefano Sabatini
4381bddc9f lavfi: consistently use int for sample_rate in AVFilterLink and AVFilterBufferRefAudioProps
Also consistent with AVCodecContext.sample_rate. Simplify/avoid
pointless type checks and conversions.

Breaks audio API/ABI.
2011-09-12 18:51:46 +02:00
Stefano Sabatini
e26782a9b4 lavfi: add ff_parse_pixel_format() internal function, and use it
Reduce code duplication.
2011-08-23 15:45:44 +02:00
Stefano Sabatini
a719679561 lavfi: complain and exit for invalid named values in ff_parse_packing_format() 2011-08-16 17:00:49 +02:00
Mina Nagy Zaki
3f07d40ea2 lavfi: add internal functions for parsing format arguments
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
2011-08-14 10:31:09 +02:00
Mina Nagy Zaki
b57df29f95 lavfi: add audio channel packing negotiation fields
Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
2011-07-16 19:22:49 +02:00
Stefano Sabatini
7464a53aaa lavfi: make pix_fmt_is_in() in vf_lut.c an internal function
Also generalize it, making it accept ints rather than pixel formats.
Allow factorization.
2011-07-01 12:14:16 +02:00
Stefano Sabatini
f4228097e4 lavfi: minor style fixes in formats.c 2011-06-22 18:28:28 +02:00
Mina Nagy Zaki
fd2c0a5db2 lavfi: add layout negotiation fields and helper functions. 2011-06-19 22:58:32 +02:00
Mina Nagy Zaki
527ca3985c lavfi: use int64_t lists in AVFilteFormats
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.
2011-06-19 22:58:31 +02:00
Stefano Sabatini
8f349b6481 lavfi: fix realloc size computation in avfilter_add_format()
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 *).
2011-06-19 22:58:31 +02:00
Mina Nagy Zaki
79a0ec1af4 lavfi: avfilter_merge_formats: handle case where inputs are same
This fixes a double-free crash if lists are the same due to the two
merge_ref() calls at the end of the (useless) merging that happens.
2011-06-10 13:04:47 +02:00
Mina Nagy Zaki
47d2ca3205 lavfi: handle NULL lists in avfilter_make_format_list 2011-06-08 18:50:07 +02:00
Stefano Sabatini
3fa77bde1b In libavfilter, use consistently "Copyright (c)" in the license
headers.

Originally committed as revision 25838 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-28 10:22:58 +00:00
Stefano Sabatini
5d6e4c160a Replace deprecated symbols SAMPLE_FMT_* with AV_SAMPLE_FMT_*, and enum
SampleFormat with AVSampleFormat.

Originally committed as revision 25730 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-12 11:04:40 +00:00
S.N. Hemanth Meenakshisundaram
ad2c950154 Implement libavfilter audio framework.
Patch by S.N. Hemanth Meenakshisundaram * smeenaks * ucsd * edu *.

Originally committed as revision 24811 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-17 18:08:03 +00:00
S.N. Hemanth Meenakshisundaram
bdab614be8 Generalize pixel format enum fields to int formats.
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
2010-07-22 11:12:47 +00:00
Stefano Sabatini
d3c01751a3 Fix compilation on gcc 2.95.3 (still supported) broken by r21077,
which was due to declaring variable after code.

Originally committed as revision 21086 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-08 08:19:18 +00:00
Stefano Sabatini
063e769273 Make avfilter_formats_unref(AVFilterFormats **ref) handle the case
when *ref is NULL.

Originally committed as revision 21077 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-07 22:59:22 +00:00
Stefano Sabatini
c1d662fd88 Change avfilter_add_colorspace() to make it accept **avff rather than
*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
2010-01-06 16:19:13 +00:00
Stefano Sabatini
5ff84183de Make avfilter_all_colorspaces() add to the returned list of pixel
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
2010-01-04 00:08:11 +00:00
Stefano Sabatini
4fd1f1876a Implement avfilter_add_colorspace().
Originally committed as revision 21007 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-03 22:26:59 +00:00
Stefano Sabatini
9abba21ad3 Cosmetics: prefer "pix_fmts" over "pix_fmt" for the name of the
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
2009-10-21 20:43:43 +00:00
Stefano Sabatini
1554fed2d6 Make avfilter_make_format_list() take in input a const argument.
Originally committed as revision 20340 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-21 20:39:05 +00:00
Stefano Sabatini
6b5dc050a2 Rename avfilter_make_format_list2() to avfilter_make_format_list().
Originally committed as revision 20302 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 23:39:54 +00:00
Stefano Sabatini
e768cb7668 Remove avfilter_make_format_list(), it has been replaced by
avfilter_make_format_list2().

Originally committed as revision 20301 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 23:35:54 +00:00
Stefano Sabatini
f6a1fa850a Implement avfilter_make_format_list2(), which is going to replace
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
2009-10-18 23:06:52 +00:00
Michael Niedermayer
4c4de9ca49 Better description for merge_ref().
Originally committed as revision 12173 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-21 22:10:11 +00:00
Vitor Sessak
9189411bdb Coding style changes
Originally committed as revision 11901 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:05:02 +00:00
Vitor Sessak
93faa9fad7 More code factorization
Originally committed as revision 11900 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:55 +00:00
Vitor Sessak
37e0b997a8 Factor duplicated loop
Originally committed as revision 11899 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:52 +00:00
Vitor Sessak
d3a4e41c8a Do not hardcode the list of pixel formats and use PIX_FMT_NB instead.
Originally committed as revision 11898 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:49 +00:00
Vitor Sessak
243370cb4d Do not hardcode the type of AVFilterFormats.formats in allocation
Originally committed as revision 11897 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:43 +00:00
Vitor Sessak
bd8ae4885b Oops, my last commit broke compilation...
Originally committed as revision 11896 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:38 +00:00
Vitor Sessak
5ced2c996d Make regression tests to pass with libavfilter.
Originally committed as revision 11895 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:36 +00:00
Vitor Sessak
eac2495095 Need to be careful when dealing with references.
Commited in SoC by Bobby Bingham

Originally committed as revision 11894 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:32 +00:00
Vitor Sessak
30f4baebf8 10l. parameter was unused and redundant.
Commited in SoC by Bobby Bingham

Originally committed as revision 11893 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:04:27 +00:00
Vitor Sessak
88cfb80418 avfilter_formats_unref() should remove the given reference, not the last
reference.

Commited in SoC by Bobby Bingham

Originally committed as revision 11892 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:03:18 +00:00
Vitor Sessak
391354656c First libavfilter commit.
Original log message:
Forgot to add in the big colorspace commit

Commited in SoC by Bobby Bingham

Originally committed as revision 11891 to svn://svn.ffmpeg.org/ffmpeg/trunk
2008-02-10 18:02:11 +00:00