From fe662fef246c465f72b4e82c44cbe6fd62e73a4e Mon Sep 17 00:00:00 2001
From: SiyuanHuang <saber.huang@samsung.com>
Date: Mon, 1 Jun 2020 18:19:07 +0800
Subject: [PATCH] libavformat/dashenc.c:add support to change mpd update
 interval

according iso 23009-1 , in live cases , mpd refresh period should be changeable

Signed-off-by: SiyuanHuang <saber.huang@samsung.com>
---
 libavformat/dashenc.c | 4 ++++
 1 file changed, 4 insertions(+)
 mode change 100644 => 100755 libavformat/dashenc.c

diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
old mode 100644
new mode 100755
index 3f6c39f003..4143b94883
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -196,6 +196,7 @@ typedef struct DASHContext {
     int target_latency_refid;
     AVRational min_playback_rate;
     AVRational max_playback_rate;
+    int64_t update_period;
 } DASHContext;
 
 static struct codec_string {
@@ -1178,6 +1179,8 @@ static int write_manifest(AVFormatContext *s, int final)
         char now_str[100];
         if (c->use_template && !c->use_timeline)
             update_period = 500;
+        if (c->update_period)
+            update_period = c->update_period;
         avio_printf(out, "\tminimumUpdatePeriod=\"PT%"PRId64"S\"\n", update_period);
         if (!c->ldash)
             avio_printf(out, "\tsuggestedPresentationDelay=\"PT%"PRId64"S\"\n", c->last_duration / AV_TIME_BASE);
@@ -2372,6 +2375,7 @@ static const AVOption options[] = {
     { "target_latency", "Set desired target latency for Low-latency dash", OFFSET(target_latency), AV_OPT_TYPE_DURATION, { .i64 = 0 }, 0, INT_MAX, E },
     { "min_playback_rate", "Set desired minimum playback rate", OFFSET(min_playback_rate), AV_OPT_TYPE_RATIONAL, { .dbl = 1.0 }, 0.5, 1.5, E },
     { "max_playback_rate", "Set desired maximum playback rate", OFFSET(max_playback_rate), AV_OPT_TYPE_RATIONAL, { .dbl = 1.0 }, 0.5, 1.5, E },
+    { "update_period", "Set the mpd update interval", OFFSET(update_period), AV_OPT_TYPE_INT64, {.i64 = 0}, 0, INT64_MAX, E},
     { NULL },
 };
 
-- 
2.17.1

