From patchwork Mon Jul 25 15:27:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rogozhkin, Dmitry V" X-Patchwork-Id: 36961 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp2110574pzb; Mon, 25 Jul 2022 08:27:13 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tGraglPJyFl/Eyqgeq8P7Lb+p5TvIUpJvG5JaR2EBbrBrGNsOvS7JBCHnKXWlhj0okZ4S8 X-Received: by 2002:a17:906:dc90:b0:72f:cf96:50a1 with SMTP id cs16-20020a170906dc9000b0072fcf9650a1mr6205646ejc.546.1658762833503; Mon, 25 Jul 2022 08:27:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658762833; cv=none; d=google.com; s=arc-20160816; b=WRmU5hxDlCHb9iL4zoETQAJL+3SjMNq1pZCX1kPUVNOfwt21tIuyOBIsDDVVUTaYdV hb1aNbRSmes9aDosIAgu8IVadKS4ydjM3xxcnGGG5XbFTJ8AuPHEEW+VCAhA7UIEWoq7 O0cTK/AulhJPxNJFfAtApYkmJQcR4D8N+vMR7u8Ul1f2liN5KBhS8W9LSu4hXCGgPG0N beN7LzCnXLtRMWAHnSz14gbVlqpKJFJJZT8O2y7IGlfNR4oy696dhBZVomhLhwiM3sqU 8DvilTsGhRuCVNHN82wQRY3j5GCeNSE5n+MzHQpnePiIISrgHjiO8ek601WrtIOnZwgk Kprw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=2gfptGox3lcPe+RMErthzTbe0BKY+D5sgXqr+QHB/Ss=; b=OOJyeu4C4efXQ8U/5rfDoNGMqt46fIXi0NR/nDHOZYH6KIlLlHO8gd5A+9FrC6PIcS bvJH+F8kiKNuy7UqP6NzSKF8rJc/OH511WMU73zWUI1887z9iRjMzDaVz+8nmpfov4DG /73XBbftZcdFjjCHdSSF+f2lepUPvJXANNEJEUubIjdvX9bQlA56gh2nwZb3yOBMAciI h9JKnOAztscwPWOzG3FEJnqbP+iIeC4GW+VIF4O1/6NgWlGA7X7qDkti0c8dxGenjgdV bM2q9L4S+Lncg+8ZvLHJP1SVZkgPJR291y7E+qMdZ4n3Ao9xVbmRJy/S6aXWMxavBnKw r7/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=Ne4Ptc5L; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f20-20020a50a6d4000000b0043a84878a4bsi12862226edc.218.2022.07.25.08.27.13; Mon, 25 Jul 2022 08:27:13 -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=@intel.com header.s=Intel header.b=Ne4Ptc5L; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0653D68B7F1; Mon, 25 Jul 2022 18:27:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9283868B737 for ; Mon, 25 Jul 2022 18:27:03 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658762828; x=1690298828; h=from:to:cc:subject:date:message-id; bh=oVSmnDUQnT7nW0tCh3Nu9XYKJat+CTRifaSr7/fqr8E=; b=Ne4Ptc5LOPN6u+yaWKVNGjHVqYisXt4EJsXNUvhapQBm6BmbMQCsLIx0 vI0+5NCvtK+pbsal5HOnsv04eeRDbUMYfiqXyvfdlvAHTPrOY2ir1P5A+ lmZgYgB/eScMAmlFjZePBb+6am1DIdclBEiSkWl/M0pKWy8UQEcGTcxQz SZw5x+XczBcuB5XW0a+z5L1Lqi5yS/Izk3kk/8DdRnnRSaq5tbDUpazG1 1JDr6GTS9o55MQ6ff3yGuB6cfHjR/+9br5xkPlfW79ycp183foVq2ndcc I28rYfzW3vHqkeOBNw/WXnvxKL5qbCayQdQnSo0f41SkOkQLt09h2B9X6 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10419"; a="285273684" X-IronPort-AV: E=Sophos;i="5.93,193,1654585200"; d="scan'208";a="285273684" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jul 2022 08:26:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,193,1654585200"; d="scan'208";a="741870723" Received: from dvrscl.jf.intel.com ([10.54.72.26]) by fmsmga001.fm.intel.com with ESMTP; 25 Jul 2022 08:26:41 -0700 From: Dmitry Rogozhkin To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Jul 2022 08:27:34 -0700 Message-Id: <1658762854-28777-1-git-send-email-dmitry.v.rogozhkin@intel.com> X-Mailer: git-send-email 1.8.3.1 Subject: [FFmpeg-devel] [PATCH] qsv: Update ffmpeg qsv_errors to recognize GPU hang and other statuses 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 Cc: Hon Wai Chow , Dmitry Rogozhkin MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9GzkqdOB+Mnv GPU hang is one of the most typical errors on Intel GPUs in case something goes wrong. It's important to recognize it explicitly for easier bugs triage. Also, this error code can be used to trigger GPU recovery path in self-written applications. There were 2 other statuses which MediaSDK can ppotentially return, MFX_ERR_NONE_PARTIAL_OUTPUT and MFX_ERR_REALLOC_SURFACE. Adding them as well. Signed-off-by: Hon Wai Chow Signed-off-by: Dmitry Rogozhkin --- libavcodec/qsv.c | 5 +++++ libavfilter/qsvvpp.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index 385b43b..70918b1 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -105,6 +105,9 @@ static const struct { const char *desc; } qsv_errors[] = { { MFX_ERR_NONE, 0, "success" }, +#if QSV_VERSION_ATLEAST(1, 31) + { MFX_ERR_NONE_PARTIAL_OUTPUT, 0, "partial output" }, +#endif { MFX_ERR_UNKNOWN, AVERROR_UNKNOWN, "unknown error" }, { MFX_ERR_NULL_PTR, AVERROR(EINVAL), "NULL pointer" }, { MFX_ERR_UNSUPPORTED, AVERROR(ENOSYS), "unsupported" }, @@ -125,6 +128,8 @@ static const struct { { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video parameters" }, { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined behavior" }, { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device failed" }, + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU Hang" }, + { MFX_ERR_REALLOC_SURFACE, AVERROR_UNKNOWN, "need bigger surface for output" }, { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio parameters" }, { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio parameters" }, diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 954f882..2f0613f 100644 --- a/libavfilter/qsvvpp.c +++ b/libavfilter/qsvvpp.c @@ -80,6 +80,9 @@ static const struct { const char *desc; } qsv_errors[] = { { MFX_ERR_NONE, 0, "success" }, +#if QSV_VERSION_ATLEAST(1, 31) + { MFX_ERR_NONE_PARTIAL_OUTPUT, 0, "partial output" }, +#endif { MFX_ERR_UNKNOWN, AVERROR_UNKNOWN, "unknown error" }, { MFX_ERR_NULL_PTR, AVERROR(EINVAL), "NULL pointer" }, { MFX_ERR_UNSUPPORTED, AVERROR(ENOSYS), "unsupported" }, @@ -100,6 +103,8 @@ static const struct { { MFX_ERR_INVALID_VIDEO_PARAM, AVERROR(EINVAL), "invalid video parameters" }, { MFX_ERR_UNDEFINED_BEHAVIOR, AVERROR_BUG, "undefined behavior" }, { MFX_ERR_DEVICE_FAILED, AVERROR(EIO), "device failed" }, + { MFX_ERR_GPU_HANG, AVERROR(EIO), "GPU Hang" }, + { MFX_ERR_REALLOC_SURFACE, AVERROR_UNKNOWN, "need bigger surface for output" }, { MFX_ERR_INCOMPATIBLE_AUDIO_PARAM, AVERROR(EINVAL), "incompatible audio parameters" }, { MFX_ERR_INVALID_AUDIO_PARAM, AVERROR(EINVAL), "invalid audio parameters" },