From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 66187475AE for ; Sat, 10 Feb 2024 23:03:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7720B68D142; Sun, 11 Feb 2024 01:02:51 +0200 (EET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2058.outbound.protection.outlook.com [40.92.73.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B70B768D12E for ; Sun, 11 Feb 2024 01:02:47 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ofa1uJ6+kngF8ibnLOkkv8nCIGWUcW4xGNKIPtBkAaf5Szg01Dqib56kXzEDmjYU5bfxXADvy/N7zGqTaUCH6HiBmM8Nw6nVvaOiIBuKeaa0CZWgr4gGUXCZLniC2AdPiUUTshlByu3twVlRduBND6uMQs1rUg50i/WrMDeXF1L0IcEvVt4IL6ATYUOSuUNxHpa3x7eWsjiAPEGY0ko7UuTmV+TMfSjDCqkmGJoZIUjO+9Tk+NRPKHeow2Kb5Vt71mRmIV7D2KXxZQ3IJ8Q3dUYo9fr3lycvX9e0WXpcVJo1aYSM01K3eDEYIoPYtYO54qCC+kSPdbFFfjFF8UrZ3Q== 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=YC7H+DlwDiItjSet0CMzmi2r9Fa8l01QB1kuOttHE/w=; b=h4W0sX2nVkbF/VptTDIQL1wE3+FxBW7a8W+ihBKM6WRDSPmz/YC3BqsxXR9u3AUBfcP8Ezm6GGyp1fehxroEBECtTFdv6OyQwELdECiNjoKarAgi62K03wWqX1Z2dff9c3lfL855peMGBzoYtKUBoqASnumKdNAmqhQZgrrdImhuKFe4oeSiktwGHV0vCVeVMcwcwUWl0UUFo4AzK5GDUtaH5dP/VGZPWB3TPkRbXlIViwkEF4QhfV7gly2JFTEgcKsa2R80D+FM7RO/S41zCDJC8ua0sAQA5LZE7fXbWR/oqg6R3qMpE3e15WD1pMPSV1mAuS35GHBaaKx9ycl3Pw== 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=YC7H+DlwDiItjSet0CMzmi2r9Fa8l01QB1kuOttHE/w=; b=u9f2jB7utNP3PYZ/R9hfpnpJC2pmd8IWtvd0q0SUnprDEUW6Br9fQVbY2eIfLOhDz9HFFarSI7+TYBRSPpNnHEicrAv4eslHJ7cHbM/eAMrri8S2mWq3kCV4do3qqVwFawrAnzQvbA0pFZhUcDbiV8XkYTbfwEevrCtQPxjzy3kKPGnDTwLIEKdLtT5awXd+W7xU9Jf8iMeialcCNlibwul3QqZmUJ2/arZaSSTskv8mSJ7MWRTf9H2k8zmL4J/TKFNXyT76rweucrfuAgOIoQUpQpQyIry5NWlJlI94NbG61nFBaCGrZEfuEsv/JGgpuN9hKcsUxci4x5wq4ZjLFQ== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by AS8P250MB0037.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.33; Sat, 10 Feb 2024 23:02:42 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::db07:87f6:7c75:38cc%3]) with mapi id 15.20.7270.033; Sat, 10 Feb 2024 23:02:42 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 11 Feb 2024 00:04:09 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240125134425.374-1-jamrial@gmail.com> References: <20240125134425.374-1-jamrial@gmail.com> X-TMN: [7hBy84DoKZ6A1VZgpZ80PytmysPSE+hhlmwqI1Y6BXA=] X-ClientProxiedBy: ZR2P278CA0003.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::6) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <20240210230411.2616270-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|AS8P250MB0037:EE_ X-MS-Office365-Filtering-Correlation-Id: d543228a-2fff-4522-ab8d-08dc2a8c62ce X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpfz+h1ENKTbWTxnFGbPVjdrmXFL6Hxb7WNAoKGnetZZCp9+kj5QYV22V3IVQYFKFBt7hdj9YOmuJrevy7AmbO+tdH40pjfWfQ7dHPKKQPCD+9nfJALsexK359Xq+ifkOYoCKFZwgF+Kf4G/z4X4IZbvLruuxjgEV2otJkY0C6u0shzS5ZuORSxIOk71PCC2D1qO1xBQjAv7iKb+2u2A9X7zWfDZq7en4FvSb2RRSIn39jRM6VndPR/5K70rrrwQBPUGTgOHNpk5aQnwDFx2aShcWiB8tEp/1gbiTLPpjbYGpzlVFdjmwR5AH+FwhYjQuCOJbEAcnx5gzSkxZuqXMFmfqE74kGwYcyxiSjAnWrIJ5mgmPPctPIZHAA9qeJwcE1UAsBbGehFG9OI5Gi5jnMBsC88OWxg86Hg2+WMDQfvj9RUdJ8V+AllLGYXM+H1WqDsd9xYc8THMUM2WRBCX1IbB0J+hk92ajP/a+J7aEvTnxRgBQTtUHJDDSWdZYmfLc5cg4SoGIbSAENx+/70za61njreZn11v6A+GlMSy+AhIpvRlfoNzjSc+tHukoHUhNTlgZdHxM3k6mPyF7aMbSBaNKJNyJ/8wtoMPO1vvOdRa9aq2ofFUXV4fESk9JrO6L8J7iqrowo8pkcP5i29bhWh2DeRTQE9LFz99IKo2Iwdvj567WLXG34OwCyaQ0imU8r2ixl5LSaMegn4apsPVLL3bpa8AcnseITwyrjD7aL9M7QUlW63KZLUzzy8Is87TDM= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bvnHcQDn9Kz5GOXED65ZN9nYoqe7mL7rXNX9ZT+t6PntFDog1HWQYhNoUeGke6k8nJlGhaDz6Y1ggBqk/YlcGo1f6jzxsPtuRXUEPiK1JBoQfYbRP+Iajye6BwZvuLSHDZColc/pBKBAK13t1KCreTgUhw6BKijtVVe/eljsmAmY2YnMNmF5u2flB6NK52HzKTkOHDnf/0IgDfZNlgXZ7Ka/JEQt+35fpMt+4g6hd4zhXTEW2T0uR/QmyhGwTSCYQVSdQq85YU0/PC8va3q0xdRKoJkMMj0VRi7JwDTQH3ZNLp9gtrsKmq5UA+HSU4ptgXS7q35q5eFjZwf9cU5usdf0t42meBoqah9mC36pOSuQrFrm18Yt/teHhzfa7qwH4OyerXWI+Z4310zzVRYbqJLy15BUaFqdxarRzvU/9kFDzqem9nwfR9aKZqUb1g/9K5R8pD7P1jFZmAltqDaj2hCyds7jz+zU2XK9uBvSqfRbMw/ji6u6nWgUCNHzCemLL7FZxg+vIY4owO65PCDtjGqfWMIUPGwWqPsxHvK9BtDZ7Oq4thvNpGuBD9GQeFuj7eVl/CYmJQgYZFIi122u8iZxsKWRjoWm/OlSgDmMbUI= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Nhi7VbzZ51kg3qcexTRlhqSfeifdl7ltkJ38KTatKgaA5fuZuJ7xhuOP1lCp?= =?us-ascii?Q?AXYZVL+O4NTU11PkV1DWnj1byiPDdc8XYIZZzVnhvzq8EzoXjUfUuPuP3oPF?= =?us-ascii?Q?zXBxwc4cSOJekdIR6vKr5nr9yu8RehtB5Su1sa27L4ke+XrGHGY0/7oqZ+Eo?= =?us-ascii?Q?lPNOfT5qqKdQIexy2SrGOjWJX76Q61EOU6IdGSTPraEnJQkBgoRim/l3rg3F?= =?us-ascii?Q?TgUA5WG1/QmTCjyOWS29Rjg7q3uzG4GdkrD41Qkmkr4D/aX8A+yGgv/7fwfR?= =?us-ascii?Q?Yop8d28X+dNrgAnfD+EWaAHQU2a5sN0uYXi9bf7SDWOd9sL8Spd+qGYyb8Ot?= =?us-ascii?Q?P8/ui30DOZWDLxvQDtFijv68B/sATQBXWUJ2AJKG8Z+Lfymni82k2MshxDF0?= =?us-ascii?Q?37ABm6jbpQt17TeVSVCXhdPsnPPrETQd344TeJ2sYGVXV3K0MHkk3/EhwYZs?= =?us-ascii?Q?2L3Ba6jKowFUWGTTmTaPEggISd1Sc1fD/W4LEI/MAA+oyovpG/pYLM9ar5Eb?= =?us-ascii?Q?VxFD3n+fZxOBUNFQki7tAvjQHiI5TD2IqOGuHGRtse4ir+0c2myq0hAbxJSm?= =?us-ascii?Q?9gIIX3OJb0SQG2mVQVF+mSQq2A6M7bSugsiXtmvtZQ/YwqtDLMd94HJqAYhY?= =?us-ascii?Q?9PNqKwMMWllK4HEVUvPnfKKnfQ4c8MvaGu46c0SUwIAYukR3k8gx2mbnWh0T?= =?us-ascii?Q?SqA2jjFzFdTrQs6hReiFCXWC+uVmC1t1cB8w+zHC38zGftreXoMG86MqRF71?= =?us-ascii?Q?y6pU/fJS+TwPO7Ng6CAiwE0Zmqi+FNNAE0o48VmA66MuKouVnRsfC1Z6fiKx?= =?us-ascii?Q?cXNFOEjoQXR+KNsG3W7TeSf+zz897FmyfW/FbnOR/W9dtPnam567oVu5tAOk?= =?us-ascii?Q?2uh+f0qIpPYDdeeHMFVLSLKqNsqkebZp1v48H0REu3TyYOnAt4kF2nwdnivL?= =?us-ascii?Q?R1YrF7uWkj4wwgCJdWb37E8zUBbIbNfUcnMBirY3kEQbiP9KyvIqVd0cGuL8?= =?us-ascii?Q?iyHIpZ0QDgetRnZTsknEaklBO15v67IOqTh2ouNzYjZoYx+QN0hiPXK9Jsyi?= =?us-ascii?Q?YH8bPTMzf2t7FmttwmDgnEIHWH20hNmBQu50kjDLP9YRs6RyhKoheF4gZQT7?= =?us-ascii?Q?P2MWeBVgcJBz+wxEri/tnaz2jp4bSx8M+uC7Xu1jCz8w31+nU18NCFdFCM89?= =?us-ascii?Q?gFnAJ280G3oMhRqrYr4sN9WSCuDfBwtRA62VEvHex2mh3ZxdCYx2aqriveep?= =?us-ascii?Q?PWoo4OU9iJewVjmkYT4GugB0ovCgoF0dBheG5DQSVw=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d543228a-2fff-4522-ab8d-08dc2a8c62ce X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2024 23:02:42.3002 (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: AS8P250MB0037 Subject: [FFmpeg-devel] [PATCH 33/35] avfilter/avfilter: Move AVFilterGraph private fields to FFFilterGraph 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: (These fields were in AVFilterGraph although AVFilterGraphInternal existed for years.) Signed-off-by: Andreas Rheinhardt --- libavfilter/avfilter.h | 12 ------------ libavfilter/avfilter_internal.h | 6 ++++++ libavfilter/avfiltergraph.c | 32 +++++++++++++++++--------------- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 65034f831a..35840cfd54 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -922,18 +922,6 @@ typedef struct AVFilterGraph { avfilter_execute_func *execute; char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions - - /** - * Private fields - * - * The following fields are for internal use only. - * Their type, offset, number and semantic can change without notice. - */ - - AVFilterLink **sink_links; - int sink_links_count; - - unsigned disable_auto_convert; } AVFilterGraph; /** diff --git a/libavfilter/avfilter_internal.h b/libavfilter/avfilter_internal.h index 9ddb82bf26..72712608e7 100644 --- a/libavfilter/avfilter_internal.h +++ b/libavfilter/avfilter_internal.h @@ -41,6 +41,12 @@ typedef struct FFFilterGraph { * The public AVFilterGraph. See avfilter.h for it. */ AVFilterGraph p; + + AVFilterLink **sink_links; + int sink_links_count; + + unsigned disable_auto_convert; + void *thread; avfilter_execute_func *thread_execute; FFFrameQueueGlobal frame_queues; diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 0e2b5ee1f2..c25fc42430 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -127,7 +127,7 @@ void avfilter_graph_free(AVFilterGraph **graphp) ff_graph_thread_free(graphi); - av_freep(&graph->sink_links); + av_freep(&graphi->sink_links); av_opt_free(graph); @@ -159,7 +159,7 @@ fail: void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags) { - graph->disable_auto_convert = flags; + fffiltergraph(graph)->disable_auto_convert = flags; } AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph, @@ -471,7 +471,7 @@ static int query_formats(AVFilterGraph *graph, void *log_ctx) char inst_name[30]; const char *opts; - if (graph->disable_auto_convert) { + if (fffiltergraph(graph)->disable_auto_convert) { av_log(log_ctx, AV_LOG_ERROR, "The filters '%s' and '%s' do not have a common format " "and automatic conversion is disabled.\n", @@ -1311,8 +1311,8 @@ static int graph_config_pointers(AVFilterGraph *graph, void *log_ctx) } } av_assert0(n == sink_links_count); - graph->sink_links = sinks; - graph->sink_links_count = sink_links_count; + fffiltergraph(graph)->sink_links = sinks; + fffiltergraph(graph)->sink_links_count = sink_links_count; return 0; } @@ -1395,7 +1395,7 @@ int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const return 0; } -static void heap_bubble_up(AVFilterGraph *graph, +static void heap_bubble_up(FFFilterGraph *graph, AVFilterLink *link, int index) { AVFilterLink **links = graph->sink_links; @@ -1414,7 +1414,7 @@ static void heap_bubble_up(AVFilterGraph *graph, link->age_index = index; } -static void heap_bubble_down(AVFilterGraph *graph, +static void heap_bubble_down(FFFilterGraph *graph, AVFilterLink *link, int index) { AVFilterLink **links = graph->sink_links; @@ -1440,18 +1440,20 @@ static void heap_bubble_down(AVFilterGraph *graph, void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link) { - heap_bubble_up (graph, link, link->age_index); - heap_bubble_down(graph, link, link->age_index); + FFFilterGraph *graphi = fffiltergraph(graph); + heap_bubble_up (graphi, link, link->age_index); + heap_bubble_down(graphi, link, link->age_index); } int avfilter_graph_request_oldest(AVFilterGraph *graph) { - AVFilterLink *oldest = graph->sink_links[0]; + FFFilterGraph *graphi = fffiltergraph(graph); + AVFilterLink *oldest = graphi->sink_links[0]; int64_t frame_count; int r; - while (graph->sink_links_count) { - oldest = graph->sink_links[0]; + while (graphi->sink_links_count) { + oldest = graphi->sink_links[0]; if (oldest->dst->filter->activate) { r = av_buffersink_get_frame_flags(oldest->dst, NULL, AV_BUFFERSINK_FLAG_PEEK); @@ -1466,12 +1468,12 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph) oldest->dst->name, oldest->dstpad->name); /* EOF: remove the link from the heap */ - if (oldest->age_index < --graph->sink_links_count) - heap_bubble_down(graph, graph->sink_links[graph->sink_links_count], + if (oldest->age_index < --graphi->sink_links_count) + heap_bubble_down(graphi, graphi->sink_links[graphi->sink_links_count], oldest->age_index); oldest->age_index = -1; } - if (!graph->sink_links_count) + if (!graphi->sink_links_count) return AVERROR_EOF; av_assert1(!oldest->dst->filter->activate); av_assert1(oldest->age_index >= 0); -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".