From patchwork Sat Feb 9 23:21:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 12014 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 3E31A4484F7 for ; Sun, 10 Feb 2019 01:22:10 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1FBFE68A920; Sun, 10 Feb 2019 01:22:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B1D8668A7D4 for ; Sun, 10 Feb 2019 01:22:03 +0200 (EET) Received: by mail-qt1-f181.google.com with SMTP id o6so8223083qtk.6 for ; Sat, 09 Feb 2019 15:22:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=7pHocfLc2BOq3h9+Ax0oiVobQkRlHDtY3A2ne719/mA=; b=us77u4L4zzxxKU6bRiNITlTmBbyYBuJ8mN9achg6CJcfxh4pFQxEr1g7hG/LvoYFR0 iDdjSnynpEsWPU/0baLsH5ZyCAsjze24UFnuNIAX7G2/UIqiL/z7XlXV1C1KNdUeqS/u s80eF3a9CrmB9q2ywABHYKJwzykt0VPuedBkmsNp7XoD9K99DZzpcWpdw68Qwn3zHzV4 g7vhY1iiPrwJS5E3A9fYIcvVmjqZQCe63ObpPwIE8sAs4UKbyTlO/Tnw15rwMbz2WVcS dUfDpMfY49M/lYgX9WSFCdBYjLGHfu8+gczAsSS0WYDux8bNHA+NkwfFyZYyA7g86QqN UYog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=7pHocfLc2BOq3h9+Ax0oiVobQkRlHDtY3A2ne719/mA=; b=qUziNmXs99QnRmvyqjKemydWYrHiXjLdY35sTbzeyH8M5lWB3ihgjrp3p+6tbWst3j eaQu4J9F5GFrov72X+6JLo6KVd+mXUoTKWNYAjk80Dl19tdhBSB2McuChbFfTXl55ydt GdaOHbpV0vWWqwNeq/Vcpdqdom9Hn3xMdxE0b5DHM3bKAgjowCJlK6Gv//QnsKT3rUJy xIcmKMXxQ6PKG9xC+4Yr7OSQ+VmcChpxXDTkO5qEy169KOWM4zKzlIDxez4+Zfzy+ZLb fN+RRYSOH35zqeJwBpEuER+qCTbQSsLbpW7FUnxdjs/NaVqNGYumiuR3PObPxvRbe2HV fubA== X-Gm-Message-State: AHQUAubYzmD/BMhySFTqlU/LaZLxDH3OBZ2BQFaomv/ptyO/LZQaXa3r 4MmIcqzGuQftGZUq4hNONFMhjsQv X-Google-Smtp-Source: AHgI3Ia+Uq0WZX7AFLVj9CZzLBzyTwSBMEaI05bEv5WLLIPs7kGGuMRrdXLnv7/gwe10+uR9/ipcfw== X-Received: by 2002:aed:2103:: with SMTP id 3mr7638045qtc.385.1549754522395; Sat, 09 Feb 2019 15:22:02 -0800 (PST) Received: from localhost.localdomain ([181.23.81.215]) by smtp.gmail.com with ESMTPSA id t64sm5710345qkf.28.2019.02.09.15.22.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 09 Feb 2019 15:22:01 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 9 Feb 2019 20:21:41 -0300 Message-Id: <20190209232141.5680-1-jamrial@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/mov: don't rescale mastering display values from the SmDm atom 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Simplifies code. Signed-off-by: James Almer --- libavformat/mov.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 9b9739f788..986c54e74e 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -5268,9 +5268,7 @@ static int mov_read_vpcc(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom) { MOVStreamContext *sc; - const int chroma_den = 50000; - const int luma_den = 10000; - int i, j, version; + int i, version; if (c->fc->nb_streams < 1) return AVERROR_INVALIDDATA; @@ -5293,17 +5291,14 @@ static int mov_read_smdm(MOVContext *c, AVIOContext *pb, MOVAtom atom) if (!sc->mastering) return AVERROR(ENOMEM); - for (i = 0; i < 3; i++) - for (j = 0; j < 2; j++) - sc->mastering->display_primaries[i][j] = - av_make_q(lrint(((double)avio_rb16(pb) / (1 << 16)) * chroma_den), chroma_den); + for (i = 0; i < 3; i++) { + sc->mastering->display_primaries[i][0] = av_make_q(avio_rb16(pb), 1 << 16); + sc->mastering->display_primaries[i][1] = av_make_q(avio_rb16(pb), 1 << 16); + } for (i = 0; i < 2; i++) - sc->mastering->white_point[i] = - av_make_q(lrint(((double)avio_rb16(pb) / (1 << 16)) * chroma_den), chroma_den); - sc->mastering->max_luminance = - av_make_q(lrint(((double)avio_rb32(pb) / (1 << 8)) * luma_den), luma_den); - sc->mastering->min_luminance = - av_make_q(lrint(((double)avio_rb32(pb) / (1 << 14)) * luma_den), luma_den); + sc->mastering->white_point[i] = av_make_q(avio_rb16(pb), 1 << 16); + sc->mastering->max_luminance = av_make_q(avio_rb32(pb), 1 << 8); + sc->mastering->min_luminance = av_make_q(avio_rb32(pb), 1 << 14); sc->mastering->has_primaries = 1; sc->mastering->has_luminance = 1;