| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It is private to the demuxer and do not need to be visible outside of
it.
|
|
|
|
| |
Only the demuxer itself is supposed to do that.
|
|
|
|
|
| |
They are private to the demuxer and do not need to be visible outside of
it.
|
|
|
|
|
| |
They are private to the demuxer and do not need to be visible outside of
it.
|
|
|
|
|
| |
Stop demuxer threads in ifile_close() instead. Simplifies the demuxer
API.
|
|
|
|
|
| |
For now this is just closing the format context and freeing InputFile,
but will contain more in the future.
|
|
|
|
|
| |
Start threads implicitly when ifile_get_packet() is called. Simplifies
the demuxer API.
|
|
|
|
| |
Move InputFile.loop into it.
|
|
|
|
|
|
|
|
|
| |
This is similar to what was done before for output files and will allow
introducing demuxer-private state in future commits
Unlike for muxing, the code is moved to existing ffmpeg_demux.c rather
than to a new file. The reason is just file size - the demuxing code is
much smaller than muxing.
|
| |
|
|
|
|
|
| |
libass defines a non-static read_file() symbol, which causes conflicts
with static linking.
|
|
|
|
|
|
|
|
| |
Now that we have proper options for defining display matrix
overrides, this should no longer be required.
fftools does not have its own versioning, so for now the define is
just set to 1 and disables the functionality if set to zero.
|
|
|
|
|
|
|
|
|
| |
This enables overriding the rotation as well as horizontal/vertical
flip state of a specific video stream on the input side.
Additionally, switch the singular test that was utilizing the rotation
metadata to instead override the input display rotation, thus leading
to the same result.
|
|
|
|
| |
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
|
|
|
|
|
| |
They are private to the muxer and do not need to be visible outside of
it.
|
|
|
|
|
| |
It is private to the muxer and does not need to be visible outside of
it.
|
|
|
|
|
|
|
|
| |
This is now possible since OutputStream is a child of OutputFile and the
code allocating it can access MuxStream. Avoids the overhead and extra
complexity of allocating two objects instead of one.
Similar to what was previously done for OutputFile/Muxer.
|
|
|
|
|
| |
Output streams are now children of OutputFile, so it makes more sense to
free them there.
|
|
|
|
|
| |
Some of it is already duplicated in ost_free() - those parts can be just
dropped. The rest is moved to ost_free(), as it properly belongs there.
|
|
|
|
|
|
|
| |
Replace it with an array of streams in each OutputFile. This is a more
accurate reflection of the actual relationship between OutputStream and
OutputFile. This is easier to handle and will allow further
simplifications in future commits.
|
|
|
|
| |
And intermediate functions. Will be useful in the following commit.
|
| |
|
| |
|
|
|
|
|
| |
Bitstream filtering is done as a part of muxing, so this is the more
proper place for this.
|
|
|
|
|
| |
It is internal to ffmpeg_mux* and does not need to be visible to other
code.
|
|
|
|
| |
mux_free() is no longer called from anywhere else.
|
|
|
|
|
| |
A separate muxer init is no longer necessary, now that of_open() has
access to Muxer.
|
|
|
|
| |
This is now possible since setup_sync_queues() can interact with Muxer.
|
|
|
|
|
|
|
|
| |
This is now possible since the code allocating OutputFile can see
sizeof(Muxer). Avoids the overhead and extra complexity of allocating
two objects instead of one.
Similar to what is done e.g. for AVStream/FFStream in lavf.
|
|
|
|
| |
This will allow ffmpeg_mux_init.c to work with these structs.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ffmpeg_opt.c currently contains code for
- parsing the options provided on the command line
- opening and initializing input files based on these options
- opening and initializing output files based on these options
The code dealing with each of these is for the most part disjoint, so it
makes sense to move them to separate files. Beyond reducing the quite
considerable size of ffmpeg_opt.c, this will also allow exposing muxer
internals (currently private to ffmpeg_mux.c) to the initialization
code, thus removing the awkward separation currently in place.
|
|
|
|
|
| |
The code in question is muxing-specific and so belongs there. This will
allow make some objects private to the muxer in future commits.
|
|
|
|
| |
This function is now static.
|
|
|
|
|
| |
This is more descriptive, and the submit_packet() name will be reused in
following commits.
|
|
|
|
|
| |
This function is common to both transcoding and streamcopy, so it
properly belongs into the muxing code.
|
|
|
|
| |
The packet submitted to of_submit_packet() may be NULL to signal EOF.
|
|
|
|
|
|
|
| |
This simplifies the code as there is no other place the error buffer
is needed, so the av_err2str helper macro can be used.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
|
|
| |
av_err2str which is a wrapper for av_strerror already calls
strerror_r if available and if not has a fallback for the other
error codes that would be handled by that, so manually calling
strerror again if it fails is not necessary.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
|
|
| |
av_err2str which is a wrapper for av_strerror already calls
strerror_r if available and if not has a fallback for the other
error codes that would be handled by that, so manually calling
strerror again if it fails is not necessary.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
|
|
|
|
|
|
|
| |
Currently it would essentially change the find_stream_info setting for
the file it was specified for and all following files, which is unusual
and somewhat unexpected behaviour for a per-file option and not even
documented to behave like this.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|