From patchwork Thu Jan 17 09:01:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jeyapal, Karthick" X-Patchwork-Id: 11776 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id CF11E44E210 for ; Thu, 17 Jan 2019 11:02:01 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E81EB68AB94; Thu, 17 Jan 2019 11:01:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a1i868.smtp2go.com (a1i868.smtp2go.com [43.228.187.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 22B3B68AB1C for ; Thu, 17 Jan 2019 11:01:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1547716623; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=6Awep2Wj05vrb32jTCxKIdx6dOVnBqYB/DNc+2V7UPo=; b=f9htpEti HPlPWAU35M2dGanwmklk0JdCHtH5CVLAOOvGFvzBMB7YU7R5gHP3VIsg0JlPuBEAOUDtZfWAv333o LQRM/6ZOnzhrn7Uw315fthJwJSIRFkKpoq8zFKL5+7mrROjlJop3nG1NEiLc90rxyyuO/Q7SYpHSL FamR2z2cUTUfHp8h6uVRmLPxa8p+tvz1801MVt9hBF+R12VT1bx1pWkzwKBctlxwElxpIxr1FPKxJ m8o9eMO5f28LTDXUWGYnZAWg5FTiOMYyMwvMDLRhNxpRNGG1iFnPT0WRPSyNY5ViFgCaoyN67Eftd TN05ChxXhk67sQeIX0km74wspw==; Received: from [10.66.228.43] (helo=SmtpCorp) by smtpcorp.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.91) (envelope-from ) id 1gk3Yg-4pkPga-Sh; Thu, 17 Jan 2019 09:01:54 +0000 Received: from [10.63.208.195] (helo=blr-mp4tf.bangalore.corp.akamai.com) by smtpcorp.com with esmtpa (Exim 4.91) (envelope-from ) id 1gk3Yf-wSESJk-JK; Thu, 17 Jan 2019 09:01:54 +0000 From: Karthick J To: ffmpeg-devel@ffmpeg.org Date: Thu, 17 Jan 2019 14:31:36 +0530 Message-Id: <20190117090136.45200-1-kjeyapal@akamai.com> X-Mailer: git-send-email 2.17.1 (Apple Git-112) X-Smtpcorp-Track: 1gk3YfwSESJkJK.QjSjEyyNv Feedback-ID: 337386m:337386asVRLGB:337386sSZ3QHzezc X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH] avformat/dashenc: Format xs:datetime in millisecond precision X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Karthick J MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" For low latency streaming even milliseconds matter! --- libavformat/dashenc.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index cfd0f601d4..912c1cf11d 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -32,6 +32,7 @@ #include "libavutil/mathematics.h" #include "libavutil/opt.h" #include "libavutil/rational.h" +#include "libavutil/time.h" #include "libavutil/time_internal.h" #include "avc.h" @@ -668,12 +669,18 @@ static void write_time(AVIOContext *out, int64_t time) static void format_date_now(char *buf, int size) { - time_t t = time(NULL); struct tm *ptm, tmbuf; - ptm = gmtime_r(&t, &tmbuf); + int64_t time_us = av_gettime(); + int64_t time_ms = time_us / 1000; + const time_t time_s = time_ms / 1000; + int millisec = time_ms - (time_s * 1000); + ptm = gmtime_r(&time_s, &tmbuf); if (ptm) { - if (!strftime(buf, size, "%Y-%m-%dT%H:%M:%SZ", ptm)) + int len; + if (!strftime(buf, size, "%Y-%m-%dT%H:%M:%S", ptm)) buf[0] = '\0'; + len = strlen(buf); + snprintf(buf + len, size - len, ".%03dZ", millisec); } }