From patchwork Sun Jul 9 13:39:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 42559 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6da1:b0:131:a7d0:bc6d with SMTP id gl33csp120651pzb; Sun, 9 Jul 2023 06:39:50 -0700 (PDT) X-Google-Smtp-Source: APBJJlHXQWl3Z6gkiZl+iN8prEG2atp5hfc/gDJ08wWRiRR5O78QiUEKFptAvGjTBhsva+DhiRku X-Received: by 2002:a5d:52cc:0:b0:314:f7e:8755 with SMTP id r12-20020a5d52cc000000b003140f7e8755mr10947960wrv.55.1688909990494; Sun, 09 Jul 2023 06:39:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688909990; cv=none; d=google.com; s=arc-20160816; b=AjWCuwzkEuZ2zcG/LPLZUduKT5lXkTiQPJ0eZMuw4JmI8ZC2Vkq3tDbhagMT7obnjj R12mR2TDG7So6gtIoPyNL+WsPk+z+ioc2jf1nShmoi+LKj7WFDq6trOuNIcOYZx/3N3c AwZNNIVM0vWvks5sDssPt1TCcJ6v++2ypHiQZ9Lc0Yqd4DmcDnpNrrv67fAvLJpCr9XF yjJf3Dq7kaAOWL52LZ3yrZfnk8PXJIUwBrTTR8mpNFG3QsPww0iR0Sce/pfP2fUdnFAG KArzZrI7w6F7UuRkJlWEGyRMdurEhZBfWkUwHS8vO2P5yoXG70J1NIZbn4GiVTZt+yqJ fQcA== 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:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=8uhb2odkxRplWfyj6eufi0wtWPZvxA7q36R18bFgAok=; fh=J3zlMo7rVW2t2IQYogliBcMNuBh6YQg7NRChcrschf4=; b=DUaqsOH+zb7pAeux8PBuDUAJZQ4KXDIR2fiXVlU8mW8a3l6kdvga03ILe4qyrVLzao 96qe9xZdwWQuHnb37JzyRLUKhokRqW8WMslRBIA9AVpHOGaem1ds9lNRTbU71syMBV1E OqGHjx07hYeIT5IBqz97eLEoslxdsBF38aNXbqadXX/8x8g2YkApbMR3Z0ci4eqwjknZ OLWFisgfmCBMb5aQ/7qbF/2TVKzuxWwBQ663u451nDR9b6IHIchhzYjhaGXo/Rl5dcEK H7GiF83Jd7XBXe9oEuNmOL2ps72G5To28bTV1oPaCGU0lEQtZLO/Em0VX63drh6qil+0 sxtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b="ICnX/lhi"; 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 c11-20020a056402120b00b0051e57e864acsi728613edw.463.2023.07.09.06.39.50; Sun, 09 Jul 2023 06:39: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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b="ICnX/lhi"; 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 4646268C666; Sun, 9 Jul 2023 16:39:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ot1-f52.google.com (mail-ot1-f52.google.com [209.85.210.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EBF5C68C54D for ; Sun, 9 Jul 2023 16:39:30 +0300 (EEST) Received: by mail-ot1-f52.google.com with SMTP id 46e09a7af769-6b71ee710edso2889775a34.2 for ; Sun, 09 Jul 2023 06:39:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1688909969; x=1691501969; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=QIVGLzgqyhyeLijTb/fDb0Vy5fOzeBTcOxYX7zqVY5E=; b=ICnX/lhinl/TaFaGYQDpXarcphqSRF8ZGLkoCy66orKMAoBhUYYZWgHHVCGr9SMG4q BrQzTExd+FjhRQ+hmanb44D9zZ4kCafORBYjYA+LLcRmd0dlXzYG6H6Cm+bhaBc0OLnZ o2/NV3AAi4867SSHQ4rQab3CJEoNq+Qm8mjagUOO6gYZWod3Z1wlJB7EMoeyY5F3xFTh KxekDT+G3Bd1Vz9PnXm9q9U7aLB6PfDqNUZxJRe00LsAEGz3nADuI1JVTWC66nPK2uuT mEgmX4GSi3u5+EXNSObsnVczRVK/Nq0/65yj40K+KGyiONAbeIsZzmRmB05ns8vdlUX9 ZhiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688909969; x=1691501969; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QIVGLzgqyhyeLijTb/fDb0Vy5fOzeBTcOxYX7zqVY5E=; b=ZydDzY3TqHPi3Tt9abkzbfXomE9pxOAqhhI55RyN9p6KrbHnCGcRv+OVy45OmOJAkO Qeiwz0KHl5EK+vmQTzn4b6wkqXGuFOE4ngmtz+iYMbQjQ6BDl10W3LqFRfmMUMZuzAw+ K4nL7yXXmHuWvJ57qXngmT4MdBIMCZA2Tw6tVTiX2G6o8dCgyQ40qxgpXZ4KWiD8LrE7 4uwpcp5NhYDyQf5rt4d/z53kw707zpIh77sywprpidFBAgCJBptBagV6nst50pqd0LQO woLrKjnu/gP75X9ZW8yDj+P45LBeX1SrFmEKnKGvrkjkz5wX020O5D3rK5aasWie/uUq 80Ww== X-Gm-Message-State: ABy/qLZP6594gTrcB+jon7p8Wi3654iiViMdiQxk9LlcZ+5AroOdj5xN zCY1D1Cl4NdrCvCmrAZUmEXC6keE5VE= X-Received: by 2002:a05:6830:22f6:b0:6b7:4e25:4c08 with SMTP id t22-20020a05683022f600b006b74e254c08mr9213444otc.12.1688909969348; Sun, 09 Jul 2023 06:39:29 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id r18-20020a9d7512000000b006b756242c98sm3404413otk.19.2023.07.09.06.39.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Jul 2023 06:39:29 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sun, 9 Jul 2023 10:39:16 -0300 Message-ID: <20230709133917.5403-2-jamrial@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230709133917.5403-1-jamrial@gmail.com> References: <20230709133917.5403-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/3] avcodec/decode: check the output frame for discard samples with all decoders 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: GcSjZMYlr84c And not just those with the old decode() API. Signed-off-by: James Almer --- libavcodec/decode.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index a39af2d014..b3e4b066e5 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -597,6 +597,14 @@ static int decode_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame) if (codec->cb_type == FF_CODEC_CB_TYPE_RECEIVE_FRAME) { ret = codec->cb.receive_frame(avctx, frame); emms_c(); + if (!ret) { + if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) + ret = (frame->flags & AV_FRAME_FLAG_DISCARD) ? AVERROR(EAGAIN) : 0; + else if (avctx->codec->type == AVMEDIA_TYPE_AUDIO) { + int64_t discarded_samples = 0; + ret = discard_samples(avctx, frame, &discarded_samples); + } + } } else ret = decode_simple_receive_frame(avctx, frame);