| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Their usefulness is questionable, very few decoders set them, and their type
should have been int64_t. A replacement field can be added later if a valid use
case is found.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
|
|
|
|
|
|
|
|
| |
Frame counters can overflow relatively easily (INT_MAX number of frames is
slightly more than 1 year for 60 fps content), so make sure we use 64 bit
values for them.
Also deprecate the old 32 bit frame_number attribute.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many filters accept user-provided data that is cumbersome to provide as
text strings - e.g. binary files or very long text. For that reason such
filters typically provide a option whose value is the path from which
the filter loads the actual data.
However, filters doing their own IO internally is a layering violation
that the callers may not expect, and is thus best avoided. With the
recently introduced graph segment parsing API, loading option values
from files can now be handled by the caller.
This commit makes use of the new API in ffmpeg CLI. Any option name in
the filtergraph syntax can now be prefixed with a slash '/'. This will
cause ffmpeg to interpret the value as the path to load the actual value
from.
|
|
|
|
|
|
|
| |
This is consistent with -stats_mux*
As the options were added very recently, this should not break any
users.
|
|
|
|
|
|
|
| |
Individual streams should be terminated in the former case, the whole
muxing process in the latter.
Reported-by: Gyan Doshi
|
|
|
|
|
|
| |
They are too recent.
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
| |
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
|
|
|
| |
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
| |
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
| |
Analogous to -enc_stats*, but happens right before muxing. Useful
because bitstream filters and the sync queue can modify packets after
encoding and before muxing. Also has access to the muxing timebase.
|
|
|
|
| |
Useful to keep track of what timebase the packet's timestamps are in.
|
|
|
|
|
|
|
|
| |
Since at least 4.4.3, -ab/-b:a help text was in the video section
of ffmpeg -h, but these are audio options.
Signed-off-by: Marth64 <marth64@proxyid.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
| |
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Splits the currently handled subtitle at random access point
packets that can be configured to follow a specific output stream.
Currently only subtitle streams which are directly mapped into the
same output in which the heartbeat stream resides are affected.
This way the subtitle - which is known to be shown at this time
can be split and passed to muxer before its full duration is
yet known. This is also a drawback, as this essentially outputs
multiple subtitles from a single input subtitle that continues
over multiple random access points. Thus this feature should not
be utilized in cases where subtitle output latency does not matter.
Co-authored-by: Andrzej Nadachowski <andrzej.nadachowski@24i.com>
Co-authored-by: Bernard Boulay <bernard.boulay@24i.com>
Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This way we can call process_subtitles without causing the decoded
frame counter to get bumped.
Additionally, this now takes into mention all of the decoded
subtitle frames without fix_sub_duration latency/buffering, or filtering
out decoded reset/end subtitles without any rendered rectangles, which
matches the original intent in 4754345027eb85cfa51aeb88beec68d7b036c11e
.
Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
|
|
|
|
|
|
|
|
|
| |
This enables us to later call this when generating additional
subtitles for splitting purposes.
Co-authored-by: Andrzej Nadachowski <andrzej.nadachowski@24i.com>
Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
|
| |
|
| |
|
|
|
|
|
| |
Use it for logging. This makes log messages related to this output
stream more consistent.
|
|
|
|
|
| |
Use it for logging. This makes log messages related to this output file
more consistent.
|
|
|
|
|
|
|
| |
Similar to -vstats, but more flexible:
- works for audio as well as video
- frame and/or packet information
- user-specifiable format
|
|
|
|
|
|
|
|
| |
Print data hash before side data list, fix wrong nesting level of data hash
element.
In particular, fix trac issue:
http://trac.ffmpeg.org/ticket/7217
|
|
|
|
|
|
|
|
| |
For some samples the pkt->pts is always missing, use the pkt->dts
instead.
Fix trac issue:
http://trac.ffmpeg.org/ticket/4427
|
| |
|
|
|
|
| |
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().
|