From patchwork Wed Feb 14 17:25:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46268 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:b819:b0:19e:cdac:8cce with SMTP id fi25csp79248pzb; Wed, 14 Feb 2024 09:24:00 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXwUvfKAs8YqGdMIimx1ilEtxcejb8141HhOHYkWdr5MejNdaqREiOQPf5zS+Eur4JboJY6UCAvRG3c0raE3AVRinlmRjX5NzgMFQ== X-Google-Smtp-Source: AGHT+IGn2/FsVHKZI+tKuopYWWT2e0qSaKnFmNXXA5s6bsudd4CLBvfg7IqYkvV5oH7XyNbk66mb X-Received: by 2002:a17:906:d142:b0:a3d:6704:1011 with SMTP id br2-20020a170906d14200b00a3d67041011mr1033799ejb.28.1707931440299; Wed, 14 Feb 2024 09:24:00 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVJcxGtTWDaDyI0RRBoJJv25UPmP6ZI5Lj0SU4CNkuyoqUO4mctR7qeAgEbeOyO+BSAUR6OGJKco+kt6yjOVdmtA/h/gWiLpg+2I2oOkHjIDek65T4GmFlJdPd+jLO1twhti7feXUIfHGwvMgR9yNum9AEMAOQc/ZtHdxL/+ZO6MhQYmsYAXBfuue7uomstcFCy4I5ya7Uu94PG6L4SmzZVw0uFIbKrHKKCGHgiK70NGtn/O1W0z9/pc+faePOScvShArYCbjQNXV44oW1dk9jK8/Kg0ligK6QUlHwDjxwNKlqzJVa/4zcZWvZ0vSKgc2vijhsiaES9++QY9kk3FU1oW0E1BytH/UuvqnKAdE9SxWZY0rFXE1POLuDNyXkEvGvTkYe2MSeB8UNBxgB6cTiQGxa6aQaOnCML4FwhQiYpKZGL9fhtcq3dNzksRxKZERGu08DsqNrNeADw2yv8eXQDTFQQUjlZRGOGlEQjKnIYwFtpFFXyamvqzqzViKhhftDUtYY+WhIHQChLXPuLWFj/5EyyjTJeHiRXg36/VcFdqGCQWH8c9WlSbWzRwd2j6NEstxVhNnspa+Nu3Qz3bPFuyvXVEwQFJ62hFIjb4OaXqaTfwyf+tLr+CKDe0kRykwK9ewWMif2iQtADYUSC5fP/FWnE891GPP0rrCDE9iCM29y9j6R2j03CY+axSsTa2k0gXYdaNhTJg1CkoINCEz5AljK6Mz3KeDAFQY8U1GRnczVMOTt+TjzAAaU66B81IUlwprknMDfLRUFHTIBPvBs7Mtku/CfFIPlI4Ql3buz4bM5RnfHKBXZuaDDOcZ4NeVn0lrXEVR8344L7WZX8TtsVTLWXmuKGNvskI30wmtxaeJmBgIuO/pGjZGfHcm9bf4iKLPq0gA+oc3MMXr2502LP4DQ5uFZLr18uCsnWTlnE16J5aT11C5N4OmCgG2Oq+NmxAa n7VUpsfRW+bdut06nYQkzkC4oFSh71TbQSWsCBuSzvZUpXXf1T+q0vEHQnZyMxw9hHPTkdnuPZ5lYfagewnKcEnJvzdQbI1/abOlpr0q4Ux8H2a6R5s6muTmID+ES7sjm1E2yYp4cHLUckGLYeD/yccyilxGiNpXv7vnQO0BuRdXjgYphxrGfji8BrsLnJhVWdMTB6BXdNtL8ca6tO48I3mwHs7Mjr05qdnS1E/cLfODeKuEUxFpjHyLI/CarnwF31Y4cjn+alNyqXoe3E9Bt4CG4uQV6pMedRG+LddxdOmHkUH6oY/J1NUmxsU56gLfQFmGn2N1WbeP45aUaUZsYq6nTfxefCJLswZGxarnayt/V0Ru1gV5p3s5YjFQRBBtbRq0D629SQH4fZeced/6bKfPKMbeySMlH7/MfeSTgi08xg3nipaxS9ir9qId94qZ1Ui+ctiEQOt5JmLUPJf1dOwDkHv782OQP0SFsVFCpDnDEJFUGH2LSCXObPOoqUurWbBVITXwJYXXEhcxm/PXgmXCQR435PSImOTlJpy9RFUXe4W6/N3yiZnKChtxVUlokbOUYEt1tLUbju6LW4HIlOsDRhMHUqCXcs5eXKPqVHk+Ao2bXYW2JEUPPNT3dek3kbFzc= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d15-20020a1709067f0f00b00a3cf8f53a42si2008372ejr.353.2024.02.14.09.23.59; Wed, 14 Feb 2024 09:24:00 -0800 (PST) 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=@outlook.com header.s=selector1 header.b=ck3XgD+r; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CBF0E68D1FF; Wed, 14 Feb 2024 19:23:57 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2100.outbound.protection.outlook.com [40.92.73.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 953F768D1D7 for ; Wed, 14 Feb 2024 19:23:50 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GJem+QY9gJG22kcmCks1x7nd0sIin9nhRtPf9fqubo4bEwK18a8REoWipsAErJEPHJxYOFV/eUZ6cB+RxkzbUqLGzEPjATtCGRtNCIPbPh7NjNnaAcIYvHGUDncAbcdmJxteo6EGjvhRK+3VZALsNGuuG/7vNOW/OfX6Qwi76g5O4sd2vYYIZ9e6dFj0PIsupJvb/r0AkwcrwzasxueIeHYnWObc6LWRhQsHlVm5v6sdbMk8RJr7z6z5v/05AvmUNXqdpue9nxx8veDMOdZryHN4I2c6T3hecLmyPUwpg/fipIbbu28GMvWz0iaMflfIp6Eg8HCmU2y9iVtQE9wpZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OCWKOJrW2QIwKokukxhC6e7N0FTbyMHFJ2ycGjDJxuw=; b=h0YZyIZYGWsCQmkopTeTCHrnLGqz69nm7I+s2TA5WzMKn7SumTjSRLllfk5acCiq6lF1d1SDKS3wEUbHPfqX4DHb33GH8FWGgHZ10CN+Tl17LOVcFtsTXy4kmy79ZeQjx95ibZ+qoLjiPXREpz4Mhmv2cV/lK1kZ7luza+0nXasXbpSkPeB+nS+6UsPYkxoiKCwF2g+Pt/UEjsaal79cTc48Prc91+Urnjb7/TQiW0wspSs5D10/8rxAgSSn/TmpLk/c6vnf5h1Xg4FyHQtFSKNVxWysRAEEiCLhxbV5/qgmScfH0SSgcyttO8wPsFZDMeuv0/YV99vzpW+OYVbn/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OCWKOJrW2QIwKokukxhC6e7N0FTbyMHFJ2ycGjDJxuw=; b=ck3XgD+r8ae5jZ+qtScmoPHuufOglItEQuylVl9E4mCiJcAN7krmYvMcPavNmoKFamyXkSp0VGO+kxBs99lrrP2VxDIfJUQ6fzcAXqiWqYNwwQHJNbE115McRsgkR33Rz3W8J620tk4i1IC2ybSP7bWUjhqasae+z4iaHAOkcJOCtEfsKD7dDOpsf9EON+da+Zv2wAWAXlupWYORMfYN5Pbkbtu49RH7R5o3dASeoLSq4lKWue2GxrLYiqr2gZOEG4y/zJBXYXN93rl8f31Ht9ZfGE/uJkQf7jhyP9/tWUyj9Ik4KUigoxyD0oQds3mRvma5yG1pOvy3YzDaYEAgkQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0374.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:329::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.39; Wed, 14 Feb 2024 17:23:48 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7270.036; Wed, 14 Feb 2024 17:23:48 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 14 Feb 2024 18:25:31 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [HwDVskcnaaEVc69ISZxWc26NV8+5GwopUWJsN/EiSi8=] X-ClientProxiedBy: ZR0P278CA0001.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240214172537.1099404-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0374:EE_ X-MS-Office365-Filtering-Correlation-Id: 59151c10-fca8-4744-8e8d-08dc2d81b474 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lPMkPa6Y3AnTulrDDdFoCusph22r97Cm0ipvOMCbS72PwGVJsvpbs9ZILkypQvf2ArnaspRmY/w5P5hNxeqk88RIm98wonft5C4ITz6AB2dqrF04BGsyau7293l1gGz2YPHT9EnLfr8/wLMS7aJ3mKizKNiel85VoGJc4cyPdT7J2sSlNYYHgfIndMMBjUF56tUVFY4BveNKJAxIzPWZasUjnscwcOsmyH9Zcvv0DxJc8TE0wwqjyDMIogs8Wa/7MuFyHrLEiLCxl32Hd1loY1Ma5AkE5+kHg1lsl6sa3qi1poyjrp1eCqyYe3IXomi1hSxT+aMDV+JWBV6bp8Strm1WbGKHk7fZqEvtm6K7p5luqoWK24s930m1xq81f7bfMJW6oB+EE/pd7lfVu6rCzEQ6GZ68jtBZP1CFaX5VrOeaVqjs4Yat1S73vT86SAw9XIdnsdxGMvMoXK5SC+h8urBpDvCBVFQFOQ/rjyZBXgMxxepHMDpRk1EHAj84JC0keFQ4bdhkLmMODNzkAgeXCqd2ZjlWx0HjBzFhPykgYFVyYpx8Bka5L9EwLBDknNm+BJxTjeGlgsp2keKdLqhzAfl8fQg309Pz7TQ9qAXJ/EfBr4JIJoCh0qoZjJRvfxrT X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ExzjF65d1x/MBi5ClPRU7s+DHDlNDKJNi6fnukeGR9cTU4RiLQhgRzA0+hMbIL1WyRnmVkN00FtodHr8u2MaTabUu8kpQULH/96MrDht9dzb0sHDbltOZY4/Vt55GQolehfju6GJC8hx2PNYS8lMDICEzIzJudWmZO2t/tAF5E27e7H1B8agXK4WlvfFL9MlSSE8XzBouElginmJBYgwqlS4tntz5RHUctgHbfFwHBoF0XEp1Z4klRjGwnWZRNuKNEvp7w/NGcb/SPGqmW4ytfIwABf74XBld8iZKeC4VnnyxWA8XV9mQGY69B/+Lnq6YjhW8MNkXlZNA4wZ7jWdPMNK8IxR4x9v0htxst8iC3QrO1f6+whqznYMm1EHj4DOvlaMxh9Xrt6rGpaZBcp74PW2RR2VWG/iNIv33yIWZQcVQ7cqb2ikIivqJeMX0AYdZKgHE51aS7tu7EmgfvdQMZ9tiN45LkE3Db5xST9m3FsKyiK+oRAbcyk5KoVuFG+7TxjD7WW9eoVcN6emdmOpTHYtGJgu+orUjHBdlBc77BwYhkYYi4McOkmnztpYVQ/KZmFNDwr10UK3yGHkafW9Lt0pOySPRhJL0fD4hr811nt0kRWqhQS7Hv+VKbLs1AF6cffwXnqRrsmt04Qg1rcEkYQXT1CGSx2f+oB9C86IMctCJmhlTE7XjxUVCkYMOsEzaGnXwNwaJxoR9EWVowmc7XiKKfPFXLixj1zGB7BwineoJDbO+4htIv1FsiMsirovSlZq16KgLgnaGuLsByhHB4lYU2tPIk/4CDqtJHor1sjTJ7JKmaRHDOZib/iENIs84WTJOzLeHbo7NlpB46I8TTVM1kynq2eVDsMy3wafMmNSIEo4bNa2K1GfDpaQRzFlR4CuSda8N/yIyO9VJATSdSNYOYLVm7QpOi/MJ6eqtzZURV5GolJMShWubgDUNc3SigEp+vWWToMEYgTPLlEfbjs4zsxWwTdKZKetap7qrisoyM6snt4VWPli0L40JeJNyQtunZ6jkeJ1uwq111DhMax64tuxffQKfB2SGPqMVogJiWgn3L+aBX94fdw64HUmWU5d7/8ljOcwpyxu+pmug3+XGaeLpNR/98C9IPoXzVu5DY50TId0OTTCXcn4iy4aWGvPonOPeWsYGMHR4A6Kj5YUcXMnsUUTxw3YgcbBpifYFZQtbK+0ICqUG9DwJOZkhRnC5yz/XyxlWwtl/0NR/vfPpTWUbAbVNCY5a/7lA5BvDMuVcuL8ID+tShdECUFeZoGA6heo6ahOSss4cdY7qg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59151c10-fca8-4744-8e8d-08dc2d81b474 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2024 17:23:48.3214 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0374 Subject: [FFmpeg-devel] [PATCH 2/8] avfilter: Add a header for internal generic-layer APIs 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: DDC4lyS7My6H This commit moves the generic-layer stuff (that is not used by filters) to a new header of its own, similarly to 5e7b5b0090bdf68e0897fe55ee657fdccc0cbca2 for libavcodec. Signed-off-by: Andreas Rheinhardt --- libavfilter/avfilter.c | 1 + libavfilter/avfilter_internal.h | 84 +++++++++++++++++++++++++++++++++ libavfilter/avfiltergraph.c | 2 +- libavfilter/graphparser.c | 1 + libavfilter/internal.h | 50 -------------------- libavfilter/pthread.c | 3 +- libavfilter/thread.h | 28 ----------- 7 files changed, 88 insertions(+), 81 deletions(-) create mode 100644 libavfilter/avfilter_internal.h delete mode 100644 libavfilter/thread.h diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 2d935cf576..5dcb548e90 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -36,6 +36,7 @@ #include "audio.h" #include "avfilter.h" +#include "avfilter_internal.h" #include "filters.h" #include "formats.h" #include "framequeue.h" diff --git a/libavfilter/avfilter_internal.h b/libavfilter/avfilter_internal.h new file mode 100644 index 0000000000..3dd51fb993 --- /dev/null +++ b/libavfilter/avfilter_internal.h @@ -0,0 +1,84 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * APIs internal to the generic filter(graph) layer. + * + * MUST NOT be included by individual filters. + */ + +#ifndef AVFILTER_AVFILTER_INTERNAL_H +#define AVFILTER_AVFILTER_INTERNAL_H + +#include "avfilter.h" +#include "framequeue.h" + +typedef struct AVFilterCommand { + double time; ///< time expressed in seconds + char *command; ///< command + char *arg; ///< optional argument for the command + int flags; + struct AVFilterCommand *next; +} AVFilterCommand; + +struct AVFilterGraphInternal { + void *thread; + avfilter_execute_func *thread_execute; + FFFrameQueueGlobal frame_queues; +}; + +/** + * Update the position of a link in the age heap. + */ +void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link); + +/** + * Allocate a new filter context and return it. + * + * @param filter what filter to create an instance of + * @param inst_name name to give to the new filter context + * + * @return newly created filter context or NULL on failure + */ +AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name); + +/** + * Remove a filter from a graph; + */ +void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter); + +int ff_filter_activate(AVFilterContext *filter); + +/** + * Parse filter options into a dictionary. + * + * @param logctx context for logging + * @param priv_class a filter's private class for shorthand options or NULL + * @param options dictionary to store parsed options in + * @param args options string to parse + * + * @return a non-negative number on success, a negative error code on failure + */ +int ff_filter_opt_parse(void *logctx, const AVClass *priv_class, + AVDictionary **options, const char *args); + +int ff_graph_thread_init(AVFilterGraph *graph); + +void ff_graph_thread_free(AVFilterGraph *graph); + +#endif /* AVFILTER_AVFILTER_INTERNAL_H */ diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index ea0d7713e3..df22de03a0 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -34,12 +34,12 @@ #include "avfilter.h" +#include "avfilter_internal.h" #include "buffersink.h" #include "formats.h" #include "framequeue.h" #include "internal.h" #include "link_internal.h" -#include "thread.h" #define OFFSET(x) offsetof(AVFilterGraph, x) #define F AV_OPT_FLAG_FILTERING_PARAM diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c index 229e647c0a..5d6dcdb9d3 100644 --- a/libavfilter/graphparser.c +++ b/libavfilter/graphparser.c @@ -29,6 +29,7 @@ #include "libavutil/opt.h" #include "avfilter.h" +#include "avfilter_internal.h" #include "internal.h" #define WHITESPACES " \n\t\r" diff --git a/libavfilter/internal.h b/libavfilter/internal.h index 3d46923cad..0e3f68d1f4 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -26,20 +26,6 @@ #include "libavutil/internal.h" #include "avfilter.h" -#include "framequeue.h" - -typedef struct AVFilterCommand { - double time; ///< time expressed in seconds - char *command; ///< command - char *arg; ///< optional argument for the command - int flags; - struct AVFilterCommand *next; -} AVFilterCommand; - -/** - * Update the position of a link in the age heap. - */ -void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link); /** * A filter pad used for either input or output. @@ -127,12 +113,6 @@ struct AVFilterPad { int (*config_props)(AVFilterLink *link); }; -struct AVFilterGraphInternal { - void *thread; - avfilter_execute_func *thread_execute; - FFFrameQueueGlobal frame_queues; -}; - typedef struct FFFilterContext { /** * The public AVFilterContext. See avfilter.h for it. @@ -356,23 +336,6 @@ int ff_request_frame(AVFilterLink *link); */ int ff_filter_frame(AVFilterLink *link, AVFrame *frame); -/** - * Allocate a new filter context and return it. - * - * @param filter what filter to create an instance of - * @param inst_name name to give to the new filter context - * - * @return newly created filter context or NULL on failure - */ -AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name); - -int ff_filter_activate(AVFilterContext *filter); - -/** - * Remove a filter from a graph; - */ -void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter); - /** * The filter is aware of hardware frames, and any hardware frame context * should not be automatically propagated through it. @@ -415,17 +378,4 @@ int ff_filter_process_command(AVFilterContext *ctx, const char *cmd, int ff_filter_init_hw_frames(AVFilterContext *avctx, AVFilterLink *link, int default_pool_size); -/** - * Parse filter options into a dictionary. - * - * @param logctx context for logging - * @param priv_class a filter's private class for shorthand options or NULL - * @param options dictionary to store parsed options in - * @param args options string to parse - * - * @return a non-negative number on success, a negative error code on failure - */ -int ff_filter_opt_parse(void *logctx, const AVClass *priv_class, - AVDictionary **options, const char *args); - #endif /* AVFILTER_INTERNAL_H */ diff --git a/libavfilter/pthread.c b/libavfilter/pthread.c index 1a063d3cc0..a0336a8e04 100644 --- a/libavfilter/pthread.c +++ b/libavfilter/pthread.c @@ -29,8 +29,7 @@ #include "libavutil/slicethread.h" #include "avfilter.h" -#include "internal.h" -#include "thread.h" +#include "avfilter_internal.h" typedef struct ThreadContext { AVFilterGraph *graph; diff --git a/libavfilter/thread.h b/libavfilter/thread.h deleted file mode 100644 index c709f17a33..0000000000 --- a/libavfilter/thread.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AVFILTER_THREAD_H -#define AVFILTER_THREAD_H - -#include "avfilter.h" - -int ff_graph_thread_init(AVFilterGraph *graph); - -void ff_graph_thread_free(AVFilterGraph *graph); - -#endif /* AVFILTER_THREAD_H */