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 47E8C4461A for ; Mon, 19 Sep 2022 20:53:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 34FE368BAC6; Mon, 19 Sep 2022 23:53:13 +0300 (EEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2067.outbound.protection.outlook.com [40.92.58.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D2DF68B9A8 for ; Mon, 19 Sep 2022 23:53:06 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ia0B11f6FJmUGDLRoflIXJ2U39Xw9FMBhdidCWcgoLrtMoTP+sZOdhT5oAx6CeCaYufoUyUJmwD1sRDxw4W7+cEDpi6PGANCoVmxrJKVH1VQaX0+bQ/XJ3A4zorjzuvo422SG4mzwH/BnbiccaLtqgy+EuFSABdwoylQ8SZzpLTQR5sQaeCRGJr4qfEyF7Jb8omFA65x4T+bxgp+dGSZY2k0Tm2chRX5sZDzwkEIb7Hr+D7LA65Unu0CUK3dfYXxsN3N9tYzXnJFyVA2NSFQfT7I+4ZlzDzeEBhscHfICovea0TuwEWaArdqq8JCUOTpDO3T28QnFj2mE0ab772DnA== 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=7KLeJb6yitbRoitY2lMIfd8/7LWJilVjeGf+eO9WrXw=; b=QfcGtCk0dhGnsb1d0TnI5WUXhtsUHrUaOcQAOCqxBoreT3JbOcY+K6QhrKia4PVPU5ZS0YCL88bPF0z3TgqMaPZ373g7p2uK4+9uKKkPlnSHZb1beUYBpNu8BijgWkksgmbuQXaNDGodppk5WWzEvYNdi3SqrBD1pks7xnRCj/Gpi1mR7BDxq3ZAEIMJjLqI3I5zwlQBXncgtvQZdll2w4ky37pWg+1l9NE5htSDrpjx1d8l0Hti2BbNBSZX9TmSwd6X+sylevlCj5h5DQ0LJEWREXRtb1/SSO5XXQ0FioQQ7UfWLs7006kF88fcWouDfXOJXDplwmfA88hdWZjU0g== 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=7KLeJb6yitbRoitY2lMIfd8/7LWJilVjeGf+eO9WrXw=; b=dEocPzj+jnmfHMlBb0g9yEvRzeOpoGvqHs1FNZXMDiN08pQYTCTB2R+Rc4udiLR4HM6Q9/PyzX/W77eCqPxKtQ9rbBekvbl4TIXykdqL27EcBRGbZ5iCJsa0Y4IYMFSDVwsiBqhwkws5C9TkzT6ILOErL5314+2sN4WxFqIb1hAQI6N9M5KivPuEl3z/goRseF+kWlzzey24pLDvCWo21AebUnbB2/Baa/j0eG+K8y/5CM0mLYxOR8F0oXdxbeiw3ArvG91A0NactUNDiEa8jgUIlxQkHYL8vzz9wElKAGW/hh48OXZ++A9tIPpLWcoQUiM/i1N4yHEqlZurkRuHOQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AM8P250MB0277.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:328::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10; Mon, 19 Sep 2022 20:53:04 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785%8]) with mapi id 15.20.5632.019; Mon, 19 Sep 2022 20:53:04 +0000 Message-ID: Date: Mon, 19 Sep 2022 22:53:05 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220919175534.102124-1-scott.the.elm@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20220919175534.102124-1-scott.the.elm@gmail.com> X-TMN: [/J/+sNM4Lj938meIkzqA6yiB2fOfCvR0KbuVBhV+xWk=] X-ClientProxiedBy: ZR0P278CA0089.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::22) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <2f9bfe32-2037-e858-d094-0d338fb97275@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AM8P250MB0277:EE_ X-MS-Office365-Filtering-Correlation-Id: 1697073b-16dc-48c7-dc83-08da9a80f290 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K3fPdWSt8gtuHasl7ydJ54jfhbr7UBrXbiWWJ/wavZhZnjePAGsq6AlwMdyBxr7qqk75n2aryRcnDSrkb2eFiEFnD/USOnPdXqFAEyjCdCN9I8AqYFcM7Kg2sOTIgCze0JZhc6DLueF60HWuh7d2AFvsQ/COOkHV4sp3TRSSwospK+QXhP6uK+3NTxuz5l24D4Jkio37aHfzsb9l6M/628DdIleAKXzaPaRPkJFexhlGcHgQOJtPDpF4Qcx2K0nUIDKrSBa+73USD0Vn5Zx+5G9+aPTCTxygVe5giL/DoGXTnAiNdlLOL93b/eHohnusmDJKxdf9k+MwvE8XJTUg/CHwzScRpWgOzwXuceNZ1TNnT0iopkcuVYy31CEtJ9HiuTMTY7DhdDKkM9BrRO0kb5fKvc3GQfEGkX42VgnbDW0vKTN90o4yRTVQhjUyA1xrYQRSaNEHf/ZwlmIIMIfVDnI6UlJKTdsPp61jRA2hsrAGPOu1D7fk2FrSyteQlQxhdxYkMHhbLW3WSdWhSo+HO4g3Pd1Y0T+aAvOSvRuPdodeFkkH8hHYeAlH/4qJJKe12EI5rLA2EFARRo8xv1YvDyJCxq17mZFEWux5YA8Md1n2ZEzGNT+69K53GtP84n3qg6Y7WXXd+DDQ94AJAwmydEY1kpObAVPQcMAihKybH8UPG9wnC5TDeq+L2YC2/oOYrmbI6D3pWZe6L2nJeLeVtQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N3FaYTQwekFtV0k0azFFR09abW9zMytoK0RCVWpMQ1JPcklNTytVeGNnR0tC?= =?utf-8?B?M21MdjhiRFdpTHEyQlZDcDg4NnNvQmZoV3JNcmR6VVlFT2llSUZ1K3VGYk5X?= =?utf-8?B?WnF2bzN4emVENDdxTmdFVURpWXZ4Q1ZLbzdEaXZsQ3doK0JkRXBMSGxLM0RF?= =?utf-8?B?aVR3UGgwYW82eTNOTForUURNL01STzJzdElSUG9nUXJKL08xUmk4QlFrL2Qw?= =?utf-8?B?ZVlRWUpCdm5JWU9xM2x2NDFJMUxSWFRFK2tqa244WjJwSFNxQUp2Nm1mbU1J?= =?utf-8?B?RFlIT1YyWXZ3Zk1LQllVd1liSzJ4SDd5dTBzTkpkYWUyYWxia0RSQnRxOUE3?= =?utf-8?B?NWhGV25RTHJ4T1BOdllnSnVEc0ErSmdVVEVHOVd4WnQ4b0JJdC9WekVsbHho?= =?utf-8?B?a1RYZHpnL2NzRVJYYndHcEM0OFpkbXJGNFlwNE5hL0N2amQ3ckZpRitxNVgr?= =?utf-8?B?dXN3emI1ejZYOXRkT0xSeGxzTXhZN1BndWRTOGF4VHdNbE10RkZXRitsT2sz?= =?utf-8?B?Y3VWcEYrY3ZCY0pSK2FRSzFlVXR5bW9ORjZlMFJHVHNGUm1PMDdaY1AySzls?= =?utf-8?B?TmlBMFVaK3VZa2MrK2cvdDNRWEhSY2hyVDNhcDFaRjlIYTFDMWlJUnRWeCs5?= =?utf-8?B?bFpyb1F5bVdRalprZnJRY1E5TGp0bnlTeHBCSm1XeUs4K1J2T3R1S0hqajFx?= =?utf-8?B?Z2pxN3hDaUI0TVBuWElBZFAzT21iSzNTbXpGVThWbHlHV01UcVIxUG80bFhv?= =?utf-8?B?a0NkaC83MHdSMGhMN2hTL2EvOTc2bG5LKzhXTUk4UjBEUFVNSlZ1Q1NSS1Jj?= =?utf-8?B?Q0Y1Tjl6d3hacVh5ODQvT25uUjI3TnUvYTU4SFZ0Tk0wNDZDMHFyTE83Q3Mw?= =?utf-8?B?b01tUjZWOVNaK04vc2NFYXlrTHNnY2dWeHgzNktFNTIvSHYySGI1K1V5V1Iz?= =?utf-8?B?RzMxRXRuaklMZGRaOFc3NnhOMXVvUFF0QU5wNVR2TVF3Q3Vha283U0VnVDY0?= =?utf-8?B?dVdldlRpRmNqMytxRnVxcGcvYld3bXpXNU5RckZLY2xVMmF0WTM1SUl3c1JV?= =?utf-8?B?V0g4WHV1cmp5ejBhT3BCOVIyWkNKN0xBdTNjUy9EOHNvVklGbEpyb2F1ZS9l?= =?utf-8?B?cm00K2lGK0pNZjdnekt3L1dTdXBWMTRuUGQyOEt2WDlONFFSZ3Q3dHlaQnh6?= =?utf-8?B?U1gyOVY1RElNK0VuU1ZDaFdlVWtmbGYvOTJjVFRTZzJ1ZHRDS0Y3MkRlU0Rs?= =?utf-8?B?Q21TRnlObG9WWlB2WlVBakFSVmMzemE5STBreS85eVIwSkdsU1M3S3hsWTFQ?= =?utf-8?B?Q21ndXhYTzA3Y29sY3JDT0R2WlhjUFVabnZveU8zZHd5SzlWdzBkbWFXdWYw?= =?utf-8?B?OFdQdjMxUlBaUVNWVUE4QXA1MVVWN3kxMTlldzN6eFA3b2RINUFUZjg0OTBT?= =?utf-8?B?WVhWUFNSajVBUHY2Z284WkkwMWprdmZHejlIbmF2cVBBTXp1ZEZabFo4RVNB?= =?utf-8?B?ZERMUUJZYUgzMmh6T200N0N2ZHVmK2RJanovMnA0M3F3Njlad0dFZzRGNUpj?= =?utf-8?B?eWJ0L05EUHlBNVFPaDB4L2ljbGFYbjV1c0c3WTRnbTI1Yng5WmZKUzlqNFBm?= =?utf-8?B?UElZc2Rxam41OW11RldaZjk4Zk43c3VKYXRGcnNNb3RhOVpuVUErK2w4Sy91?= =?utf-8?B?dUdiTDFEMGNmdEpEWHlkM3l5ZHk0NTF1YldYNVUyc3F6MWQ0TWhJL3FWcFBU?= =?utf-8?Q?dv6Dpgspykd/rvboKe+dga5LKiD4gmWYY1tya6f?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1697073b-16dc-48c7-dc83-08da9a80f290 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2022 20:53:04.4463 (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: AM8P250MB0277 Subject: Re: [FFmpeg-devel] [PATCH] lavc: add detection of forced subtitles 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: Scott Theisen: > This is from the following MythTV commits: > libavcodec: add support for detecting forced subtitle segments. https://github.com/MythTV/mythtv/commit/5099f1a5777966fba482b623e581c1eef5c8fc09 > This adds forced subtitle segment detection to the PGS subtitle decoder and > copies the result to AVSubtitle. > > Subtitles: Flag forced DVD subtitles. https://github.com/MythTV/mythtv/commit/78f71eecdbd53ba92af2ad639b32564c01f24563 > --- > libavcodec/avcodec.h | 1 + > libavcodec/dvdsubdec.c | 4 +++- > libavcodec/pgssubdec.c | 4 ++++ > 3 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > index 7db5d1b1c5..b9aa9efb2f 100644 > --- a/libavcodec/avcodec.h > +++ b/libavcodec/avcodec.h > @@ -2331,6 +2331,7 @@ typedef struct AVSubtitle { > unsigned num_rects; > AVSubtitleRect **rects; > int64_t pts; ///< Same as packet pts, in AV_TIME_BASE > + int forced; sizeof(AVSubtitle) is part of the public ABI, no additions to it are possible. I wanted to suggest using AVSubtitleRect.flags, but apparently AV_SUBTITLE_FLAG_FORCED already exists. And it seems that both the dvdsub as well as the pgssub decoders already set this. > } AVSubtitle; > > /** > diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c > index a5da0d7b08..1504706d52 100644 > --- a/libavcodec/dvdsubdec.c > +++ b/libavcodec/dvdsubdec.c > @@ -418,8 +418,10 @@ static int decode_dvd_subtitles(DVDSubContext *ctx, AVSubtitle *sub_header, > break; > cmd_pos = next_cmd_pos; > } > - if (sub_header->num_rects > 0) > + if (sub_header->num_rects > 0) { > + sub_header->forced = is_menu; > return is_menu; > + } > fail: > reset_rects(sub_header); > return -1; > diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c > index 5f76f12615..7c953263bb 100644 > --- a/libavcodec/pgssubdec.c > +++ b/libavcodec/pgssubdec.c > @@ -62,6 +62,7 @@ typedef struct PGSSubPresentation { > int id_number; > int palette_id; > int object_count; > + int object_forced; > PGSSubObjectRef objects[MAX_OBJECT_REFS]; > int64_t pts; > } PGSSubPresentation; > @@ -466,6 +467,8 @@ static int parse_presentation_segment(AVCodecContext *avctx, > object->crop_h = bytestream_get_be16(&buf); > } > > + ctx->presentation.object_forced = (ctx->presentation.objects[i].composition_flag & 0x40) >> 6; > + > ff_dlog(avctx, "Subtitle Placement x=%d, y=%d\n", > object->x, object->y); > > @@ -505,6 +508,7 @@ static int display_end_segment(AVCodecContext *avctx, AVSubtitle *sub, > memset(sub, 0, sizeof(*sub)); > sub->pts = pts; > ctx->presentation.pts = AV_NOPTS_VALUE; > + sub->forced = ctx->presentation.object_forced; > sub->start_display_time = 0; > // There is no explicit end time for PGS subtitles. The end time > // is defined by the start of the next sub which may contain no _______________________________________________ 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".