From patchwork Sat Sep 8 05:42:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: jay@wizardofthenet.com X-Patchwork-Id: 10275 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:12c4:0:0:0:0:0 with SMTP id 65-v6csp258282jap; Fri, 7 Sep 2018 22:42:50 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZuDy0NvFpnLqtMvxSCv5iCdrRKaK8e3YOG+bwVvyH0qqM2tHIeaoBjsjUu77s/k0gGHnnd X-Received: by 2002:adf:a789:: with SMTP id j9-v6mr8483502wrc.277.1536385370555; Fri, 07 Sep 2018 22:42:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536385370; cv=none; d=google.com; s=arc-20160816; b=cdUA1Bw9ssb+gxJ/5C4DyhaHUJZpBTTXcS94VRYEHfzsEcPs2seqxh35nllKNFWluf R9pw18NUnmyxW0soi9OCq+lwe18MWCq9JcvEsSX1DrICwzXR4KxqcLAEc6nmWminoPRU iQU/v2AFK+Kg0M2+kQsRlZDoRRKQeaE4bjwf4YSj23uSU2X8eh4AQqmp+RLrpwOyeQ+Q TNJP7J4uJI3C3wVBJpYPj8/Q4db+rbz8SN+DAkZkT/CR6YLtrNaNqc2O06OOmwdp/r0A YzahaphQAeVtVTMgSqKqGgTj+JGyvcN6upldDOx0IUuahtnh98RwCeZ1UKLsPrwdBjc0 hIwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to; bh=bY6rkJS9aEZEfsvsyHUgwDDUVjlVGYpTk0fBHItHj5U=; b=fLWZRe7feomGiLzs61+84uN6gfOiV6IiwmCyAo+kAxgwOg7ncmJpyTuFc7m2C16K5Z kp6He3AUGHtr2z4NiA/eDkwNoInDSh5AuWI6R4SJTuDoDk5cYgne5bK/oWFmpcWFobmk UZC7cIGnfgOjPrOg5LmKre5h0prVXrEB6btRpDEGagusoNDYdCYw4pmMNUgkpD+V/FWd RyldXhS4/ps3XC0pmFcccTiq5L5liIfEGYWi5+K8xk1Z42xzbcyYH/PZYtiC6xjUy3NP sis42EV/HmZkAsI76YtxfP2ZcKZjqp2k5Hv6fAUG1PxVGRok0wpkScJ9Q98t8JA+Xy23 YtVg== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x9-v6si10120566wrr.349.2018.09.07.22.42.50; Fri, 07 Sep 2018 22:42:50 -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; 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 312EB68A0B9; Sat, 8 Sep 2018 08:42:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp65.ord1d.emailsrvr.com (smtp65.ord1d.emailsrvr.com [184.106.54.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6607A68A0AE for ; Sat, 8 Sep 2018 08:42:21 +0300 (EEST) Received: from smtp1.relay.ord1d.emailsrvr.com (localhost [127.0.0.1]) by smtp1.relay.ord1d.emailsrvr.com (SMTP Server) with ESMTP id 384A140144; Sat, 8 Sep 2018 01:42:23 -0400 (EDT) X-Auth-ID: jay@wizardofthenet.com Received: by smtp1.relay.ord1d.emailsrvr.com (Authenticated sender: jay-AT-wizardofthenet.com) with ESMTPSA id D765B40136; Sat, 8 Sep 2018 01:42:22 -0400 (EDT) X-Sender-Id: jay@wizardofthenet.com Received: from python-centos7.fdn.ad (usa-67-224-107-242.sohonet.co.uk [67.224.107.242]) (using TLSv1.2 with cipher DHE-RSA-AES128-GCM-SHA256) by 0.0.0.0:465 (trex/5.7.12); Sat, 08 Sep 2018 01:42:23 -0400 From: Jason Stevens To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 Sep 2018 22:42:14 -0700 Message-Id: <20180908054214.8298-3-jay@wizardofthenet.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180908054214.8298-1-jay@wizardofthenet.com> References: <20180908054214.8298-1-jay@wizardofthenet.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 2/2] libavformat/mxfenc: add missing dnxhr mxfcontainer essence ULs 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: Jason Stevens Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Add missing dnxhr mxf container essence ULs to the mxf encoder. set proper mxf frame size for dnxhr using libavformat/dnxhd's get dnxhr size function. This fixes dnxhr mxf files being quarantined by Avid Media Composer. Signed-off-by: Jason Stevens --- libavformat/mxfenc.c | 53 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 7f629dbe53..96e8a859de 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -146,6 +146,11 @@ enum ULIndex { INDEX_DNXHD_720p_8bit_HIGH, INDEX_DNXHD_720p_8bit_MEDIUM, INDEX_DNXHD_720p_8bit_LOW, + INDEX_DNXHR_LB, + INDEX_DNXHR_SQ, + INDEX_DNXHR_HQ, + INDEX_DNXHR_HQX, + INDEX_DNXHR_444, INDEX_JPEG2000, INDEX_H264, }; @@ -345,6 +350,31 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = { { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 }, { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x13,0x00,0x00 }, mxf_write_cdci_desc }, + // DNxHR LB - CID 1274 + { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x28,0x00,0x00 }, + mxf_write_cdci_desc }, + // DNxHR SQ - CID 1273 + { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x27,0x00,0x00 }, + mxf_write_cdci_desc }, + // DNxHR HQ - CID 1272 + { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x26,0x00,0x00 }, + mxf_write_cdci_desc }, + // DNxHR HQX - CID 1271 + { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x25,0x00,0x00 }, + mxf_write_cdci_desc }, + // DNxHR 444 - CID 1270 + { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x05,0x00 }, + { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x24,0x00,0x00 }, + mxf_write_cdci_desc }, // JPEG2000 { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 }, { 0x06,0x0e,0x2b,0x34,0x01,0x02,0x01,0x01,0x0d,0x01,0x03,0x01,0x15,0x01,0x08,0x00 }, @@ -1959,7 +1989,11 @@ AVPacket *pkt) header_cid = pkt->data + 0x28; cid = header_cid[0] << 24 | header_cid[1] << 16 | header_cid[2] << 8 | header_cid[3]; - if ((frame_size = avpriv_dnxhd_get_frame_size(cid)) < 0) + if ((frame_size = avpriv_dnxhd_get_frame_size(cid)) == DNXHD_VARIABLE) { + frame_size = avpriv_dnxhd_get_hr_frame_size(cid, st->codecpar->width, st->codecpar->height); + } + + if (frame_size < 0) return -1; if ((sc->interlaced = avpriv_dnxhd_get_interlaced(cid)) < 0) return AVERROR_INVALIDDATA; @@ -1998,6 +2032,23 @@ AVPacket *pkt) case 1253: sc->index = INDEX_DNXHD_720p_8bit_LOW; break; + case 1274: + sc->index = INDEX_DNXHR_LB; + break; + case 1273: + sc->index = INDEX_DNXHR_SQ; + break; + case 1272: + sc->index = INDEX_DNXHR_HQ; + break; + case 1271: + sc->index = INDEX_DNXHR_HQX; + sc->component_depth = 10; + break; + case 1270: + sc->index = INDEX_DNXHR_444; + sc->component_depth = 10; + break; default: return -1; }