diff mbox

[FFmpeg-devel,1/3] avformat/mov: Only set pkt->duration to non negative values

Message ID 20180613171027.12538-1-michael@niedermayer.cc
State Accepted
Commit 8176799f31b23849382623f0f9001acc5edf7c76
Headers show

Commit Message

Michael Niedermayer June 13, 2018, 5:10 p.m. UTC
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavformat/mov.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Sasi Inguva June 14, 2018, 4:13 p.m. UTC | #1
looks good to me

On Wed, Jun 13, 2018 at 10:11 AM Michael Niedermayer <michael@niedermayer.cc>
wrote:

> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavformat/mov.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 5d9ffa69a3..0acf981aef 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -7586,7 +7586,9 @@ static int mov_read_packet(AVFormatContext *s,
> AVPacket *pkt)
>      } else {
>          int64_t next_dts = (sc->current_sample < st->nb_index_entries) ?
>              st->index_entries[sc->current_sample].timestamp :
> st->duration;
> -        pkt->duration = next_dts - pkt->dts;
> +
> +        if (next_dts >= pkt->dts)
> +            pkt->duration = next_dts - pkt->dts;
>          pkt->pts = pkt->dts;
>      }
>      if (st->discard == AVDISCARD_ALL)
> --
> 2.17.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
Michael Niedermayer June 14, 2018, 4:57 p.m. UTC | #2
On Thu, Jun 14, 2018 at 09:13:19AM -0700, Sasi Inguva wrote:
> looks good to me

thx, will apply


[...]
diff mbox

Patch

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 5d9ffa69a3..0acf981aef 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -7586,7 +7586,9 @@  static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
     } else {
         int64_t next_dts = (sc->current_sample < st->nb_index_entries) ?
             st->index_entries[sc->current_sample].timestamp : st->duration;
-        pkt->duration = next_dts - pkt->dts;
+
+        if (next_dts >= pkt->dts)
+            pkt->duration = next_dts - pkt->dts;
         pkt->pts = pkt->dts;
     }
     if (st->discard == AVDISCARD_ALL)