Quoting Martin Storsjö (2014-11-06 18:13:45) > On Thu, 6 Nov 2014, Anton Khirnov wrote: > > > Quoting Martin Storsjö (2014-11-06 09:43:08) > >> From: Michael Niedermayer <[email protected]> > >> > >> This is the same logic as is invoked on AVFMT_TS_NEGATIVE, > >> but which can be enabled/disabled manually, or can be enabled > >> in muxers which only need it in certain conditions. > >> > >> Also allow using the same mechanis to force streams to start > >> at 0. > >> > >> This includes documentation by Stefano Sabatini, Clément Bœsch > >> and Michael Niedermayer. > >> --- > >> Removed the enum and option for disabling it, added an APIchanges > >> entry. > >> --- > >> doc/APIchanges | 3 +++ > >> doc/muxers.texi | 24 ++++++++++++++++++++++++ > >> libavformat/avformat.h | 12 ++++++++++++ > >> libavformat/mux.c | 12 ++++++++++-- > >> libavformat/options_table.h | 4 ++++ > >> libavformat/version.h | 2 +- > >> 6 files changed, 54 insertions(+), 3 deletions(-) > >> > >> diff --git a/doc/APIchanges b/doc/APIchanges > >> index 69da442..44af215 100644 > >> --- a/doc/APIchanges > >> +++ b/doc/APIchanges > >> @@ -13,6 +13,9 @@ libavutil: 2014-08-09 > >> > >> API changes, most recent first: > >> > >> +2014-11-xx - xxxxxxx - lavf 56.06.3 - avformat.h > >> + Add AVFormatContext.avoid_negative_ts. > >> + > >> 2014-11-xx - xxxxxxx - lavc 56.6.0 - vorbis_parser.h > >> Add a public API for parsing vorbis packets. > >> > >> diff --git a/doc/muxers.texi b/doc/muxers.texi > >> index 6d2c495..0dee8f9 100644 > >> --- a/doc/muxers.texi > >> +++ b/doc/muxers.texi > >> @@ -16,6 +16,30 @@ with the options @code{--enable-muxer=@var{MUXER}} / > >> The option @code{-formats} of the av* tools will display the list of > >> enabled muxers. > >> > >> +Some of the generic, muxer independent options are: > >> + > >> +@table @option > >> +@item avoid_negative_ts @var{integer} (@emph{output}) > >> + > >> +Possible values: > >> +@table @samp > >> +@item make_non_negative > >> +Shift timestamps to make them non-negative. > >> +Also note that this affects only leading negative timestamps, and not > >> +non-monotonic negative timestamps. > >> +@item make_zero > >> +Shift timestamps so that the first timestamp is 0. > >> +@item auto (default) > >> +Enables shifting when required by the target format. > >> +@end table > >> + > >> +When shifting is enabled, all output timestamps are shifted by the > >> +same amount. Audio, video, and subtitles desynching and relative > >> +timestamp differences are preserved compared to how they would have > >> +been without shifting. > >> +@end table > >> + > >> + > >> A description of some of the currently available muxers follows. > >> > >> @anchor{crc} > >> diff --git a/libavformat/avformat.h b/libavformat/avformat.h > >> index f28186f..8ca02c8 100644 > >> --- a/libavformat/avformat.h > >> +++ b/libavformat/avformat.h > >> @@ -1198,6 +1198,18 @@ typedef struct AVFormatContext { > >> */ > >> int max_ts_probe; > >> > >> + /** > >> + * Avoid negative timestamps during muxing. > >> + * Any value of the AVFMT_AVOID_NEG_TS_* constants. > >> + * Note, this only works when interleave_packet_per_dts is in use. > > > > One last nit: i think this sentence will only confuse the API users, as > > they don't need to know anything about lavf internals. So I'd drop it. > > I think it can be made more concrete to users by changing like this: > > "Note, this only works when using av_interleaved_write_frame" > > Because if you use av_write_frame directly (doing the interleaving, or > choosing to do bad interleaving) you can't really expect this to work (and > also triggering the warning in the other commit).
Sounds good. -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
