From patchwork Thu Mar 28 07:39:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 12511 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 3E206447CFB for ; Thu, 28 Mar 2019 09:39:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1EC8B68A5F3; Thu, 28 Mar 2019 09:39:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7CBDD689BFE for ; Thu, 28 Mar 2019 09:39:13 +0200 (EET) Received: by mail-pl1-f174.google.com with SMTP id b65so4573438plb.6 for ; Thu, 28 Mar 2019 00:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=BxKmGdGdjOhd5hkjOG9YLmmNCHhcgpYdXJS5fYlNlLQ=; b=VD3xGMLZjpbnpyaBjQBjRsbJLGulD/ZIQIwYgruPSD5iGmfcgAy9pKY/i1doIeDkO/ 5RW/Z+rajGIgDnea9QkBnvsORjY97DaBlhvMJ2aQwy3ml5/Dh8u3caRtJQ2KFJK+KNGv j2MC1sv1PJoP5juQGShJitD1ih3+yPXOOF/K8a5HxtOROFEONln0QJjeP4zy+LAATlnB 4WRd/VmhQZox6RXeKaq7H55Qu8kYVkOaC2NZ4ogh6TZe9EN806Y4BGe52wepJ5JblM8V vD5XgbzDLtRtaMhLsSgggP8aEksKDSsKy9Wf7FmoMLPRBiaLYGe5qUfSnui/2D+NtT4p orag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=BxKmGdGdjOhd5hkjOG9YLmmNCHhcgpYdXJS5fYlNlLQ=; b=Eri0QoOpgBrpGgKllbrcAWjwAo6i8gKeuv30EdXIeFCepEu94Q2Eel4d2fVdxmaT41 lu+nnS2kmLpSIr9KwJGzHMxzgVGrkhmdBHE3uFBJL6Pla+X77sCwuXWf1+G+oa36ZVWA Jn+sGWCVL8lDPCeMWQUf3KUliBhF/dD2ErGWLSirlv3pGgFyCeU2vRwrHzzBChvHsv78 ifenfUpLbvNGZxNVLDoVihhYZtyKaFvdJzOPu0JDKyny5anG4Tk/HFy4+3T7NyWJJ8kP LM3naUDN/mly0t0XkShfQZ6ggsHvpUv2ptvQiXZbhs//CIMf2Gx8jXd8u4+2X3+ajwxP OApQ== X-Gm-Message-State: APjAAAXWiE1M2d4x59h8/nkhxQ2MWe4+JyuM7wiUSv/dBZSTEXL5Y3A/ Ng6q7/FQux8ZATRtoD0313xmupMv X-Google-Smtp-Source: APXvYqyovulIGBpb9HvgBPfCWgVGvNYa3Cw48S1tPKV11JXdFmfbOca3l2mj2T48QnxzQu747ApPJQ== X-Received: by 2002:a17:902:bcc9:: with SMTP id o9mr27993585pls.65.1553758751580; Thu, 28 Mar 2019 00:39:11 -0700 (PDT) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id d3sm32644152pfc.125.2019.03.28.00.39.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 00:39:10 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Thu, 28 Mar 2019 15:39:06 +0800 Message-Id: <1553758747-26559-1-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 Subject: [FFmpeg-devel] [PATCH V1 1/2] lavf/flvdec: Fix AMF NUMBER type to metadata lost 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao use %.12g replace %.f when save AMF NUMBER(double) type to metadata. before this fix, we get FLV metadata like: Metadata: lasttimestamp : 113 lastkeyframetimestamp: 112 after this fix: Metadata: lasttimestamp : 113.005 lastkeyframetimestamp: 111.678 Signed-off-by: Jun Zhao --- libavformat/flvdec.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index 445d58d..12bfd4b 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -649,7 +649,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, sizeof(str_val)); av_dict_set(&s->metadata, key, str_val, 0); } else if (amf_type == AMF_DATA_TYPE_NUMBER) { - snprintf(str_val, sizeof(str_val), "%.f", num_val); + snprintf(str_val, sizeof(str_val), "%.12g", num_val); av_dict_set(&s->metadata, key, str_val, 0); } else if (amf_type == AMF_DATA_TYPE_STRING) { av_dict_set(&s->metadata, key, str_val, 0);