2017.01.23. 10:05 keltezéssel, Steven Liu írta:
the code use 1000000 * duration, use AV_TIME_BASE replace 1000000

Signed-off-by: Steven Liu <l...@chinaffmpeg.org>
---
  libavformat/hlsenc.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 85d3955..f070bc3 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -501,7 +501,7 @@ static int hls_append_segment(struct AVFormatContext *s, 
HLSContext *hls, double
                  return AVERROR(ENOMEM);
              }
              if (replace_int_data_in_filename(hls->avf->filename, 
sizeof(hls->avf->filename),
-                filename, 't',  (int64_t)round(1000000 * duration)) < 1) {
+                filename, 't',  (int64_t)round(AV_TIME_BASE * duration)) < 1) {
                  av_log(hls, AV_LOG_ERROR,
                         "Invalid second level segment filename template '%s', "
                          "you can try to remove second_level_segment_time 
flag\n",

I used 1000000 because the duration is in seconds and the replacement should be in microseconds.
The filename will contain the duration in microseconds.
So this is a "seconds to microseconds" conversion. It would be a mistake to use AV_TIME_BASE here.
Maybe a comment should be added to the code about it.

The reasoning behind to put duration in microseconds into filename instead of seconds was to avoid comma in filename.

bb
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to