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 B32A740DCA for ; Tue, 8 Feb 2022 10:41:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9B70168B04A; Tue, 8 Feb 2022 12:41:41 +0200 (EET) Received: from shout01.mail.de (shout01.mail.de [62.201.172.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 477D468AE9A for ; Tue, 8 Feb 2022 12:41:35 +0200 (EET) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout01.mail.de (Postfix) with ESMTP id CB439A1DA7 for ; Tue, 8 Feb 2022 11:41:34 +0100 (CET) Received: from smtp02.mail.de (smtp02.bt.mail.de [10.0.121.212]) by postfix01.mail.de (Postfix) with ESMTP id B19668016D for ; Tue, 8 Feb 2022 11:41:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1644316894; bh=f7ow+79YkW53KMAocDksPXUQ4zxf1xBdwt4r0vGD+58=; h=Message-ID:Date:Subject:To:From:From:To:CC:Subject:Reply-To; b=ZS+wUFtix9fvkO7YnoEYRvkUoA2XJFi2AQr1S8JIEb5Nii73NuHIH+5EwW1UCnE6x B4XV40NkeW5dz3zMtX05RYSeKUUjQIoZArDNSF/gvua34VEsQ9LFl+tfgFZ/K9DM0T e/zOUxQeRmnvwVGIexPYSl+K4HlniStvTLl0RKvFuExb1InGR29BAY09EBnDqOvSUV Xng02jp6MySolUDyZA9aFZWgzEWOhia+XKwM4eEJNE6XQ6UA2PcjZx3dJNyfUmX9kz eU6PkifHN5YyGvsTBQoCLJEPI+60Z8XRBy7Z2rAwto9DjNThT2q1gusypixVkGtmSq YY3SXbB5JsEfg== 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 smtp02.mail.de (Postfix) with ESMTPSA id 81F37A05BF for ; Tue, 8 Feb 2022 11:41:34 +0100 (CET) Content-Type: multipart/mixed; boundary="------------xyNwLcJAeL3Mdy6kKPI7GPNL" Message-ID: <51d4f816-c664-fc32-eb5a-c48a73490767@mail.de> Date: Tue, 8 Feb 2022 11:41:33 +0100 MIME-Version: 1.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <350ccc44-07dc-25c6-49a1-4281139d93ac@mail.de> <8b8ae2a5-f77f-5a34-8890-fa68de09e475@mail.de> <5ead1511-a763-782e-7eff-e2256828978c@mail.de> <70afd793-820b-83df-6bc8-58e1787cd9c8@mail.de> <26ca972d-ab44-910c-cc47-5f92da53bc9f@mail.de> <079cf800-f26f-34dc-13a5-2a75c7ab7ea3@mail.de> <1ba42e6c-458a-92dd-9cc4-830bbd452e16@mail.de> From: Thilo Borgmann In-Reply-To: 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: 7756 X-purgate-ID: 154282::1644316894-00002C8C-237D02C5/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. --------------xyNwLcJAeL3Mdy6kKPI7GPNL Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Am 08.02.22 um 10:27 schrieb Andreas Rheinhardt: > Thilo Borgmann: >> Am 01.02.22 um 00:40 schrieb Andreas Rheinhardt: >>> Thilo Borgmann: >>>> Am 31.01.22 um 14:08 schrieb Nicolas George: >>>>> Thilo Borgman (12022-01-31): >>>>>>> v10 attached. >>>>>> >>>>>> Also going to apply soon if there are no more comments. >>>>> >>>>> I think you neglected to attach the file. >>>> >>>> omg stupid me. Here it is... >>>> >>>> -Thilo >>>> >>> >>> Seems like I misunderstood your code and ignored the outer while. Your >>> code can leak if there are multiple 'N', because (as I said) >>> >>>> >>>> + >>>> +            if (fmt_new && fmt_new != argv[0] && fmt_new != >>>> fmt_default) >>>> +                av_freep(&fmt_new); >>>> + >>> >>> does not free fmt if it is already allocated. It is possible to fix this >>> by adding an char *fmt_allocated = NULL; at outer scope and a fmt_new in >>> the block that is executed if a 'N' is executed. (You have to free >>> fmt_allocated immediately after av_asprintf().) >> >>> But maybe it would be best to use an AVBPrint to write the new string >>> instead of allocating a new string for every %N encountered. >> >> v11 does it that way. >> > >> >> + av_bprintf(&fmt_bp, "%s", fmt_begin); >> + av_bprint_finalize(&fmt_bp, (char**)&fmt); >> + if (!fmt) >> + return AVERROR(ENOMEM); >> + >> av_bprint_strftime(bp, fmt, &tm); >> + av_freep(&fmt); >> + > > This is not how one uses an AVBPrint: You are loosing the > small-string-optimization that way. > Furthermore, you do not check for truncation. v12 including IRC comments. -Thilo --------------xyNwLcJAeL3Mdy6kKPI7GPNL Content-Type: text/plain; charset=UTF-8; name="v12-0001-lavfi-drawtext-Add-N-for-drawing-fractions-of-a-.patch" Content-Disposition: attachment; filename*0="v12-0001-lavfi-drawtext-Add-N-for-drawing-fractions-of-a-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiYjUzYWM4ZDkyNGVkN2Q2NzRmMjU0MDkxZDJjN2E5MmZlMmVhNDFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiA8dGhpbG8uYm9yZ21hbm5A bWFpbC5kZT4KRGF0ZTogVHVlLCA4IEZlYiAyMDIyIDExOjM5OjQ2ICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2MTJdIGxhdmZpL2RyYXd0ZXh0OiBBZGQgJU4gZm9yIGRyYXdpbmcgZnJhY3Rp b25zIG9mIGEgc2Vjb25kCgpTdWdnZXN0ZWQtQnk6IGZmbXBlZ0BmYi5jb20KLS0tCiBkb2Mv ZmlsdGVycy50ZXhpICAgICAgICAgIHwgIDQgKysrCiBsaWJhdmZpbHRlci92Zl9kcmF3dGV4 dC5jIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAyIGZp bGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkKaW5kZXggMDVkNGIx YTU2ZS4uYzM4OTUxMzhlMCAxMDA2NDQKLS0tIGEvZG9jL2ZpbHRlcnMudGV4aQorKysgYi9k b2MvZmlsdGVycy50ZXhpCkBAIC0xMTM3OCwxMCArMTEzNzgsMTQgQEAgSXQgY2FuIGJlIHVz ZWQgdG8gYWRkIHBhZGRpbmcgd2l0aCB6ZXJvcyBmcm9tIHRoZSBsZWZ0LgogQGl0ZW0gZ210 aW1lCiBUaGUgdGltZSBhdCB3aGljaCB0aGUgZmlsdGVyIGlzIHJ1bm5pbmcsIGV4cHJlc3Nl ZCBpbiBVVEMuCiBJdCBjYW4gYWNjZXB0IGFuIGFyZ3VtZW50OiBhIHN0cmZ0aW1lKCkgZm9y bWF0IHN0cmluZy4KK1RoZSBmb3JtYXQgc3RyaW5nIGlzIGV4dGVuZGVkIHRvIHN1cHBvcnQg dGhlIHZhcmlhYmxlIEB2YXJ7JVsxLTZdTn0KK3doaWNoIHByaW50cyBmcmFjdGlvbnMgb2Yg dGhlIHNlY29uZCB3aXRoIG9wdGlvbmFsbHkgc3BlY2lmaWVkIG51bWJlciBvZiBkaWdpdHMu CiAKIEBpdGVtIGxvY2FsdGltZQogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGZpbHRlciBpcyBy dW5uaW5nLCBleHByZXNzZWQgaW4gdGhlIGxvY2FsIHRpbWUgem9uZS4KIEl0IGNhbiBhY2Nl cHQgYW4gYXJndW1lbnQ6IGEgc3RyZnRpbWUoKSBmb3JtYXQgc3RyaW5nLgorVGhlIGZvcm1h dCBzdHJpbmcgaXMgZXh0ZW5kZWQgdG8gc3VwcG9ydCB0aGUgdmFyaWFibGUgQHZhcnslWzEt Nl1OfQord2hpY2ggcHJpbnRzIGZyYWN0aW9ucyBvZiB0aGUgc2Vjb25kIHdpdGggb3B0aW9u YWxseSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRpZ2l0cy4KIAogQGl0ZW0gbWV0YWRhdGEKIEZy YW1lIG1ldGFkYXRhLiBUYWtlcyBvbmUgb3IgdHdvIGFyZ3VtZW50cy4KZGlmZiAtLWdpdCBh L2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5j CmluZGV4IDJhODg2OTJjYmQuLmQzZWM2ODAwNGQgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVy L3ZmX2RyYXd0ZXh0LmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwpAQCAtNTEs NiArNTEsNyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9vcHQuaCIKICNpbmNsdWRlICJsaWJh dnV0aWwvcmFuZG9tX3NlZWQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvcGFyc2V1dGlscy5o IgorI2luY2x1ZGUgImxpYmF2dXRpbC90aW1lLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3Rp bWVjb2RlLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL3RpbWVfaW50ZXJuYWwuaCIKICNpbmNs dWRlICJsaWJhdnV0aWwvdHJlZS5oIgpAQCAtMTA0NSwxNSArMTA0Niw3OCBAQCBzdGF0aWMg aW50IGZ1bmNfc3RyZnRpbWUoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIEFWQlByaW50ICpicCwK ICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpmY3QsIHVuc2lnbmVkIGFyZ2MsIGNo YXIgKiphcmd2LCBpbnQgdGFnKQogewogICAgIGNvbnN0IGNoYXIgKmZtdCA9IGFyZ2MgPyBh cmd2WzBdIDogIiVZLSVtLSVkICVIOiVNOiVTIjsKKyAgICBjb25zdCBjaGFyICpmbXRfYmVn aW4gPSBmbXQ7CisgICAgaW50NjRfdCB1bm93OwogICAgIHRpbWVfdCBub3c7CiAgICAgc3Ry dWN0IHRtIHRtOworICAgIGNvbnN0IGNoYXIgKmJlZ2luOworICAgIGNvbnN0IGNoYXIgKnRt cDsKKyAgICBpbnQgbGVuOworICAgIGludCBkaXY7CisgICAgQVZCUHJpbnQgZm10X2JwOwog Ci0gICAgdGltZSgmbm93KTsKLSAgICBpZiAodGFnID09ICdMJykKKyAgICBhdl9icHJpbnRf aW5pdCgmZm10X2JwLCAwLCBBVl9CUFJJTlRfU0laRV9VTkxJTUlURUQpOworCisgICAgdW5v dyA9IGF2X2dldHRpbWUoKTsKKyAgICBub3cgID0gdW5vdyAvIDEwMDAwMDA7CisgICAgaWYg KHRhZyA9PSAnTCcgfHwgdGFnID09ICdtJykKICAgICAgICAgbG9jYWx0aW1lX3IoJm5vdywg JnRtKTsKICAgICBlbHNlCiAgICAgICAgIHRtID0gKmdtdGltZV9yKCZub3csICZ0bSk7Ci0g ICAgYXZfYnByaW50X3N0cmZ0aW1lKGJwLCBmbXQsICZ0bSk7CisKKyAgICAvLyBtYW51YWxs eSBwYXJzZSBmb3JtYXQgZm9yICVOIChmcmFjdGlvbmFsIHNlY29uZHMpCisgICAgYmVnaW4g PSBmbXQ7CisgICAgd2hpbGUgKChiZWdpbiA9IHN0cmNocihiZWdpbiwgJyUnKSkpIHsKKyAg ICAgICAgdG1wID0gYmVnaW4gKyAxOworICAgICAgICBsZW4gPSAwOworCisgICAgICAgIC8v IHNraXAgZXNjYXBlZCAiJSUiCisgICAgICAgIGlmICgqdG1wID09ICclJykgeworICAgICAg ICAgICAgYmVnaW4gPSB0bXAgKyAxOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg IH0KKworICAgICAgICAvLyBjb3VudCBkaWdpdHMgYmV0d2VlbiAlIGFuZCBwb3NzaWJsZSBO CisgICAgICAgIHdoaWxlICgqdG1wICE9ICdcMCcgJiYgYXZfaXNkaWdpdCgoaW50KSp0bXAp KSB7CisgICAgICAgICAgICBsZW4rKzsKKyAgICAgICAgICAgIHRtcCsrOworICAgICAgICB9 CisKKyAgICAgICAgLy8gTiBlbmNvdW50ZXJlZCwgaW5zZXJ0IHRpbWUKKyAgICAgICAgaWYg KCp0bXAgPT0gJ04nKSB7CisgICAgICAgICAgICBpbnQgbnVtX2RpZ2l0cyA9IDM7IC8vIGRl ZmF1bHQgc2hvdyBtaWxsaXNlY29uZCBbMSw2XQorCisgICAgICAgICAgICAvLyBpZiBkaWdp dCBnaXZlbiwgZXhwZWN0IFsxLDZdLCB3YXJuICYgY2xhbXAgb3RoZXJ3aXNlCisgICAgICAg ICAgICBpZiAobGVuID09IDEpIHsKKyAgICAgICAgICAgICAgICBudW1fZGlnaXRzID0gYXZf Y2xpcCgqKGJlZ2luICsgMSkgLSAnMCcsIDEsIDYpOworICAgICAgICAgICAgfSBlbHNlIGlm IChsZW4gPiAxKSB7CisgICAgICAgICAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX1dBUk5J TkcsICJJbnZhbGlkIG51bWJlciBvZiBkZWNpbWFscyBmb3IgJSVOLCB1c2luZyBkZWZhdWx0 IG9mICVpXG4iLCBudW1fZGlnaXRzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg bGVuICs9IDI7IC8vIGFkZCAlIGFuZCBOIHRvIGdldCBsZW5ndGggb2Ygc3RyaW5nIHBhcnQK KworICAgICAgICAgICAgZGl2ID0gcG93KDEwLCA2IC0gbnVtX2RpZ2l0cyk7CisKKyAgICAg ICAgICAgIGF2X2JwcmludGYoJmZtdF9icCwgIiUuKnMlMCpkIiwgKGludCkoYmVnaW4gLSBm bXRfYmVnaW4pLCBmbXRfYmVnaW4sIG51bV9kaWdpdHMsIChpbnQpKHVub3cgJSAxMDAwMDAw KSAvIGRpdik7CisKKyAgICAgICAgICAgIGJlZ2luICs9IGxlbjsKKyAgICAgICAgICAgIGZt dF9iZWdpbiA9IGJlZ2luOworCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor CisgICAgICAgIGJlZ2luID0gdG1wOworICAgIH0KKworICAgIGF2X2JwcmludGYoJmZtdF9i cCwgIiVzIiwgZm10X2JlZ2luKTsKKyAgICBpZiAoIWF2X2JwcmludF9pc19jb21wbGV0ZSgm Zm10X2JwKSkgeworICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0dfV0FSTklORywgIkZvcm1h dCBzdHJpbmcgdHJ1bmNhdGVkIGF0ICV1LyV1LiIsIGZtdF9icC5zaXplLCBmbXRfYnAubGVu KTsKKyAgICB9CisKKyAgICBhdl9icHJpbnRfc3RyZnRpbWUoYnAsIGZtdF9icC5zdHIsICZ0 bSk7CisKKyAgICBhdl9icHJpbnRfZmluYWxpemUoJmZtdF9icCwgTlVMTCk7CisKICAgICBy ZXR1cm4gMDsKIH0KIAotLSAKMi4yMC4xIChBcHBsZSBHaXQtMTE3KQoK --------------xyNwLcJAeL3Mdy6kKPI7GPNL 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". --------------xyNwLcJAeL3Mdy6kKPI7GPNL--