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 E180143182 for ; Fri, 14 Jan 2022 17:41:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3916C68B50E; Fri, 14 Jan 2022 19:41:03 +0200 (EET) Received: from shout01.mail.de (shout01.mail.de [62.201.172.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EF73068B476 for ; Fri, 14 Jan 2022 19:40:56 +0200 (EET) Received: from postfix01.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout01.mail.de (Postfix) with ESMTP id 7A611A2139 for ; Fri, 14 Jan 2022 18:40:56 +0100 (CET) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix01.mail.de (Postfix) with ESMTP id 5F5E280127 for ; Fri, 14 Jan 2022 18:40:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1642182056; bh=WL5wINHKM9PMRcJUIGk6ZmXQnIRlfRdfKhaPXKYDxqE=; h=Subject:To:References:From:Date:In-Reply-To:From; b=j5AxnRvzdOlXy2zph0OqAdTJaYJmCuFhT49hdiPZu72Xa7RBvIIMsEgh6PJtIyq83 Zs+D1Uhd/a/VQXND+CUvwFVrZi7AnpYBPXYfdB0HgR7+DOC9X//QvVHucCoGXWKzmX 1hqsdxnwAd/yFQskYT9I0CkjRyKyffF3pNFdLydp60+oQXmFr0GggdEBzANF5UWWJM A8VTqK0sC+kQS4aaJwiukTZoCYTE/rvwnVL5kpPyLQFaaxTTOvSrlPDjWa6FraVdEf 5btHP4ZKZP+jjjS/jrwrgADKiJio2jO+Vg/zClRVjyoK0yISaJVHeCpWUZ9kdWCIzR +MCl2bPVX12pA== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtp03.mail.de (Postfix) with ESMTPSA id 25789A05CA for ; Fri, 14 Jan 2022 18:40:56 +0100 (CET) To: ffmpeg-devel@ffmpeg.org References: <280498BE-226E-41E2-BE17-DE2D47EAFFC0@mail.de> <0768FA6E-731F-4214-8B90-A3F38764010F@mail.de> <20211210164657.GF2829255@pb2> <727CF2F6-C834-415A-B771-4F70661F8BE8@mail.de> <3E808BD2-808B-4C53-B1F7-B9DFFE2BF687@mail.de> <72e9521f-b029-8637-c32c-27cf7c5de170@mail.de> <14470aae-c127-7532-a054-b5d878d415dd@mail.de> <52e4f109-41a4-a609-b583-c001c6077638@mail.de> From: Thilo Borgmann Message-ID: <3ac67c79-7c88-4019-6726-06e50f0b29b8@mail.de> Date: Fri, 14 Jan 2022 18:40:55 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------7ED2611C766B6099E5075AB1" Content-Language: en-US X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 6664 X-purgate-ID: 154282::1642182056-00007508-518EB704/0/0 Subject: Re: [FFmpeg-devel] [PATCH v2] lavfi/drawtext: Add localtime_ms for millisecond precision 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" Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------7ED2611C766B6099E5075AB1 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Am 14.01.22 um 14:17 schrieb "zhilizhao(赵志立)": > > >> On Jan 14, 2022, at 8:14 PM, Thilo Borgmann wrote: >> >> Am 06.01.22 um 12:27 schrieb Thilo Borgmann: >>> Am 03.01.22 um 16:22 schrieb Thilo Borgmann: >>>> Am 29.12.21 um 12:46 schrieb Nicolas George: >>>>> "zhilizhao(赵志立)" (12021-12-29): >>>>>> How about add a restriction like this: >>>>>> >>>>>> if (format.endsWith(“%S")) >>>>>> enable the feature >>>>>> else >>>>>> warning message >>>>>> >>>>>> It’s a useful feature, it shouldn't create unexpected results, but >>>>>> doesn’t need to support every use case. >>>>> >>>>> I would not oppose it, but I find it inelegant, especially because it >>>>> requires a different expansion function, localtime_ms instead of >>>>> localtime. >>>>> >>>>> What about this: with the original function "localtime", if the format >>>>> ends in "%3N", then append the millisecond. It can later be expanded to >>>>> support %xN at any place in the format for any value of x. >>>> >>>> I think best will be to scan the format string for %S and extend it there with .ms part before expanding the rest of it, not? Shouldn't be too expensive for the filter. >>>> >>>> Just need to find time to actually implement it. >>> >>> Like v5 as attached. > > >> + if (tag == 'M' || tag == 'm') { >> + char *seconds = av_stristr(fmt, "%S"); >> + if (seconds) { >> + seconds += 2; >> + int len = seconds - fmt + 1; >> + char *tmp = av_malloc(len); >> + av_strlcpy(tmp, fmt, len); > > Firstly, mixed variable declaration and statements. > > Secondly, I think you don’t need ’tmp’, something like > > av_asprintf(“%.*s.%03d%s", len, fmt, (int)(unow % 1000000) / 1000, seconds); You know your printf format-string :) Thanks, v6 attached. -Thilo --------------7ED2611C766B6099E5075AB1 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v6-0001-lavfi-drawtext-Add-localtime_ms-for-millisecond-p.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v6-0001-lavfi-drawtext-Add-localtime_ms-for-millisecond-p.pa"; filename*1="tch" RnJvbSA2MDNhNTJhMmJiODZlNTU4YWNkZDc1NGQ4MzIyZTg5ZTk4NGRhZDA4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm5A bWFpbC5kZT4KRGF0ZTogRnJpLCAxNCBKYW4gMjAyMiAxODozODoxNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjZdIGxhdmZpL2RyYXd0ZXh0OiBBZGQgbG9jYWx0aW1lX21zIGZvciBtaWxs aXNlY29uZCBwcmVjaXNpb24KClN1Z2dlc3RlZC1CeTogZmZtcGVnQGZiLmNvbQotLS0KIGRv Yy9maWx0ZXJzLnRleGkgICAgICAgICAgfCAgOCArKysrKysrKwogbGliYXZmaWx0ZXIvdmZf ZHJhd3RleHQuYyB8IDIwICsrKysrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQs IDI2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2Zp bHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkKaW5kZXggMDVkNGIxYTU2ZS4uOTY3MDIx ZTQ4YiAxMDA2NDQKLS0tIGEvZG9jL2ZpbHRlcnMudGV4aQorKysgYi9kb2MvZmlsdGVycy50 ZXhpCkBAIC0xMTM3OSwxMCArMTEzNzksMTggQEAgSXQgY2FuIGJlIHVzZWQgdG8gYWRkIHBh ZGRpbmcgd2l0aCB6ZXJvcyBmcm9tIHRoZSBsZWZ0LgogVGhlIHRpbWUgYXQgd2hpY2ggdGhl IGZpbHRlciBpcyBydW5uaW5nLCBleHByZXNzZWQgaW4gVVRDLgogSXQgY2FuIGFjY2VwdCBh biBhcmd1bWVudDogYSBzdHJmdGltZSgpIGZvcm1hdCBzdHJpbmcuCiAKK0BpdGVtIGdtdGlt ZV9tcworU2FtZSBhcyBAY29kZXtnbXRpbWV9IGJ1dCB3aXRoIG1pbGxpc2Vjb25kIHByZWNp c2lvbi4KK0l0IGNhbiBhY2NlcHQgYW4gYXJndW1lbnQ6IGEgc3RyZnRpbWUoKSBmb3JtYXQg c3RyaW5nLgorCiBAaXRlbSBsb2NhbHRpbWUKIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBmaWx0 ZXIgaXMgcnVubmluZywgZXhwcmVzc2VkIGluIHRoZSBsb2NhbCB0aW1lIHpvbmUuCiBJdCBj YW4gYWNjZXB0IGFuIGFyZ3VtZW50OiBhIHN0cmZ0aW1lKCkgZm9ybWF0IHN0cmluZy4KIAor QGl0ZW0gbG9jYWx0aW1lX21zCitTYW1lIGFzIEBjb2Rle2xvY2FsdGltZX0gYnV0IHdpdGgg bWlsbGlzZWNvbmQgcHJlY2lzaW9uLgorSXQgY2FuIGFjY2VwdCBhbiBhcmd1bWVudDogYSBz dHJmdGltZSgpIGZvcm1hdCBzdHJpbmcuCisKIEBpdGVtIG1ldGFkYXRhCiBGcmFtZSBtZXRh ZGF0YS4gVGFrZXMgb25lIG9yIHR3byBhcmd1bWVudHMuCiAKZGlmZiAtLWdpdCBhL2xpYmF2 ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCmluZGV4 IDJhODg2OTJjYmQuLjdlMzc3MWZkY2EgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2Ry YXd0ZXh0LmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwpAQCAtNTEsNiArNTEs NyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwv cmFuZG9tX3NlZWQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvcGFyc2V1dGlscy5oIgorI2lu Y2x1ZGUgImxpYmF2dXRpbC90aW1lLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3RpbWVjb2Rl LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3RpbWVfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJs aWJhdnV0aWwvdHJlZS5oIgpAQCAtMTA0NSwxNCArMTA0NiwyNyBAQCBzdGF0aWMgaW50IGZ1 bmNfc3RyZnRpbWUoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIEFWQlByaW50ICpicCwKICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFyICpmY3QsIHVuc2lnbmVkIGFyZ2MsIGNoYXIgKiph cmd2LCBpbnQgdGFnKQogewogICAgIGNvbnN0IGNoYXIgKmZtdCA9IGFyZ2MgPyBhcmd2WzBd IDogIiVZLSVtLSVkICVIOiVNOiVTIjsKKyAgICBpbnQ2NF90IHVub3c7CiAgICAgdGltZV90 IG5vdzsKICAgICBzdHJ1Y3QgdG0gdG07CiAKLSAgICB0aW1lKCZub3cpOwotICAgIGlmICh0 YWcgPT0gJ0wnKQorICAgIHVub3cgPSBhdl9nZXR0aW1lKCk7CisgICAgbm93ICA9IHVub3cg LyAxMDAwMDAwOworICAgIGlmICh0YWcgPT0gJ0wnIHx8IHRhZyA9PSAnbScpCiAgICAgICAg IGxvY2FsdGltZV9yKCZub3csICZ0bSk7CiAgICAgZWxzZQogICAgICAgICB0bSA9ICpnbXRp bWVfcigmbm93LCAmdG0pOworCisgICAgaWYgKHRhZyA9PSAnTScgfHwgdGFnID09ICdtJykg eworICAgICAgICBjaGFyICpzZWNvbmRzID0gYXZfc3RyaXN0cihmbXQsICIlUyIpOworICAg ICAgICBpZiAoc2Vjb25kcykgeworICAgICAgICAgICAgaW50IGxlbiA9IHNlY29uZHMgKyAy IC0gZm10OworICAgICAgICAgICAgY2hhciAqZm10X25ldyA9IGF2X2FzcHJpbnRmKCIlLipz LiUwM2QlcyIsIGxlbiwgZm10LCAoaW50KSh1bm93ICUgMTAwMDAwMCkgLyAxMDAwLCBzZWNv bmRzICsgMik7CisgICAgICAgICAgICBhdl9icHJpbnRfc3RyZnRpbWUoYnAsIGZtdF9uZXcs ICZ0bSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKwogICAg IGF2X2JwcmludF9zdHJmdGltZShicCwgZm10LCAmdG0pOwogICAgIHJldHVybiAwOwogfQpA QCAtMTE1Miw3ICsxMTY2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcmF3dGV4dF9mdW5j dGlvbiB7CiAgICAgeyAicGljdF90eXBlIiwgMCwgMCwgMCwgICBmdW5jX3BpY3RfdHlwZSB9 LAogICAgIHsgInB0cyIsICAgICAgIDAsIDMsIDAsICAgZnVuY19wdHMgICAgICB9LAogICAg IHsgImdtdGltZSIsICAgIDAsIDEsICdHJywgZnVuY19zdHJmdGltZSB9LAorICAgIHsgImdt dGltZV9tcyIsIDAsIDEsICdNJywgZnVuY19zdHJmdGltZSB9LAogICAgIHsgImxvY2FsdGlt ZSIsIDAsIDEsICdMJywgZnVuY19zdHJmdGltZSB9LAorICAgIHsgImxvY2FsdGltZV9tcyIs IDAsIDEsICdtJywgZnVuY19zdHJmdGltZSB9LAogICAgIHsgImZyYW1lX251bSIsIDAsIDAs IDAsICAgZnVuY19mcmFtZV9udW0gfSwKICAgICB7ICJuIiwgICAgICAgICAwLCAwLCAwLCAg IGZ1bmNfZnJhbWVfbnVtIH0sCiAgICAgeyAibWV0YWRhdGEiLCAgMSwgMiwgMCwgICBmdW5j X21ldGFkYXRhIH0sCi0tIAoyLjIwLjEgKEFwcGxlIEdpdC0xMTcpCgo= --------------7ED2611C766B6099E5075AB1 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --------------7ED2611C766B6099E5075AB1--