From patchwork Sat May 9 08:50:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhao, Gang" X-Patchwork-Id: 19575 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 1999F449A32 for ; Sat, 9 May 2020 11:51:58 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E652D689BB1; Sat, 9 May 2020 11:51:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0676F687F66 for ; Sat, 9 May 2020 11:51:51 +0300 (EEST) Received: by mail-pf1-f180.google.com with SMTP id 145so2223649pfw.13 for ; Sat, 09 May 2020 01:51:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=oNwhhGmWhkcWGVX8vY/9hURR1AfQJrLlIpzxcgMSX/E=; b=DqKKIxMVUTotFVYBHrOUZriYg/9ayaT1FaLZidMPPyEcTVwo9XYaHSDHgaRh90DqMB dc+QHmNb3RebArTkdPNoDUVLh0uFfAd4WeMvHFP6hAXO8i2/4iOd+7qlNAzqOOAMOdnO dLlg2foDeYcQkmtcXbEPIPQz/V0kLDtyyvK3UAD2DsiIAX0DvDRGssneP6mYg+Mmlusw qVUylz+Y7Hsoqu2WCEFekgtJoIU5ZIMnRgHv3JazZdN/z+RNtCguELuURo/E+znrewrW MBUx41txxarmLTyvahkIXfl6mNic3H67gP7d7H4/WI9YjhQ8MJ/y6jLScAKTGPPqVAwN MoIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=oNwhhGmWhkcWGVX8vY/9hURR1AfQJrLlIpzxcgMSX/E=; b=ebc8gn04JT2uW2RSJOWpreXytbKYaCQxLG0C60mjDdbyc0u5u773TcDqvVmrJ1ZZA4 tRnmY2HHyrM3N5gWyqOvktczGvTI33q2eAScyLoi6jf1v3pyNPuMzawZJbYrCrzzlFsi p+Em5gNDXo/5S/HFBuD97A4nko8GkIwqDG840qQIaziND/Vt7nOt3k3HcNgRp0YiPOuA fkz1hI83ugiLgE0n2Su8wfSFO5AzkYMB/rS7zdclMRs59+7NfYp41nupIgl7XuFxSoN5 5pyd43ikv6Pbj4vRdyKoP+wEeD/r9EGJ9afHhMZ48yIADuRm9J9vNCL13JFlO2E1e/E2 gGFA== X-Gm-Message-State: AGi0PuZuQxvvUrYJteSDLUM9Rwh6yIquQBmz6rrfBg1Xgt2Or7SnYJDB UAy+fWgUVHpsRWbteSF6YktBHyHlqBE= X-Google-Smtp-Source: APiQypJy0baaVnQy4GGpsWg9TQjSoAYYMPDmdgGm7U+aoydPDz1iL9lJe+pm/fNmLVAE3QY4YcP5Fg== X-Received: by 2002:a63:7e5a:: with SMTP id o26mr1234389pgn.134.1589014308650; Sat, 09 May 2020 01:51:48 -0700 (PDT) Received: from localhost.localdomain ([2600:3c01::f03c:91ff:feee:c20d]) by smtp.gmail.com with ESMTPSA id a138sm4031946pfd.32.2020.05.09.01.51.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 May 2020 01:51:47 -0700 (PDT) From: "Zhao, Gang" To: Date: Sat, 9 May 2020 16:50:47 +0800 Message-Id: X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/3] avformat: Correctly check the list before accessing 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Zhao, Gang --- libavformat/allformats.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git libavformat/allformats.c libavformat/allformats.c index 3919c9e4c1..47cf885699 100644 --- libavformat/allformats.c +++ libavformat/allformats.c @@ -520,7 +520,7 @@ const AVOutputFormat *av_muxer_iterate(void **opaque) if (i < size) { f = muxer_list[i]; - } else if (indev_list) { + } else if (outdev_list) { f = outdev_list[i - size]; } @@ -537,7 +537,7 @@ const AVInputFormat *av_demuxer_iterate(void **opaque) if (i < size) { f = demuxer_list[i]; - } else if (outdev_list) { + } else if (indev_list) { f = indev_list[i - size]; } From patchwork Sat May 9 08:50:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhao, Gang" X-Patchwork-Id: 19577 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 731FA449D36 for ; Sat, 9 May 2020 12:20:10 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 42836689EBE; Sat, 9 May 2020 12:20:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CA50E689CDF for ; Sat, 9 May 2020 12:20:03 +0300 (EEST) Received: by mail-pg1-f194.google.com with SMTP id r10so1573138pgv.8 for ; Sat, 09 May 2020 02:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:in-reply-to :references; bh=OopcAwgouF9LXeYXwwwHGDfR4nFMm8dApfj4hZdl/H0=; b=RmZTcvqmnRMJwzTkYFLUSJ46Y8+hU3H9iLBnQxEP/Mba3y8e9cmXQIRWJcFJOV7Vpl R4++G2JOpuBhPeunTpDR+gzt+7tgZ6QcjGFgz5DcT1Gyv5EjuzLaQo7x4tk1+3qqHdvD wY79QFYlFo9dqB64s65TpGf6x8cAYonYzHK4yPcBc5oEm3FaaBxZYZkb5uz9qKN9Q/o6 JV1TCut/hKlcIwEytSyCAo1wB0rFLFoMYpdYUKl1JjMpfV25ttzhzyjnPpTg62kvJzDa MZTHaycfI7ZmlGRk7IXMHEmvIoGggQzKVEvnInQrlSAzrEy3m7jbztvbFhbfnaw9/cyx leHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=OopcAwgouF9LXeYXwwwHGDfR4nFMm8dApfj4hZdl/H0=; b=kgiCBYwFHsfYbpDn59dnKMidY5WqEODhb/6Q7+bZ0mvlcGkIgFjJ/Ge5l1vfr3ICTi rUMs2faUuodn4bFD1i0vC20RMoOtSNcsPPqwuof1M2IbUO7DLbstrNZppao7j3nqp/4i mUTBcg8lviAXvoC5t1+sHSpJuxDykeI61OWvCY75YQ4hW9kT8a9izzuTRGCs76XKTu/H xvb424WtkyzoW85s9LNJ7wk+u6spFe6TRNTNDSuijsds1w0LCrpOtMvX6KeV0Qsxq/Ei k6QFmHlbDNmC+QKGT5J3gNZ2lTgxoqWDu5O5t0SlCFKxZ5ios9gGgtnSyTtUxMrN/Sl7 W/dg== X-Gm-Message-State: AGi0PubsoUQ1VMXavFumQs+2gF20glIrDWiZtEkV6G7EoJoTa272MY/b vr4nFfUWLHBycxySyc6fGIOrLfO2o9A= X-Google-Smtp-Source: APiQypKIXUTr7/+NzFy5JI+sk7gZ/LnHSuO1WaOJw50/RNKjPXsZcvEah3Ji6HDsq/sNPHtsp3YVsQ== X-Received: by 2002:a63:5fc1:: with SMTP id t184mr5776061pgb.48.1589014311096; Sat, 09 May 2020 01:51:51 -0700 (PDT) Received: from localhost.localdomain ([2600:3c01::f03c:91ff:feee:c20d]) by smtp.gmail.com with ESMTPSA id a138sm4031946pfd.32.2020.05.09.01.51.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 May 2020 01:51:50 -0700 (PDT) From: "Zhao, Gang" To: Date: Sat, 9 May 2020 16:50:48 +0800 Message-Id: <2e05ebebedefffda637f1703adb3dfa8fca25ed0.1589014205.git.gang.zhao.42@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Subject: [FFmpeg-devel] [PATCH 2/3] libavdevice: Update to new iterating API 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Zhao, Gang --- libavdevice/avdevice.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git libavdevice/avdevice.c libavdevice/avdevice.c index 3d03d89f04..8c1b296d71 100644 --- libavdevice/avdevice.c +++ libavdevice/avdevice.c @@ -83,16 +83,33 @@ static void *device_next(void *prev, int output, { const AVClass *pc; AVClassCategory category = AV_CLASS_CATEGORY_NA; + void *opaque = NULL; + void *orig_prev = prev; + int found_prev = 0; + do { - if (output) { - if (!(prev = av_oformat_next(prev))) - break; + if (output) + prev = (void *)av_muxer_iterate(&opaque); + else + prev = (void *)av_demuxer_iterate(&opaque); + + if (!prev) + break; + + /* if orig_prev is NULL, start from the first muxer/demuxer */ + orig_prev = orig_prev ? orig_prev : prev; + + if (!found_prev) { + if (orig_prev == prev) + found_prev = 1; + continue; + } + + if (output) pc = ((AVOutputFormat *)prev)->priv_class; - } else { - if (!(prev = av_iformat_next(prev))) - break; + else pc = ((AVInputFormat *)prev)->priv_class; - } + if (!pc) continue; category = pc->category; From patchwork Sat May 9 08:50:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhao, Gang" X-Patchwork-Id: 19578 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:bac9:0:0:0:0:0 with SMTP id a9csp282256ybk; Sat, 9 May 2020 01:52:09 -0700 (PDT) X-Google-Smtp-Source: APiQypIHq+x5+sM/rhFrQuAliKubmxy0ueqgixpQctGyEhXL3i9ZiejHEGTX/5xj6MiNuoXICGuO X-Received: by 2002:adf:93c1:: with SMTP id 59mr7950951wrp.390.1589014329807; Sat, 09 May 2020 01:52:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589014329; cv=none; d=google.com; s=arc-20160816; b=iyECygrmilfXGOzMapiw73XREuFQQKCtXvD1mySbmZ6PWMOXMea6T9s9QVs5sn03wt oHiEINtDui1ZelsWlEnH8vzLVWIiUuz/7fuqAIy0Jpeyqz2TckpmKGL0zQRwaYPb2N5s WFMQgSuCkiVwCGot35zHvUQ3wkWyK5wfeZByrmi1YS8bnpXMhonDmUfZzLosJ7rA/sbv Ek5JaUNe4jJIOlt39agxf8mUbQOUBJe5Jl9lFv5BB6XjmnL4rFKRcyfcCObeUHgJ02Hu yB/SNRvq00CTT/aSJB6+sxTkqeGAHq+rTkWaW6LABjlTm1/FWKS3F1YFSkPs5x81WKZ5 3+jQ== 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:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:references :in-reply-to:message-id:date:to:from:dkim-signature:delivered-to; bh=4VTGHsQrx8Z5WY7dX1hvyzdhXbdjiABK54VZoKz7ktE=; b=tRSp8UZHlRSQ6DLqz/Gc2TlsFqdo2REu3nXvS8mkIHnUpUKOdo6IaPwe25Mv4rcD+X PtuRXX4v19UmtGPJrMNOKNZr3FmhzPI5FbK+x59xz82SA1rMT/hLZyhaY77wlZ4F8bNW 8IOld/s2zsIU0CgwdNgRFTEZ2JANijuzoYakRD+UTEiK5ET3gj/GOj8ZhK7DG1hXkVEN +fckUzQS7IQl6x+w9W6/z4YvehYQQZecKMjmqJ8VsFNU5qiOGxLlDZcOfecBpV41POI/ kfgOmQEXkTQUhyImPAN5++9BgbAHkG2Adwt/9pbeYiyPTdkqhUPCuth3ozldIAIcgtLP RG7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=uqAmTU3e; 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 j18si3888391wrw.517.2020.05.09.01.52.09; Sat, 09 May 2020 01:52:09 -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=20161025 header.b=uqAmTU3e; 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 1A641689EF9; Sat, 9 May 2020 11:52:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 57A56689C58 for ; Sat, 9 May 2020 11:51:55 +0300 (EEST) Received: by mail-pg1-f181.google.com with SMTP id l12so2031480pgr.10 for ; Sat, 09 May 2020 01:51:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:in-reply-to :references; bh=H7icLeYPi4sgnRzCH4P09F5aMa9Slsx+F0UfY4OFOmw=; b=uqAmTU3erCDh7MF5Vv9ZlGgYmJYqx7/3g88nFRZ68ND0NQ0xXmD1KiVKOOocXg9php DwsBdVHlk17XwoBnPUpjUQDo3Dms47ydPpufAuY24vBGrKT00Wi1kvuNr44bmlEpyQ9G 2jO8CWYpv9X2++cJnBVepq5S+EgGawxj4ZNC7wMEAgWT5CIeO916l7pM8qFVfPn/iFkQ hP8AhuOGbcyMqcwvPc+jOS2VArkaLOdQdMA75K8fN98Uadvr52fFQ3nJBipfbGT8YOpM qtAgINimMwUzwmocAvfMg1Mj8oTt8dN95RfaBu6F4bCpjfbV2bYID4/ousa0q8zFXX87 3qUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=H7icLeYPi4sgnRzCH4P09F5aMa9Slsx+F0UfY4OFOmw=; b=nyd4topnzySZeRcedD973Wr7sz0zP1MCUjx2s35ybcnLKk7JJcEz3VYCdSsfD9MypA tRyCz2r3LfZQnj6nvWgmCfR6w+ie0wJo4Bnw4lpcfz05Zn/5rC4xVKfATIuwYrYeIOu5 Q43IZg95OM3ZG6Mn2krSOcjgrDCkrmYlsFMzQZXqdMoDGdt5ixadaOhN/37p2uZweodM Yz0eCSYMo9rO3eIbHzTDrlALVVnlMR9VYLc3ZJNImqpQpu+gs+fcE+w/phKa6Q3mcjaQ Gv34qYmTsDF3jzbpBvk5vUt8/ba9PF00vi15HYTSIPGvpwr7dJIBZL4wOYEwF24cAhm9 Te3g== X-Gm-Message-State: AGi0PuY8KY0IJsKWB/tjWhpqSrpt+/i+Wc2g06kunQdexzMjCGUeC4lG 6EOxXFhOcoglTJMtSkWCAN3+guOUSr0= X-Received: by 2002:a63:e702:: with SMTP id b2mr5638261pgi.158.1589014313460; Sat, 09 May 2020 01:51:53 -0700 (PDT) Received: from localhost.localdomain ([2600:3c01::f03c:91ff:feee:c20d]) by smtp.gmail.com with ESMTPSA id a138sm4031946pfd.32.2020.05.09.01.51.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 May 2020 01:51:52 -0700 (PDT) From: "Zhao, Gang" To: Date: Sat, 9 May 2020 16:50:49 +0800 Message-Id: <188ba7bc2cf9beff7541eb86da97f53d3fd85dee.1589014205.git.gang.zhao.42@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: In-Reply-To: References: Subject: [FFmpeg-devel] [PATCH 3/3] avformat/options: Update to new iterating API 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BR2ydsDNLBNh Content-Length: 2258 Signed-off-by: Zhao, Gang --- libavformat/options.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git libavformat/options.c libavformat/options.c index e14510504f..cec6ee3621 100644 --- libavformat/options.c +++ libavformat/options.c @@ -55,26 +55,28 @@ static void *format_child_next(void *obj, void *prev) static const AVClass *format_child_class_next(const AVClass *prev) { - AVInputFormat *ifmt = NULL; - AVOutputFormat *ofmt = NULL; + const AVInputFormat *ifmt; + const AVOutputFormat *ofmt; + void *demuxer_opaque = NULL; + void *muxer_opaque = NULL; if (!prev) return &ff_avio_class; - while ((ifmt = av_iformat_next(ifmt))) + while ((ifmt = av_demuxer_iterate(&demuxer_opaque))) if (ifmt->priv_class == prev) break; if (!ifmt) - while ((ofmt = av_oformat_next(ofmt))) + while ((ofmt = av_muxer_iterate(&muxer_opaque))) if (ofmt->priv_class == prev) break; if (!ofmt) - while (ifmt = av_iformat_next(ifmt)) + while (ifmt = av_demuxer_iterate(&demuxer_opaque)) if (ifmt->priv_class) return ifmt->priv_class; - while (ofmt = av_oformat_next(ofmt)) + while (ofmt = av_muxer_iterate(&muxer_opaque)) if (ofmt->priv_class) return ofmt->priv_class;