diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 4ed35227c07f3686958021a15b0a453384e919ba..9c6168597be1ec54549cb8b8a56b69b7f496e3de 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -187,6 +187,7 @@ typedef struct AVFormatParameters {
 #define AVFMT_GLOBALHEADER  0x0040 /**< format wants global header */
 #define AVFMT_NOTIMESTAMPS  0x0080 /**< format does not need / have any timestamps */
 #define AVFMT_GENERIC_INDEX 0x0100 /**< use generic index building code */
+#define AVFMT_TS_DISCONT    0x0200 /**< format allows timestamo discontinuities */
 
 typedef struct AVOutputFormat {
     const char *name;
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 78fceee3733c917b89629884ec764ff6a948a526..fc98ab82b2c0704c9a1d9c74c69b35cfa016e586 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -586,5 +586,5 @@ AVInputFormat mpegps_demuxer = {
     NULL,
     NULL, //mpegps_read_seek,
     mpegps_read_dts,
-    .flags = AVFMT_SHOW_IDS,
+    .flags = AVFMT_SHOW_IDS|AVFMT_TS_DISCONT,
 };
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index a8d60ea46970b64d68a081c39b005ed1ebfef14e..80b604c5ae6c9f353b11c73a401d17698f4f6fa2 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -1524,7 +1524,7 @@ AVInputFormat mpegts_demuxer = {
     mpegts_read_close,
     read_seek,
     mpegts_get_pcr,
-    .flags = AVFMT_SHOW_IDS,
+    .flags = AVFMT_SHOW_IDS|AVFMT_TS_DISCONT,
 };
 
 AVInputFormat mpegtsraw_demuxer = {
@@ -1537,5 +1537,5 @@ AVInputFormat mpegtsraw_demuxer = {
     mpegts_read_close,
     read_seek,
     mpegts_get_pcr,
-    .flags = AVFMT_SHOW_IDS,
+    .flags = AVFMT_SHOW_IDS|AVFMT_TS_DISCONT,
 };