| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
| |
This allows using WRAPPED_AVFRAME encoders with loopback decoders in
order to connect multiple filtergraphs together.
Clear the flag in muxers, since lavf does not need it for anything and
it would change the results of framecrc FATE tests.
|
|
|
|
|
| |
This allows to send an encoder's output back to decoding and feed the
result into a complex filtergraph.
|
|
|
|
| |
Will be useful in following commits.
|
| |
|
|
|
|
| |
Will be useful in following commits.
|
|
|
|
| |
Will become useful in following commits.
|
|
|
|
|
| |
These functions used to be much longer, but now they are only a couple
lines each, some of them duplicated between audio and video.
|
|
|
|
|
|
|
|
| |
Encoder timebase is equal to the frame timebase, so does not need to be
passed separately.
Also, rename in_picture to frame, which is shorter and more accurate -
it always contains a frame, never a field.
|
|
|
|
|
|
| |
These functions used to be passed directly to pthread_create(), which
required them to return void*. This is no longer the case, so they can
return a plain int.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
filters
Current callstack looks like this:
* ifilter_bind_ist() (filter) calls ist_filter_add() (demuxer);
* ist_filter_add() opens the decoder, and then calls
dec_add_filter() (decoder);
* dec_add_filter() calls ifilter_parameters_from_dec() (i.e. back into
the filtering code) in order to give post-avcodec_open2() parameters
to the filter.
This is unnecessarily complicated. Pass the parameters as follows
instead:
* dec_init() (which opens the decoder) returns post-avcodec_open2()
parameters to its caller (i.e. the demuxer) in a parameter-only
AVFrame
* the demuxer passes these parameters to the filter in
InputFilterOptions, together with other filter options
|
| |
|
|
|
|
| |
Perform it right after we figure out what the type is.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The first of these binds inputs of complex filtergraphs to demuxer
streams (with a misleading comment claiming it *creates* complex
filtergraphs).
The second ensures that all filtergraph outputs are connected to an
encoder.
Merge them into a single function, which simplifies the ffmpeg_filter
API, is shorter, and will also be useful in following commits.
Also, rename misleadingly-named init_input_filter() to
fg_complex_bind_input().
|
|
|
|
|
|
|
|
| |
Rename dec_open to dec_init(), as it is more descriptive of its new
purpose.
Will be useful in following commits, which will add a new path for
opening decoders.
|
|
|
|
|
| |
Will be useful in following commits where we will want to create a
decoder before having enough information to open it.
|
|
|
|
|
| |
Outside of ifilter_bind_ist(), there are no longer any assumptions about
about filter inputs being fed by an InputStream.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Treat it analogously to stream parameters like format/dimensions/etc.
This is functionally different from previous code in 2 ways:
* for non-CFR video, the frame timebase (set by the decoder) is used
rather than the demuxer timebase
* for sub2video, AV_TIME_BASE_Q is used, which is hardcoded by the
subtitle decoding API
These changes should avoid unnecessary and potentially lossy timestamp
conversions from decoder timebase into the demuxer one.
Changes the timebases used in sub2video tests.
|
| |
|
|
|
|
| |
It has no reason to exist.
|
|
|
|
|
| |
The caller does not need or expect it, and it can lead to terminating
filtering prematurely in case there is more than one output.
|
|
|
|
|
|
|
|
| |
h264
Partially fixes ticket #10395.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
|
|
|
| |
Tested-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
|
|
|
| |
src/libavfilter/internal.h:255:45: note: passing argument to parameter 'filter' here
int ff_filter_config_links(AVFilterContext *filter);
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
|
| |
This was missed in b800327f4c7233d09baca958121722a04c2035ff.
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
| |
It never makes sense for this function to be called by users.
|
|
|
|
| |
It never makes sense for this function to be called by users.
|
|
|
|
|
|
| |
Cf. #10857
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
| |
|
|
|
|
|
| |
If the time code side data is overridden by the packet level, we also
make sure not to update `p->metadata` to a mismatched timecode.
|
|
|
|
| |
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
We only need to consider side data types that may possibly come from the
packet.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
| |
|
|
|
|
|
|
|
| |
Also fixes a memory leak where the side data was previously not properly
cleaned up on OOM.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
| |
If the time code side data is overridden by the packet level, we also
make sure not to update `out->metadata` to a mismatched timecode.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
| |
Needed by following commit.
|
|
|
|
|
| |
If the time code side data is overridden by the packet level, we also
make sure not to update `out->metadata` to a mismatched timecode.
|
|
|
|
| |
This function was already ignoring OOM errors.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The signature of these wrappers is more complicated due to a need to
distinguish between "failed allocating side data" and "side data was
already present".
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
| |
This and the following commits fix #10857
|
| |
|
|
|
|
|
|
|
|
| |
Native access is from the code that declared the options, foreign access
is from code that is using the options. Forbid foreign access to
AVOption.offset/default_val, for which there is no good reason, and
which should allow us more freedom in extending their semantics in a
compatible way.
|
|
|
|
| |
Will be useful in following commits.
|
|
|
|
|
|
|
|
|
|
| |
Replace the opt_size() function, currently only called from
av_opt_copy(), with
* a constant array of element sizes
* a function that signals whether an option type is POD (i.e.
memcpyable) or not
Will be useful in following commits.
|
|
|
|
| |
Will be useful in following commits.
|