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 ESMTPS id F34AB4DCF4 for ; Sun, 2 Mar 2025 20:38:59 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A3FC768E3ED; Sun, 2 Mar 2025 22:38:54 +0200 (EET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12olkn2018.outbound.protection.outlook.com [40.92.21.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1788C68E1E3 for ; Sun, 2 Mar 2025 22:38:48 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C9M5fHtQsPOBlQGidVlg9S8M+KhKtBLaEMcxnFhxWRN9YJiTTF3pVEwB3I4NCWxHUrSaCqNO5SAv9jrXiAM03INZ/fybjzhow3+iAQkbYR4Cn6R4cOmu5Yb1qvcU+7IGjTQfACSWv4uE9+JZj9FMa0vdmsvYsWWmEM6FVe+GFM4deyfMzpZ/a7qM9ifHOFxRSMaZOHFD35yX844OjLp1bdyoUDP2mau7fKdWbNNv8HO6Y+SSnWPR7Li5M6/W1WYHQByelgdj3tLYLVN7ph3vAs18fNhgJPrVN/VafFqkCDf6ymaEH3yCJ3oRaQIWuFLOhDJC8Yr0df0f01JP1qz97A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=2Jx7oHwEKeaUaCiDYuXF7BGHOsMqlu2p71fbFkeM30A=; b=Z3grbpoGUUSE9iHQg/+wXlT3brOvjBS1ZKmqTtgQLcvu7b+Nbdns659XcPNU2Bk9zkDSGRpWO+zUL7frn2ECnAaJiVFWPLyHPoeCtSZbbvHaJ1iJPMZ/snXrjk6OuwU1CuWlUc5m05TWXN677dTameSu8+Lr4c3Uptb+K1pF1oEUddKvZ2E5nc1hy6ZOJfx/fUFpRVOB7XzVYxzHpL+mjT2CbStN9Pn6lURct1ItMEsMZCC0zi04heq1SYLv+1yyzVTDeHL1GEI4dYFb+GF4yE3SBnYHEH0xYgCSEfCoFnpXJYeSYTrTxQ6Csch/k9srOFgEt+/LPVqMqv+XjJWMRQ== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2Jx7oHwEKeaUaCiDYuXF7BGHOsMqlu2p71fbFkeM30A=; b=RVjyM89TcyGyw2DmBttJAmFy4mTqm/XGAtZuOblWPRSJqPu3Cc1m+bH1mfQ3BBzs9Y0ImnyB0H+tCZySHJKEHfU6cWmXCryLwWHr9nDxcBcKrUmp6FR4+RzNV108necOaBZAGdDLgzK4L9KplWY0OBmC/MsRNXyaFKnDSgBoKJAZBu1mHQIPY7v8S8TcpZXpS1/vPuYKKy4Vo84n6UFoX0AFBW8JwCRr8JVcZBYNE6qGbQclgpMZ8diIup5Ln7kXfTzdTuX7+X1N9bZxsFuUcS7B7DrkL4PBPSf++Rj0jgPEQ78t7VERXR1UwCas1o1zqZVXxRrA8mQQWA0M0lxd1Q== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DS7P223MB1265.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:256::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.27; Sun, 2 Mar 2025 20:38:45 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%7]) with mapi id 15.20.8489.025; Sun, 2 Mar 2025 20:38:45 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v5] libavcodec/dvbsubenc.c: add a disable_2bpp option to work around some decoders. Thread-Index: AQHbi5fmkoleGSTAo0en5El6loab3bNgTrTQ Date: Sun, 2 Mar 2025 20:38:45 +0000 Message-ID: References: <20250302172331.57779-1-waider@waider.ie> In-Reply-To: <20250302172331.57779-1-waider@waider.ie> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8P223MB0365:EE_|DS7P223MB1265:EE_ x-ms-office365-filtering-correlation-id: bec9276e-7dcf-473a-678e-08dd59ca3a5a x-microsoft-antispam: BCL:0; ARA:14566002|8062599003|461199028|19110799003|8060799006|15080799006|7092599003|440099028|3412199025|41001999003|102099032; x-microsoft-antispam-message-info: =?iso-8859-1?Q?KB3C5yM7z0/CNT3cpuxE1u0I1PCTFcX2154CBeStnI2PFB5VC9kpqfjZZ4?= =?iso-8859-1?Q?4odLQcpEciVU4RR2WruSIhc906esy/cTqxOYMZP+yW346PWHLu3BGPOR8l?= =?iso-8859-1?Q?fsAjLSY5A98fINqf6/SpSKIYEgnWuB+DHtpmYHo4PUaqsGODZOLDFNlArc?= =?iso-8859-1?Q?01ci411BGP5zLIpDUC6FyfTQbCq+9ujXLDGUDlLIGD/K0Oj8bQWOAq/Y54?= =?iso-8859-1?Q?v0C22qXk+5fq1cEQsx+3oF1ChuVGopWwEa1c73kNasqBO1iZHMemsm0QtJ?= =?iso-8859-1?Q?e7QfVAk1AuruBGbOPaUIHgGTIQ0nRUo8UIeStXckbTW25BRqcnRwbGr42i?= =?iso-8859-1?Q?AsiDgzREHpAsR8DlT3sr1IYZiPfk331VxlWX84BqFMytBbivJX3+tuAFiY?= =?iso-8859-1?Q?o3nMUm3RFa88onBDcB2IPojSAR8L4V0sjQXI1oA4VKQvUTsh0QPsWpb0sq?= =?iso-8859-1?Q?6Ms/82xeTSGCcAAWs1UaOuIEkT4HvS5Fh8wil3+CtXpaeqsUJY0X4rZUmA?= =?iso-8859-1?Q?HxIgB1EVwphiounqNa+uepq+r/OBqFjzmT2coUvi/c4s5c+pMmeZrVumtY?= =?iso-8859-1?Q?u5TEKOdx+478FawH3tyy+odYdwUhxxAfZBlaWImalTBdKOBBlooKy9UAFJ?= =?iso-8859-1?Q?Oq/lEYT15M89T2txZWrql2bYQZgf+m7g6E/xkDDF2z+PMzDmirzyjIU7J/?= =?iso-8859-1?Q?l5gFEDMdVIBIncRBiZpiCV2/sAPyroPEPI/V3/eAlo2IevxuMabVfU9hJx?= =?iso-8859-1?Q?mSEzapvdWMuXmJoK2OwjBkpTjMuPfsKbyEqp6+gA2U5/Xe93v+BC+zXAv+?= =?iso-8859-1?Q?Kl23g7UISbkKWagTuneGACSMcrzVW/N8REq8nvihcyr5teOEChEYkOx1ys?= =?iso-8859-1?Q?X83JNc21N+RryxYyMBwOBuRPY3W8A4mg/u1tkc+XTk2DsJKM0+IhrQUJlL?= =?iso-8859-1?Q?5onHEfv51nfgEiZN6ipgzKJj+jtnAjz6TKbZJY6597DRk7EhDjXTqeSz68?= =?iso-8859-1?Q?nGKeUoLPXHseTVGy1tGBn72HNZMcEqc5fjZ/SrmjxoBaqCLIu2XupJDLjG?= =?iso-8859-1?Q?t3paw+vvYZc03+BMr3aGEVaO9367+Mc+bvScw61S14NvAsLPFRiRST+yt8?= =?iso-8859-1?Q?lXdkZrOTUK0UE8G8ky+XlT2FLZP+w=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?5pmqNTtaqxFczrDFryiQb1JniBvmYTcPr6yYUapNCOCGRevl0nMYd0V/6h?= =?iso-8859-1?Q?26c3pGvNLSOlnFdahd9OPXnnzHpPyClY/7sN7/ecg0oN0xvW7D+Rtd7GeE?= =?iso-8859-1?Q?WW53mX9Tu05MByrrZaHnnLO3qLinCThJLaTmV5CaasLV1La2aerWuXOX3x?= =?iso-8859-1?Q?DYcJtWU0V4qpyQ+20UfdRSNOVxWUNfcXZG4tsR170hTZzcebRa92dXmpVt?= =?iso-8859-1?Q?Qd3w8UfMXsxCmpm22PICsoZea+OivEH0pfZw/y1+yiQMkcL/LwI6mk67lG?= =?iso-8859-1?Q?QQLZdcxGDEd1WZp9K4Z1XrhDsI5mlfwDs8NUoEwqH+2wSC59q/A4WUxus/?= =?iso-8859-1?Q?KWHdUkITVduNzRqaXT+j/r9PJAjdvFB4K69yFjIGKU4Tc6j37BH9iUeU6t?= =?iso-8859-1?Q?838Z/Xgt4Yj3eMcuvu6gZzn/FXKLbjcIbsstrvvWb7ANaurnlwZrdsk4vl?= =?iso-8859-1?Q?oUDUkaJWFtDf8dxs1m+WUEqp63xUTdQ/Juipa8en75Q5tbZ53lkc3Kb7o7?= =?iso-8859-1?Q?i7oc1M2BUO5HHj6q7e0479LX8vpYntQPKv3UoTeOaIPEbxKJdyXcVnrNvv?= =?iso-8859-1?Q?IaFm9V2VrBDou7Pp5lRYZphEUQc5hFTFRAqG+0PwKHs7ha7RZIGm6SO8jq?= =?iso-8859-1?Q?uyzgJAz+Aaag+5zbl0DBkFCIe3keoXST1Ve73P9GFABdsLTqKvgCsKrxdB?= =?iso-8859-1?Q?TcTZA3S/cjYBHYBhDpSYZMm7VeWZ05AUb7PQYnJbALkkmorQAzYqpyPCuN?= =?iso-8859-1?Q?S8QGM3WBf7m1u4lutI+X4BvEi/jpI9UVIxf6llgUCa3YiVNDQvLZ2HS+q0?= =?iso-8859-1?Q?Ao/yyvXg5/AktEz4HUHMNt4VY/UEiFh2Ht6KuTK3tBopk9kNBSrWyZk4Av?= =?iso-8859-1?Q?RmEgspTeE0ec5mzp0axqnTDNxIlxLOyzX11x6cQVL5ioZCZuyOqHIBVxDp?= =?iso-8859-1?Q?+E6APOJMSR5QZ/60QmVJLnpOAAp9ix+kLqjut9IZv0JZ6oHmbgiahE7y9F?= =?iso-8859-1?Q?0pMRco7UfDv1C27l/JCrD0+YAsoNaT9spTcpkn+AObv8YeBarv6yOKvuhd?= =?iso-8859-1?Q?Hi2C8fq+DD9ofxNepC3nrAYDLYLtSUW4/W9Mb2n1Y537DwHC61x5NTBM1o?= =?iso-8859-1?Q?BdDUtHCH59+PO2yFmcmugaVyV/j+14o4qDfNYC/LHOEfKE3+YDoV3fvAAY?= =?iso-8859-1?Q?pM4TWr+qWg8LBGVf8Lv3eTed2Hx7m6fmcFWjmZUru6nyHHjXEP6WetQorE?= =?iso-8859-1?Q?iseA8KQeE+krCNJGpeHjEpaovbM6DnvZrJTTQiU/o=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-92255.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: bec9276e-7dcf-473a-678e-08dd59ca3a5a X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2025 20:38:45.3680 (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: DS7P223MB1265 Subject: Re: [FFmpeg-devel] [PATCH v5] libavcodec/dvbsubenc.c: add a disable_2bpp option to work around some decoders. 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: Ronan Waide Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Ronan > Waide > Sent: Sonntag, 2. M=E4rz 2025 18:24 > To: ffmpeg-devel@ffmpeg.org > Cc: Ronan Waide > Subject: [FFmpeg-devel] [PATCH v5] libavcodec/dvbsubenc.c: add a > disable_2bpp option to work around some decoders. > = > As noted in the code in several places, some DVB subtitle decoders > don't handle 2bpp color. This patch adds a disable_2bpp option which > disables the 2bpp format; subtitles which would use 2bpp will be bumped > up to 4bpp. Per suggestion from sw, disable_2pp defaults to true. > = > Signed-off-by: Ronan Waide > --- > doc/encoders.texi | 27 +++++++++++++++++ > libavcodec/dvbsubenc.c | 69 +++++++++++++++++++++++++++++++----------- > 2 files changed, 78 insertions(+), 18 deletions(-) > = > diff --git a/doc/encoders.texi b/doc/encoders.texi > index f3fcc1aa60..6ee0065c7d 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -4484,6 +4484,33 @@ Reduces detail but attempts to preserve color at > extremely low bitrates. > @chapter Subtitles Encoders > @c man begin SUBTITLES ENCODERS > = > +@section dvbsub > + > +This codec encodes the bitmap subtitle format that is used in DVB > +broadcasts and recordings. The bitmaps are typically embedded in a > +container such as MPEG-TS as a separate stream. > + > +@subsection Options > + > +@table @option > +@item disable_2bpp @var{boolean} > +Disable the 2 bits-per-pixel encoding format. > + > +DVB supports 2, 4, and 8 bits-per-pixel color lookup tables. However, > +not all players support or properly support 2 bits-per-pixel, > +resulting in unusable subtitles. > +@table @option > +@item 0 > +The 2 bits-per-pixel encoding format will be used for subtitles with 4 > +colors or less. > + > +@item 1 > +The 2 bits-per-pixel encoding format will be disabled, and subtitles > +with 4 colors or less will use a 4 bits-per-pixel format. (default) > +@end table > + > +@end table > + > @section dvdsub > = > This codec encodes the bitmap subtitle format that is used in DVDs. > diff --git a/libavcodec/dvbsubenc.c b/libavcodec/dvbsubenc.c > index 822e3a5309..4db2e1ddda 100644 > --- a/libavcodec/dvbsubenc.c > +++ b/libavcodec/dvbsubenc.c > @@ -22,9 +22,12 @@ > #include "bytestream.h" > #include "codec_internal.h" > #include "libavutil/colorspace.h" > +#include "libavutil/opt.h" > = > typedef struct DVBSubtitleContext { > + AVClass * class; > int object_version; > + int disable_2bpp; > } DVBSubtitleContext; > = > #define PUTBITS2(val)\ > @@ -274,13 +277,15 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > { > DVBSubtitleContext *s =3D avctx->priv_data; > uint8_t *q, *pseg_len; > - int page_id, region_id, clut_id, object_id, i, bpp_index, > page_state; > + int page_id, region_id, clut_id, object_id, i, bpp_index, > page_state, min_colors; > = > = > q =3D outbuf; > = > page_id =3D 1; > = > + min_colors =3D s->disable_2bpp ? 16 : 0; > + > if (h->num_rects && !h->rects) > return AVERROR(EINVAL); > = > @@ -326,18 +331,20 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > = > if (h->num_rects) { > for (clut_id =3D 0; clut_id < h->num_rects; clut_id++) { > - if (buf_size < 6 + h->rects[clut_id]->nb_colors * 6) > + int nb_colors =3D FFMAX(min_colors, h->rects[clut_id]- > >nb_colors); > + > + if (buf_size < 6 + nb_colors * 6) > return AVERROR_BUFFER_TOO_SMALL; > = > /* CLUT segment */ > = > - if (h->rects[clut_id]->nb_colors <=3D 4) { > + if (nb_colors <=3D 4) { > /* 2 bpp, some decoders do not support it correctly */ > bpp_index =3D 0; > - } else if (h->rects[clut_id]->nb_colors <=3D 16) { > + } else if (nb_colors <=3D 16) { > /* 4 bpp, standard encoding */ > bpp_index =3D 1; > - } else if (h->rects[clut_id]->nb_colors <=3D 256) { > + } else if (nb_colors <=3D 256) { > /* 8 bpp, standard encoding */ > bpp_index =3D 2; > } else { > @@ -354,16 +361,24 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > *q++ =3D clut_id; > *q++ =3D (0 << 4) | 0xf; /* version =3D 0 */ > = > - for(i =3D 0; i < h->rects[clut_id]->nb_colors; i++) { > + for(i =3D 0; i < nb_colors; i++) { > *q++ =3D i; /* clut_entry_id */ > *q++ =3D (1 << (7 - bpp_index)) | (0xf << 1) | 1; /* 2 > bits/pixel full range */ > { > int a, r, g, b; > - uint32_t x=3D ((uint32_t*)h->rects[clut_id]- > >data[1])[i]; > - a =3D (x >> 24) & 0xff; > - r =3D (x >> 16) & 0xff; > - g =3D (x >> 8) & 0xff; > - b =3D (x >> 0) & 0xff; > + if (i < h->rects[clut_id]->nb_colors) { > + uint32_t x=3D ((uint32_t*)h->rects[clut_id]- > >data[1])[i]; > + a =3D (x >> 24) & 0xff; > + r =3D (x >> 16) & 0xff; > + g =3D (x >> 8) & 0xff; > + b =3D (x >> 0) & 0xff; > + } else { > + /* pad out the CLUT */ > + a =3D 0; > + r =3D 0; > + g =3D 0; > + b =3D 0; > + } > = > *q++ =3D RGB_TO_Y_CCIR(r, g, b); > *q++ =3D RGB_TO_V_CCIR(r, g, b, 0); > @@ -373,7 +388,7 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > } > = > bytestream_put_be16(&pseg_len, q - pseg_len - 2); > - buf_size -=3D 6 + h->rects[clut_id]->nb_colors * 6; > + buf_size -=3D 6 + nb_colors * 6; > } > = > if (buf_size < h->num_rects * 22) > @@ -381,14 +396,15 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > for (region_id =3D 0; region_id < h->num_rects; region_id++) { > = > /* region composition segment */ > + int nb_colors =3D FFMAX(min_colors, h->rects[region_id]- > >nb_colors); > = > - if (h->rects[region_id]->nb_colors <=3D 4) { > + if (nb_colors <=3D 4) { > /* 2 bpp, some decoders do not support it correctly */ > bpp_index =3D 0; > - } else if (h->rects[region_id]->nb_colors <=3D 16) { > + } else if (nb_colors <=3D 16) { > /* 4 bpp, standard encoding */ > bpp_index =3D 1; > - } else if (h->rects[region_id]->nb_colors <=3D 256) { > + } else if (nb_colors <=3D 256) { > /* 8 bpp, standard encoding */ > bpp_index =3D 2; > } else { > @@ -424,17 +440,19 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > const uint8_t *bitmap, int linesize, > int w, int h); > = > + int nb_colors =3D FFMAX(min_colors, h->rects[object_id]- > >nb_colors); > + > if (buf_size < 13) > return AVERROR_BUFFER_TOO_SMALL; > = > /* bpp_index maths */ > - if (h->rects[object_id]->nb_colors <=3D 4) { > + if (nb_colors <=3D 4) { > /* 2 bpp, some decoders do not support it correctly */ > dvb_encode_rle =3D dvb_encode_rle2; > - } else if (h->rects[object_id]->nb_colors <=3D 16) { > + } else if (nb_colors <=3D 16) { > /* 4 bpp, standard encoding */ > dvb_encode_rle =3D dvb_encode_rle4; > - } else if (h->rects[object_id]->nb_colors <=3D 256) { > + } else if (nb_colors <=3D 256) { > /* 8 bpp, standard encoding */ > dvb_encode_rle =3D dvb_encode_rle8; > } else { > @@ -506,6 +524,20 @@ static int dvbsub_encode(AVCodecContext *avctx, > uint8_t *outbuf, int buf_size, > return q - outbuf; > } > = > +#define OFFSET(x) offsetof(DVBSubtitleContext, x) > +#define SE AV_OPT_FLAG_SUBTITLE_PARAM | AV_OPT_FLAG_ENCODING_PARAM > +static const AVOption options[] =3D { > + {"disable_2bpp", "disable the 2bpp subtitle encoder", > OFFSET(disable_2bpp), AV_OPT_TYPE_BOOL, {.i64 =3D 1}, 0, 1, SE}, > + { NULL }, > +}; > + > +static const AVClass dvbsubenc_class =3D { > + .class_name =3D "DVBSUB subtitle encoder", > + .item_name =3D av_default_item_name, > + .option =3D options, > + .version =3D LIBAVUTIL_VERSION_INT, > +}; > + > const FFCodec ff_dvbsub_encoder =3D { > .p.name =3D "dvbsub", > CODEC_LONG_NAME("DVB subtitles"), > @@ -513,4 +545,5 @@ const FFCodec ff_dvbsub_encoder =3D { > .p.id =3D AV_CODEC_ID_DVB_SUBTITLE, > .priv_data_size =3D sizeof(DVBSubtitleContext), > FF_CODEC_ENCODE_SUB_CB(dvbsub_encode), > + .p.priv_class =3D &dvbsubenc_class, > }; > -- Tested & LGTM Thanks for the patch! _______________________________________________ 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".