From patchwork Wed May 24 11:31:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 41817 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c51c:b0:10c:5e6f:955f with SMTP id gm28csp302805pzb; Wed, 24 May 2023 04:32:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4Ip5yJy3b7fs/0qPUunKmkCzAsClBxKWnthivY9t/FidiEIXKty9phU1rJacDEuVHgAWhG X-Received: by 2002:a17:907:970c:b0:96a:c15b:2b83 with SMTP id jg12-20020a170907970c00b0096ac15b2b83mr20170196ejc.54.1684927922261; Wed, 24 May 2023 04:32:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684927922; cv=none; d=google.com; s=arc-20160816; b=z3PkL2BYbB9nQ7BnUcVmxMS0ZWZL7p1m7d8xOkvWVPdO/WUP5LIZVYvceWxNwIoAyd U2F9M/rV1n2WyGxSNmL3bzGMdTgXNg052Mxw19qicxQ0a1XQ2HDkXTX9HHYZ0RpDKO32 Bfcpw4qH5yr/zMRTlcbj1JvZKhDScfvrlVhb89wiG0LizwYFmOkqcC9WXC9T0XT3ymn1 1wBqPeC9H+VPmhDe8zL8HAvXLQQJQTv5vQDwS2YHBYU8f5/HiWqSTbGOinN/0QxcbrcB Il7y2T3XMpYXE6tpWSWUx/6dHtxjdYcOpNuKx2YPWmBg8YUs+itIkEBg5tPIkS+NwzCs jZ1A== 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=Oi1eQS+XI0E7lBqfjJMmKxKSE3sseehpdboNwEomoPQ=; b=OATa8B5PR2ZzAU65WDRJSqkJxmfDsdIDXFGZYhDp6snAzeWNu9daKAJvwRvDgDsUDW jou8rBsOMVzkH0T/598t5ffTSuz7dZDNPgUJ1m5OPYzmgE6sXcZILqVF98BtrX7BOR2g k14ARrgQKV3xyw0LHf2XnwisvWKpOmNkWGYroU8zm2hLTCtZwWHVrDkPCs7KiWdGHce+ iDOzvHteCxRzJ6GUtDb3cWFUVahcizm9hFNOG6OYHQPLNzQvAHuiN7IsRl6UKUeZkUdQ RFaE4yjAFrA5aw4YBIYIcqo75HHIkDdTpm10N2epoITwoCaaQKDGbDdcCQN+DkZM1mTQ RY2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=ETzNI4Dh; 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 fy20-20020a1709069f1400b0097386d0cbc4si458403ejc.698.2023.05.24.04.32.01; Wed, 24 May 2023 04:32:02 -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=ETzNI4Dh; 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 D9C6568C094; Wed, 24 May 2023 14:31:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f50.google.com (mail-oo1-f50.google.com [209.85.161.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C7CD368BE7A for ; Wed, 24 May 2023 14:31:50 +0300 (EEST) Received: by mail-oo1-f50.google.com with SMTP id 006d021491bc7-554f951e658so465538eaf.0 for ; Wed, 24 May 2023 04:31:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684927909; x=1687519909; 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=P4kS73ljQyAt/r6iOxxljF+9oR2gActvd+NWQCXqq60=; b=ETzNI4DhO4FcjhFcfJSVUGvOQDz03c+JHroMcvlPI2CX2+Y9b5pP5YLIgDaJowGUz4 n8Eu97elUCWASyQhIRfoYA2B45QNKBF5US6Y0XlVWbnhkYKnGrM/eiURsbcrarbCtTXg PUt3yqexJYHRHYPfGzt2p+1LvB9j74XyFo/ZAnqfh/dI+LFz0MvFrtotncAgnpfkR8fa /c6dbTKaz3EaJumweVrFxig9bnx9raJCGC/Mqezkd4o25CsnUAEjZrTC6NebSVDL00+B EgnaXbb87ZqGK7XLQd+VCO32Mq0rjh63Ns6CgamSgnFMu8Nzth9jiYkY4XCJb1Hih39p YODw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684927909; x=1687519909; 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=P4kS73ljQyAt/r6iOxxljF+9oR2gActvd+NWQCXqq60=; b=j6pQqN7sNLSl9n8nn8dr6IdZgxzlUE5HVBnQgsvhCWWVjF6rIhUq5XkAPtEb9dvZrH zYZZSoVuJ1prbIUotajpZNv7L7mNqgUOrSnFMxTEJ50dwpS1QAcaRq02Bz0QnL83u8xv D2J9wwZisvz1wjqBouWSk1uoMbDxv23FD8qTzK1CFchG2s85mXTk+jGTNv4W8/R3F5Cw Z4hnVTwu6qE6Vn8L9woZUvPNu68lGxJuztdWBPJwIDxhr3dSSZl1amG/0K2/zpaZgOrL dychi8VFrHHyT/kzspkoZxuPveJNFSO+JiKjLY0L6M+KT0LFlxAVakTS7pLMhp9AB1R3 4W+Q== X-Gm-Message-State: AC+VfDxW4fSGH/yBsHS113AUXBPN2KHJlqn5VjxroSpL3TOCPsRzWGkg iZi8JvdlOAnxTRcFbwGtEUMjkb2o6+o= X-Received: by 2002:a4a:614f:0:b0:54f:5e31:31c5 with SMTP id u15-20020a4a614f000000b0054f5e3131c5mr6678841ooe.2.1684927908750; Wed, 24 May 2023 04:31:48 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id w45-20020a4a97b0000000b0051ffe0fe11bsm4847459ooi.6.2023.05.24.04.31.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 May 2023 04:31:48 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 May 2023 08:31:54 -0300 Message-Id: <20230524113154.1508-1-jamrial@gmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230522221826.3124-1-jamrial@gmail.com> References: <20230522221826.3124-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] fftools/ffmpeg_dec: abort if avcodec_send_packet() returns EAGAIN 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: 9FbjY6Hvvqgy As the comment in the code mentions, EAGAIN is not an expected value here because we call avcodec_receive_frame() until all frames have been returned. avcodec_send_packet() returning EAGAIN means a packet is still buffered, which hints that the underlying decoder is buggy and not fetching packets as it should. An example of this behavior was in the libdav1d wrapper before f209614290, where feeding it split frames (or individual OBUs) would result in the CLI eventually printing the unuseful "Error submitting packet to decoder: Resource temporarily unavailable" error message, and just keep until EOF without returning new frames. Signed-off-by: James Almer --- Now compiling. fftools/ffmpeg_dec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fftools/ffmpeg_dec.c b/fftools/ffmpeg_dec.c index e06747d9c4..b1db9b30d0 100644 --- a/fftools/ffmpeg_dec.c +++ b/fftools/ffmpeg_dec.c @@ -390,6 +390,11 @@ int dec_packet(InputStream *ist, const AVPacket *pkt, int no_eof) if (ret < 0 && !(ret == AVERROR_EOF && !pkt)) { // In particular, we don't expect AVERROR(EAGAIN), because we read all // decoded frames with avcodec_receive_frame() until done. + if (ret == AVERROR(EAGAIN)) { + av_log(ist, AV_LOG_FATAL, "A decoder returned an unexpected error code. " + "This is a bug, please report it.\n"); + exit_program(1); + } av_log(ist, AV_LOG_ERROR, "Error submitting %s to decoder: %s\n", pkt ? "packet" : "EOF", av_err2str(ret)); if (exit_on_error)