From patchwork Mon Feb 12 02:01:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Oneric X-Patchwork-Id: 46217 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9002:b0:19e:cdac:8cce with SMTP id d2csp436264pzc; Sun, 11 Feb 2024 18:02:40 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUpf9EYxmOSMnvIq8rmG8tMy4rc84UlHodZDNlr1k8keaXl8hnYUnO35RtvrLORhHBqlwqRJweHF6iDKoGDc8ctSsWCyagVJhD1mw== X-Google-Smtp-Source: AGHT+IGVfm23ksRXnXJ3s13SBT0DQI1P2Zq60JTJI3dPPIFEyvwG2MzHHnBhJT9mUK2zvoGU/Kfe X-Received: by 2002:a17:906:bf47:b0:a38:54ab:992b with SMTP id ps7-20020a170906bf4700b00a3854ab992bmr4295051ejb.3.1707703359895; Sun, 11 Feb 2024 18:02:39 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVRGmrzxKhjKYYKLQ+I5cugjE9Nd4qe23A5YSfaP6b8xfM/bZbLEbaBVCZPNc5Y/t2q3/t5qAimJa2l7p3vczsIR/FtVqF05uGZtpPq3goWpPkeKKSAludcZe1zkYeTpI6hov/JvFj91VBcydstnANPNHIDAniwB9WjkREi7cMUW1znc7218fOB1v7509fj4udeCzBLL7up5fbhXSwRCSKxot+FPjkxC0axwccAnelUYs+NwNyjUrMhfhQnzWhFWFkQ64njsIuUTF79H59/qVCLdA2R90nZV8j+Nm+CB7nMRBMazG/0nUtGt36fQcSNBfo955WPQE65RUH8CVibK1KL4eBR4Wwl71HlCauMUyOkCYIOquNgl1vMQzpDKZNpAVVafEW2c5hA6vzVXs1aSalsKrvWuA+j5+4azr+FpJyy+42kmCghbPOpMiBpQjExLpHbpyb8rGLWV04mRV/6c1ChWWSYIi7mMtZBkYN57W+nfCr4mZZ94A8WtRKCJsKbViEelJ6hQkFyAEiA/SqaA07Y2mOis9qYbJ0jQgZzWPKXujTx5GLJgPpvivp2eFP18/HU5ZWAe0uNTgmcsavliPGDGFNn8TKLcS4Hdu75MRZC6wAWXPnKNfvr1dESXzhgOfzJkVs8ejMTNv+T92wDnu4okDNd98Yjs2Fn79RJTphNLz0956kLJ4MFNH6fl8GrvtGe/rHCbCdhZlVkuGFzIwM0Yn5WIs7mrvHFCajtRXxrxqK8+qnDDg79nyhRzuPEnnUufqcCTrUs8/i/TZxRqeR5MuTzVWCPWn0TffXDouI/aQvU3rP0K1DoZ6PfRFJrdp3zK3Drwf3/hSj6yLvq9K2sNJns/qkFsIFxreRDLPymMelsN56EzqiNbtDeha++69BNbTBGskel67SX9TZBfYZjVdx52soFZ8ffjODLrz9kaAwhh0zx7K5Sgh6dGHsRMNXnKm JF41yj9NlnuSGnkxCpKlic/VGeH1wXakk1MVhxhWUg1dQCUTJq2WUVr11bFvn0zi4wE73EH2QuZGdZBz5XUekyyTi7i2uAGmkGGnipbypYYkON7oP6LRGQ8aqpHCKpXCglYgKr6EduVMNs/s6LvwUYY/4dPkS8fcE/IQfqJ9+QZXqPi2Bqdr/oaC/wp3nPvl9YwDrqUFjQ/iZDMYkHscbI+0xJlL9wa/ccH5BkF6Ai5P38p97eLEsrA2RLXnNv97dqszJD+xoP9UIQA5aFZ7kHYUoYgNpPUbrZwMmNHElRshmF2fEwh4qVMWw1apIdxBMOkJIv7i3p8uJQD0aQM1bMJFrzYdF+XJqlRLJX0t7VZNQV7uq0SwA2qNzta5Fn43phLP1KLm0+1/uf/AkhNenSmvdJ4IC4fASIBCgKz/7RDr1sBUvajZ9gbQlyr5WrfEv1V0SXYPi8POtuQoFAsT6Inb45UiglWF6raxm4Y3wOG7928NSiAUPt7GM0gT5szirjmnCV0yPif+YcusdOqYjWd4IRyx19Gn5an95QVu9h0F7hnE8rbzBw+iTZaViY/rpoI9ZVUFplxy0fbluGMSNdGUcN1uptjg== Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hz6-20020a1709072ce600b00a3be8889f52si3467770ejc.274.2024.02.11.18.02.39; Sun, 11 Feb 2024 18:02:39 -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=@oneric.de header.s=strato-dkim-0002 header.b=X8o+QUPM; dkim=neutral (no key) header.i=@oneric.de header.s=strato-dkim-0003 header.b=9EWOTvsH; arc=fail (body hash mismatch); 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0265E68D145; Mon, 12 Feb 2024 04:02:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mo4-p00-ob.smtp.rzone.de (unknown [85.215.255.22]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8B0B168D089 for ; Mon, 12 Feb 2024 04:02:18 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; t=1707703337; cv=none; d=strato.com; s=strato-dkim-0002; b=Gwwigqsl8fawD69o50erXxJuGs62TXq/vuIhg1MLQMfujsKhrBYDEtxKUguWQejrTS QFByixDwSlGc/d/9wEv1d/bFdLrIfdxW7ysndMxW2AwIE8XJvYNhukm2CjbWofMeD2CU wydCOhbSOIPKkO+Y49gI0PbkCm0FVEY+QGjamwhuEsneB8KbMEQ2Z/K/8n0b5whb29JA f34zfqV7xCWxatg8OH3e6aL3AHrSPLrhu42IDXkO81r9mJq6B2WvyrfvgEBtF74UcKKS FDW1Eype4iy7YnC19rksGYq48t9GzVhCLUiPXBj8tZlN1E4Tv1MHiV72ZKlbSmDbKRI9 iYkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=SATYHbMwLqmo4j4F6LNPK4Wl2bcck3lrz72ZPz+DLzw=; b=eiFQk7F9vLQIe4VT172ZaQf9575VIY55h1IjPKKRxh1yxGQ+wRcUeaqNPmxL/WEi35 Z/xp3lcy7QhXOnqWjfjpbfeuRREPrLEBoyHUzMFQjVqRpkI/GEs0OjSoVJXJv4XaZXFv AwuWMs3HV28sHrA5EZUn+SGbW7qYeeCiq65E+l1ndVeE2sVDWfIi6NMrkI/GsLxa2kX6 7EdopJjqIVPVTre02tu79LUxpdFr+xVkv4mrkwYET8DiasekWFVDKgVAQ9qpwvwMHtgB 9H/1HlPQH5/lU7825nUBb2vKirmD0XJL/cTGCgaY3hcR+ZeXiNHfYRCUD0zwz40G4oPM /0aw== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=SATYHbMwLqmo4j4F6LNPK4Wl2bcck3lrz72ZPz+DLzw=; b=X8o+QUPMsKLBgzCtAIrTw0/SoPwZrgtwqS0E+6NJxJojeD/YBdlPTXyuENchJFQLn/ XQa/7T4NFimEwHgKT3xrUC76WsLS10JLqkk6G0C6QjgbwffTzDzorXi3KrCYhB7DDcaQ ncAteTc/2s3q9MG8FpeqSG4uXY3VDo0VHNqsX/s9HX1Ue4WD0Lbs5pClza0+2R0BGWC8 9fOldoGD15uxlqOYIRGlibOyg3D38hzPWIxP3VuSW53fZbNZ19nxFMe5EReGj4iNFClc okDbQ3vPeyDv3ZJqHn1E+t14ZbBNTrTG858PnsNjZVtUChTX5hSEPYmCz9TTIWpVECAa zB4A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0003; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=SATYHbMwLqmo4j4F6LNPK4Wl2bcck3lrz72ZPz+DLzw=; b=9EWOTvsHv5fX+miH3ljZcajM8FBsxRlpKdd2uKJXP9/b+3EqDMkCAnTFeb55dLNf4b GDJNMFXy+54lBZiP9JBA== X-RZG-AUTH: ":I2IBZ0mrW/AWQXwgB4oxKM1YsW1lFUznrLvi/XReWqAAlWwZ8wlvfXmGs4jUQ0oz8ZbhHexs8fhgUyJVddUhvSMyyTdkfRqedioxw5M6" Received: from abhoth.workgroup by smtp.strato.de (RZmta 49.11.2 AUTH) with ESMTPSA id x7ec2e01C22HBx2 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate) for ; Mon, 12 Feb 2024 03:02:17 +0100 (CET) From: Oneric To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Feb 2024 03:01:56 +0100 Message-Id: <20240212020159.6806-2-oneric@oneric.de> In-Reply-To: <20240212020159.6806-1-oneric@oneric.de> References: <20240212020159.6806-1-oneric@oneric.de> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/4] avcodec/webvttdec: honour bidi marks 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: ifwmyA8zr/Ra --- libavcodec/webvttdec.c | 2 +- tests/ref/fate/sub-webvtt2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/webvttdec.c b/libavcodec/webvttdec.c index 690f00dc47..990d150f16 100644 --- a/libavcodec/webvttdec.c +++ b/libavcodec/webvttdec.c @@ -39,7 +39,7 @@ static const struct { {"", "{\\u1}"}, {"", "{\\u0}"}, {"{", "\\{"}, {"}", "\\}"}, // escape to avoid ASS markup conflicts {">", ">"}, {"<", "<"}, - {"‎", ""}, {"‏", ""}, // FIXME: properly honor bidi marks + {"‎", "\xe2\x80\x8e"}, {"‏", "\xe2\x80\x8f"}, {"&", "&"}, {" ", "\\h"}, }; diff --git a/tests/ref/fate/sub-webvtt2 b/tests/ref/fate/sub-webvtt2 index 90f78d904b..2925d892a0 100644 --- a/tests/ref/fate/sub-webvtt2 +++ b/tests/ref/fate/sub-webvtt2 @@ -21,6 +21,6 @@ Dialogue: 0,0:00:12.50,0:00:32.50,Default,,0,0,0,,OK, let’s go. Dialogue: 0,0:00:38.00,0:00:43.00,Default,,0,0,0,,I want to 愛あい love you\NThat's not proper English! Dialogue: 0,0:00:43.00,0:00:46.00,Default,,0,0,0,,{\i1}キツネ{\i0}じゃない キツネじゃない\N乙女おとめは Dialogue: 0,0:00:50.00,0:00:55.00,Default,,0,0,0,,Some time ago in a rather distant place.... -Dialogue: 0,0:00:55.00,0:01:00.00,Default,,0,0,0,,Descending: 123456\NAscending: 123456 +Dialogue: 0,0:00:55.00,0:01:00.00,Default,,0,0,0,,Descending: ‏123456‎\NAscending: 123456 Dialogue: 0,0:01:00.00,0:01:05.00,Default,,0,0,0,,>> Never gonna give you up Never gonna let you down\NNever\hgonna\hrun\haround & desert\hyou Dialogue: 0,0:55:00.00,1:00:00.00,Default,,0,0,0,,Transcrit par Célestes™ From patchwork Mon Feb 12 02:01:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oneric X-Patchwork-Id: 46219 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9002:b0:19e:cdac:8cce with SMTP id d2csp436360pzc; Sun, 11 Feb 2024 18:02:55 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVfn2wyC02il8u5BO8d/HAcoLL5QaZ+ONik+NP4R7Uz59lLAV/9ouE9jFvaThiKbjEP/mrXDb5IMNDJOJ77e5zf43xnTryvVUuSRA== X-Google-Smtp-Source: AGHT+IHwDoiJ/f454S0DP9gFAUc2qcp6ykHrCA/7u4ClDSAAa7l7WhlgInMs61hzZ9xqL4kLDIMI X-Received: by 2002:a05:6512:2354:b0:511:730b:5c7f with SMTP id p20-20020a056512235400b00511730b5c7fmr4943742lfu.30.1707703375628; Sun, 11 Feb 2024 18:02:55 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWI53HWFdIFd7yxanX8LEZodaj+ZLIZmF100GnY/dm6mu1QagliHqGPlg62k9ifLekM6qq9t/9wbOzNNovBXLMd/BPWgy6RGvtpD+xF8aCwpP9Aw4duYAX0Qj6ZCVH//HEgMUYOU7FxTgDcmzxAJR1M9iOqDuROn0dbk7HlojEDSILUvgL+o4HzEB4+qXlxfdp4LCM69YqO68pbmuAn4Io8v2dURY1Aac5NtIRcHvh8HIoAHusaNjG3ke5PWGMgx9cM2yVASDn1hdvq06jkSAmQdSYx58BbPordWmTAV9uPG8rNWD+E/28V3DkcEmg/D0cNmcxPeoO/UYs1NHt8epHMnHW69UeksLyu8/y89rwZCQscENG/CWmbc7Q7y4zncRy+qU5pmFmZzU3s3WvfXWt8ZdTGvGaU5GBgkU40OFfPoUeQXiaWeTwLacD9OK+Ifd/L3DpGnDmavhhuWCWPfw7SyYN1IZVvrbSt+u/uzhuVqln5B4c4NBWwihWBpGKTtBZ37Y0o2MCtNDIe4pAA3XYndpMdBysDhsZVm1A2XN+9Jy1oYqxVWY6ALCLraGUu7St02Skue1LjFNAQ38bM54Ui5tltgcmDVKHoOIWLmfMWwfBEm5fYx+48I3cMQxeAXZPIlw7VbthMc3BP+en2PbagMH+Wc2sSZzs7PBh6PWxb1hLjeAZhzc/uZrWcVhN5vBBAHKdo/blwJud8xzueMSGOwBl6BxVfH1KKm3Qp4MfndeOCVz3K8AHfd8T+ewZOC9YASygg52PuzsKRWKSsEKtVlPbgz7pQmVGzxwR3ERXLSSF3wszTFfgMJeu7vvkboj2Yq2P24xvH4Y8ZsdrJ8VQrqwPhqPh/e5h7yMaZbAh2XIzKdMItwSnoLLOsCrbMayFLlqYZfYkM/CqI9Zu61dN03N4eSZ3H75CBu/PblHQeNSQmAEfRLaIZwA7y+393LCafSU 9jtdz5/RiJEObiSXJLqk+pn93vm+2MbTTunB7AjGvDLz2+/bthPvJtWeefpFozTs4hvUQLrgjY7yuz54vRO2tuuvZ8q6hSYLHvmi5esQiB73rggFCu//LNBXzX979M0+YXVuqqb8aAaj7ji3NC5D8e4SuU7QOTa4i3LU2w6L1GOhzu04idtrnSfRa0AjjOUSut6uG9ImfAtgs7RV2ryVVTX3xdkFErZkMP7eiz4fCCnoIg6GAfiJzde5wut8r7Qt+9cUWP/sWq9fPrs/7vZeIydyNJbbiwLTE7B5xA8+xOaFzeRO2UEkeBKQr7AapGlzZAkTrb/Nm4DgrWPVGOX/swN6pl1s23LKbeU8Vx0VJL7iEBvQu79iXfif0juEhp1NNLwwcPoVmXBq8GWMrdP8tnYyKIQuZ71gFXrRvibymm14H60Lluu8j+1Dxy2brnjNCTUxyrmnnWe7jA3oH+umn0Tl4ieiQyLbI3cG3thNo4qGTvnSoRfvQPJ9bbghIAF4lXd8ftp8DL/VWgeAgipV/pFkKLfoFfAuf41GdLz2cefIaWyll/JdVZxlNLLW8dbTRg/WSF6XTTbX+uKW7rEzWVgQvzpsSL8stsCxc= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b8-20020a170906194800b00a3c2c8e5962si2139390eje.820.2024.02.11.18.02.55; Sun, 11 Feb 2024 18:02:55 -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=@oneric.de header.s=strato-dkim-0002 header.b=LoD3vfpW; dkim=neutral (no key) header.i=@oneric.de header.s=strato-dkim-0003; arc=fail (body hash mismatch); 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 52AEC68D150; Mon, 12 Feb 2024 04:02:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mo4-p00-ob.smtp.rzone.de (unknown [85.215.255.23]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8540568CF0D for ; Mon, 12 Feb 2024 04:02:18 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; t=1707703337; cv=none; d=strato.com; s=strato-dkim-0002; b=CMpzcpnWQkLZxyFW0KN7lGum7PbadIRgs2B9i+OIum62bRI5S5Sv0XMJ8gFAftEAse lOEv543yolc80bciZDkklqOvWWTlIkl2xrPtKTejUsz2PvKDSrXxooG1RL4CAavBvT+k ATpGhAHgUsYVWo9FkRc9tWM71LYH4SMLeA6i2yzQgB7y9N0pkZ54DIJv67sbIorql2tU 9G6mjSvXnGXw/flT0cymaj99SrPZMWHYnB5/ElHR1bden+0JcBwj7YHiFTfELLcNNb+4 IiffPw/vG8yB7ifjw5lnUx7Dk8/9hOSAMlshTUjWRcqMYhotFD/DS1BWR+0JJ8JgDNdz EonQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=eGbefD26wGMQ3COdVU6o6keSmR5BpzQynIEQyp4s/fI=; b=Ld0sw6vHrAuXGL0zUpplJOr2ljd7L3vlueouKMbz2A5gmtoKps052bzy3hn54/O1mo U/Fb6dW5U1NgjnfVHqVeu9KVHmjTNd6ySZS85yxuTIc1j/7PBWRyvYuPeU1i9whMrVah sU3gW+wC/AMq80JiQfO7yX3JSu8rgJti2CIEg1aPqd+EQnJQMlJ2hZint9Sj8SZ9MaW0 bsQwjGK5KAbSqQ/lyQby07gGL3T5g9MEd8Cv/nH/rYTp6o1YiVbdu3Af8D7qYQ/qGJd9 ff58FuHixxM4hq9lXM362tktrLYW2aJTAaSjDjD0FuxZRIk3fBqjuLWaNr2OaV++RVPy /O8A== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=eGbefD26wGMQ3COdVU6o6keSmR5BpzQynIEQyp4s/fI=; b=LoD3vfpWaPQ/6tay981YWQhD2cWwD07SRXKFF7v2SRHBKr9wj63I876jBlpNNFFo78 iOMvQxGtSkHYRrwuXXZpDFbuOO7NITBWmJQhqaN5EYkHFhwuPijpvUrHw2lCpZrJMSqG nBJVxh0KsV1DEBxRmCCBMfexwyRkrm6cbVi3AjjQ8i1Y/qsWNyWWnRhGtuS+IdtoidGn zf7NJggBNSsfNAzEscb0bgRvy/igYDbJsyewNzJscdis9GFIJGxZpABkObYFFrbzr1kH oVvzFW+85OHCNoPP1HJ+B7x0Qb0f2sCz7QJAkzchCw7vnN2zkijhag43A03IMzT6jqoa z9Tw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0003; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=eGbefD26wGMQ3COdVU6o6keSmR5BpzQynIEQyp4s/fI=; b=+bb0C7lsEflfitDYyoOR6wBPxIwFHwEW4GITF8luqAt75iiHtvcaSJeaGsUME2WYlv dbceNk85aTgyqKItMTBA== X-RZG-AUTH: ":I2IBZ0mrW/AWQXwgB4oxKM1YsW1lFUznrLvi/XReWqAAlWwZ8wlvfXmGs4jUQ0oz8ZbhHexs8fhgUyJVddUhvSMyyTdkfRqedioxw5M6" Received: from abhoth.workgroup by smtp.strato.de (RZmta 49.11.2 AUTH) with ESMTPSA id x7ec2e01C22HBx3 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate) for ; Mon, 12 Feb 2024 03:02:17 +0100 (CET) From: Oneric To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Feb 2024 03:01:57 +0100 Message-Id: <20240212020159.6806-3-oneric@oneric.de> In-Reply-To: <20240212020159.6806-1-oneric@oneric.de> References: <20240212020159.6806-1-oneric@oneric.de> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/4] avcodec/{ass, webvttdec}: fix handling of backslashes 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: A4azJ0QxsdC4 Backslashes cannot be escaped by a backslash in any ASS renderer, but unless followed by specific characters it is just printed out. Insert a word-joiner character after a backslash to break up active sequences without changing the visual output. --- libavcodec/ass.c | 9 ++++++++- libavcodec/webvttdec.c | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libavcodec/ass.c b/libavcodec/ass.c index 5058dc8337..a68d3568b4 100644 --- a/libavcodec/ass.c +++ b/libavcodec/ass.c @@ -183,9 +183,16 @@ void ff_ass_bprint_text_event(AVBPrint *buf, const char *p, int size, /* standard ASS escaping so random characters don't get mis-interpreted * as ASS */ - } else if (!keep_ass_markup && strchr("{}\\", *p)) { + } else if (!keep_ass_markup && strchr("{}", *p)) { av_bprintf(buf, "\\%c", *p); + /* append word-joiner U+2060 as UTF-8 to break up sequences like \N */ + } else if (!keep_ass_markup && *p == '\\') { + if (p_end - p <= 3 || strncmp(p + 1, "\xe2\x81\xa0", 3)) + av_bprintf(buf, "\\\xe2\x81\xa0"); + else + av_bprintf(buf, "\\"); + /* some packets might end abruptly (no \0 at the end, like for example * in some cases of demuxing from a classic video container), some * might be terminated with \n or \r\n which we have to remove (for diff --git a/libavcodec/webvttdec.c b/libavcodec/webvttdec.c index 990d150f16..6e55bc5499 100644 --- a/libavcodec/webvttdec.c +++ b/libavcodec/webvttdec.c @@ -37,7 +37,7 @@ static const struct { {"", "{\\i1}"}, {"", "{\\i0}"}, {"", "{\\b1}"}, {"", "{\\b0}"}, {"", "{\\u1}"}, {"", "{\\u0}"}, - {"{", "\\{"}, {"}", "\\}"}, // escape to avoid ASS markup conflicts + {"{", "\\{"}, {"}", "\\}"}, {"\\", "\\\xe2\x81\xa0"}, // escape to avoid ASS markup conflicts {">", ">"}, {"<", "<"}, {"‎", "\xe2\x80\x8e"}, {"‏", "\xe2\x80\x8f"}, {"&", "&"}, {" ", "\\h"}, From patchwork Mon Feb 12 02:01:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Oneric X-Patchwork-Id: 46218 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9002:b0:19e:cdac:8cce with SMTP id d2csp436314pzc; Sun, 11 Feb 2024 18:02:47 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVjR0D+hzALqFxijnNFseHM97f9E2eZAHF4qI5pl5T/xnKndl85C28gcjZ/LAjZo7B/VxXpfd2ElS3LA4b4gQ73x4SfYtvRXjdh/Q== X-Google-Smtp-Source: AGHT+IF31h5LXTeqejIF1/JPYUjsXf3eY02b3SfgVzJDxLrfz25lTsoLuynASNDgFO0+xJ2+lj5E X-Received: by 2002:ac2:5488:0:b0:511:8f40:766a with SMTP id t8-20020ac25488000000b005118f40766amr516746lfk.41.1707703367636; Sun, 11 Feb 2024 18:02:47 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVlmrYOgIUEM/6l5pcscZWXH9j8NNVuGD9whZNZTJGUIj+B07vb0Q5oB7piYOsCWI+Ay9LDC618OqIbzKJcUrMRDIWLGd98Gwf9TYq/n7/iFUkru5CNaQjveQeY87CVmkJpnLdeYiMX7Hqf6e8jjZHJPLjeyYm1KbaRvi5hoj1xQNb/GEd89AV7RONV/VawkbmL2PoL3d+IHIKpYqSkQ6xnMvIJCYVciV13JAmt+C3IAErekQ7QyAOT4pUdyWPdeknaJnAKtbpd83sZ6V/2bSeVUKUsBQ98ONg5WCwo59ZczQYjP5jsloO1A7qRg+0iV8gJBFokDiYzLSuI+vm/2dtpVJvjxA67NMpnHU40+y0pxa4Yq4HDpS9PlS6DdKSLG57Mh8z6M4mj5HymjkMyJHAAICoiWCbyivYyWQOe+vlXOpt/hfmggXfD866yY91lz9nhDHkfUtp4npVPIkRVibaOTm+bcDlfGT2gmPNzPIh2naqf/anM7hThno0R/yKySOF0EPNaHaA+bNDeAK4SleT9t/8a61sxJdQCCTypKEkR51HfNc94HeD8toyE4KTVk6nqRDl5Sgs2hbMpsNaZFVk6dAhthGS5Jn9OFzqCvIiQcxp1eIKm1jNyZPIDgEZ7TgCuGgKXIufHugLu1lqPF5R0ygeC9xywcbptWgFZk2XoRgdiotjrjkzkAI9sB7lxxMq0Nz7sZ1X+n/HsKzsEoQQFkcVufRq+8J3n5M1soe8Mqnba1OcT9TBwBIVExNY/FleudJhCKCy+Uke4GBtoIHliTScVkr9dS6fB8mBZbEzvakgYHifpa/5v4JtdfE8QV0UwGyXAjn/sKrQjMDe+K9l2Hgg2mBA6xHCiYuVQiDeeTDsGXYduERARgjk5j3N6o2XFbDJguWsIxV1idZun3vnjCiQj/MExtz2xlcIXKMG6ER6lUUrL6Z8T3gUxwpA/jZm0t2 hYMVSY2/gyF+0dKNszkeKo+jl3Kl05nBAkPBLiWu8hb1FZaZ1yVTFSEPLwIiG8a65onEK8TRUIrVmLvGlj70bqaYP9ylEm7w+qdLEd6Jg5km8Vj0w/gaVufKOYXJveFJvtID8SKr9ZviWDDvrAO9Qf2cgSJ4XUlRPnVQA0QcAS1cRkDfRdUFgc3VNiKrDFXNqjUFR0gcEUt4+OKPD8tLQxXE0NkdwFuwYF6p4cSX8sk/IRYnMZKikdpsiWVKTnmdYcc/wMhxV3k6jvCuScIX5Sc2iJ7ymCJYT1vBuU0W0G85t738sZPqsMgZm8TW3ZlLXC7aoLUW0fGe+4Sf4OS7lwLAQdmJsBrYwpJOFgfbJTuksPbN2D3jWLUD4J8yvmOahpu2lXw3eYcXwm8mdgoodKqGb9aLaGQWMSbKS/2/Z7Tdhq6wNX6spUM9xT1rIpX5y4tasgU/bvnj/0oHhNNt/98g/EBKEagtxkY18RJ2RsYJmSX2Jf12vsH7sIiF0J6LBetn+sUZF2lgi92pX+7s9TJgTkL1DFXoqzri4Q0nS5wwsmoPzyQGrFUkUWz10gYWN5/JGetNkPrbnc/e40NEYm2YLXeWnIj95GlTQhPlHrj47PkaymJwwLBrjN1DMoG9r9tZIg Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p27-20020a1709060e9b00b00a3ca112f1e3si441630ejf.462.2024.02.11.18.02.47; Sun, 11 Feb 2024 18:02:47 -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=@oneric.de header.s=strato-dkim-0002 header.b=jB0AVafn; dkim=neutral (no key) header.i=@oneric.de header.s=strato-dkim-0003; arc=fail (body hash mismatch); 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 35E2B68C15D; Mon, 12 Feb 2024 04:02:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mo4-p00-ob.smtp.rzone.de (unknown [81.169.146.217]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 82E9E68CA0D for ; Mon, 12 Feb 2024 04:02:18 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; t=1707703337; cv=none; d=strato.com; s=strato-dkim-0002; b=IoKC+xnCIdApEk9WOWOhhucucwYNYUMtezksMbuYvXLCZL5zqr+0EtsykbV5xp+Pot flCZO/kfAqlttUXS11VByvBfZW1d2325SZpdPCVcGa0GZW2ZTJx1PBCO4ojOPBjb0UBN lHakGrABxXp4CVCIts1Fn0wZjqFsNzr5DBHIc0/De1DHHp7uuMXVGX7YGbdHjH4ruCfv Hfgplud8rKpr+1fWPPqIKdighYZsIdUarg4NiHn07M40oLWBgilhzbXIXltj3Ed2pTFU tuTm7QVCHKFoRjObxPVRoqa6A1qE7FqEYCHxZjQSAMIEnuBQlLH8c50Am82w5GlqUlwR qHWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=sWhLf975+n9pDZ+kqOvmCzNKzKIN8af5zcf5+xAzACU=; b=A98Umdp+IBOziFAV/7kukRcu5HPN34sGHtxwqLKu8y5rsxJHxTg5JPfTRdd9AmeyNo 6art4WQrBhAxIBRXvi3YkDE8n3V9TDtUYRXPKyLCBTZMeekgTW5iZ87QvE3wx+w3D+jC 5F16mKpmYkg+8vYOV27dcSbEzegKliV7BV1NyV3pUWCYWCPvmEpyOfvX4RQwHHxZi0pO yqF2xuTAu2+4w9YzZl7KqDsZDm/BCwjM7jASEeWeZmvExH094E94Dggc9ZWxcRxkywJK ZbzIefPlx82yqmGJYIu+cGQdhMyqUc7xadUs9EvwBcIUEHmWHfFdV+fd93MgTUs9gUxJ 6uKQ== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=sWhLf975+n9pDZ+kqOvmCzNKzKIN8af5zcf5+xAzACU=; b=jB0AVafno6YDxlNlzBHwnmSTQkbrAKqzaSTRDdqccXy95jrN3iYrcanRfJaOYREGfa eGHGLIIn66OFuzehdebt89/wDD1fDHCdifNIyGgAzZ4Dr1L6n2AGcMLkrr62dpmsthL1 B10opqEKyRZzKOxP3tVL7c+AapH/i6p1rLjoMkfoFzAEVHr3lH6PR00dt/GfzH3NazX1 0mB2b8EVuLwZHNmAUt+OOpPD9IjhpwAg4qyna5Y4m1IWIfHl8qIXMAbYrN1qgFvl98bu Z1AExzLefex2JuHiAc9AIARyi0ZrESrd5Q68id82tFwG+lIHBiUGfvNtdmQPH5fnntaB wjUQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0003; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=sWhLf975+n9pDZ+kqOvmCzNKzKIN8af5zcf5+xAzACU=; b=kWxOg8FGQehesqhOaTvnmd/ZkSYcsrLfEgb9e71khxTvNzf9RfRH0EqRo+snUi4Czk sdPiDY2JmlUp7huTCuCw== X-RZG-AUTH: ":I2IBZ0mrW/AWQXwgB4oxKM1YsW1lFUznrLvi/XReWqAAlWwZ8wlvfXmGs4jUQ0oz8ZbhHexs8fhgUyJVddUhvSMyyTdkfRqedioxw5M6" Received: from abhoth.workgroup by smtp.strato.de (RZmta 49.11.2 AUTH) with ESMTPSA id x7ec2e01C22HBx4 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate) for ; Mon, 12 Feb 2024 03:02:17 +0100 (CET) From: Oneric To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Feb 2024 03:01:58 +0100 Message-Id: <20240212020159.6806-4-oneric@oneric.de> In-Reply-To: <20240212020159.6806-1-oneric@oneric.de> References: <20240212020159.6806-1-oneric@oneric.de> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 3/4] avcodec/{ass, webvttdec}: more portable curly brace escapes 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: yiNzNwJRyaFK Unlike what the old comment suggested, standard ASS has no character escape mechanism, but a closing curly bracket doesn't even need one. For manual authored sub files using a full-width variant of an apropiate font and with scaling and psacing modifiers is a common workaround. This is not an option here, but we can still make things much less bad. Now the desired opening bracket still shows up in libass and standard renders will merely display a backslash in its place instead of stripping the following text like before. --- libavcodec/ass.c | 12 ++++++++---- libavcodec/webvttdec.c | 2 +- tests/ref/fate/sub-webvtt | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libavcodec/ass.c b/libavcodec/ass.c index a68d3568b4..e7a1ac0eb5 100644 --- a/libavcodec/ass.c +++ b/libavcodec/ass.c @@ -181,10 +181,14 @@ void ff_ass_bprint_text_event(AVBPrint *buf, const char *p, int size, if (linebreaks && strchr(linebreaks, *p)) { av_bprintf(buf, "\\N"); - /* standard ASS escaping so random characters don't get mis-interpreted - * as ASS */ - } else if (!keep_ass_markup && strchr("{}", *p)) { - av_bprintf(buf, "\\%c", *p); + /* cancel curly brackets to avoid bogus override tag blocks + * hiding text. Standard ASS has no character escapes, + * though (only) libass provides \{ and \}. + * Unpaired closing brackets don't need escaping at all though and + * to make the situation less bad in standard ASS insert an empty block + */ + } else if (!keep_ass_markup && *p == '{') { + av_bprintf(buf, "\\{{}"); /* append word-joiner U+2060 as UTF-8 to break up sequences like \N */ } else if (!keep_ass_markup && *p == '\\') { diff --git a/libavcodec/webvttdec.c b/libavcodec/webvttdec.c index 6e55bc5499..35bdbe805d 100644 --- a/libavcodec/webvttdec.c +++ b/libavcodec/webvttdec.c @@ -37,7 +37,7 @@ static const struct { {"", "{\\i1}"}, {"", "{\\i0}"}, {"", "{\\b1}"}, {"", "{\\b0}"}, {"", "{\\u1}"}, {"", "{\\u0}"}, - {"{", "\\{"}, {"}", "\\}"}, {"\\", "\\\xe2\x81\xa0"}, // escape to avoid ASS markup conflicts + {"{", "\\{{}"}, {"\\", "\\\xe2\x81\xa0"}, // escape to avoid ASS markup conflicts {">", ">"}, {"<", "<"}, {"‎", "\xe2\x80\x8e"}, {"‏", "\xe2\x80\x8f"}, {"&", "&"}, {" ", "\\h"}, diff --git a/tests/ref/fate/sub-webvtt b/tests/ref/fate/sub-webvtt index ea587b327c..fae50607fb 100644 --- a/tests/ref/fate/sub-webvtt +++ b/tests/ref/fate/sub-webvtt @@ -21,7 +21,7 @@ Dialogue: 0,0:00:22.00,0:00:24.00,Default,,0,0,0,,at the AMNH. Dialogue: 0,0:00:24.00,0:00:26.00,Default,,0,0,0,,Thank you for walking down here. Dialogue: 0,0:00:27.00,0:00:30.00,Default,,0,0,0,,And I want to do a follow-up on the last conversation we did.\Nmultiple lines\Nagain Dialogue: 0,0:00:30.00,0:00:31.50,Default,,0,0,0,,When we e-mailed— -Dialogue: 0,0:00:30.50,0:00:32.50,Default,,0,0,0,,Didn't we {\b1}talk {\i1}about\N{\i0} enough{\b0} in that conversation? \{I'm not an ASS comment\} +Dialogue: 0,0:00:30.50,0:00:32.50,Default,,0,0,0,,Didn't we {\b1}talk {\i1}about\N{\i0} enough{\b0} in that conversation? \{{}I'm not an ASS comment} Dialogue: 0,0:00:32.00,0:00:35.50,Default,,0,0,0,,No! No no no no; 'cos 'cos obviously 'cos Dialogue: 0,0:00:32.50,0:00:33.50,Default,,0,0,0,,{\i1}Laughs{\i0} Dialogue: 0,0:00:35.50,0:00:38.00,Default,,0,0,0,,You know I'm so excited my glasses are falling off here. From patchwork Mon Feb 12 02:01:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oneric X-Patchwork-Id: 46216 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9002:b0:19e:cdac:8cce with SMTP id d2csp436187pzc; Sun, 11 Feb 2024 18:02:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IEkhb1Talw7u2SgyjWFVbMtcyshNlqGubdBeNIMgOT3fmkRwphN01xChOskEXlBsp0JzWLY X-Received: by 2002:a05:6512:3e5:b0:511:8c69:c53f with SMTP id n5-20020a05651203e500b005118c69c53fmr1212577lfq.48.1707703350035; Sun, 11 Feb 2024 18:02:30 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXCGY4/1qPKCX6kKhXlm9gLzqgu9mBYEZHPaXhaPm+0LOIJHjezr1KhwDjGNRdOb89xQtGtMJCtPQ9IwzUfRM791Mw0ET5YahFl6uMFbsLJShk/iifW7qk7/izc15RId0WEBKYbEac1wckG8T0pTG8YsvAKNl9sT8dQSLwepS7fjt5dHM05mF8Igl59j3mlU3eeEfaw7mGfX0pxH8DZgote96EiRyRVB1CUQQzvHPLyxtZ3w/scOUWfPANj6LnaWu74yuoqSEQGLfxX9zJ1J0EfDJFySfIz09CxyCss2SBeOxqfpQLxM8VIbbsaXbAxqY8F0Z/WR6oS383aGXJQim6Pg/QZGhcui9QkDkbKex9ZSb2/RAxhoZejO2Gw2RLG1HpzIwWeNI/TY733I5eMqm5A64nvKSlHzdIe7pIV0SymTgEPTIsE3REgd5mdVOk7QnNkdBWXuSy1onGIto6CVG2O36F7XA+hdpSKacvr9nVTV8Trvl4KdgN2WrQ0+U5VaC1gH0xPYZW5W02VbXPOk2QVCEL9skIuO0SWlht/1ZrQfBPQxZxM8DTXa09NxNhY6tOg1FBdEI3FfCCLws0heqv1F+b6nuh4oYlmm27bXKpzI7ILAu7uZE9nVJ3WoqV+odvCg/hT1CEfa3CoSeBtQlaxiOx3tKqBgrwIiipnBBNS4khxC0PliBXxwiY+ggNPNXADaMtrRGYOmLQqYndRsiZ+6Xp15KD8uZIMHQQ1aysMz6AN2eXbsj2TSHyaCBT2jyzsEroZoWEcvVMNsG+LNcZUWLoQO12JOjQmnT0aHmd40QGISM6sRDFDUTx9hQgymSkQsXyRAowcIwxoWFLlwyCRO2bwFQ+NLfuEpqb14ej3ybRLFe6EFCPI7KqYE61KoF76HBKUQlBOR27u4p6dgwLp//vBwMWQe/3lGGnBzQPUXM+qCxhuD5LCM/Qu+lywxbmtiy nZZHXI6nAnRjzq4LAoMiATVZdPbZu7++vuAYINQ0fCBEjR4LGTe9kxyzSeb4xF1m3TC/whIKnTUjGo81Q7K4k3o6nk9B1WIFSpYy8hSCpfdEu5QjxVQpPxZ98tTk1Lj26wTC6sRE6FF+jbV6gNGT4fMo3csXchiwl79KkWLpC8jaNQBpbvbEw80GqRK7i8EhjGPB4jMNzCmEcDP8eJNcYCT3SvV2k7SQOg3Gr2ALx0w0E0DeLd+vLtVGk878LgVqeFaEihk1uN6VwUn2BjKREo7v6Z8o7ZkW2rtGLY/0OHWBK/IUhbOzPkzaP6BxP0i9NywR9Wbt6Pvsy/vT6oL2GRRMKmEBcDB/gtLyJRmItdNFY9n+qVA/qet0Kkn5/oqUvotebAXIuuO1zQPFl5SkyIBGIz2b7brQon3Ch0l5m2pJw3J91RdoOWXCGXRwAq4P/fqxZqRAy5H3pc1arfc8cgEKZpWd9Tkq9KUXQjHidxRSo0Q1erBYrnt5OO6iIIeHZXYsGlCOBaNDpg5FBvIL8ZwcUiWUeyPzRRJMyxcI/K2BmYhEaws4eaEMmW82pQ/ItpI80uNUgeZNWHuxUqLdfc2Se8dGGs8Bejt1NYjXgfC553Tm/YKBntcsxbgM8= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id go32-20020a1709070da000b00a3c4645f417si1698809ejc.49.2024.02.11.18.02.29; Sun, 11 Feb 2024 18:02:30 -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=@oneric.de header.s=strato-dkim-0002 header.b="s/W86R34"; dkim=neutral (no key) header.i=@oneric.de; arc=fail (body hash mismatch); 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CB61868D13E; Mon, 12 Feb 2024 04:02:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mo4-p00-ob.smtp.rzone.de (unknown [85.215.255.22]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8D9EA68D0ED for ; Mon, 12 Feb 2024 04:02:18 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; t=1707703337; cv=none; d=strato.com; s=strato-dkim-0002; b=a3SwHox5UXfPWlQknb2iw8tKf4W6F5elA5r7czv5NrME+WBeZ82qPYhFneiYvQ9tn2 6b+DdZL9PVS/AuRRuaybqOYmAO8y/6SJ2vFQYCeheGea7E6JxbF4aVx28+gJ5Wqgh2zZ /+U4WJO5d2dIATTwPgVLTq0jcUzkelGDAMPwTLbjb6wDD87pr3lpwFinEvE7NXG1BRd7 0xdUJ85fwtGCq/1MZLlglhkUq6qbotb/X4cgv3ES4ELqPAyc81B4k1yiP4ZTAxEcPRMD oFJ/IouuclY9US4WyQYNorS7Ih+z2Eels4Z2iZzc/lm/C3xhNu7sETQ+AORfhNXgJqda PTmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=AoMopDpVlNnYClKEYwQ+Ay3YgB13He6KHZR+UpdQzfs=; b=XHMUQcjFMGPJbPpac7Gnd+PYzRcEteWYs/nXKpr4QIq+7ZNnALaERexN6Xt93msXcR KS0VpZNdvbgbs05XcU3Mdi/FNToZ5wsp1dd3akhipJsNvoym6L52UA4fxHC1D7Z/+wFK u7Wwd2HNHZrCc+DZ7+vJwDz8RyFMQMh+IHTwzCcwMzSDBe7MjM/wLMhii7wto9rXK0xZ LYd2T37tFO/DNahp/1YdDOG479gOIHDOa293BCGUxt6GcTCrUnYV+u7F2H1D12aN/fWY YxK3fWaryp6Txj3E86nVKMFOFd8TkZyxfo+LhQcOQqMObDK3mvDOzUoPv69plsxjsUfk sPWg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0002; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=AoMopDpVlNnYClKEYwQ+Ay3YgB13He6KHZR+UpdQzfs=; b=s/W86R34iIln/gwGVawD5r0ndCe6QbPjmNt7LPWAU/3U4c969yZtsY7NgqthJ8WfvD 0+dy+IwRof4Wt+0L8jjwDRFKKAeQa+YGHQjWJv04hh87DrlXS54A2+busyU9J8WnrWpg xI9oUzkfkAYpfH/JXb0lYMLyJk518moTYSs8Ehq5uYLK+fUnRIQ5RWBQrDHNMSpzmUqR fNHCSg5kaIPyp2xZQyRPpPmTIVb50R+Sxjr3xdZXsCRuBjymB6evy6GR9kLupNcpt0Xm FsVnAaq8Tl4hSYAnCGxGJUabl0CaicLhaG0T51JutR36dcJ9XTtMsqVwFDM+q/ShlPeY Fh2w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1707703337; s=strato-dkim-0003; d=oneric.de; h=References:In-Reply-To:Message-Id:Date:Subject:To:From:Cc:Date:From: Subject:Sender; bh=AoMopDpVlNnYClKEYwQ+Ay3YgB13He6KHZR+UpdQzfs=; b=I7CPUrDwi0ntJedWr0Kc3DnckDG9dEHwCrvcRhh4sQq3mh5oboCL0TY9k91ElJjayq 8Z+TM3nqFlP0KSJYPYCg== X-RZG-AUTH: ":I2IBZ0mrW/AWQXwgB4oxKM1YsW1lFUznrLvi/XReWqAAlWwZ8wlvfXmGs4jUQ0oz8ZbhHexs8fhgUyJVddUhvSMyyTdkfRqedioxw5M6" Received: from abhoth.workgroup by smtp.strato.de (RZmta 49.11.2 AUTH) with ESMTPSA id x7ec2e01C22HBx5 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate) for ; Mon, 12 Feb 2024 03:02:17 +0100 (CET) From: Oneric To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Feb 2024 03:01:59 +0100 Message-Id: <20240212020159.6806-5-oneric@oneric.de> In-Reply-To: <20240212020159.6806-1-oneric@oneric.de> References: <20240212020159.6806-1-oneric@oneric.de> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 4/4] avocdec/ass: simplify linebreaks 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: xNBrKsfbr70U ff_ass_subtitle_header_* still used explicit CRLF linebreaks eventhough they will get normalised to LF later since commit 7bf1b9b35769b37684dd2f18a54f01d852a540c8. Just directly use LF. --- libavcodec/ass.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libavcodec/ass.c b/libavcodec/ass.c index e7a1ac0eb5..927b801404 100644 --- a/libavcodec/ass.c +++ b/libavcodec/ass.c @@ -35,15 +35,15 @@ int ff_ass_subtitle_header_full(AVCodecContext *avctx, int border_style, int alignment) { avctx->subtitle_header = av_asprintf( - "[Script Info]\r\n" - "; Script generated by FFmpeg/Lavc%s\r\n" - "ScriptType: v4.00+\r\n" - "PlayResX: %d\r\n" - "PlayResY: %d\r\n" - "ScaledBorderAndShadow: yes\r\n" - "YCbCr Matrix: None\r\n" - "\r\n" - "[V4+ Styles]\r\n" + "[Script Info]\n" + "; Script generated by FFmpeg/Lavc%s\n" + "ScriptType: v4.00+\n" + "PlayResX: %d\n" + "PlayResY: %d\n" + "ScaledBorderAndShadow: yes\n" + "YCbCr Matrix: None\n" + "\n" + "[V4+ Styles]\n" /* ASS (v4+) header */ "Format: Name, " @@ -54,7 +54,7 @@ int ff_ass_subtitle_header_full(AVCodecContext *avctx, "Spacing, Angle, " "BorderStyle, Outline, Shadow, " "Alignment, MarginL, MarginR, MarginV, " - "Encoding\r\n" + "Encoding\n" "Style: " "Default," /* Name */ @@ -65,11 +65,11 @@ int ff_ass_subtitle_header_full(AVCodecContext *avctx, "0,0," /* Spacing, Angle */ "%d,1,0," /* BorderStyle, Outline, Shadow */ "%d,10,10,10," /* Alignment, Margin[LRV] */ - "1\r\n" /* Encoding */ + "1\n" /* Encoding */ - "\r\n" - "[Events]\r\n" - "Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\r\n", + "\n" + "[Events]\n" + "Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n", !(avctx->flags & AV_CODEC_FLAG_BITEXACT) ? AV_STRINGIFY(LIBAVCODEC_VERSION) : "", play_res_x, play_res_y, font, font_size, primary_color, secondary_color, outline_color, back_color,