Commit Graph
100 Commits
Author SHA1 Message Date
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