diff mbox

[FFmpeg-devel,05/11] avformat/dashenc: setting @availabilityStartTime when the first frame is ready

Message ID 1521782811-26449-1-git-send-email-vdixit@akamai.com
State Accepted
Commit 3e75057a1d702ccc71f858095f64f6cd96f6461e
Headers show

Commit Message

Dixit, Vishwanath March 23, 2018, 5:26 a.m. UTC
From: Vishwanath Dixit <vdixit@akamai.com>

@availabilityStartTime specifies the anchor for the computation of the earliest
availability time (in UTC) for any Segment in the Media Presentation.
---
 libavformat/dashenc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Jeyapal, Karthick April 2, 2018, 3:59 a.m. UTC | #1
On 3/23/18 10:56 AM, vdixit@akamai.com wrote:
> From: Vishwanath Dixit <vdixit@akamai.com>

>

> @availabilityStartTime specifies the anchor for the computation of the earliest

> availability time (in UTC) for any Segment in the Media Presentation.

Please be little more verbose for a clearer explanation.
> ---

>  libavformat/dashenc.c | 7 ++++---

>  1 file changed, 4 insertions(+), 3 deletions(-)

>

> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c

> index 7b854b5..b62cb3e 100644

> --- a/libavformat/dashenc.c

> +++ b/libavformat/dashenc.c

> @@ -740,9 +740,6 @@ static int write_manifest(AVFormatContext *s, int final)

>              update_period = 500;

>          avio_printf(out, "\tminimumUpdatePeriod=\"PT%"PRId64"S\"\n", update_period);

>          avio_printf(out, "\tsuggestedPresentationDelay=\"PT%"PRId64"S\"\n", c->last_duration / AV_TIME_BASE);

> -        if (!c->availability_start_time[0] && s->nb_streams > 0 && c->streams[0].nb_segments > 0) {

> -            format_date_now(c->availability_start_time, sizeof(c->availability_start_time));

> -        }

>          if (c->availability_start_time[0])

>              avio_printf(out, "\tavailabilityStartTime=\"%s\"\n", c->availability_start_time);

>          format_date_now(now_str, sizeof(now_str));

> @@ -1282,6 +1279,10 @@ static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)

>      if (os->first_pts == AV_NOPTS_VALUE)

>          os->first_pts = pkt->pts;

>  

> +    if (!c->availability_start_time[0])

> +        format_date_now(c->availability_start_time,

> +                        sizeof(c->availability_start_time));

> +

>      if (c->use_template && !c->use_timeline) {

>          elapsed_duration = pkt->pts - os->first_pts;

>          seg_end_duration = (int64_t) os->segment_index * c->seg_duration;
Dixit, Vishwanath April 4, 2018, 9:03 a.m. UTC | #2
On 4/2/18 9:29 AM, Jeyapal, Karthick wrote:
>

>

> On 3/23/18 10:56 AM, vdixit@akamai.com wrote:

>> From: Vishwanath Dixit <vdixit@akamai.com>

>>

>> @availabilityStartTime specifies the anchor for the computation of the earliest

>> availability time (in UTC) for any Segment in the Media Presentation.

> Please be little more verbose for a clearer explanation.

Thanks for the review. I have submitted the revised patch https://patchwork.ffmpeg.org/patch/8315/. 				
>> ---

>>  libavformat/dashenc.c | 7 ++++---

>>  1 file changed, 4 insertions(+), 3 deletions(-)

>>

>> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c

>> index 7b854b5..b62cb3e 100644

>> --- a/libavformat/dashenc.c

>> +++ b/libavformat/dashenc.c

>> @@ -740,9 +740,6 @@ static int write_manifest(AVFormatContext *s, int final)

>>              update_period = 500;

>>          avio_printf(out, "\tminimumUpdatePeriod=\"PT%"PRId64"S\"\n", update_period);

>>          avio_printf(out, "\tsuggestedPresentationDelay=\"PT%"PRId64"S\"\n", c->last_duration / AV_TIME_BASE);

>> -        if (!c->availability_start_time[0] && s->nb_streams > 0 && c->streams[0].nb_segments > 0) {

>> -            format_date_now(c->availability_start_time, sizeof(c->availability_start_time));

>> -        }

>>          if (c->availability_start_time[0])

>>              avio_printf(out, "\tavailabilityStartTime=\"%s\"\n", c->availability_start_time);

>>          format_date_now(now_str, sizeof(now_str));

>> @@ -1282,6 +1279,10 @@ static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)

>>      if (os->first_pts == AV_NOPTS_VALUE)

>>          os->first_pts = pkt->pts;

>>  

>> +    if (!c->availability_start_time[0])

>> +        format_date_now(c->availability_start_time,

>> +                        sizeof(c->availability_start_time));

>> +

>>      if (c->use_template && !c->use_timeline) {

>>          elapsed_duration = pkt->pts - os->first_pts;

>>          seg_end_duration = (int64_t) os->segment_index * c->seg_duration;

>

>

>
diff mbox

Patch

diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 7b854b5..b62cb3e 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -740,9 +740,6 @@  static int write_manifest(AVFormatContext *s, int final)
             update_period = 500;
         avio_printf(out, "\tminimumUpdatePeriod=\"PT%"PRId64"S\"\n", update_period);
         avio_printf(out, "\tsuggestedPresentationDelay=\"PT%"PRId64"S\"\n", c->last_duration / AV_TIME_BASE);
-        if (!c->availability_start_time[0] && s->nb_streams > 0 && c->streams[0].nb_segments > 0) {
-            format_date_now(c->availability_start_time, sizeof(c->availability_start_time));
-        }
         if (c->availability_start_time[0])
             avio_printf(out, "\tavailabilityStartTime=\"%s\"\n", c->availability_start_time);
         format_date_now(now_str, sizeof(now_str));
@@ -1282,6 +1279,10 @@  static int dash_write_packet(AVFormatContext *s, AVPacket *pkt)
     if (os->first_pts == AV_NOPTS_VALUE)
         os->first_pts = pkt->pts;
 
+    if (!c->availability_start_time[0])
+        format_date_now(c->availability_start_time,
+                        sizeof(c->availability_start_time));
+
     if (c->use_template && !c->use_timeline) {
         elapsed_duration = pkt->pts - os->first_pts;
         seg_end_duration = (int64_t) os->segment_index * c->seg_duration;