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 D6BAC49715 for ; Tue, 19 Mar 2024 15:01:29 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7C21E68D3C9; Tue, 19 Mar 2024 17:01:27 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2106.outbound.protection.outlook.com [40.92.74.106]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0506868CCFA for ; Tue, 19 Mar 2024 17:01:22 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aGrTr5Z3BHJDMPMe3qu37KlmWw96boXbnMgXfilOOwPQghkdZxNLqicbtrad2/yUSulCLopWJDX+E/NPxMNreXZ7cpAeD+MJ8MCSIpWY9qVgslZrnxJ8hXD7/6FoYod/w8n3rsmJewk8AdgYX7iz+OsAOjqFMTw4Jpa4rXXUoesA5j9pV7UTMuOEkbk1cHpeSuGYBu7RBLcR/Fci5qgeV985PAtYQwNc59AHwG1HRQ8QGtIEyDTYpn4XJLbkeY26Gy+uKmkcW6N8ss08GyrTyq5VEZl9FSk+PQZ5MVAsrVWGfYCU98scuQybBW2aiwYL24c3iyOTwkNiNqMMF3Wkew== 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=O3EAT6E/bcX4Cirke1UNWVH6OrxnNCHiL7mEJFeDMmk=; b=HEc5Av3yYF/wGz7nv3LV6C18PmN30uOnXn+Rr7U3p/gRkG0JitSoDsCPT9y5F/Kko2q9MMKpjBe1jzoJm9QWd3OU677Tsjo/ARk1I9/cdJ4+e+jbRuaq41IIRvh6NDYL4fug/IYkutQILRsQ6bBROoSMU8/Yr1s02Ve5ZSHNMYHTp4Lco9YR7+oAKyYnK4RAUk4CDMid901BdRqZTsvcCSETePJzOnTp0RISQsEYl+gpgCTsybRApkJvMzfCdw02pfF4FfPOroVcIGh35jKjADRbp3LF7yTQNn28g6gTE6hQGXH3EHIE7ktKdc8036kKIp4oCLuAKwhVM4uQ9+kn7A== 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=O3EAT6E/bcX4Cirke1UNWVH6OrxnNCHiL7mEJFeDMmk=; b=qIyIsbU9p5IJ45Sr6UyTyBjSsnDyIRJ9LEbzAgekxT7hY0yLQYTeVp6JkciN0UwaStFjl5pS16vYWXMYQ7GMSXnOccDC4Dksv5vBO3fPZhogHeLwcAlNl38sAxThIoXAV0v3lItvnMkQsj8+bs+hAxuqSKl5ILCdvBrRlBDHy1blk7rwRt2y+Vh6KhWoMemGsCvOjVCx/NJ+icV3mhPKApp06EPxI09M1FQEWfSN1ZFGttZqBUiYNNCGCR3CRrha9eE5mRy4dDs1t0+nCzOvcad/5Ailkn22qNENC+IgXJRsSjzYxAdPBwvzfB8OTUQYKGnkRwtRiZKahBLtk0a0VA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS1P250MB0453.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.26; Tue, 19 Mar 2024 15:01:20 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb%7]) with mapi id 15.20.7362.035; Tue, 19 Mar 2024 15:01:19 +0000 Message-ID: Date: Tue, 19 Mar 2024 16:01:17 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240319140636.4323-1-jamrial@gmail.com> <20240319140636.4323-3-jamrial@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20240319140636.4323-3-jamrial@gmail.com> X-TMN: [tuHTP8cpJRL3qKrbHMUTyKLCYQnlBJPAfEIuX9s2xKg=] X-ClientProxiedBy: ZR0P278CA0092.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS1P250MB0453:EE_ X-MS-Office365-Filtering-Correlation-Id: d3e3f6ee-7741-426b-e0dc-08dc48256f3f X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnr9wYTvfIwcniUcOEk7m2BTLV2/ZLfH/COWmfXfZnKu8CX0bz5f7p/cWhlGSX8/6iY7GdlT5gCU9uhCQkJKPMhZlInTA4SwJq/keAwKVkAjPlwD5uav8IPqEIlUn7b3TWPBRWQ5OQhcMj1KF6PPnrmmt6+efoozpWyO0uEWDUhyQb0cS0N8aEAN+Y7C8fytbXFp+UXMXtKFwvWe+DmOh3oexY1uaGVhU+ZWF7dOPk7fK07FcF84O1z9/elxbaC7IXYsjZU/IruUlriFzBuhhiVEh3XiNWtlKFjEUPR3OD/38MgUBxorP8URvMtUixLokQkVV4rFO/0K+zHgjv1XZbqTIOy+mUwUVPSKKjuxn5iAZTt9OdC6DaNHOsRpOlSGtJuvEFgiMxes7HLYuY4lSJV/9kEjAZItCGsIUSQsD1B/JHE3kw8xui9OptFmD/7RYxfTIq7IkL9Sup+DkrDKwQ63pR0iASBJ6WtDmX5aZ+EqAdq3ITNOW2hVvyvmCMvalOJlP/szBmXE5Es1W9li+LG9TfgO10HOnZlaAp6RehcovC5miuDZz3s0sxzf5j4yY7lj/wSsa2J3z9stl6o0QJaT9NsMaGBcLvTmclGc0yTXKDjGD2eb26+cihJTFHhK058F90ZKcmFUn75zoRbBj95RgXSrM0/bGlfxPnSbs0kGUsiwAb4zjvHm+wwTdKYwU/2crUgz49n0f0BgMbqc4Kh+Rf5EMXWcdLxCzxV4XYR72DMYzdVSqPoHNhnLqhup8Pc= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D3IeK6DQXUNk5wh/T595ur7nuOfn2MR4OmPCOKlVdNZLrKNvI3a08/fw1NTe2NVa3EHFP/qS9tCujNoMMTYPc78PzXF7Kh7A7TjT0tRJs5tYiPPGCs0lT3U4ZaB6YfnYGuajG9PuJwux+SmkGby4IwygSEMtiY5TSfXq6zQXhv9vpoFwPtA6i43AE7BhBsS3qyN8nDCFnMQOJbF1LMI5VPPDtdfoCEAzq9y0FjZFVu5SQgmOgo944WqRo9vxav//TNbwPMfdSTA7D5rY2K7zUMHMADDaXm7EqW1Wl4O416PEgNK+aUweATeEl824W0xbPRsSsbYdqKVrgg7qn39tXYWJBPV6usdzII/nhAGRxtGJfxxeIOCV3+IOXlYLrPOs5BadDolyZzrn0JDy0U9MrGwMXL13JZyx83MnEtSwcwinVQuxqXAZVMZ+CSq9y6bqtmU1snMlQFb63EgcbgYvGVaSrGGmu95AsAoQT0PMo1YrAtxW5Z8nIPU05Hz5vjXS6kPy/KB+p5goG+5Z+QzOr5oDL8FuMI0dLQGhWBD3sCh88z8wESzynfHauktsINBD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z0M3UnBlZ0NKTmNZUmdENjNPeE9OL2V4V2RNUzF3L1hkSXh6eHhINWZZbjdO?= =?utf-8?B?TGgzazNTYVhWd2E5U2NBajVxeTM4SWorQU5Tekg2RTkxZjhZVWo4azl3ZFho?= =?utf-8?B?REpFdVkxRFpkOXFxanNqRG5lQUJ5TXB0Ri9ZZWFJZGRVZ0JwMWFYaFJielFK?= =?utf-8?B?V0JNN1NSZlB3OVZCS2EvTWRFbU1nWCtNR0lKWnlOVGpxR2pqSk1RRTFKMkdV?= =?utf-8?B?OUVWeTZrb3cvQWQwWFgzSkp6VGM0eUltUUpDKzIxNVJTc0xIQmpvUG15Q254?= =?utf-8?B?bmdXUlJIVU1HZEVVbHozUmNqRmRoampRUmc5VnZrSlBTUHlCa2RvaUJoYTFr?= =?utf-8?B?Z0dtYU0yMEZBMU8xaWtQeHk1N1YxSmxwMC9BQWIvREN1RWtHbk9nZjhPcDcz?= =?utf-8?B?RDBablNxVDh4S1VTZjhWL2Juc2ZnVE9hTDZkMHVuSmtMbllQL2NxUmNCd1BD?= =?utf-8?B?VEp6VTdUQzlWUEhLNHYvay8ybTFQcXB6c0NqNmpJN3BuS2xielB1d3graTJW?= =?utf-8?B?Nmd0Vi9DTGZ3ZGF1Q2xUdXM0K2lOTXI3YmFjd3VERDZIR3pEU2ZSWGVWNTcy?= =?utf-8?B?RG9Gemh0VEtsSTVKMGVNR2R0aS8weUFjdDhRb1R2c2dnOXpEN0pWT0lGOEYz?= =?utf-8?B?SEllRFpYN1NTOGd2c21vM0ZPeXhiUyt2T3pISmpQNmd3Q3gwaUhENmR1OVg0?= =?utf-8?B?Wi94TXh3WllwcXZNeXFiQUVJZm8ydGU3YWpRaHlYNXN3Wnlrd0FXbWp3cDQ0?= =?utf-8?B?clpOek0zaHREYmFqSWxXKzExVHlMREw1WHhGWUNrRUFaQlhTZDhDRzJ3VGc0?= =?utf-8?B?TXVOTzF4OVJhci9iZ2ZKMmRZVDV3REhmSnJJRHNxa0VkVWNYTHZjYlN4blBX?= =?utf-8?B?NFpQNVpFUENrazlIRlI1RUtGZm9zWXc0OTRMdkVNNWN1Sm5lWmtucFZOV0ZX?= =?utf-8?B?MisrUlRNMlQraFRsTFByUjNMMElkQUxYdnA0dCs3Vkh3VGxrMWdpTHNYbWRB?= =?utf-8?B?QXFEbmRHUmtJZHhQSmlJeDJvdGNSdC8rb0JWYWhnYVl1RTErdVZ1ZWhsNUUr?= =?utf-8?B?NmphUHcwUHpJcHhHQ3VPNjNkNVFSWjFmeVFlMmpPS29QR1JYYmhOTUYzRER3?= =?utf-8?B?alg3OVJ4cnFyM2VBdTNiNTNtajZnUWJieklXMFdrdUZlV1BkeWRTVEo0cWxa?= =?utf-8?B?dFN6aXZyNTVJcWZZZi9wVzdWMnBvMGVJbXI0UWZNL0RFeTZwRk84QXFHOS9W?= =?utf-8?B?ZW9aM3VKN1dPUU5JVktFc2dHQWgyU2E1emZJMXR6bWFXR1RyNkdEL1FGUW0y?= =?utf-8?B?MlVoV2UxQUZCUXY1VGQxblhUTGxNTWM3ME9vTjlkUTlDOUZIN3EwQlcyK2cy?= =?utf-8?B?RTVwVS9DR2dEY0dZU2hSUHgvb1RwWVJlbGRqZFhkeFVDNE9acWQ0NGNOQnV1?= =?utf-8?B?d0EvUUY3cjRLb1V0WXkxbVhGRnF6N3MwQkIzNTV5aFQyRjVGd095eE4rc0RE?= =?utf-8?B?RmNuWW9NSVRNbFV0OUJZWEZudm5jRWs4YS9DY2JQc2VHKy9zK3M0TFp2bHdL?= =?utf-8?B?UVJBK2dQUVNNZVpzZkpUbWZvbUJQNXUreUR6bk1jM3pxNEo2YXRBZlBjalhs?= =?utf-8?B?U2RCTVgxSjBub1ZvZTZUK2w1SjIyRVk0cVpLVzFTR1U5a0tjcW5lQUdDN0Vp?= =?utf-8?B?UEhOcE1ZRjlPK1Z3NHpGTVdGb3FBcmhUeWJOclgwc0ZrNzUxU0RoOEdRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3e3f6ee-7741-426b-e0dc-08dc48256f3f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2024 15:01:19.9246 (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: AS1P250MB0453 Subject: Re: [FFmpeg-devel] [PATCH 3/3] fftools/ffmpeg: auto insert enhancement filters when available 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 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: James Almer: > Signed-off-by: James Almer > --- > fftools/ffmpeg.h | 3 +++ > fftools/ffmpeg_demux.c | 4 ++++ > fftools/ffmpeg_filter.c | 28 +++++++++++++++++++++++++++- > fftools/ffmpeg_opt.c | 3 +++ > 4 files changed, 37 insertions(+), 1 deletion(-) > > diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h > index 7454089c2d..8d54affc0a 100644 > --- a/fftools/ffmpeg.h > +++ b/fftools/ffmpeg.h > @@ -155,6 +155,7 @@ typedef struct OptionsContext { > SpecifierOptList hwaccel_devices; > SpecifierOptList hwaccel_output_formats; > SpecifierOptList autorotate; > + SpecifierOptList autoenhance; > > /* output options */ > StreamMap *stream_maps; > @@ -239,6 +240,7 @@ enum IFilterFlags { > IFILTER_FLAG_AUTOROTATE = (1 << 0), > IFILTER_FLAG_REINIT = (1 << 1), > IFILTER_FLAG_CFR = (1 << 2), > + IFILTER_FLAG_AUTOENHANCE = (1 << 3), > }; > > typedef struct InputFilterOptions { > @@ -369,6 +371,7 @@ typedef struct InputStream { > #endif > > int autorotate; > + int autoenhance; > > int fix_sub_duration; > > diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c > index 47312c9fe1..0b4ab3d7ec 100644 > --- a/fftools/ffmpeg_demux.c > +++ b/fftools/ffmpeg_demux.c > @@ -1056,6 +1056,7 @@ int ist_filter_add(InputStream *ist, InputFilter *ifilter, int is_simple, > return AVERROR(ENOMEM); > > opts->flags |= IFILTER_FLAG_AUTOROTATE * !!(ist->autorotate) | > + IFILTER_FLAG_AUTOENHANCE * !!(ist->autoenhance) | > IFILTER_FLAG_REINIT * !!(ds->reinit_filters); > > return ds->sch_idx_dec; > @@ -1238,6 +1239,9 @@ static int ist_add(const OptionsContext *o, Demuxer *d, AVStream *st) > ist->autorotate = 1; > MATCH_PER_STREAM_OPT(autorotate, i, ist->autorotate, ic, st); > > + ist->autoenhance = 1; > + MATCH_PER_STREAM_OPT(autoenhance, i, ist->autoenhance, ic, st); > + > MATCH_PER_STREAM_OPT(codec_tags, str, codec_tag, ic, st); > if (codec_tag) { > uint32_t tag = strtol(codec_tag, &next, 0); > diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c > index 3d88482d07..c4d900d95b 100644 > --- a/fftools/ffmpeg_filter.c > +++ b/fftools/ffmpeg_filter.c > @@ -18,6 +18,8 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > */ > > +#include "config_components.h" > + > #include > > #include "ffmpeg.h" > @@ -145,6 +147,8 @@ typedef struct InputFilterPriv { > int displaymatrix_present; > int32_t displaymatrix[9]; > > + int enhancement_present; > + > // fallback parameters to use when no input is ever sent > struct { > AVRational time_base; > @@ -1567,6 +1571,15 @@ static int configure_input_video_filter(FilterGraph *fg, AVFilterGraph *graph, > desc = av_pix_fmt_desc_get(ifp->format); > av_assert0(desc); > > +#if CONFIG_LCEVC_FILTER > + if ((ifp->opts.flags & IFILTER_FLAG_AUTOENHANCE) && > + !(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) { > + ret = insert_filter(&last_filter, &pad_idx, "lcevc", NULL); > + if (ret < 0) > + return ret; > + } If I see this correctly, this will add this filter automatically for all videos when this filter is present, although it will be unneeded in the vast majority of cases. I am against this. > +#endif > + > // TODO: insert hwaccel enabled filters like transpose_vaapi into the graph > if ((ifp->opts.flags & IFILTER_FLAG_AUTOROTATE) && > !(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) { > @@ -1883,6 +1896,10 @@ static int ifilter_parameters_from_frame(InputFilter *ifilter, const AVFrame *fr > memcpy(ifp->displaymatrix, sd->data, sizeof(ifp->displaymatrix)); > ifp->displaymatrix_present = !!sd; > > +#if CONFIG_LCEVC_FILTER > + ifp->enhancement_present = !!(av_frame_get_side_data(frame, AV_FRAME_DATA_LCEVC)); > +#endif > + > return 0; > } > > @@ -2584,7 +2601,8 @@ enum ReinitReason { > VIDEO_CHANGED = (1 << 0), > AUDIO_CHANGED = (1 << 1), > MATRIX_CHANGED = (1 << 2), > - HWACCEL_CHANGED = (1 << 3) > + HWACCEL_CHANGED = (1 << 3), > + ENHANCEMENT_CHANGED = (1 << 4), > }; > > static const char *unknown_if_null(const char *str) > @@ -2625,6 +2643,12 @@ static int send_frame(FilterGraph *fg, FilterGraphThread *fgt, > } else if (ifp->displaymatrix_present) > need_reinit |= MATRIX_CHANGED; > > +#if CONFIG_LCEVC_FILTER > + if (sd = av_frame_get_side_data(frame, AV_FRAME_DATA_LCEVC)) > + if (!ifp->enhancement_present) > + need_reinit |= ENHANCEMENT_CHANGED; > +#endif > + > if (!(ifp->opts.flags & IFILTER_FLAG_REINIT) && fgt->graph) > need_reinit = 0; > > @@ -2681,6 +2705,8 @@ static int send_frame(FilterGraph *fg, FilterGraphThread *fgt, > av_bprintf(&reason, "display matrix changed, "); > if (need_reinit & HWACCEL_CHANGED) > av_bprintf(&reason, "hwaccel changed, "); > + if (need_reinit & ENHANCEMENT_CHANGED) > + av_bprintf(&reason, "enhancement data found, "); > if (reason.len > 1) > reason.str[reason.len - 2] = '\0'; // remove last comma > av_log(fg, AV_LOG_INFO, "Reconfiguring filter graph%s%s\n", reason.len ? " because " : "", reason.str); > diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c > index 4b3f9789ba..b87782806e 100644 > --- a/fftools/ffmpeg_opt.c > +++ b/fftools/ffmpeg_opt.c > @@ -1738,6 +1738,9 @@ const OptionDef options[] = { > { "autorotate", OPT_TYPE_BOOL, OPT_PERSTREAM | OPT_EXPERT | OPT_INPUT, > { .off = OFFSET(autorotate) }, > "automatically insert correct rotate filters" }, > + { "autoenhance", OPT_TYPE_BOOL, OPT_PERSTREAM | OPT_EXPERT | OPT_INPUT, > + { .off = OFFSET(autoenhance) }, > + "automatically insert enhancement filters (LCEVC)" }, > { "autoscale", OPT_TYPE_BOOL, OPT_PERSTREAM | OPT_EXPERT | OPT_OUTPUT, > { .off = OFFSET(autoscale) }, > "automatically insert a scale filter at the end of the filter graph" }, _______________________________________________ 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".