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 657BD43596 for ; Fri, 17 Jun 2022 09:39:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E858868B895; Fri, 17 Jun 2022 12:39:52 +0300 (EEST) Received: from mail.acc.umu.se (unknown [130.239.18.156]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 14B1568B887 for ; Fri, 17 Jun 2022 12:39:46 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by amavisd-new (Postfix) with ESMTP id D469144DEC for ; Fri, 17 Jun 2022 11:39:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=acc.umu.se; s=mail1; t=1655458784; bh=tLv6TPLopVRWd8BgVE8gBplLgIn/HcxJLlxpg02/EKI=; h=Subject:From:To:Date:From; b=fAgSSYu73gmCEpZMg9tWbUsQxXi1ZSn19ASV9EJhDh+ODhnCydV2sSJ/8gg7stk6s IczxahRSm2gZVS+D8W4yH+eZl9XBc1xxusrBcpA68s4VUgpNbFN1V0P8iVJuYSx+T4 Ip7qO7XqRohYF5PxncJktvtuMeNUR9JZQcHUM0rho39C5zAExG79v7qPav8K0LJGZs B5oXb7vTYx+RR6eiuAeh6gM+u1cUD6Wpyg2MrGXXQf5T/MaIGf/3yfDAK54GrE2GIg 4rMlgscNO3q05UKwpbBxCTNzR8IAfWvLx0/2obbb/z64pZkQQVDoR1zOxfeWoerU/f AuPFL1kxs9A/Q== Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: tjoppen) by mail.acc.umu.se (Postfix) with ESMTPSA id E63A444DDA for ; Fri, 17 Jun 2022 11:39:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=acc.umu.se; s=mail1; t=1655458784; bh=tLv6TPLopVRWd8BgVE8gBplLgIn/HcxJLlxpg02/EKI=; h=Subject:From:To:Date:From; b=fAgSSYu73gmCEpZMg9tWbUsQxXi1ZSn19ASV9EJhDh+ODhnCydV2sSJ/8gg7stk6s IczxahRSm2gZVS+D8W4yH+eZl9XBc1xxusrBcpA68s4VUgpNbFN1V0P8iVJuYSx+T4 Ip7qO7XqRohYF5PxncJktvtuMeNUR9JZQcHUM0rho39C5zAExG79v7qPav8K0LJGZs B5oXb7vTYx+RR6eiuAeh6gM+u1cUD6Wpyg2MrGXXQf5T/MaIGf/3yfDAK54GrE2GIg 4rMlgscNO3q05UKwpbBxCTNzR8IAfWvLx0/2obbb/z64pZkQQVDoR1zOxfeWoerU/f AuPFL1kxs9A/Q== Message-ID: <368f137a159a728214b6bd4e72b6bdcc8ff80684.camel@acc.umu.se> From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Fri, 17 Jun 2022 11:39:43 +0200 Content-Type: multipart/mixed; boundary="=-y20q/s8FvQqUr8Fa54SH" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavu/mem: Add av_fast_recalloc(), formally verify *size 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: --=-y20q/s8FvQqUr8Fa54SH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit I think it's best to send this as a separate patch. I also took some time yesterday evening to formally verify the size computation because it relying on overflow irked me. Doing the same with av_fast_realloc() and av_fast_recalloc() themselves is rather more involved and probably requires a newer version of frama-c because 20.0 does not support verifying allocations. For the uninitiated the lemmas are there to help the provers along. The /*@ ... */ quote before compute_size() is its contract. I also now guarantee that av_fast_recalloc() sets *size to a multiple of elsize, and the size is also such a multiple except when nelem == 0. /Tomas --=-y20q/s8FvQqUr8Fa54SH Content-Disposition: attachment; filename="0001-lavu-mem-Add-av_fast_recalloc-formally-verify-size.patch" Content-Type: text/x-patch; name="0001-lavu-mem-Add-av_fast_recalloc-formally-verify-size.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2ZjA4ZDUwNGE2MDgxNGQxYWM1MGU2ZjIzN2UxNzY1ODU1YWIyNDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogVHVlLCAxNCBKdW4gMjAyMiAxMzozNToxOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIGxhdnUvbWVtOiBBZGQgYXZfZmFzdF9yZWNhbGxvYygpLCBmb3JtYWxseSB2ZXJp ZnkgKnNpemUKClVzaW5nIGZyYW1hLWMgdmVyc2lvbiAyMC4wIChDYWxjaXVtKToKZnJhbWEtYyAt Y3BwLWV4dHJhLWFyZ3M9Ii1JY29tcGF0L2F0b21pY3MvZ2NjIiAtd3AgLXdwLXJ0ZSAtd2Fybi11 bnNpZ25lZC1vdmVyZmxvdyAtd3AtcHJvdmVyIGFsdC1lcmdvLHozIC13cC1mY3QgY29tcHV0ZV9z aXplIGxpYmF2dXRpbC9tZW0uYwoKQnVtcCBtaW5vciB2ZXJzaW9uIGFuZCB1cGRhdGUgQ2hhbmdl bG9nIGFzIHdlbGwKLS0tCiBDaGFuZ2Vsb2cgICAgICAgICAgIHwgIDEgKwogbGliYXZ1dGlsL21l bS5jICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogbGliYXZ1dGlsL21lbS5oICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogbGliYXZ1dGlsL3ZlcnNpb24uaCB8ICAyICstCiA0IGZpbGVzIGNo YW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0No YW5nZWxvZyBiL0NoYW5nZWxvZwppbmRleCBlZjU4OTcwNWM0Li5mZjJmYzRlOWZjIDEwMDY0NAot LS0gYS9DaGFuZ2Vsb2cKKysrIGIvQ2hhbmdlbG9nCkBAIC0yMSw2ICsyMSw3IEBAIHZlcnNpb24g NS4xOgogLSBRT0kgaW1hZ2UgZm9ybWF0IHN1cHBvcnQKIC0gZmZwcm9iZSAtbyBvcHRpb24KIC0g dmlydHVhbGJhc3MgYXVkaW8gZmlsdGVyCistIGFkZGVkIGF2X2Zhc3RfcmVjYWxsb2MoKSB0byBs aWJhdnV0aWwKIAogCiB2ZXJzaW9uIDUuMDoKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9tZW0uYyBi L2xpYmF2dXRpbC9tZW0uYwppbmRleCBhMGM5YTQyODQ5Li43OGU1NGZhYmQxIDEwMDY0NAotLS0g YS9saWJhdnV0aWwvbWVtLmMKKysrIGIvbGliYXZ1dGlsL21lbS5jCkBAIC01MDIsNyArNTAyLDMw IEBAIHZvaWQgYXZfbWVtY3B5X2JhY2twdHIodWludDhfdCAqZHN0LCBpbnQgYmFjaywgaW50IGNu dCkKICAgICB9CiB9CiAKLXZvaWQgKmF2X2Zhc3RfcmVhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVk IGludCAqc2l6ZSwgc2l6ZV90IG1pbl9zaXplKQorLy9AIGxlbW1hIGZsb29yX21vZDogICBcZm9y YWxsIGludGVnZXIgeCwgeTsgeCA+PSAwICYmIHkgPj0gMSA9PT4gKCh4IC8geSkgKiB5KSAlIHkg PT0gMDsKKy8vQCBsZW1tYSBmbG9vcl9yYW5nZTogXGZvcmFsbCBpbnRlZ2VyIHgsIHksIHo7IHgg Pj0gMCAmJiB5ID49IDEgJiYgeiA+PSAwICYmIHggPD0geiA9PT4gKHggLyB5KSAqIHkgPD0gKHog LyB5KSAqIHk7CisKKy8qQAorICAgIHJlcXVpcmVzIG1pbl9zaXplIDw9IG1heF9zaXplICYmIGVs c2l6ZSA+PSAxICYmIG1pbl9zaXplICUgZWxzaXplID09IDA7CisgICAgZW5zdXJlcyBtb2Q6ICAg XHJlc3VsdCAlIGVsc2l6ZSA9PSAwOworICAgIGVuc3VyZXMgcmFuZ2U6IG1pbl9zaXplIDw9IFxy ZXN1bHQgPD0gbWF4X3NpemU7CisgICAgYXNzaWducyBcbm90aGluZzsKKyAqLworc3RhdGljIHNp emVfdCBjb21wdXRlX3NpemUoc2l6ZV90IG1pbl9zaXplLCBzaXplX3QgbWF4X3NpemUsIHNpemVf dCBlbHNpemUpCit7CisgICAgc2l6ZV90IGV4dHJhID0gbWluX3NpemUgLyAxNiArIDMyOworCisg ICAgLy8gYXZvaWQgdW5zaWduZWQgb3ZlcmZsb3cKKyAgICBpZiAobWluX3NpemUgPiBTSVpFX01B WCAtIGV4dHJhKQorICAgICAgICBtaW5fc2l6ZSA9IFNJWkVfTUFYOworICAgIGVsc2UKKyAgICAg ICAgbWluX3NpemUgPSBtaW5fc2l6ZSArIGV4dHJhOworCisgICAgbWluX3NpemUgPSBGRk1JTiht YXhfc2l6ZSwgbWluX3NpemUpOworICAgIHJldHVybiAobWluX3NpemUgLyBlbHNpemUpICogZWxz aXplOworfQorCitzdGF0aWMgdm9pZCAqcmVhbGxvY19pbm5lcih2b2lkICpwdHIsIHVuc2lnbmVk IGludCAqc2l6ZSwgc2l6ZV90IG1pbl9zaXplLCBzaXplX3QgZWxzaXplKQogewogICAgIHNpemVf dCBtYXhfc2l6ZTsKIApAQCAtNTE2LDcgKzUzOSw3IEBAIHZvaWQgKmF2X2Zhc3RfcmVhbGxvYyh2 b2lkICpwdHIsIHVuc2lnbmVkIGludCAqc2l6ZSwgc2l6ZV90IG1pbl9zaXplKQogICAgICAgICBy ZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBtaW5fc2l6ZSA9IEZGTUlOKG1heF9zaXplLCBGRk1B WChtaW5fc2l6ZSArIG1pbl9zaXplIC8gMTYgKyAzMiwgbWluX3NpemUpKTsKKyAgICBtaW5fc2l6 ZSA9IGNvbXB1dGVfc2l6ZShtaW5fc2l6ZSwgbWF4X3NpemUsIGVsc2l6ZSk7CiAKICAgICBwdHIg PSBhdl9yZWFsbG9jKHB0ciwgbWluX3NpemUpOwogICAgIC8qIHdlIGNvdWxkIHNldCB0aGlzIHRv IHRoZSB1bm1vZGlmaWVkIG1pbl9zaXplIGJ1dCB0aGlzIGlzIHNhZmVyCkBAIC01MzAsNiArNTUz LDM1IEBAIHZvaWQgKmF2X2Zhc3RfcmVhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVkIGludCAqc2l6 ZSwgc2l6ZV90IG1pbl9zaXplKQogICAgIHJldHVybiBwdHI7CiB9CiAKK3ZvaWQgKmF2X2Zhc3Rf cmVhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVkIGludCAqc2l6ZSwgc2l6ZV90IG1pbl9zaXplKQor eworICAgIHJldHVybiByZWFsbG9jX2lubmVyKHB0ciwgc2l6ZSwgbWluX3NpemUsIDEpOworfQor CitpbnQgYXZfZmFzdF9yZWNhbGxvYyh2b2lkICpwdHIsIHVuc2lnbmVkIGludCAqc2l6ZSwgc2l6 ZV90IG5lbGVtLCBzaXplX3QgZWxzaXplKQoreworICAgIHZvaWQgKnZhbDsKKyAgICB2b2lkICpu ZXdfcHRyOworICAgIHVuc2lnbmVkIGludCBuZXdfc2l6ZSA9ICpzaXplOworICAgIHNpemVfdCBw cm9kdWN0OworICAgIGludCByZXQ7CisgICAgbWVtY3B5KCZ2YWwsIHB0ciwgc2l6ZW9mKHZhbCkp OworCisgICAgaWYgKChyZXQgPSBhdl9zaXplX211bHQobmVsZW0sIGVsc2l6ZSwgJnByb2R1Y3Qp KSA8IDApCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICBpZiAoIShuZXdfcHRyID0gcmVhbGxv Y19pbm5lcih2YWwsICZuZXdfc2l6ZSwgcHJvZHVjdCwgZWxzaXplKSkpCisgICAgICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBpZiAobmV3X3NpemUgPiAqc2l6ZSkgeworICAgICAg ICBtZW1zZXQoKHVpbnQ4X3QqKW5ld19wdHIgKyAqc2l6ZSwgMCwgbmV3X3NpemUgLSAqc2l6ZSk7 CisgICAgICAgICpzaXplID0gbmV3X3NpemU7CisgICAgICAgIG1lbWNweShwdHIsICZuZXdfcHRy LCBzaXplb2YobmV3X3B0cikpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMg aW5saW5lIHZvaWQgZmFzdF9tYWxsb2Modm9pZCAqcHRyLCB1bnNpZ25lZCBpbnQgKnNpemUsIHNp emVfdCBtaW5fc2l6ZSwgaW50IHplcm9fcmVhbGxvYykKIHsKICAgICBzaXplX3QgbWF4X3NpemU7 CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvbWVtLmggYi9saWJhdnV0aWwvbWVtLmgKaW5kZXggZDkx MTc0MTk2Yy4uYzJjN2M3MjY2YSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL21lbS5oCisrKyBiL2xp YmF2dXRpbC9tZW0uaApAQCAtMzgwLDYgKzM4MCw2MiBAQCBpbnQgYXZfcmVhbGxvY3BfYXJyYXko dm9pZCAqcHRyLCBzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplKTsKICAqLwogdm9pZCAqYXZfZmFz dF9yZWFsbG9jKHZvaWQgKnB0ciwgdW5zaWduZWQgaW50ICpzaXplLCBzaXplX3QgbWluX3NpemUp OwogCisvKioKKyAqIFJlYWxsb2NhdGUgdGhlIHBvaW50ZWQtdG8gYnVmZmVyIGlmIGl0IGlzIG5v dCBsYXJnZSBlbm91Z2gsIG90aGVyd2lzZSBkbworICogbm90aGluZy4gT2xkIGRhdGEgaXMgbWVt Y3B5KCknZCB0byB0aGUgc3RhcnQgb2YgdGhlIG5ldyBidWZmZXIuIFRoZSBuZXdseQorICogYWxs b2NhdGVkIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBpcyB6ZXJvLWluaXRpYWxpemVk LiBJbiBvdGhlcgorICogd29yZHMgdGhlIGJ1ZmZlciBpcyBleHBhbmRlZCB3aXRoIHplcm9lcyB3 aGVuIG5lY2Vzc2FyeS4gVGhlIHNpemUgb2YgdGhlCisgKiBuZXcgYnVmZmVyIG1heSBiZSBsYXJn ZXIgdGhhbiB3aGF0IGlzIHJlcXVlc3RlZCwgYnV0IG5ldmVyIHNtYWxsZXIuCisgKgorICogSWYg dGhlIHBvaW50ZWQtdG8gYnVmZmVyIGlzIGBOVUxMYCwgdGhlbiBhIG5ldyB6ZXJvLWluaXRpYWxp emVkIGJ1ZmZlciBpcworICogYWxsb2NhdGVkLgorICoKKyAqIElmIHRoZSBwb2ludGVkLXRvIGJ1 ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCBhbmQgcmVhbGxvY2F0aW9uIGZhaWxzLAorICogYEFW RVJST1IoRU5PTUVNKWAgaXMgcmV0dXJuZWQuCisgKgorICogSWYgbmVsZW0qZWxzaXplIGlzIHRv byBsYXJnZSB0aGVuIGBBVkVSUk9SKEVJTlZBTClgIGlzIHJldHVybmVkLgorICoKKyAqIENvbnRy YXJ5IHRvIGF2X2Zhc3RfbWFsbG9jKCksICpwdHIgYW5kICpzaXplIGFyZSBub3QgdG91Y2hlZCBp biBjYXNlIG9mCisgKiBlcnJvciwgdG8gYWxsb3cgZm9yIHByb3BlciBjbGVhbnVwLgorICoKKyAq IE9uIHN1Y2Nlc3MgKnNpemUgaXMgZ3VhcmFudGVlZCB0byBiZSBhIG11bHRpcGxlIG9mIGVsc2l6 ZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ugd2l0aCBhcnJheXMg b2Ygc3RydWN0dXJlcyB0aGF0IGNvbnRhaW4KKyAqIHBvaW50ZXJzIHRoYXQgYXJlIGFsbG93ZWQg dG8gZ3JvdyBhbmQgdHlwaWNhbGx5IGRvbid0IHNocmluay4KKyAqCisgKiBBIHR5cGljYWwgdXNl IHBhdHRlcm4gZm9sbG93czoKKyAqCisgKiBAY29kZXsuY30KKyAqIGludCBmb29fd29yayhTb21l Q29udGV4dCAqcykgeworICogICAgIGlmIChhdl9mYXN0X3JlY2FsbG9jKCZzLT5mb28sICZzLT5m b29fc2l6ZSwgcy0+bmZvbywgc2l6ZW9mKEZvbykpKQorICogICAgICAgICByZXR1cm4gQVZFUlJP UihFTk9NRU0pOworICogICAgIGZvciAoeCA9IDA7IHggPCBzLT5uZm9vOyB4KyspCisgKiAgICAg ICAgIGRvIHN0dWZmIHdpdGggcy0+Zm9vW3hdCisgKiAgICAgcmV0dXJuIDA7CisgKiB9CisgKgor ICogdm9pZCBmb29fY2xvc2UoU29tZUNvbnRleHQgKnMpIHsKKyAqICAgICAvLyBub3RlIHRoZSB1 c2Ugb2Ygcy0+Zm9vX3NpemUsIG5vdCBzLT5uZm9vCisgKiAgICAgZm9yICh4ID0gMDsgeCA8IHMt PmZvb19zaXplL3NpemVvZihGb28pOyB4KyspCisgKiAgICAgICAgIGF2X2ZyZWVwKCZzLT5mb29b eF0uYmFyKTsKKyAqICAgICBhdl9mcmVlcCgmcy0+Zm9vKTsKKyAqIH0KKyAqIEBlbmRjb2RlCisg KgorICogQHBhcmFtW2luLG91dF0gcHRyICAgICAgUG9pbnRlciB0byBwb2ludGVyIHRvIGFuIGFs cmVhZHkgYWxsb2NhdGVkIGJ1ZmZlci4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIGAqcHRy YCB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGggcG9pbnRlciB0byBuZXcKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgIGJ1ZmZlciBvbiBzdWNjZXNzIGFuZCB3aWxsIGJlIGxlZnQgYWxvbmUgb24g ZmFpbHVyZQorICogQHBhcmFtW2luLG91dF0gc2l6ZSAgICAgUG9pbnRlciB0byB0aGUgc2l6ZSBv ZiBidWZmZXIgYCpwdHJgLiBgKnNpemVgIGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICB1 cGRhdGVkIHRvIHRoZSBuZXcgYWxsb2NhdGVkIHNpemUgYW5kIHdpbGwgYmUgbGVmdAorICogICAg ICAgICAgICAgICAgICAgICAgICAgYWxvbmcgb24gZmFpbHVyZS4KKyAqIEBwYXJhbVtpbl0gICAg IG5lbGVtICAgIE51bWJlciBvZiBkZXNpcmVkIGVsZW1lbnRzIGluICpwdHIKKyAqIEBwYXJhbVtp bl0gICAgIGVsc2l6ZSAgIFNpemUgb2YgZWFjaCBlbGVtZW50IGluICpwdHIKKyAqIEByZXR1cm4g WmVybyBvbiBzdWNjZXNzLCA8MCBvbiBlcnJvci4KKyAqIEBzZWUgYXZfZmFzdF9yZWFsbG9jKCkK KyAqIEBzZWUgYXZfZmFzdF9tYWxsb2MoKQorICovCitpbnQgYXZfZmFzdF9yZWNhbGxvYyh2b2lk ICpwdHIsIHVuc2lnbmVkIGludCAqc2l6ZSwgc2l6ZV90IG5lbGVtLCBzaXplX3QgZWxzaXplKTsK KwogLyoqCiAgKiBBbGxvY2F0ZSBhIGJ1ZmZlciwgcmV1c2luZyB0aGUgZ2l2ZW4gb25lIGlmIGxh cmdlIGVub3VnaC4KICAqCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdmVyc2lvbi5oIGIvbGliYXZ1 dGlsL3ZlcnNpb24uaAppbmRleCAyZTllMDJkZGE4Li44NzE3OGU5ZTlhIDEwMDY0NAotLS0gYS9s aWJhdnV0aWwvdmVyc2lvbi5oCisrKyBiL2xpYmF2dXRpbC92ZXJzaW9uLmgKQEAgLTc5LDcgKzc5 LDcgQEAKICAqLwogCiAjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01BSk9SICA1NwotI2RlZmlu ZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUiAgMjcKKyNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05f TUlOT1IgIDI4CiAjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JQ1JPIDEwMAogCiAjZGVmaW5l IExJQkFWVVRJTF9WRVJTSU9OX0lOVCAgIEFWX1ZFUlNJT05fSU5UKExJQkFWVVRJTF9WRVJTSU9O X01BSk9SLCBcCi0tIAoyLjMwLjIKCg== --=-y20q/s8FvQqUr8Fa54SH 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". --=-y20q/s8FvQqUr8Fa54SH--