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.

Feel free to push otherwise.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to