From patchwork Sun Jul 11 16:47:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Anthony Lemieux X-Patchwork-Id: 28891 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:bbc9:0:0:0:0:0 with SMTP id c9csp2240323ybk; Sun, 11 Jul 2021 09:54:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOcvo661m9go9iCOA/C4gRjEAk5rD52orxnQjaaqyDomnRD8cZu82D4F2dqZu1ZN4U6r6D X-Received: by 2002:a17:906:bc8b:: with SMTP id lv11mr22626994ejb.331.1626022441779; Sun, 11 Jul 2021 09:54:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626022441; cv=none; d=google.com; s=arc-20160816; b=Y3wZJmUuJNi9IN4Zs+2u+03bDjX5LqLQB7pzAWMSaSu74KlT6xoSkywljxSE8/bu1W WPFJZw15mUNbA0L100CqMO6cbZmZ8G6QZqJhOGDdbVijbhKCqThib7na3FZE8i1+jMZX ZaxaY/t9A/P9BjpcgpUiDj3E1RIaXGjxJXWfUr9JpJbBNvC5K/QU/YOQ6Wa67NhqT4tc tc3/J26a2a5g8/6lJSAAkRDikAIrGctTcDfDVjp504rcvy+Uh5JXzbPX2fILCQARfV1H gVYnPN9r/QG/8pSW7hPJSrGPk0WAw/YynDlRX+/fpHiNq0kCJFQEf7W5QzM+4ENYvdGm uJWQ== 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:message-id:date:to:from :delivered-to; bh=Ypr7Yv/AkvAfHbOTNUpmrimWdT0nWFB0jk8JSCbhc94=; b=X7Zk1ig7mDHHpyFcBNL/6vekRq6YEl5QBPEn5EdK+Tars8iFGL4pF+q1OKBozUziDZ bSGHzKyuyOoMt+Sn2KvV6CuJNwJOMG6E7AxLmi7p/hzuYxKab7c16DgnVKlWTmH3m/fX J0qEXsjfY/zLP6Cvf3nu23PKTtqYFir+qIcP9lAMM2esmvUTT9t2VrBF2uSBElj4/VT/ cX2o9DZUUeInw0kL93XEyiJ/gNgpNA2VkSV4ycz5atmS8LCl98DDDwK4Bs9+99aWBOmW 4xuMEKkz8Uz1vPLwcN/OmeXt2rUGNNAaBVwXj3uQp/zTsCU0Rs1IFzC/PIXkYoVOLXt5 gzGg== 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 c17si15321820edr.45.2021.07.11.09.54.01; Sun, 11 Jul 2021 09:54:01 -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 AAC4468A5EC; Sun, 11 Jul 2021 19:53:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 544B568A410 for ; Sun, 11 Jul 2021 19:53:53 +0300 (EEST) Received: by mail-pg1-f180.google.com with SMTP id 62so15606718pgf.1 for ; Sun, 11 Jul 2021 09:53:53 -0700 (PDT) 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:mime-version :content-transfer-encoding; bh=NOG8qYZ85ApYuwxI/H60wqGRudQNljs3/rsHInL6nmk=; b=ktIOvxTr3CZnyvlgHsxb0F4LNWwqvBchowaWxY5AMneCYFpUqofodeQRipKE6AotyE 4xNXIsJc5wVChO3z3lufsuHFGWZKYk3pcWwCcN5jroF3/FyPCA2QyUYx4/JAI48/UHJL R4Fpayt+A2ogRQf8b7SpheoQdFFeQ7oVBUHLzkFYoneX6biWqOnfF90DbnTo3/Yqtu/R Ery+LhfCmh8dChyT2OvQgN/6mtxpLa2ngMFT/ulc0V8zWA8juh1PZoMtnN54/KYKSreo ipQtvsMxxYYr4rJJdYevfjzya0ODe18BcKVDHIvoE1+LiS2o+B/ncJ/dEWccpCmI2R1h GXMQ== X-Gm-Message-State: AOAM533li5SVhsBAjj7SxbQli3Th1fJy9PYeUGyMCvYvMVg6hBAu7t17 5RUP1LK+KDiGorHO/bFWA1uW917NOoc= X-Received: by 2002:a65:53c3:: with SMTP id z3mr49944158pgr.381.1626022086516; Sun, 11 Jul 2021 09:48:06 -0700 (PDT) Received: from localhost (76-14-89-2.sf-cable.astound.net. [76.14.89.2]) by smtp.gmail.com with ESMTPSA id n3sm13129322pfn.216.2021.07.11.09.48.04 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 11 Jul 2021 09:48:05 -0700 (PDT) Received: by localhost (sSMTP sendmail emulation); Sun, 11 Jul 2021 09:48:00 -0700 From: pal@sandflow.com To: ffmpeg-devel@ffmpeg.org Date: Sun, 11 Jul 2021 09:47:50 -0700 Message-Id: <20210711164750.26005-1-pal@sandflow.com> X-Mailer: git-send-email 2.32.0.windows.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] mxfdec.c: fixed frame wrapping detection for MXFGCP1FrameWrappedPicture essence container X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Pierre-Anthony Lemieux Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: U6XhISQ9txAX Content-Length: 2470 From: Pierre-Anthony Lemieux Signed-off-by: Pierre-Anthony Lemieux --- Notes: For JPEG 2000 essence, the MXF input format module currently uses the value of byte 14 of the essence container UL to determines whether the J2K essence is clip- (byte 14 is 0x02) or frame-wrapped (byte 14 is 0x01). This approach does work when the essence container UL is equal to MXFGCP1FrameWrappedPicture, in which case the essence is always frame-wrapped. libavformat/mxf.h | 3 ++- libavformat/mxfdec.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libavformat/mxf.h b/libavformat/mxf.h index b1b1fedac7..ca510f5a2f 100644 --- a/libavformat/mxf.h +++ b/libavformat/mxf.h @@ -75,7 +75,8 @@ typedef enum { NormalWrap = 0, D10D11Wrap, RawAWrap, - RawVWrap + RawVWrap, + AlwaysFrameWrap } MXFWrappingIndicatorType; typedef struct MXFLocalTagPair { diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 3bf480a3a6..7024d2ea7d 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -1413,6 +1413,7 @@ static void *mxf_resolve_strong_ref(MXFContext *mxf, UID *strong_ref, enum MXFMe static const MXFCodecUL mxf_picture_essence_container_uls[] = { // video essence container uls + { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x06,0x00 }, 15, AV_CODEC_ID_JPEG2000, NULL, 16, AlwaysFrameWrap }, /* MXF-GC P1 Frame-Wrapped JPEG 2000 */ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x07,0x0d,0x01,0x03,0x01,0x02,0x0c,0x01,0x00 }, 14, AV_CODEC_ID_JPEG2000, NULL, 14 }, { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x10,0x60,0x01 }, 14, AV_CODEC_ID_H264, NULL, 15 }, /* H.264 */ { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x02,0x0d,0x01,0x03,0x01,0x02,0x11,0x01,0x00 }, 14, AV_CODEC_ID_DNXHD, NULL, 14 }, /* VC-3 */ @@ -1497,6 +1498,9 @@ static MXFWrappingScheme mxf_get_wrapping_kind(UID *essence_container_ul) if (val == 0x02) val = 0x01; break; + case AlwaysFrameWrap: + val = 0x01; + break; } if (val == 0x01) return FrameWrapped;