From patchwork Mon Dec 30 13:54:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 17064 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 315B9449AE8 for ; Mon, 30 Dec 2019 15:54:44 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1EFF068ABB4; Mon, 30 Dec 2019 15:54:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpproxy21.qq.com (smtpbg702.qq.com [203.205.195.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4AC1868A9F4 for ; Mon, 30 Dec 2019 15:54:33 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1577714070; bh=NP0OBT/ZYS7zaaQwiieM/aTQbNsNZLlthmc7Ne32rjU=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=FsgQn36qk9qenol3c760z+Lzpx2dXx0rw88UyT0DYHWB0UuU9ZFFvlEiWvFBSgVM0 OqcksmxLB/fXXGfzorX2qqsz76qCTF9DFdtP+Xyw4EwYjthW6suQuTW2R9v6SmWpWE p+eFbjOpQT8s3mFlj6533hc6Aud3vNF2Je6GeCSc= X-QQ-mid: esmtp3t1577714069tsogzne9o Received: from ZHILIZHAO-MB1.tencent.com (unknown [14.17.22.54]) by esmtp4.qq.com (ESMTP) with id ; Mon, 30 Dec 2019 21:54:29 +0800 (CST) X-QQ-SSF: 01000000000000N0WG4000000000002 X-QQ-FEAT: GgyAuMDmICjCP5ubBAVf+AaXkiMX4aX3UxhoiVmFvrUdfWLZbd+gEfzTsEVDO b+aOmE/C19OiE2xuyxMQUiaoDe8xJT7fsN/s5tdfz39QNTGTouBTY/xonQYRGEiTuXlaL5U yTk1ksZ4MrbwB+70G6fY8XV+yVmo9AOy0L/Yt9oDk87MowE4JvB5MWBVHxMdpL66cKg4oYP 7O3EmVIHm2qP85uyQI42ewJFid9TCNUYbMHAUOpJcp/Dyyz1P7NNG53kSwMtbojRaKxwV7K Ns/Rn2Q/lJQt8/JDS9YP/3RIloFz3JelXIkw== X-QQ-GoodBg: 0 From: quinkblack@foxmail.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Dec 2019 21:54:15 +0800 Message-Id: <20191230135419.56529-4-quinkblack@foxmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20191230135419.56529-1-quinkblack@foxmail.com> References: <20191230135419.56529-1-quinkblack@foxmail.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: esmtp:foxmail.com:bgforeign:bgforeign12 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH 4/8] avdevice/lavfi: remove access of AV_PIX_FMT_NB X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Zhao Zhili --- libavdevice/lavfi.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c index c949ff7e12..fc2336d8fe 100644 --- a/libavdevice/lavfi.c +++ b/libavdevice/lavfi.c @@ -59,24 +59,28 @@ typedef struct { AVPacket subcc_packet; } LavfiContext; -static int *create_all_formats(int n) +static int *create_all_formats() { - int i, j, *fmts, count = 0; + int i, *fmts, count = 0; + const AVPixFmtDescriptor *desc; - for (i = 0; i < n; i++) { - const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(i); + desc = NULL; + while ((desc = av_pix_fmt_desc_next(desc))) { if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) count++; } if (!(fmts = av_malloc((count+1) * sizeof(int)))) return NULL; - for (j = 0, i = 0; i < n; i++) { - const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(i); - if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) - fmts[j++] = i; + + desc = NULL; + i = 0; + while ((desc = av_pix_fmt_desc_next(desc))) { + if (!(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) { + fmts[i++] = av_pix_fmt_desc_get_id(desc); + } } - fmts[j] = -1; + fmts[i] = AV_PIX_FMT_NONE; return fmts; } @@ -121,7 +125,7 @@ av_cold static int lavfi_read_header(AVFormatContext *avctx) LavfiContext *lavfi = avctx->priv_data; AVFilterInOut *input_links = NULL, *output_links = NULL, *inout; const AVFilter *buffersink, *abuffersink; - int *pix_fmts = create_all_formats(AV_PIX_FMT_NB); + int *pix_fmts = create_all_formats(); enum AVMediaType type; int ret = 0, i, n;