From patchwork Tue Aug 2 06:26:12 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Steven Robertson X-Patchwork-Id: 51 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.67 with SMTP id o64csp55427vsd; Mon, 1 Aug 2016 23:27:36 -0700 (PDT) X-Received: by 10.28.5.9 with SMTP id 9mr16829368wmf.74.1470119256063; Mon, 01 Aug 2016 23:27:36 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 80si19856920wmy.26.2016.08.01.23.27.35; Mon, 01 Aug 2016 23:27:36 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@strobe-cc.20150623.gappssmtp.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E104F689E4F; Tue, 2 Aug 2016 09:27:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pa0-f65.google.com (mail-pa0-f65.google.com [209.85.220.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3D2946818DB for ; Tue, 2 Aug 2016 09:26:42 +0300 (EEST) Received: by mail-pa0-f65.google.com with SMTP id cf3so11265867pad.2 for ; Mon, 01 Aug 2016 23:26:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=strobe-cc.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wIMQMitTEaubsivryMdapHaidBzQcmNsnHHGLGHUCU8=; b=jr/Jt7XHns3SSOYORQZivj082B+7lrHR5pvSoWqQCkSTxyxQHcWnyrN11/6PltOx6q /DOb75nlc54zHlnMNzYe/JCq1TqKGVFsIbYsc6VD7VH1uDDJ0JvcIm5hWjcxVzoDj9pC Tb+gjL70bXwOGlf47cSF6N7K0+xaJnxuidPLClGm8ykfv954s6PJ0IBpIaxlvPTwkB/M FykpfOFhXbU9mLejhLSRdmIhkoMucaTycJ8rzG1pk2+7JWeBMejmR8J6MpGyB2LR+kk1 olhHrc9riEeAgkbL1j5+ry9MV0XVWL0eHA+AFkVxrDvHA3Md9dT5IfJL4YU+W9FeuN7F rbcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wIMQMitTEaubsivryMdapHaidBzQcmNsnHHGLGHUCU8=; b=UE9urmTzJnnYyC5+EeT/1ldDJCw3Jy3OqSyJtl+sEp8j7O2mtoi2GjjPdig5gOv9mO zlFz+ASWppbl9qqT6heYJv3Q6pC1XXsvhVzQfgl0pmwcT1gpCA1aWYa0lAnFQZN82Hqj pFFJxbTDGrVva/j7JO6Meb0z6nRfRXSr67HpzQ8kE7GtLvBh9DRMmrZCHQgwNioGp1QJ /1Rc4Y0bvxqgL/n8J5EQiaFNwcV79TleZsl3d0fH6M0NzbzIWr4XZPeumxAOmXY0x7Wn +mP0fuPBwwkqRCOPAmYdGddn+OiHwWJUofNcfIsFN7f42UZAjWPWjL8BynpxFpbEIM// 9QDQ== X-Gm-Message-State: AEkooutT5xMgLeu2PkDpMavinC9Nu1Ns9vhffit5oJaoTY0hTWpWDhBuMnVx1m+GYiy1sA== X-Received: by 10.66.253.101 with SMTP id zz5mr101893487pac.32.1470119206782; Mon, 01 Aug 2016 23:26:46 -0700 (PDT) Received: from localhost.localdomain (199-83-222-145.PUBLIC.monkeybrains.net. [199.83.222.145]) by smtp.gmail.com with ESMTPSA id t80sm1673253pfj.38.2016.08.01.23.26.46 (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 01 Aug 2016 23:26:46 -0700 (PDT) From: Steven Robertson To: ffmpeg-devel@ffmpeg.org Date: Mon, 1 Aug 2016 23:26:12 -0700 Message-Id: <1470119172-3485-2-git-send-email-steven@strobe.cc> X-Mailer: git-send-email 2.8.0.rc2 In-Reply-To: <1470119172-3485-1-git-send-email-steven@strobe.cc> References: <1470119172-3485-1-git-send-email-steven@strobe.cc> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] libavcodec/dnxhd: Enable 12-bit DNxHR support. 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: Steven Robertson Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" 10- and 12-bit DNxHR use the same DC coefficient decoding process and VLC table, just with a different shift value. From SMPTE 2019-1:2016, 8.2.4 DC Coefficient Decoding: "For 8-bit video sampling, the maximum value of η=11 and for 10-/12-bit video sampling, the maximum value of η=13." A sample file will be uploaded to show that with this patch, things decode correctly: dnxhr_hqx_12bit_1080p_smpte_colorbars_davinci_resolve.mov Signed-off-by: Steven Robertson --- libavcodec/dnxhddec.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/libavcodec/dnxhddec.c b/libavcodec/dnxhddec.c index 4d3a4a6..4d1b006 100644 --- a/libavcodec/dnxhddec.c +++ b/libavcodec/dnxhddec.c @@ -119,11 +119,6 @@ static int dnxhd_init_vlc(DNXHDContext *ctx, uint32_t cid, int bitdepth) av_log(ctx->avctx, AV_LOG_ERROR, "bit depth mismatches %d %d\n", ff_dnxhd_cid_table[index].bit_depth, bitdepth); return AVERROR_INVALIDDATA; } - if (bitdepth > 10) { - avpriv_request_sample(ctx->avctx, "DNXHR 12-bit"); - if (ctx->avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) - return AVERROR_PATCHWELCOME; - } ctx->cid_table = &ff_dnxhd_cid_table[index]; av_log(ctx->avctx, AV_LOG_VERBOSE, "Profile cid %d.\n", cid); @@ -134,7 +129,7 @@ static int dnxhd_init_vlc(DNXHDContext *ctx, uint32_t cid, int bitdepth) init_vlc(&ctx->ac_vlc, DNXHD_VLC_BITS, 257, ctx->cid_table->ac_bits, 1, 1, ctx->cid_table->ac_codes, 2, 2, 0); - init_vlc(&ctx->dc_vlc, DNXHD_DC_VLC_BITS, bitdepth + 4, + init_vlc(&ctx->dc_vlc, DNXHD_DC_VLC_BITS, bitdepth > 8 ? 14 : 12, ctx->cid_table->dc_bits, 1, 1, ctx->cid_table->dc_codes, 1, 1, 0); init_vlc(&ctx->run_vlc, DNXHD_VLC_BITS, 62,