| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
Instead of manually assembling the string, use av_dict_get_string
which handles things like proper escaping too (even though it is
not yet needed here).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
| |
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
| |
Reindent after previous commit and break/split some lines as
appropriate.
|
|
|
|
|
| |
adjust_frame_pts_to_encoder_tb() is so small that this serves no useful
purpose.
|
| |
|
|
|
|
|
| |
Calling adjust_frame_pts_to_encoder_tb() with a NULL frame does not
perform a meaningful action.
|
|
|
|
| |
Not its estimated value that will not necessarily be used.
|
|
|
|
|
| |
Almost none of that function's complexity is useful for audio, it can
be replaced by a simple av_rescale_q().
|
|
|
|
|
|
| |
Makes it easier to track what timebase are the frame timestamps in and
allows to stop accessing filters in code that shouldn't deal with
filtering.
|
|
|
|
|
| |
Do it right after the frame is received from the filtergraph. This is a
more logical place for this and will simplify future commits.
|
|
|
|
|
| |
It is not needed after the spec is parsed. Also avoids ugly string
comparisons for each video frame.
|
|
|
|
| |
Allows to remove the ugly of_get_chapters() wrapper.
|
|
|
|
|
|
|
|
|
|
| |
Rather than the encoder timebase. Since the times are parsed as
microseconds, this will not reduce precision, except possibly when
chapter times are used and the chapter timebase happens to be better
aligned with the encoder timebase, which is unlikely.
This will allow parsing the keyframe times earlier (before encoder
timebase is known) in future commits.
|
|
|
|
|
|
| |
There are 8 of them and they are typically used together. Allows to pass
just this struct to forced_kf_apply(), which makes it clear that the
rest of the OutputStream is not accessed there.
|
|
|
|
|
| |
It serves no purpose, they will be closed and freed in
avcodec_free_context() called from ist_free().
|
|
|
|
|
|
|
|
|
| |
Do it in set_dispositions() rather than during stream creation.
Since at this point all other stream information is known, this allows
setting disposition based on metadata, which implements #10015. This
also avoids an extra allocated string in OutputStream that was unused
after of_open().
|
|
|
|
| |
Avoids conflicts, e.g. when 'i' is used in the outvar expression.
|
| |
|
|
|
|
|
| |
There can be zero input streams, with input provided by lavfi complex
filtergraphs.
|
|
|
|
|
|
|
|
|
| |
Replace it with an array of streams in each InputFile. This is a more
accurate reflection of the actual relationship between InputStream and
InputFile.
Analogous to what was previously done to output streams in
7ef7a22251b852faab9404c85399ba8ac5dfbdc3.
|
|
|
|
| |
Skip unusable streams early and do not compute any scores for them.
|
|
|
|
|
| |
This is simpler. The indirection via an index exists for historical
reasons that longer apply.
|
|
|
|
|
|
| |
This code was supposed to affect copying stream dispositions, but it
does not achieve that after bd55552d69, since dispositions are set
earlier.
|
|
|
|
|
|
| |
Encoding init code will currently fall back to a 25fps default when no
framerate is known or specified, but only if there is a known source
input stream. There is no good reason for this condition, so drop it.
|
| |
|
|
|
|
| |
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
|
|
|
|
| |
It cannot be true since 1959351aecf. Effectively reverts 6a3833e1411.
|
| |
|
| |
|
| |
|
|
|
|
| |
It no longer needs to be visible outside of the muxing code.
|
|
|
|
|
|
|
|
| |
Frame limiting is now handled using sync queues. This code prevents the
sync queue from triggering EOF, resulting in unnecessarily many frames
being decoded, filtered, and then discarded.
Found-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
|
|
|
|
|
|
| |
Specificaly, the of_add_attachments() call (which can add attachment
streams to the output) and the check whether the output file contains
any streams. They both logically belong in create_streams().
|
|
|
|
|
|
|
| |
The inner loop never goes through more than 1 iteration, and so can be
replaced by an if().
Found-by: Andreas Rheinhardt
|
| |
|
| |
|
|
|
|
|
| |
It should be input-only to this code. Will allow making it const in
future commits.
|
|
|
|
| |
It does the same thing as the block right below it.
|
|
|
|
|
|
| |
Should fix undefined behavior.
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some formats like FLV can dynamically add streams during packet reading.
FFprobe does check for this and reallocates the global stream info, but does
not reallocate InputFrame's streams and decoders when this happens, which,
as a result, could have caused flushing to occur on an out of bounds stream
index, since the flush loop iterates over fmt_ctx's nb_streams, and not
ifile's, despite using ifile's streams.
This fixes an out of bounds read and segfult.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
The current adjustment of input start times just adjusts the tsoffset.
And it does so, by resetting the tsoffset to nullify the new start time.
This leads to breakage of -copyts, ignoring of input_ts_offset, breaking
of -isync as well as breaking wrap correction.
Fixed by taking cognizance of these parameters, and by correcting start times
just before sync offsets are applied.
|
|
|
|
|
| |
In preparation for applying start time correction that accounts for all
factors such as copyts, input_ts_offset ..etc
|
|
|
|
| |
It should be input-only to this code.
|
|
|
|
|
|
|
|
|
|
|
| |
The current code will override the *_disable fields (set by -vn/-an
options) when creating output streams for unlabeled complex filtergraph
outputs, in order to disable automatic mapping for the corresponding
media type.
However, this will apply not only to automatic mappings, but to manual
ones as well, which should not happen. Avoid this by adding local
variables that are used only for automatic mappings.
|
|
|
|
|
| |
Makes it easy to see where all the streams are created. Will also be
useful in the following commit.
|
|
|
|
|
|
| |
Specifically recording_time and stop_time - use local variables instead.
OptionsContext should be input-only to this code. Will allow making it
const in future commits.
|
| |
|
|
|
|
|
| |
Use a local variable instead. This will allow making OptionsContext
const in future commits.
|
|
|
|
|
| |
This code shares variables like OptionsContext.metadata_*_manual, so it
makes sense to group it together.
|
|
|
|
| |
Similar to what is done for muxing, may be useful for debugging.
|