From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A018A427D5 for ; Fri, 7 Jan 2022 14:22:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C2B8768AB82; Fri, 7 Jan 2022 16:22:02 +0200 (EET) Received: from mail-vk1-f180.google.com (mail-vk1-f180.google.com [209.85.221.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 32279689F94 for ; Fri, 7 Jan 2022 16:21:55 +0200 (EET) Received: by mail-vk1-f180.google.com with SMTP id o2so3792781vkn.0 for ; Fri, 07 Jan 2022 06:21:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=WzG3kr+ZFDDb0CWz8KsfS7gLFlZjYhxmbcUKgYEOyyg=; b=A2ckCaEmpjXwcPUt3nwRmPUoBrc+J4+OwuUrozey90IBLVWQfSmbK5Pf5PEPgAbK4w 4NlVgDflo9ps2ARvdJOjbQC+iGjEihGqw/CGi9TaYCBuqBB90KVe/7Q34WMlZYIaCplA FDnd6yorXaqK9R301FIohbP4IH+yi9NDIOSNjXnqCvD3eXOS1uMzsadu2A1ycP5vIWLB Ymb8F7qecJr659sTflHVUTSMSPbIJgwCrTYQZOcgbS0xtsYB/q02BMBLmHZU4FZVTM4O KsaskhvTM7HcA8p8VvNKmL/nNjSiAZS38gisTTXgdIKYog6wy2iYzZuwstRpo2ITvweM VYBg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=WzG3kr+ZFDDb0CWz8KsfS7gLFlZjYhxmbcUKgYEOyyg=; b=mSp0GCr0EuL6WNji5okVvZ7ZFhen1nevRHdaj3Be3F/h8JrJku+I4SrCX9yftYhADV 2IyOxbd/MxqV9XOSu731KAvaeGrFfNDFTYYlgJp6/VwfE7sk6RYQ9h5eJIv5vbSB6alX XtfCbSM4AabVFXyxSV37RGFwz2pQzYcW7aPlpCPfTpkwgqEYJAQ3b4Rq6Ox/SuUsUkQr oViL2b9jviPcYf1cVzftFPYVqdQNcWbpAFzAvAH4Q6tn6dtLrZQu/vGSvupLB8MZSv/r j2LwFvJun/doBFIC1hqTsAIqMmVFJhdSkTKvHFJGFIRvAuE4k3bPkRRlKIBwAGWQ2f+O HBwQ== X-Gm-Message-State: AOAM530v6WugW5exHoLj6GvVeY/L63NZLugNKYGsZGRSUhBI96vP+t6N 1hOvYixH7QZZUNX0WFJlF0egVtPMmEc= X-Google-Smtp-Source: ABdhPJzeeZ/N2sAqW+7bq8zkdAvazvNWwPACtB24g/MQgINDceA9Rz0xt2MByiSSttLRs/f8fd9/yw== X-Received: by 2002:a1f:5481:: with SMTP id i123mr10363066vkb.13.1641565313642; Fri, 07 Jan 2022 06:21:53 -0800 (PST) Received: from localhost.localdomain ([191.83.210.83]) by smtp.gmail.com with ESMTPSA id u69sm3289172vke.30.2022.01.07.06.21.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jan 2022 06:21:53 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 Jan 2022 11:21:34 -0300 Message-Id: <20220107142134.821-2-jamrial@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220107142134.821-1-jamrial@gmail.com> References: <20220107142134.821-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/libdav1d: 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This supports dropping non-intra, non-key, or all frames. Signed-off-by: James Almer --- libavcodec/libdav1d.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c index 8e45f533cb..9252a2572d 100644 --- a/libavcodec/libdav1d.c +++ b/libavcodec/libdav1d.c @@ -299,6 +299,7 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) #endif int res; +redo: if (!data->sz) { AVPacket *const pkt = dav1d->pkt; @@ -363,6 +364,14 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) av_assert0(p->data[0] && p->allocator_data); + if ((c->skip_frame >= AVDISCARD_NONINTRA && (p->frame_hdr->frame_type != DAV1D_FRAME_TYPE_KEY && + p->frame_hdr->frame_type != DAV1D_FRAME_TYPE_INTRA)) || + (c->skip_frame >= AVDISCARD_NONKEY && p->frame_hdr->frame_type != DAV1D_FRAME_TYPE_KEY) || + c->skip_frame >= AVDISCARD_ALL) { + dav1d_picture_unref(p); + goto redo; + } + // This requires the custom allocator above frame->buf[0] = av_buffer_ref(p->allocator_data); if (!frame->buf[0]) { -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".