From patchwork Fri Jan 7 14:21:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33157 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp430919iog; Fri, 7 Jan 2022 06:22:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJzWD0Y7Tvj4xqVV5Q6HSxMBKgpHBLs+hiBvrY1Y7WQoMSK3XYUEWCKYHnImFDQpE4gpHib0 X-Received: by 2002:a17:907:72c2:: with SMTP id du2mr51880117ejc.155.1641565328438; Fri, 07 Jan 2022 06:22:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641565328; cv=none; d=google.com; s=arc-20160816; b=lkiAXVWfSjzxryv0hlgXl8CkxykzbKsZZB4LeXocdfxQK4krLuaHfj8Xg3ksc/8/Ev orfVGlmcQYpK2P5r6eafQVAwUFIYrUpdru3ePkIQr3luHB4d5Th47PSex5BvgJipw6lh SBg/J9jDnqClWReywlY77UL1F5IsLAInceJDrBpFuQX4sknqWQwgAspbulHRvrzLbuwc QLAn8zGhqBdZJAW4kB0HkoM3cNvxmc1FcMyRcE4bGUzxcMUqQT/IbDRFT0j3DTaf87W8 IRoWzmHzgH/ky89/J7nTS+GDsnPf0HUxgG1A4+67JbRy1kU6edDQ9rg8kq4e0R33VR/a Xpaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=kH+GaUPvExLgOFr9xIOM+wSAjWu7AvMuuAhr3Gr9MMM=; b=mAGytZkBEdGQ6bo7p0BNzj+b3L5Belm4mXush8mdsGXwlbUeXPW4J2aAVdbqRhHXBD NyFKCeoufo/36EJmv+Ru2r2rRsz4tDX5JR3EzIcRVnMiqoz0y36co75dOatIvCryasSd fnj3TiGXoLs3dcv48L2m1QgOnc9lHebkE4cJ+lzRayA+jYyqb23BgkUIaImUY2rmOvLH dEcmOSC1M4Jva025diYZ6JQQ7nUYWQsGJBKmQZPDDEyiLWSjKo1HJevejGpfMEvo0nNX XQmzTVQiX0cEl2stY5CD6YR58GM6HqKRQ/SFBQrIgN+LOJI3cyn6Kk84cJhqM2hHvXBP MerQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=brkdfZQm; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dy5si513814edb.226.2022.01.07.06.22.04; Fri, 07 Jan 2022 06:22:08 -0800 (PST) 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=@gmail.com header.s=20210112 header.b=brkdfZQm; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E9E3B68AACC; Fri, 7 Jan 2022 16:22:00 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ua1-f43.google.com (mail-ua1-f43.google.com [209.85.222.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49C3A680588 for ; Fri, 7 Jan 2022 16:21:54 +0200 (EET) Received: by mail-ua1-f43.google.com with SMTP id p1so10398359uap.9 for ; Fri, 07 Jan 2022 06:21:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=9z4He3gzNF23iIjHta4DT0tGeutbBWWDpCp/J6vxqk8=; b=brkdfZQm+AaYfAaKG+/Utt3+hRFmDVvMpwL4KYTL+IkUFGTS8iWOl0h14aN1TJaTH8 9/d4FwtYxL8FW6UmRYB72U0XSWWW+JU3mYzOR3q+ormVvN1IIGub7SnW0xQkfNYxLqHF IeRTcLK17My8+6LDhTzhN6mq4xpPGrQbKi7WzQ3X4NmlovEjBwipq23LUCReALaoEjnz zfriAwoWMaiT0O6An8Hl7D3zGParGII9jRAkKbnqTuUJQD9Rf2bUflLUfgm+2q0zQq4z csAyDmVRZ7JPosID4UMVwrA/TAH31kSRf9mEcfQd7fz1Jn5sxdkO/blaC2OjtqDYMQv7 XnnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=9z4He3gzNF23iIjHta4DT0tGeutbBWWDpCp/J6vxqk8=; b=mNOLKV8neKhutscmn/JhkYsxID9a3RuwCO3WznoGUxwcReYwxY0OJIP8IxWfWiibsV wm/ND5Z1PugOtRL20LBrVjZHP/CRdRqvu/BBc39dxcRQkwe1QsN5P3BttGKXyufRdG3X ooGqgRf0fRQ7Gl02SvH7JDngXGqH4wOmxTr9M7lwjj/Te6f+7yA4bIpYg689N+5Ufvqv EZyFTMiim82UruF7q8/Hw/CNOFCQxsyG1z8YPBSGPa/ZMm3Sf99+Za01NWqb8KL+1qfJ cPA+BIDkbLPUedFyzp7IiLXxP0D02joodnd0NO+lRLC3nK1tPzYVj1yf3BbmeBUDhX7N DJjQ== X-Gm-Message-State: AOAM531D3Md3Bh9Z7p3YWuLB7Ih52aSzCpQn/qUu+uc+0IREQ7zNk0NF NuXbp08Ugh05FPSSB1oSFsBHbh/q+o8= X-Received: by 2002:a05:6102:903:: with SMTP id x3mr22392711vsh.41.1641565312465; Fri, 07 Jan 2022 06:21:52 -0800 (PST) Received: from localhost.localdomain ([191.83.210.83]) by smtp.gmail.com with ESMTPSA id u69sm3289172vke.30.2022.01.07.06.21.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jan 2022 06:21:51 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 Jan 2022 11:21:33 -0300 Message-Id: <20220107142134.821-1-jamrial@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/av1: honor the requested skip_frame level 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: iIntyzW0g0oI This supports dropping non-intra, non-key, or all frames. Signed-off-by: James Almer --- libavcodec/av1dec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index db110c50c7..94f65c6540 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -916,6 +916,12 @@ static int set_output_frame(AVCodecContext *avctx, AVFrame *frame, av_log2(s->operating_point_idc >> 8) > s->cur_frame.spatial_id) return 0; + if ((avctx->skip_frame >= AVDISCARD_NONINTRA && (s->raw_frame_header->frame_type != AV1_FRAME_KEY && + s->raw_frame_header->frame_type != AV1_FRAME_INTRA_ONLY)) || + (avctx->skip_frame >= AVDISCARD_NONKEY && s->raw_frame_header->frame_type != AV1_FRAME_KEY) || + avctx->skip_frame >= AVDISCARD_ALL) + return 0; + ret = av_frame_ref(frame, srcframe); if (ret < 0) return ret;