From patchwork Tue Feb 21 00:25:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 40460 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp2316497pzk; Mon, 20 Feb 2023 16:25:34 -0800 (PST) X-Google-Smtp-Source: AK7set8Liy7LU8qbCOCecgRhWL5JkRZxPwRUosvnHkBmsNoIvIvRrQC/mWOEq0Y/+k0tt5SasTNf X-Received: by 2002:a17:907:9879:b0:8aa:1f89:122e with SMTP id ko25-20020a170907987900b008aa1f89122emr11560280ejc.39.1676939134789; Mon, 20 Feb 2023 16:25:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676939134; cv=none; d=google.com; s=arc-20160816; b=ttz8m2ZUdkGTpyT8rWnbQBFVWnBBGA0TUIcOSSOigWv7y9yJErTAseDhKFKT0lx4LV yjNSO127EzGGfQjtYrKLyhjFE2F2JNTcBuSUMqS/0e2lN65C4O74qHIOzSBQ/k4TXkQS TCto++LBXBNIdgE1bs9ETKFQBiZzGvubS72+rewGg+K9+1D7p8deVBNKi2LP+NsJETGs 7ZPXfBZXLid2j1ePMNUWhAmu4R/yBH107yn9/LfpMpNEhLBsH2KTs8Oq5kxcCT30XOoH a3FHaZk4wYn9VhcY1hXNla0Oz86wayFI30Oc9RObfIFR/Zrm1/oOar57w15XKP94SWX7 noWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=Nl0A+DCAjN5VPse8BU0sPg36EC36V8OiO9kcD3coadc=; b=m6tvpyzKKodK8Sqo7JLAcDWIHG9fk7BTNEbfE6to+tdVW8mxerPMabOtxOUVR3wdhB 9IZ7ll8nQKK4CPGoLKS73fNZLFFwrJMpDZx7X5pWLSix4R7rPpIbBqsIRVmqZzi7gdvV nSQIgGbFtiv1L8AmhgK1/XmhZTModg61Z3q/qKoczKkOwNg0zJjom175p5QSn1w+AWbX dLJEsDUzgZ7z7VDe+zUhBML8tD5w+gnr4eGNBLtyeWLfRF3fyfupTfxhqnMM8j6HDLr3 KW/k4MBMIiB6eEPFn2biNkD4tNw4cvy8jEjjmzgpxjlgejkt9lszx4/YSRVetgyAHBIZ xsIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=A3iqlx8s; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ka6-20020a170907920600b008b1cd2e7b63si11784632ejb.926.2023.02.20.16.25.34; Mon, 20 Feb 2023 16:25:34 -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=@rcombs.me header.s=google header.b=A3iqlx8s; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3A4D968C0D8; Tue, 21 Feb 2023 02:25:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BE4E868BE76 for ; Tue, 21 Feb 2023 02:25:23 +0200 (EET) Received: by mail-io1-f44.google.com with SMTP id d11so1112991iow.0 for ; Mon, 20 Feb 2023 16:25:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rcombs.me; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=P2z723nKSrmbAbCUok6h+M9FnxxiHPSptZdYvYntND4=; b=A3iqlx8stKXzZ95CJDEel3S67/EPdqTBSURCcpyI5yqQXIE20qbWrS1aUj7dIgWMcs PKr76QiTOY92tsKv6bwP4vr1twgCngc1f0RM+ouxtb5jMu91hrx/bPgzS15bohohV0EU J+/Ii0cfoE+xHosQdVklnE1HPXF/iyQFvlK33J5/ei8S1eE38ZTKexwKw4Ba5BI2XIws wpn+HEvhrYtlD7RSHxymkJb5ETG28ktHUjsEYJSQLYQvTtQVojSQwqBB0bv0865Adwyr n91ULW1QlQsIU3ualPuXBHxD8K5b0ofxBYgLSRAb9fIblB/hZW6i45N/3VBWyOcQqUNr lbSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=P2z723nKSrmbAbCUok6h+M9FnxxiHPSptZdYvYntND4=; b=MUFsHJ0cCzuOZoVcBaSCbQoDPDRSKzVlnPMPbbHgdzqjjxwscIH4PiLlyCh65AllOj Hi7Wl4xKqs0yUzjamwcTV0+Et0jH5VDuSNUilRCMcPoSXu7aZM53eSj7m+rOUrbji7/D 6J+FzWGkt1X97lU/L9DSL2iFnhkNBCH8zePHEfSO8yoDjC+4084xbnz1rrxKUWoMHVX4 F6RTbKQyphE0cYaiMt4PXQ/X6Y0pRTZJipYtwCrVmdBevMqLU/iGstNSuis3HRZAcrah 5kZMaACtylP2Z03Iv4+gG5q3jFbpktxFNydxAkDmXnnvIDBUEx4Zb6KOiQSp7XSMHoCQ Wz1g== X-Gm-Message-State: AO0yUKUIgsHKYzqgf2K0xtJL4EHGx/3AOpHBcQkrwvUM+YzAlMN5HmeG /X6JFBUnKNdy53dAYrKlhHkXu/SqpHBj0/C77A== X-Received: by 2002:a6b:790c:0:b0:743:e124:7b1d with SMTP id i12-20020a6b790c000000b00743e1247b1dmr641068iop.19.1676939121842; Mon, 20 Feb 2023 16:25:21 -0800 (PST) Received: from rcombs-mbp.localdomain ([2601:243:2000:5ac:5002:d39e:8443:5cd2]) by smtp.gmail.com with ESMTPSA id h10-20020a02c4ca000000b003a4419ba0c2sm4404575jaj.139.2023.02.20.16.25.21 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 20 Feb 2023 16:25:21 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Feb 2023 18:25:14 -0600 Message-Id: <20230221002516.25784-1-rcombs@rcombs.me> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] lavc/codec.h: add AV_CODEC_CAP_SINGLE_SUB_RECT 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Csc/gAdqgguB --- doc/APIchanges | 3 +++ libavcodec/codec.h | 5 +++++ libavcodec/version.h | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index bc52a07964..56f33aa25b 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2023-02-20 - xxxxxxxxxx - lavc 59.60.100 - codec.h + Add AV_CODEC_CAP_SINGLE_SUB_RECT. + 2023-01-29 - xxxxxxxxxx - lavc 59.59.100 - avcodec.h Add AV_CODEC_FLAG_COPY_OPAQUE and AV_CODEC_FLAG_FRAME_DURATION. diff --git a/libavcodec/codec.h b/libavcodec/codec.h index 77a1a3f5a2..c0df33ef3c 100644 --- a/libavcodec/codec.h +++ b/libavcodec/codec.h @@ -190,6 +190,11 @@ */ #define AV_CODEC_CAP_ENCODER_RECON_FRAME (1 << 22) +/** + * This encoder requires a single rectangle per AVSubtitle. + */ +#define AV_CODEC_CAP_SINGLE_SUB_RECT (1 << 23) + /** * AVProfile. */ diff --git a/libavcodec/version.h b/libavcodec/version.h index 752adc81f8..2ed4ef5547 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 59 +#define LIBAVCODEC_VERSION_MINOR 60 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ From patchwork Tue Feb 21 00:25:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 40461 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp2316575pzk; Mon, 20 Feb 2023 16:25:44 -0800 (PST) X-Google-Smtp-Source: AK7set+5DLpSHN+rAKQu9OZObL0ElZYLgE/GvKkEE8INsf5zc3IIm+9u1uuSZH8KINnqqum2Fyhh X-Received: by 2002:a05:6402:1504:b0:4ae:f496:1372 with SMTP id f4-20020a056402150400b004aef4961372mr2355364edw.36.1676939144056; Mon, 20 Feb 2023 16:25:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676939144; cv=none; d=google.com; s=arc-20160816; b=J2UcXM0U/qHHHBv8UNgAQa1XDuyc6ldg6xeHIKledwwnopVQ654MTx2EL9tnpyalUj YgVCDa+gsRDu6k9FWtIDBu0HT2B/4YNyhDCuKOHXKgTEAzsKfwSeSiMLNElSz3/VyO2i Xd/fnMAl2Go1u+j6monxq7WQQAaYXnxm9ZRSXTn6f3lMuoKwCca9cK0Tlj7EAeVzNqpy QJzwKuFvJRTEiviAKvfK8i2t4gfQe+qEZl8TPpADrHsuk8XA2QKWTh3XYbH7klb+l0Zs 3lgI0YrkA1xbEvFvZ26qYxTZSefbYPnCBai4picCIAVznWOx2gJAH5I2nkbbTx/xq+sq 7IqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=/jncquqwHHOGzfs8m51Im+QeJf8s2O2JejnKK6RstGU=; b=Sf7ZSM4+criKwQg7DWmEw+ZAl5I0LlEVPF0KM74qn2ASLmMcioGg+Nm26PCeDZOkLx QxU+SExn7d5rsYe0Kcft2IR0f6DvInyovoRy45oW3z2tEkcCoIO69DZP0hL+h+QQJOyF GWX9gvsrAw0Dcv8Ay+SkS4JAL+56ZeQLqFWkvo4Ss7hrBeAChoYyYNfUfyd3Ckb3YpZm mobHmIaAXYHS85FJH0ZYYN+2GYPeYy8hLLAVuLbQxW2PfSTqH5KfJwHdPr9H4O0E7i1R BRhKPTeEUM34ODDyHyLQKNaewEtNk/pGzLlWSyo+glL6Yyg9RMirlz3qx3Si4jEQcxBR N03g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=rPKRfh1W; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o9-20020aa7c509000000b004af50024631si1134292edq.433.2023.02.20.16.25.43; Mon, 20 Feb 2023 16:25:44 -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=@rcombs.me header.s=google header.b=rPKRfh1W; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 36A6C68C0DC; Tue, 21 Feb 2023 02:25:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1F74668BE76 for ; Tue, 21 Feb 2023 02:25:24 +0200 (EET) Received: by mail-il1-f177.google.com with SMTP id z3so1121988ilm.0 for ; Mon, 20 Feb 2023 16:25:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rcombs.me; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=lqhMFrgkZi2cRineN8KRN6NP353cCGMr4OOaq1Q55WA=; b=rPKRfh1WjxImgyiQJn/Dcl8xdassA6e/7ekqEoYdKdXPRuKHzdlzCEoKqldHK0TQw3 ksZJG2tLTTD7dJ4k8ACrAAOMEho5Ty8jWadT9+PNnUmrCCwyNcX1gw1uMKMWBdTvjJE0 kHYlE2dSQ0Dfni6uDORY8lCxsxIToprpzLIgJmVN+U1LnpILcZqfH1g7k/wx3CzLPaP6 jwo0RoeCLraL5KojTg5vMZ/+zvthwDFClH8+gIZ9c8hdMJMOhOSo4X/MxG5GksNll5nG qy0LeGrDJOZp7XvwLXc/nHZv5WKDLuLQZZb0p+K9iOS6NK3ZYKl5iwnXRF8bDq+ZUS1J RULQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lqhMFrgkZi2cRineN8KRN6NP353cCGMr4OOaq1Q55WA=; b=ze0WdNODnrxVDwyY8Eqi8m2ylCjJtO3ncLnbTMNer+xteRhSiC/xuqnfeI+zqWCJdY mI7DQHVQyiLU8Fi4IfF7y6xlQ7vRgMLIsfX2n0AJ7srWAl/8lABGuHmKo6mKsjdGCuhm 5swTA4FKAhwNUukt7h9wXfMd8MfE3obFtX1kMxp8fEtuAf1nRyj/k+AS+Ld0MKetQy92 B1g5KoxuRRVoisYv+qx8p+Tn8wy08na1Aelij1IxzThAlW6DCRAoGu5dZsA3HYt0Lznb 5vSa9vN4iBhGnWSwnuzp0HZhIansvVM0GoLRPAsmXLlG+id2Jfq0N8YDQyU8KYOo/tmG VnIw== X-Gm-Message-State: AO0yUKUsOhyghOm9ck/9Pj73Qp/a77Y09N77EWcOTeOhpD0juel6UPYB ypQKRetNFU1mZTMkDWbNTaM1etgk3hmqFr919g== X-Received: by 2002:a92:7a06:0:b0:315:8bc0:1d85 with SMTP id v6-20020a927a06000000b003158bc01d85mr2736641ilc.11.1676939122474; Mon, 20 Feb 2023 16:25:22 -0800 (PST) Received: from rcombs-mbp.localdomain ([2601:243:2000:5ac:5002:d39e:8443:5cd2]) by smtp.gmail.com with ESMTPSA id h10-20020a02c4ca000000b003a4419ba0c2sm4404575jaj.139.2023.02.20.16.25.22 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 20 Feb 2023 16:25:22 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Feb 2023 18:25:15 -0600 Message-Id: <20230221002516.25784-2-rcombs@rcombs.me> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230221002516.25784-1-rcombs@rcombs.me> References: <20230221002516.25784-1-rcombs@rcombs.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] lavc/assenc: set AV_CODEC_CAP_SINGLE_SUB_RECT 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GYe9mpobtfS7 This already gave garbled output when multiple rects were present, so this is simply documenting an existing requirement. --- libavcodec/assenc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/assenc.c b/libavcodec/assenc.c index db6fd25dd7..1c49a6685b 100644 --- a/libavcodec/assenc.c +++ b/libavcodec/assenc.c @@ -74,6 +74,7 @@ const FFCodec ff_ssa_encoder = { CODEC_LONG_NAME("ASS (Advanced SubStation Alpha) subtitle"), .p.type = AVMEDIA_TYPE_SUBTITLE, .p.id = AV_CODEC_ID_ASS, + .p.capabilities = AV_CODEC_CAP_SINGLE_SUB_RECT, .init = ass_encode_init, FF_CODEC_ENCODE_SUB_CB(ass_encode_frame), }; @@ -85,6 +86,7 @@ const FFCodec ff_ass_encoder = { CODEC_LONG_NAME("ASS (Advanced SubStation Alpha) subtitle"), .p.type = AVMEDIA_TYPE_SUBTITLE, .p.id = AV_CODEC_ID_ASS, + .p.capabilities = AV_CODEC_CAP_SINGLE_SUB_RECT, .init = ass_encode_init, FF_CODEC_ENCODE_SUB_CB(ass_encode_frame), }; From patchwork Tue Feb 21 00:25:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 40462 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp2316632pzk; Mon, 20 Feb 2023 16:25:53 -0800 (PST) X-Google-Smtp-Source: AK7set/hQrlwnFoO4v7CnooedsEYLsk7Jpww87Gy74G07zFdhn8CaFiKto7PmS5pGwX3AMTAiNRX X-Received: by 2002:a17:906:fb14:b0:8d4:1e81:f87e with SMTP id lz20-20020a170906fb1400b008d41e81f87emr3776129ejb.57.1676939152935; Mon, 20 Feb 2023 16:25:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676939152; cv=none; d=google.com; s=arc-20160816; b=MfdPBMtopvEHbMiY4kg9zid1XRX8UFpfQjwwBY8+ayXW0DJT9eVcxh83hZfafWDYKE QwVB0ZcZ9Z21Yl+l7YAGjlMWi4Jfl7rV2M5IoD1LG2UHxciTG12MScV0yiK/GvtYOX4Z xuMgnVTPa9kT1ryrPbiOgzd5R3Ke9ZA6r6aHZJM1VyJjsUc28lMB9IKUmfq8GA8+DLpH XSwL1gDzheKPDgsacHzB+ssvWbDxnTeWR+UmAoMs4NPSoCl/s+orhwPaoRpefK0oeK5O xAilwxDzvGMXrCUFW4nAcrdsjxkLcvkJ2z7NbhI2BNtpGV4Jgj0POeftElNJnNTKxcFy nRTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=bfxQayEJCRkleDwsUQDr2VVx3rp4BDXICC8zxkHHWmU=; b=mj/wEbaobMX1HWK+2uoWaaHlEUvXiGITyZQDC9dgE5VRqHVv/MagVjuEO8WnvjtMSV nuJF2rSTSpHbOofLQrovzqzeswJZOZQri75ED4qe8XeckXNhTq+mWX6ksKpOHWG68ogP VrRQiZATZn2GaZNQroMgF4PQMPF5VzljhS+hKR2+5ALw6T2wbynQqrodpoHlK8wkay0H jbfaQnWswZJf7UIxT0Mw9icqiTJuOqEAKXwN0GY8FHRzuSGeGDOiHcuWHKlqI+QtOJuQ r9N7UIpyPjDU1kUhJVEyfsMY/pHmVz/JLBpqOAsTuRoVmgJ8Y0yAxYCbi0Mh44W/RuwL olWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=C3J6acmr; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f12-20020a056402160c00b004ace74aa18esi17269139edv.402.2023.02.20.16.25.52; Mon, 20 Feb 2023 16:25:52 -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=@rcombs.me header.s=google header.b=C3J6acmr; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 34C5A68C0E1; Tue, 21 Feb 2023 02:25:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-il1-f175.google.com (mail-il1-f175.google.com [209.85.166.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C753868C0D5 for ; Tue, 21 Feb 2023 02:25:24 +0200 (EET) Received: by mail-il1-f175.google.com with SMTP id e10so1054424ilu.4 for ; Mon, 20 Feb 2023 16:25:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rcombs.me; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=rwwb6twgE7rfXU4R/qFk20LHhNt3ye21nzj0bsskT3w=; b=C3J6acmrnU6uJP8N8bzLoI02IWPIsSJnSNr8JUPG1vgwTJkxUQFiBE+RrkckPBBS0d noJ4RgL49zcRcSTrlElWjZIh3+IUxEcJEnyOmp0dh7XGvd0BpqDK/d6kQrbUeoVN8XJb 6qm/HsUPHrwvBQv5rIIhm0DVpwbBJHqFsum0MJbGa0VTuUjAs6Q5/PaE4DTmE19L7YOT A4DI/KSopsS18QWqO5KBFjGZHS+73bQztkW60B1+5EpkEmF+id1tDt+GV70LyTbqs4Zt 4Z8QH0Bef1B0D1SvQgWJpzqNbgqH03O/qqj3/QeTzCi29MlqzHAKjVhqouppNwMIO8+o SWYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rwwb6twgE7rfXU4R/qFk20LHhNt3ye21nzj0bsskT3w=; b=iiJRyz7MrJAMGC32lxu2Tlh9Zcia4lrpv/Bc7br7U1GUObTD8gxh8Obc/d90CZIqS5 eKb25AxUxULWpm7xtlxKRA/HLcScOD8R/aMEa+CUXmdQUynCd8IUCuAAtT0l3NMmLUc4 31mv3jJy8mrL8twNE0gSwp5P3dJkZ7Zmt6i/f1UkI8Szb16HLY/b21eyTe4mVB07CQXL 0vlLGMl/8HZbMbRIT3BdCfKcme/ixDUEXF2C9u5pfnRfSLrnYffs1y1NoLm9sR5wK77x 7o7HPfSko2GPdmwZTbN7pc3ey4enzOFH8A1gDbuuI98SCgNPK69ODOlZyyoahNqipuAQ ad8g== X-Gm-Message-State: AO0yUKUSKuBhLx+j6ooYpqbgBlVR3HnDZ/35+JXVJJn240Jrtzdy0iEK PBuXmLjWgLGLvlAxnDANvKOhpio4mGNl1vnV8A== X-Received: by 2002:a92:7d13:0:b0:315:413d:c19e with SMTP id y19-20020a927d13000000b00315413dc19emr2935293ilc.16.1676939123159; Mon, 20 Feb 2023 16:25:23 -0800 (PST) Received: from rcombs-mbp.localdomain ([2601:243:2000:5ac:5002:d39e:8443:5cd2]) by smtp.gmail.com with ESMTPSA id h10-20020a02c4ca000000b003a4419ba0c2sm4404575jaj.139.2023.02.20.16.25.22 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 20 Feb 2023 16:25:22 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 Feb 2023 18:25:16 -0600 Message-Id: <20230221002516.25784-3-rcombs@rcombs.me> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230221002516.25784-1-rcombs@rcombs.me> References: <20230221002516.25784-1-rcombs@rcombs.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] ffmpeg: respect AV_CODEC_CAP_SINGLE_SUB_RECT 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: EAlDzsqUtp8p Fixes ASS output when multiple rects are present. --- fftools/ffmpeg.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 9884e0c6c6..23eac52438 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1021,6 +1021,7 @@ static void do_subtitle_out(OutputFile *of, AVCodecContext *enc; AVPacket *pkt = ost->pkt; int64_t pts; + int single_rect; if (sub->pts == AV_NOPTS_VALUE) { av_log(ost, AV_LOG_ERROR, "Subtitle packets must have a pts\n"); @@ -1031,11 +1032,15 @@ static void do_subtitle_out(OutputFile *of, enc = ost->enc_ctx; + single_rect = !!(enc->codec->capabilities & AV_CODEC_CAP_SINGLE_SUB_RECT); + /* Note: DVB subtitle need one packet to draw them and one other packet to clear them */ /* XXX: signal it in the codec context ? */ if (enc->codec_id == AV_CODEC_ID_DVB_SUBTITLE) nb = 2; + else if (single_rect) + nb = FFMAX(sub->num_rects, 1); else nb = 1; @@ -1044,7 +1049,7 @@ static void do_subtitle_out(OutputFile *of, if (output_files[ost->file_index]->start_time != AV_NOPTS_VALUE) pts -= output_files[ost->file_index]->start_time; for (i = 0; i < nb; i++) { - unsigned save_num_rects = sub->num_rects; + AVSubtitle local_sub = *sub; if (!check_recording_time(ost, pts, AV_TIME_BASE_Q)) return; @@ -1053,19 +1058,22 @@ static void do_subtitle_out(OutputFile *of, if (ret < 0) report_and_exit(AVERROR(ENOMEM)); - sub->pts = pts; + local_sub.pts = pts; // start_display_time is required to be 0 - sub->pts += av_rescale_q(sub->start_display_time, (AVRational){ 1, 1000 }, AV_TIME_BASE_Q); - sub->end_display_time -= sub->start_display_time; - sub->start_display_time = 0; - if (i == 1) - sub->num_rects = 0; + local_sub.pts += av_rescale_q(sub->start_display_time, (AVRational){ 1, 1000 }, AV_TIME_BASE_Q); + local_sub.end_display_time -= sub->start_display_time; + local_sub.start_display_time = 0; + + if (enc->codec_id == AV_CODEC_ID_DVB_SUBTITLE && i == 1) + local_sub.num_rects = 0; + else if (single_rect && sub->num_rects > 0) { + local_sub.num_rects = 1; + local_sub.rects += i; + } ost->frames_encoded++; - subtitle_out_size = avcodec_encode_subtitle(enc, pkt->data, pkt->size, sub); - if (i == 1) - sub->num_rects = save_num_rects; + subtitle_out_size = avcodec_encode_subtitle(enc, pkt->data, pkt->size, &local_sub); if (subtitle_out_size < 0) { av_log(ost, AV_LOG_FATAL, "Subtitle encoding failed\n"); exit_program(1);