| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Use the correct timebase.
CC: libav-stable@libav.org
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also adds a new flag to mark filters which are aware of hwframes and
will perform this task themselves, and marks all appropriate filters
with this flag.
This is required to allow software-mapped hardware frames to work,
because we need to have the frames context available for any later
mapping operation in the filter graph.
The output from the filter graph should only propagate further to an
encoder if the hardware format actually matches the visible format
(mapped frames are valid here and have an hw_frames_ctx, but this
should not be given to the encoder as its hardware context).
|
|
|
|
|
|
|
|
|
| |
Example usage:
avconv -i INPUT -bsf filter[=opt1=val1:opt2=val2] OUTPUT
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
|
|
| |
Errors during decoding are currently considered non-fatal and do not
terminate transcoding, so even if parts of the data are corrupted, the
rest may be decodable.
However, that should apply only to the actual decoding calls, not to the
failures elsewhere (e.g. configuring filters).
|
| |
|
|
|
|
|
|
| |
Unbreak `avconv -filter_complex testsrc`.
Regression introduced in a3a0230a9870b9018dc7415ae5872784d524cfe5
|
|
|
|
| |
This avoids a segfault on nonexisting codec names.
|
|
|
|
|
| |
The setpts filter does not signal to the rest of the filtergraph that
the stream is CFR. Just generate the timestamps manually instead.
|
|
|
|
|
|
|
|
|
| |
This preserves all the information in the codec parameters.
The wavpack ref changes are caused by the fact that now the sample
format is set, so matroskaenc can use it to set the bit depth.
Bug-Id: 945, along with the previous commit
|
|
|
|
|
|
|
|
|
|
|
| |
Be more careful when an input stream encounters EOF when its filtergraph
has not been configured yet. The current code would immediately mark the
corresponding output streams as finished, while there may still be
buffered frames waiting for frames to appear on other filtergraph
inputs.
This should fix the random FATE failures for complex filtergraph tests
after a3a0230a9870b9018dc7415ae5872784d524cfe5
|
|
|
|
|
| |
This is a more appropriate place for it, and will also be useful in the
following commit.
|
| |
|
|
|
|
|
|
|
|
|
| |
This makes sure the actual stream parameters are used, which is
important mainly for hardware decoding+filtering cases, which would
previously require various weird workarounds to handle the fact that a
fake software graph has to be constructed, but never used.
This should also improve behaviour in rare cases where
avformat_find_stream_info() does not provide accurate information.
|
|
|
|
|
| |
This will be useful in the following commit, after which the muxer
timebase is not always available when encoding.
|
|
|
|
|
|
|
|
|
|
| |
Currently, a filtergraph will pull in the output constraints from its
corresponding decoder context, which breaks proper layering. Instead,
explicitly send the constaints on the output parameters to the
filtergraph.
This is similar to what is done for filtergraph inputs in
30ab4c51a180610d9f1720c75518d763515c0d9f
|
|
|
|
|
|
|
|
|
|
| |
Setting the filter input parameters is moved to init_input_stream(),
so that it is done before the decoder is opened, potentially overwriting
the information from avformat_find_stream_info() with less accurate
data.
This commit temporarily disables QSV transcoding with hw frames. The
functionality will be re-added in the following commits.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, calling configure_filtergraph() will pull in the input
parameters from the corresponding decoder context. This has the
following disadvantages:
- the decoded frame is a more proper source for this information
- a filter accessing decoder data breaks proper layering
Add functions for explicitly sending the input stream parameters to a
filtergraph input - currently from a frame and a decoder. The decoder
one will be dropped in future commits after some more restructuring.
|
| |
|
|
|
|
|
| |
This should have no practical effect for now, but will make a difference
in the following commits.
|
| |
|
| |
|
|
|
|
| |
This will be needed in the following commits.
|
| |
|
|
|
|
|
| |
Fail immediately if automatic encoder selection failed. Always set the
stream_copy/encoding_needed flags in one place.
|
|
|
|
|
|
| |
The current code assumes that encoding_needed is simply an inverse of
stream_copy, which is not true for manually attached files (for which
neither of those is true).
|
|
|
|
|
|
| |
We already have all the necessary information in open_output_file().
This makes the information about the stream/filtergraph mappings
available earlier.
|
|
|
|
| |
This makes the code easier to read.
|
|
|
|
|
|
|
| |
Fixes clang-usan runtime error "null pointer passed as argument 2,
which is declared to never be null" while streamcopying.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
|
|
|
|
| |
This fixes compilation with the libavcodec version bumped to 58.
|
|
|
|
|
|
|
|
| |
It is now only used by the av_parser_change() call during streamcopy, so
allocate a special AVCodecContext instance for this case. This instance
should go away when the new parser API is finished.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
|
|
|
|
| |
Avoids unused function/label/variable warnings after the next version bump.
|
|
|
|
| |
Signed-off-by: Diego Biurrun <diego@biurrun.de>
|
| |
|
|
|
|
|
|
| |
For video, frame_number tracks the number of frames sent to the encoder.
So it should be incremented when we submit a frame, not when we get a
packet back.
|
|
|
|
| |
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
| |
The flushing case is a bit strange; not simplifying it so the change is
less noisy.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
| |
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
| |
|
|
|
|
|
|
| |
It's not practical to keep this with the new decode API.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
| |
The switch is not yet complete because the parsers and the bistream
filters do not have a new AVCodecParam-based API yet.
|
|
|
|
|
|
| |
Open decoders first, next encoders. This makes sure that that
subtitle_header is always set properly, without relying on
avformat_find_stream_info() setting it.
|
| |
|
|
|
|
|
|
| |
EAGAIN is already managed in poll_filters().
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
|
|
| |
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
|
|
|
|
|
| |
`av_packet_unref` matches the AVFrame ref-counted API and can be used as
a drop in replacement.
Deprecate `av_free_packet`.
|
|
|
|
| |
And drop the av_dup_packet from the input_thread.
|