From patchwork Fri Aug 14 10:03:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harry Mallon X-Patchwork-Id: 21655 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 51E6E44BD57 for ; Fri, 14 Aug 2020 13:03:39 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2D33868A9BB; Fri, 14 Aug 2020 13:03:39 +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 D6AC4689A01 for ; Fri, 14 Aug 2020 13:03:32 +0300 (EEST) Received: by mail-ej1-f68.google.com with SMTP id g19so9308311ejc.9 for ; Fri, 14 Aug 2020 03:03:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codex.online; s=google; h=from:mime-version:date:message-id:subject:to; bh=rs66xfJOlyJUnN4Mfz4EcnI0FhCBwBMhXRY350MX+yQ=; b=dRqxFNhsGxO7H0DxZAdwG65aTvXaPuEVTs1TSJMBJR1sTzulIvrbwC3ADBUCmV3tAw 8lCq8SW6i5qSvcED+iS7jSFoHyY4sWB2CVYu8aP1v0eP6KSwBXo+/TUM+s72vaB3AdkM 48HLACclOGMpYxG6Ucu6B/lSZn15oxDhMXVmg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=rs66xfJOlyJUnN4Mfz4EcnI0FhCBwBMhXRY350MX+yQ=; b=FcOUoQZMSjxmfFEZLdF1Tii2JOSWxFUaYwDBUUrYA3eG6b9o92eBUfyHV/+ls/1ZN+ op2exrfkQZZzmqW7RBwxqT1SKcRnhcrtgCeFRSkxppWpCH0huqVuykoSZS4LzIf8t6R0 OzmTRbyXOV124xivTdyKlEOlqfvN1kllPjeti9QGckaLuKztiKkQpZZ7GoiULXIzeHoE aIgrcJu/6hrogclTrPOEiaJHMni/UV7cllGPA2F3qxu901BheRx7Trb9HbsUu87sRrQd 10YE1tN30TLSLAMy5eFJIbWED7561ZKc7o9Ta0qiK2nMA1DKLD/szpZTwGl4DbswbpAL 9/Sg== X-Gm-Message-State: AOAM5318ZmemlEQOoK01V3xuHJsMWar7lsWVWxE+1QzYGHkU2DyQVYPy cPpgCsA+3jzq2ut2r+4m+xKqXiBQKimj1XGq5FBKHJK7WSg= X-Google-Smtp-Source: ABdhPJwB+oVK32neLLFgHEaJ3ypxyxXR83R+PdNIk9STK0+Z2yDhTohtCe/OxyaG/lQfuBmgsQFXlctyV22+As6wN3g= X-Received: by 2002:a17:906:d8f:: with SMTP id m15mr1618476eji.494.1597399411782; Fri, 14 Aug 2020 03:03:31 -0700 (PDT) Received: from 795182654588 named unknown by gmailapi.google.com with HTTPREST; Fri, 14 Aug 2020 03:03:31 -0700 From: Harry Mallon X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Date: Fri, 14 Aug 2020 03:03:31 -0700 Message-ID: To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH v2] avcodec/dpx: Read alternative frame rate from television header 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" Signed-off-by: Harry Mallon --- libavcodec/dpx.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c index b1833ed9ef..7e3ac0af2e 100644 --- a/libavcodec/dpx.c +++ b/libavcodec/dpx.c @@ -216,10 +216,23 @@ static int decode_frame(AVCodecContext *avctx, else avctx->sample_aspect_ratio = (AVRational){ 0, 1 }; + /* preferred frame rate from Motion-picture film header */ if (offset >= 1724 + 4) { buf = avpkt->data + 1724; i = read32(&buf, endian); - if(i) { + if(i && i != 0xFFFFFFFF) { + AVRational q = av_d2q(av_int2float(i), 4096); + if (q.num > 0 && q.den > 0) + avctx->framerate = q; + } + } + + /* alternative frame rate from television header */ + if (offset >= 1940 + 4 && + !(avctx->framerate.num && avctx->framerate.den)) { + buf = avpkt->data + 1940; + i = read32(&buf, endian); + if(i && i != 0xFFFFFFFF) { AVRational q = av_d2q(av_int2float(i), 4096); if (q.num > 0 && q.den > 0) avctx->framerate = q;