| Commit message (Collapse) | Author | Age |
|
|
|
| |
TODO: elaborate
|
| |
|
|
|
|
| |
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
|
|
|
|
| |
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
|
|
|
|
| |
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
|
|
|
|
| |
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current code may, depending on the muxer, decide to use VSYNC_VFR tagged
with the specified framerate, without actually performing framerate
conversion. This is clearly wrong and against the documentation, which
states unambiguously that -r should produce CFR output for video
encoding.
FATE test changes:
* nuv-rtjpeg: replace -r with '-enc_time_base -1', which keeps the
original timebase. Output frames are now produced with proper
durations.
* filter-mpdecimate: just drop the -r option, it is unnecessary
* filter-fps-r: remove, this test makes no sense and actually
produces broken VFR output (with incorrect frame durations).
|
| |
|
| |
|
| |
|
|
|
|
| |
Broken in 7ef7a22251b8
|
|
|
|
|
|
|
| |
Use the decoded frame's sample_rate instead, which is the authoritative
value.
Drop a now-obsolete check validating AVCodecContext.sample_rate.
|
|
|
|
|
|
|
|
| |
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.
|