]> git.sesse.net Git - ffmpeg/commitdiff
avformat/dashenc: use local variable and avoid calculate duration multiple times
authorLimin Wang <lance.lmwang@gmail.com>
Sun, 26 Apr 2020 09:49:19 +0000 (17:49 +0800)
committerKarthick J <kjeyapal@akamai.com>
Wed, 29 Apr 2020 06:27:31 +0000 (11:57 +0530)
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
libavformat/dashenc.c

index 63764149584ffb431932983aaeb3a7da24916058..4885a6beda50d051acd5297d603a57127504e7ae 100644 (file)
@@ -1916,6 +1916,7 @@ static int dash_flush(AVFormatContext *s, int final, int stream)
         OutputStream *os = &c->streams[i];
         AVStream *st = s->streams[i];
         int range_length, index_length = 0;
+        int64_t duration;
 
         if (!os->packets_written)
             continue;
@@ -1955,23 +1956,18 @@ static int dash_flush(AVFormatContext *s, int final, int stream)
             }
         }
 
-        os->last_duration = FFMAX(os->last_duration, av_rescale_q(os->max_pts - os->start_pts,
-                                                                  st->time_base,
-                                                                  AV_TIME_BASE_Q));
+        duration = av_rescale_q(os->max_pts - os->start_pts, st->time_base, AV_TIME_BASE_Q);
+        os->last_duration = FFMAX(os->last_duration, duration);
 
         if (!os->muxer_overhead && os->max_pts > os->start_pts)
             os->muxer_overhead = ((int64_t) (range_length - os->total_pkt_size) *
-                                  8 * AV_TIME_BASE) /
-                                 av_rescale_q(os->max_pts - os->start_pts,
-                                              st->time_base, AV_TIME_BASE_Q);
+                                  8 * AV_TIME_BASE) / duration;
         os->total_pkt_size = 0;
         os->total_pkt_duration = 0;
 
         if (!os->bit_rate) {
             // calculate average bitrate of first segment
-            int64_t bitrate = (int64_t) range_length * 8 * AV_TIME_BASE / av_rescale_q(os->max_pts - os->start_pts,
-                                                                                       st->time_base,
-                                                                                       AV_TIME_BASE_Q);
+            int64_t bitrate = (int64_t) range_length * 8 * AV_TIME_BASE / duration;
             if (bitrate >= 0)
                 os->bit_rate = bitrate;
         }