ffmpeg | branch: master | Siyuan Huang <saber.hu...@samsung.com> | Tue Jun 30 
13:41:46 2020 +0800| [05feb7a26b0360de97ea460802a4122f78f5fb88] | committer: 
Karthick J

libavformat/dashenc.c: Support mpd update period

According ISO 23009-1, in live cases, mpd refresh period should be configurable

Signed-off-by: Siyuan Huang <saber.hu...@samsung.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=05feb7a26b0360de97ea460802a4122f78f5fb88
---

 doc/muxers.texi       | 4 ++++
 libavformat/dashenc.c | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/doc/muxers.texi b/doc/muxers.texi
index b1389a3227..86976f4f61 100644
--- a/doc/muxers.texi
+++ b/doc/muxers.texi
@@ -366,6 +366,10 @@ adjusting playback latency and buffer occupancy during 
normal playback by client
 Set the maximum playback rate indicated as appropriate for the purposes of 
automatically
 adjusting playback latency and buffer occupancy during normal playback by 
clients.
 
+@item update_period @var{update_period}
+ Set the mpd update period ,for dynamic content.
+ The unit is second.
+
 @end table
 
 @anchor{framecrc}
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 62193058d7..dc3306a56a 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -198,6 +198,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 {
@@ -1184,6 +1185,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);
@@ -2380,6 +2383,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 },
 };
 

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to