diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index ace99179293fe1164c211f828714b4d9519ecbed..b6a98931efab93bf0c531dcdb9825ef7e4e16973 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -1099,6 +1099,7 @@ matroska_add_stream (MatroskaDemuxContext *matroska)
                             if ((res = ebml_read_float(matroska, &id,
                                                        &num)) < 0)
                                 break;
+                            if (!track->default_duration)
                             track->default_duration = 1000000000/(matroska->time_scale*num);
                             break;
                         }