[FFmpeg-devel] [PATCH] libavformat/dashenc.c:support mpd update period

James Almer jamrial at gmail.com
Thu Jul 9 16:43:27 EEST 2020


On 7/9/2020 3:01 AM, Jeyapal, Karthick wrote:
> Pushed the patch, with minor change to commit message.
> 
> Thanks,
> Karthick
> On 6/30/20 11:14 AM, Siyuan Huang wrote:
>> Update with no file mode changes :
>>
>>  
>>
>> From 818095d4f0aa50dfee3cb0622146a2180801c5fe Mon Sep 17 00:00:00 2001
>>
>> From: Siyuan Huang <saber.huang at samsung.com>
>>
>> Date: Tue, 30 Jun 2020 13:41:46 +0800
>>
>> Subject: [PATCH] libavformat/dashenc.c:support mpd update period v3
>>
>>  
>>
>> according iso 23009-1 , in live cases , mpd refresh
>>
>> period should be changeable
>>
>>  
>>
>> Signed-off-by: Siyuan Huang <saber.huang at samsung.com>
>>
>> ---
>>
>> 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.
>>
>> + at 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);

Since update_period is now configurable, the option should be of type
AV_OPT_TYPE_DURATION and this line changed to use write_time() to get
the correct format that denotes hours, minutes, seconds, etc.

>>
>>          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-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__ffmpeg.org_mailman_listinfo_ffmpeg-2Ddevel&d=DwIGaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=xOoesbz-6ff1GPXp5Lg4jf1ZG99yp4a1qhxVn_YOwRU&m=4YPMEclN8LjEF9ay98BehLzHoqtCqzgK4hxGam47mRQ&s=5Xpoq0cZZUGetVqh7mK1Wpmgm1JwFfS8cH8wVHYwpuk&e= 
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list