From patchwork Wed Oct 7 21:02:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 22747 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 0A5B044ADA0 for ; Thu, 8 Oct 2020 00:02:57 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D2E3B68B730; Thu, 8 Oct 2020 00:02:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f68.google.com (mail-ej1-f68.google.com [209.85.218.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 36C3B68015F for ; Thu, 8 Oct 2020 00:02:50 +0300 (EEST) Received: by mail-ej1-f68.google.com with SMTP id u21so4979862eja.2 for ; Wed, 07 Oct 2020 14:02:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=8jdMR9Dfv+fglZQOadibwV+hT8SmrlQLiZ5Uo1vmK1o=; b=l7umxU/CtIXxkbnGoD+8RGjZIUuzwq1ciMQD11wF7uZ2A/UiDyuDokVqwVhNVujSH6 yzr67PM6TjdVS/p7eOFUb475w80soKbqENnDnTsO6gvv4gcBhtZwba8XFAc3o6jyLuoB j8Ayl/mkFTTZq4DiAb+VSK88LLM5i7xa4UMw4A+dV7mGeK27xIAZ0ET7zTyhDH4zjxCf /7RnXnSPwePikYMBGpKrBEEE8hJl1cgQAsEs9hB8sCWYqM5vHMJ+VizZf6ihhldXVkGB V+CFo35twrt519pC3y7FLugHV3En9pinhNrPRTBVjtSPdmL1K3H3Cgav2jYR0IIFqWWX Zfuw== 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; bh=8jdMR9Dfv+fglZQOadibwV+hT8SmrlQLiZ5Uo1vmK1o=; b=m6awhuL2A24doR3cnv90pGThiTMPBz+xEWaCli5ZTLOvy+x5QwDu/s0K/7+p7VwJNn +fKic8XNMW+Z2nUWFkPFqKjn8ACP2Jrucv+mmi0itYADBm++Nh1yODUJ9QqWUwuOSkjz RWDULJeE09JewTiXA07w7ULtbFz09ciHcb0qBvkSLZJA5ewJrPlrH2v668zG39naHPNX Aq0eNrLfjM815bIrO06cMc0xfBa1uh93bE/cYfoDiMooFbHLmAolLf7GD/zKvV3NVM6p WGIYWdRKzbnwXQL6EXjtD2tnfMsonqGe9uqI6pYL8mu96g2Ndi8ZJYFvlYNfj7SlqCsO GjoQ== X-Gm-Message-State: AOAM5317IJ04ZeskvKXO43x3BZ8X01o/V6tRtYmlI1zQIlJZADV0PUE2 rfVHthYBX1OgDakwYp0XlWa1ZWb+sZHitg== X-Google-Smtp-Source: ABdhPJz9weXHfgG2Td6SpL1t7CKJDEhDO5A14ffVnJY+0cGkcPhiTAjAi2Nj2cKUD5mNoatgdDIUzQ== X-Received: by 2002:a17:906:b291:: with SMTP id q17mr5236343ejz.455.1602104569315; Wed, 07 Oct 2020 14:02:49 -0700 (PDT) Received: from localhost.localdomain ([109.227.55.37]) by smtp.gmail.com with ESMTPSA id bz5sm2270287ejc.83.2020.10.07.14.02.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Oct 2020 14:02:48 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Wed, 7 Oct 2020 23:02:40 +0200 Message-Id: <20201007210240.11304-1-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] avcodec/dpxenc: stop hardcoding color trc/primaries 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Paul B Mahol --- libavcodec/dpxenc.c | 36 ++++++++++++++++++++++++++++++++++-- tests/ref/lavf/dpx | 2 +- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/libavcodec/dpxenc.c b/libavcodec/dpxenc.c index a5960334d5..56840a8d33 100644 --- a/libavcodec/dpxenc.c +++ b/libavcodec/dpxenc.c @@ -173,6 +173,38 @@ static void encode_gbrp12(AVCodecContext *avctx, const AVFrame *pic, uint16_t *d } } +static int get_dpx_pri(int color_pri) +{ + switch (color_pri) { + case AVCOL_PRI_BT709: + return 6; + case AVCOL_PRI_SMPTE240M: + case AVCOL_PRI_SMPTE170M: + return 9; + case AVCOL_PRI_BT470BG: + return 10; + default: + return 0; + } +} + +static int get_dpx_trc(int color_trc) +{ + switch (color_trc) { + case AVCOL_TRC_LINEAR: + return 2; + case AVCOL_TRC_BT709: + return 6; + case AVCOL_TRC_SMPTE240M: + case AVCOL_TRC_SMPTE170M: + return 9; + case AVCOL_TRC_GAMMA22: + return 10; + default: + return 0; + } +} + static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet) { @@ -218,8 +250,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, write32(buf + 772, avctx->width); write32(buf + 776, avctx->height); buf[800] = s->descriptor; - buf[801] = 2; /* linear transfer */ - buf[802] = 2; /* linear colorimetric */ + buf[801] = get_dpx_trc(avctx->color_trc); + buf[802] = get_dpx_pri(avctx->color_primaries); buf[803] = s->bits_per_component; write16(buf + 804, (s->bits_per_component == 10 || s->bits_per_component == 12) ? 1 : 0); /* packing method */ diff --git a/tests/ref/lavf/dpx b/tests/ref/lavf/dpx index 68fe25afcd..39e513430a 100644 --- a/tests/ref/lavf/dpx +++ b/tests/ref/lavf/dpx @@ -1,3 +1,3 @@ -4c8880d5835ffb5fe37c1ed8c8d404de *tests/data/images/dpx/02.dpx +233e219cbfa61e0b77f8e4fad05b2404 *tests/data/images/dpx/02.dpx tests/data/images/dpx/%02d.dpx CRC=0x6da01946 305792 tests/data/images/dpx/02.dpx