On 04/24/2013 05:29 PM, Anton Khirnov wrote:
> Hack partially based on a commit by Michael Niedermayer <[email protected]>
> Should fix (or work around) bug 458.
> ---
>  avconv.c     |   18 ++++++++++++++++++
>  avconv.h     |    2 ++
>  avconv_opt.c |    1 +
>  3 files changed, 21 insertions(+)
> 
> diff --git a/avconv.c b/avconv.c
> index 7aee0cb..5a52565 100644
> --- a/avconv.c
> +++ b/avconv.c
> @@ -348,6 +348,24 @@ static void write_frame(AVFormatContext *s, AVPacket 
> *pkt, OutputStream *ost)
>          bsfc = bsfc->next;
>      }
>  
> +    if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS) && ost->last_mux_dts != 
> AV_NOPTS_VALUE &&
> +        pkt->dts < ost->last_mux_dts + !(s->oformat->flags & 
> AVFMT_TS_NONSTRICT)) {
> +        av_log(NULL, AV_LOG_WARNING, "Non-monotonous DTS in output stream "
> +               "%d:%d; previous: %"PRId64", current: %"PRId64"; ",
> +               ost->file_index, ost->st->index, ost->last_mux_dts, pkt->dts);
> +        if (exit_on_error) {
> +            av_log(NULL, AV_LOG_FATAL, "aborting.\n");
> +            exit(1);
> +        }

Not sure what is better: having a proper check in the muxing layer under
a proper flag or try to make this lumpo of code at least moderately
formatted. (prize for doing a < b + boolean for getting <= )

As the code is a bit convoluted in the checks as is now.

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

Reply via email to