Anton Khirnov
39885a4bd7
avconv: reindent
2012-05-18 19:41:58 +02:00
Anton Khirnov
74b961db77
avconv: replace -vsync cfr code with the fps filter.
...
Invented timestamps for the h264 tests return to something resembling
sanity.
In the idroq-video-encode test when converting 25 fps -> 30 fps the
fifth frame gets duplicated instead of the sixth.
2012-05-18 19:38:40 +02:00
Anton Khirnov
755cd4197d
mov: enable parsing for VC-1.
...
This makes lavf discard broken timestamps for non-B frames in
samples/isom/vc1-wmapro.ism.
2012-05-18 19:38:21 +02:00
Anton Khirnov
54c5dd89e3
lavfi: Add fps filter.
...
Partially based on a patch by Robert Nagy <ronag89@gmail.com >
2012-05-18 19:33:54 +02:00
Anton Khirnov
7b3b24a8ee
lavfi: initialize pts to AV_NOPTS_VALUE when creating new buffer refs.
2012-05-18 19:29:39 +02:00
Anton Khirnov
0ad26cdf24
avconv: add support for audio in complex filtergraphs.
2012-05-18 19:27:00 +02:00
Anton Khirnov
01e98b1b00
avconv: fix behavior with -ss as an output option.
...
Don't return from poll_filters() immediately, there may be other frames
and/or other streams to handle.
Fixes a memleak.
2012-05-17 19:37:58 +02:00
Anton Khirnov
d894752387
avprobe: don't print format entry name when only one was requested
...
This is easier to parse with automated tools.
2012-05-16 18:35:05 +02:00
Anton Khirnov
d89eca507c
Add missing version bumps and APIchanges/Changelog entries.
2012-05-15 06:57:31 +02:00
Anton Khirnov
4a1ac8c43f
lavfi: move buffer management function to a separate file.
2012-05-15 06:53:22 +02:00
Anton Khirnov
4c64fed37c
lavfi: move formats-related functions from default.c to formats.c
...
It's more convenient to have them all in one file.
2012-05-15 06:52:01 +02:00
Anton Khirnov
c5432d3ca4
lavfi: move video-related functions to a separate file.
...
This is easier to follow than having them randomly scattered in
avfilter.c and defaults.c.
2012-05-15 06:51:23 +02:00
Anton Khirnov
e6694659fc
libmp3lame: set supported channel layouts.
2012-05-14 21:36:11 +02:00
Anton Khirnov
6eeb9a0433
avconv: automatically insert asyncts when -async is used.
...
Deprecate -async.
2012-05-14 21:36:11 +02:00
Anton Khirnov
369cb092ec
avconv: add support for audio filters.
...
The FATE changes are all off-by-one due to different rounding being used
(lrintf vs av_rescale_q).
2012-05-14 21:36:11 +02:00
Anton Khirnov
9f26421b0b
lavfi: add asyncts filter.
2012-05-14 21:36:11 +02:00
Anton Khirnov
fb604ae850
lavfi: add aformat filter
...
Based on a patch by Mina Nagy Zaki <mnzaki@gmail.com >
2012-05-14 21:36:11 +02:00
Anton Khirnov
a2cd9be212
lavfi: add an audio buffer sink.
2012-05-14 21:36:11 +02:00
Anton Khirnov
4c66c40718
lavfi: add an audio buffer source.
2012-05-14 21:36:11 +02:00
Anton Khirnov
720c6b78d1
buffersrc: add av_buffersrc_write_frame().
...
It's the same as av_vsrc_buffer_add_frame(), except it doesn't take pts
or pixel_aspect parameters. Those are read from AVFrame.
Deprecate av_vsrc_buffer_add_frame().
2012-05-14 21:36:11 +02:00
Anton Khirnov
8b05e13df3
buffersrc: fix invalid read in uninit if the fifo hasn't been allocated
2012-05-14 21:36:10 +02:00
Anton Khirnov
fad729fa50
lavfi: rename vsrc_buffer.c to buffersrc.c
...
Most of the code will be shared for both audio and video version.
2012-05-14 21:36:10 +02:00
Anton Khirnov
fd127ede62
avfiltergraph: reindent
2012-05-14 21:36:10 +02:00
Anton Khirnov
ff1f51a8aa
lavfi: add channel layout/sample rate negotiation.
2012-05-14 21:36:10 +02:00
Anton Khirnov
5775a1832c
lavfi: add types and functions for channel layout/samplerate negotiation
2012-05-14 21:36:10 +02:00
Anton Khirnov
012f04a277
lavfi: autoinsert resample filter when necessary.
2012-05-12 18:09:29 +02:00
Anton Khirnov
d371e7b988
lavfi: add lavr-based audio resampling filter.
2012-05-12 18:09:28 +02:00
Anton Khirnov
0b45334a58
lavfi: move audio-related functions to a separate file.
...
This is easier to follow than having them randomly scattered in
avfilter.c and defaults.c.
2012-05-09 20:32:49 +02:00
Anton Khirnov
472fb3bbfa
lavfi: remove some audio-related function from public API.
...
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.
This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.
2012-05-09 20:31:56 +02:00
Anton Khirnov
f20ab492ac
lavfi: change AVFilterLink.sample_rate from int64_t to int on next bump
...
There is no real reason for it to be 64bit, it's just a plain int in the
rest of Libav.
2012-05-09 20:31:26 +02:00
Anton Khirnov
a6bdfc2a92
lavfi: change AVFilterBufferRefAudioProps.sample_rate from uint32_t to int
...
There's no reason for it to be explicitly 32 bits. It's declared as a
plain int in all other places in Libav.
This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.
2012-05-09 20:30:28 +02:00
Anton Khirnov
9453c9e1de
lavfi: add extended_data to AVFilterBuffer.
...
This is similar to what has previously been done in AVFrame to allow
dealing with more than 8 channels.
2012-05-09 17:47:53 +02:00
Anton Khirnov
c22953b8a3
lavc: check that extended_data is properly set in avcodec_encode_audio2().
2012-05-09 17:47:11 +02:00
Anton Khirnov
a5117a2444
lavc: pad last audio frame with silence when needed.
2012-05-09 17:46:54 +02:00
Anton Khirnov
6d7f617700
samplefmt: add a function for filling a buffer with silence.
2012-05-09 17:44:56 +02:00
Anton Khirnov
142e740d1e
samplefmt: add a function for copying audio samples.
2012-05-09 17:43:26 +02:00
Anton Khirnov
9684341346
lavr: do not try to copy to uninitialized output audio data.
...
This would happen at least when lavr is used as a fifo with no
conversion.
2012-05-09 17:38:23 +02:00
Anton Khirnov
0982b0a431
lavr: make avresample_read() with NULL output discard samples.
2012-05-09 17:37:47 +02:00
Anton Khirnov
ac71230902
lavfi: add video buffer sink, and use it in avtools
...
Also add the public interface libavfilter/buffersink.h.
Based on a commit by Stefano Sabatini.
2012-05-09 08:59:37 +02:00
Anton Khirnov
ab165047a6
lavfi: add a function for copying properties from AVFilterBufferRef->AVFrame
...
Based on a commit by Stefano Sabatini <stefano.sabatini-lala@poste.it >
2012-05-09 08:49:36 +02:00
Anton Khirnov
0a3ad7ff80
flvenc: use AVFormatContext, not AVCodecContext for logging.
...
Encoder tag being used for muxer messages is confusing.
2012-05-07 21:28:40 +02:00
Anton Khirnov
8134fafe9b
lavfi: uninline avfilter_copy_buffer_ref_props().
...
A nontrivial public function such as this should most certainly NOT be
inline.
2012-05-07 14:23:36 +02:00
Anton Khirnov
1432c1c429
lavf: add missing '*' in a doxy.
2012-05-07 14:22:42 +02:00
Anton Khirnov
0bbd874743
lavfi: support audio in avfilter_copy_frame_props().
2012-05-07 07:10:48 +02:00
Anton Khirnov
828bd088f3
lavc: add sample rate and channel layout to AVFrame.
...
Rationale is the same as for video width/height etc.
2012-05-07 07:08:03 +02:00
Anton Khirnov
d4ac703c7f
lavfi/formats: use sizeof(var) instead of sizeof(type).
2012-05-06 16:26:41 +02:00
Anton Khirnov
25b3babe11
lavfi: always enable the scale filter and depend on sws.
...
The scale filter is used for internal colorspace conversions, so it must
always be present.
2012-05-06 16:22:29 +02:00
Anton Khirnov
fd18ee0ff6
vf_split: support user-specifiable number of outputs.
2012-05-06 16:21:00 +02:00
Anton Khirnov
dce415e7f1
avconv: remove stray useless comment.
2012-05-06 16:20:26 +02:00
Anton Khirnov
8c4022aceb
avconv: fix a segfault on -c copy with -filter_complex.
2012-04-24 06:30:02 +02:00
Anton Khirnov
2994913d70
avconv: fix a segfault when default encoder for a format doesn't exist.
...
Fail earlier and with a more descriptive error message.
2012-04-21 06:48:28 +02:00
Anton Khirnov
aff01de641
graphparser: set next to NULL on an entry extracted from inputs list
...
Prevents it from referring to the rest of the list.
2012-04-16 09:28:34 +02:00
Anton Khirnov
7ce118bae5
doc/filters: update documentation.
2012-04-15 20:37:47 +02:00
Anton Khirnov
9e8aae443b
avconv: flush decoders immediately after an EOF.
...
Prevents extensive buffering when overlaying a single picture.
2012-04-15 20:37:47 +02:00
Anton Khirnov
89605e4aa0
avconv: send EOF to vsrc_buffer.
2012-04-15 20:37:47 +02:00
Anton Khirnov
3e901cbc75
avconv: reindent.
2012-04-15 20:37:42 +02:00
Anton Khirnov
3b266da3d3
avconv: add support for complex filtergraphs.
2012-04-15 20:32:09 +02:00
Anton Khirnov
560f7774a4
avconv: make filtergraphs global.
...
This is the first step towards supporting complex filtergraphs with more
than one input and/or output.
2012-04-15 20:27:32 +02:00
Anton Khirnov
836ce90566
avconv: move filtered_frame from InputStream to OutputStream.
...
It more properly belongs to output, not input.
2012-04-15 20:24:07 +02:00
Anton Khirnov
6c9eac1998
avconv: don't set output width/height directly from input value.
...
Always take it from lavfi. This way we don't need a clearly defined
corresponding input stream.
2012-04-15 20:23:09 +02:00
Anton Khirnov
e77c86629f
avconv: move resample_{width,height,pix_fmt} to InputStream.
...
This is a more proper place for them, since they store parameters of the
input, not output, stream.
2012-04-15 20:23:09 +02:00
Anton Khirnov
9dced85426
avconv: remove a useless variable from OutputStream.
2012-04-15 20:22:36 +02:00
Anton Khirnov
b7327887ea
avconv: get output pixel format from lavfi.
...
This way we don't require a clearly defined corresponding input stream.
The result for the xwd test changes because rgb24 is now chosen instead
of bgra.
2012-04-15 20:22:36 +02:00
Anton Khirnov
7af99a01c4
graphparser: fix the order in which unlabeled input links are returned.
2012-04-15 20:20:03 +02:00
Anton Khirnov
2e21526790
avconv: change {input,output}_{streams,files} into arrays of pointers.
...
Right now, they are arrays of structs, reallocated when new
streams/files are added. This makes storing pointers to those structs
harder than necessary.
2012-04-15 20:20:03 +02:00
Anton Khirnov
ea9367e921
avconv: don't pass input/output streams to some functions.
...
They are globals, no point in pretending they are not.
2012-04-15 20:20:03 +02:00
Anton Khirnov
7bf9e3391f
vsrc_buffer: fix check from 7ae7c41.
...
The user submitted variable in this function is frame, not buf.
2012-04-14 18:58:20 +02:00
Anton Khirnov
12e7e1d03e
graphparser: allow specifying sws flags in the graph description.
2012-04-14 09:25:46 +02:00
Anton Khirnov
4e781c25b7
graphparser: fix the order of connecting unlabeled links.
...
Right now, e.g. scale,[in]overlay would connect scale to the first
overlay input and [in] to the second, which goes against the
documentation and is unintuitive.
The bug happens because of the ordering mess in curr_inputs variable:
1) the unlabeled links from the previous filter are added to it in
correct order
2) input labels are parsed and inserted to the beginning one by one
(i.e. in reverse order)
3) curr_inputs is matched against filter inputs in reverse order
Fix the problem by always using proper ordering without trying to be
clever.
2012-04-14 09:25:46 +02:00
Anton Khirnov
d7bcc71dad
graphparser: add avfilter_graph_parse2().
...
Unlike avfilter_graph_parse(), it returns unlinked inputs and outputs
to the caller, which allows parsing of graphs where inputs/outputs are
not known in advance.
2012-04-14 09:25:46 +02:00
Anton Khirnov
7ae7c41413
vsrc_buffer: allow using a NULL buffer to signal EOF.
2012-04-14 09:25:46 +02:00
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.
2012-04-09 21:30:21 +02:00
Anton Khirnov
90f65dc6cf
vf_scale: support named constants for sws flags.
2012-04-09 21:29:05 +02:00
Anton Khirnov
7c59b5c2a5
lavc doxy: add all installed headers to doxy groups.
2012-04-09 21:25:17 +02:00
Anton Khirnov
ec57b7de74
lavc doxy: add avfft to the main lavc group.
2012-04-09 21:24:46 +02:00
Anton Khirnov
8a74029ea2
lavc doxy: add remaining avcodec.h functions to a misc doxygen group.
2012-04-09 21:18:47 +02:00
Anton Khirnov
6aadfbda09
lavc doxy: add AVPicture functions to a doxy group.
2012-04-09 21:18:28 +02:00
Anton Khirnov
56512ce104
lavc doxy: add resampling functions to a doxy group.
2012-04-09 21:18:19 +02:00
Anton Khirnov
40ca0e6a75
lavc doxy: replace \ with /
...
It's the more proper symbol to use and it prevents doxygen from thinking
it's a command.
2012-04-09 21:16:37 +02:00
Anton Khirnov
f038515f0a
lavc doxy: add encoding functions to a doxy group.
2012-04-09 21:16:24 +02:00
Anton Khirnov
c8ef8464c2
lavc doxy: add decoding functions to a doxy group.
2012-04-09 21:14:05 +02:00
Anton Khirnov
199ada4944
lavc doxy: fix formatting of AV_PKT_DATA_{PARAM_CHANGE,H263_MB_INFO}
2012-04-09 21:13:49 +02:00
Anton Khirnov
30f3f62563
lavc doxy: add AVPacket-related stuff to a separate doxy group.
...
Also move AV_PKT_DATA_PARAM_CHANGE/AV_PKT_DATA_H263_MB_INFO to the
proper place.
2012-04-09 21:13:17 +02:00
Anton Khirnov
294b3a5074
lavc doxy: add core functions/definitions to a doxy group.
2012-04-09 21:12:53 +02:00
Anton Khirnov
b6c4518a87
avconv: remove OutputStream.picref.
...
It's only used inside transcode_video() and there's no point in
preserving it between subsequent calls. So use a local variable instead.
2012-04-09 05:13:00 +02:00
Anton Khirnov
695ec04e6a
avconv: only set SAR once on the decoded frame.
...
No point in repeating the assignment for each output stream.
2012-04-09 05:10:38 +02:00
Anton Khirnov
d4936548f4
avconv: remove an unused function parameter.
2012-04-06 20:21:07 +02:00
Anton Khirnov
4648fe6324
avconv: remove now pointless variables.
2012-04-06 20:21:07 +02:00
Anton Khirnov
e06d2dfcde
avconv: drop support for building without libavfilter.
...
Since the mandatory memcpy in vsrc_buffer has been eliminated, there
shouldn't be any significant reason to build without lavfi anymore.
This will make upcoming support for complex filtergraphs easier to do.
2012-04-06 20:21:07 +02:00
Anton Khirnov
a03f8ea0a8
vsrc_buffer: when no frame is available, return an error instead of segfaulting.
2012-04-05 09:30:09 +02:00
Anton Khirnov
cfec77aaf8
configure: add dl to frei0r extralibs.
2012-04-05 09:20:03 +02:00
Anton Khirnov
95587d29d7
vsrc_buffer: allow buffering arbitrary number of frames.
2012-04-01 09:04:19 +02:00
Anton Khirnov
416fd90ead
vf_scale: avoid a pointless memcpy in no-op conversion.
...
I.e. just pass the buffer along when src parameters == dst parameters.
2012-04-01 09:04:14 +02:00
Anton Khirnov
63736fe48c
avfiltergraph: try to reduce format conversions in filters.
...
Current code, with a filterchain such as
(input - yuv411) -> (scale - any) -> (sink - any)
will result in yuv420 being chosen for the second link, which is clearly
not right.
This commit attempts to improve in the following way:
repeat until convergence:
loop over all filters
find input link with exactly one format
force this format on all output links of the same type (if possible)
2012-04-01 09:04:09 +02:00
Anton Khirnov
996f9f0c32
avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
...
It will be used for logging, possibly also AVOptions.
2012-04-01 09:03:35 +02:00
Anton Khirnov
ddb4431208
id3v2: fix skipping extended header in id3v2.4
...
In v2.4, the length includes the length field itself.
2012-04-01 09:02:24 +02:00
Anton Khirnov
a839dbb94e
dvenc: print allowed profiles if the video doesn't conform to any of them.
2012-03-28 09:29:04 +02:00
Anton Khirnov
3c6607eb6f
avcodec_encode_{audio,video}: only reallocate output packet when it has non-zero size.
...
Otherwise realloc would free it, which would result in double free
later.
2012-03-28 09:28:47 +02:00
Anton Khirnov
e2e165c00f
FATE: add a test for vp8 with changing frame size.
2012-03-28 09:28:29 +02:00
Anton Khirnov
967923abd1
lavf doxy: expand AVStream.codec doxy.
2012-03-26 10:59:43 +02:00