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 A564C4496A for ; Wed, 28 Sep 2022 10:06:47 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CE16268BC34; Wed, 28 Sep 2022 13:06:45 +0300 (EEST) Received: from mail.frobbit.se (mail.frobbit.se [85.30.129.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BF38768B58D for ; Wed, 28 Sep 2022 13:06:39 +0300 (EEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) by mail.frobbit.se (Postfix) with ESMTPSA id 3E5E9216E4 for ; Wed, 28 Sep 2022 12:06:39 +0200 (CEST) Message-ID: <9e78ef32ebe31cebd72f0ef31a42892ccb9017ab.camel@haerdin.se> From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Wed, 28 Sep 2022 12:06:38 +0200 In-Reply-To: <65e79fe701374868bb2f4b70ce8fd220938e2e86.camel@haerdin.se> References: <65e79fe701374868bb2f4b70ce8fd220938e2e86.camel@haerdin.se> Content-Type: multipart/mixed; boundary="=-Shggl3KooN/qEb2rPX1w" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/11] lavc/jpeg2000*: Use av_realloc_array_reuse() and av_reallocz_array_reuse() to eliminate lots of allocations 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: --=-Shggl3KooN/qEb2rPX1w Content-Type: text/plain Content-Transfer-Encoding: 7bit --=-Shggl3KooN/qEb2rPX1w Content-Disposition: attachment; filename*0=0005-lavc-jpeg2000-Use-av_realloc_array_reuse-and-av_real.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0005-lavc-jpeg2000-Use-av_realloc_array_reuse-and-av_real.patch"; charset="UTF-8" RnJvbSA1YTU5ODZjMjlkNjI5MzNmM2YyY2QyMjU5YmVjYjc2M2YzNzE5ZWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogTW9uLCAxMyBKdW4gMjAyMiAxNzowNDoxMCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDUvMTFdIGxhdmMvanBlZzIwMDAqOiBVc2UgYXZfcmVhbGxvY19hcnJheV9yZXVz ZSgpIGFuZAogYXZfcmVhbGxvY3pfYXJyYXlfcmV1c2UoKSB0byBlbGltaW5hdGUgbG90cyBvZiBh bGxvY2F0aW9ucwoKLS0tCiBsaWJhdmNvZGVjL2pwZWcyMDAwLmMgICAgfCA3OSArKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWJhdmNvZGVjL2pwZWcyMDAwLmggICAg fCAxMCArKysrKwogbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jIHwgNDggKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCiBsaWJhdmNvZGVjL2pwZWcyMDAwZHd0LmMgfCAgOSArKysrLQogbGliYXZjb2Rl Yy9qcGVnMjAwMGR3dC5oIHwgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCsp LCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcyMDAwLmMgYi9s aWJhdmNvZGVjL2pwZWcyMDAwLmMKaW5kZXggOTQ1Yjc4NzU2NS4uYWZmZjk4MDllNCAxMDA2NDQK LS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMC5jCisrKyBiL2xpYmF2Y29kZWMvanBlZzIwMDAuYwpA QCAtNTIsMTcgKzUyLDIzIEBAIHN0YXRpYyBpbnQzMl90IHRhZ190cmVlX3NpemUoaW50IHcsIGlu dCBoKQogfQogCiAvKiBhbGxvY2F0ZSB0aGUgbWVtb3J5IGZvciB0YWcgdHJlZSAqLwotc3RhdGlj IEpwZWcyMDAwVGd0Tm9kZSAqZmZfanBlZzIwMDBfdGFnX3RyZWVfaW5pdChpbnQgdywgaW50IGgp CitzdGF0aWMgaW50IGZmX2pwZWcyMDAwX3RhZ190cmVlX2luaXQoSnBlZzIwMDBUZ3ROb2RlICoq b2xkLCB1bnNpZ25lZCBpbnQgKnNpemUsIGludCB3LCBpbnQgaCkKIHsKICAgICBpbnQgcHcgPSB3 LCBwaCA9IGg7Ci0gICAgSnBlZzIwMDBUZ3ROb2RlICpyZXMsICp0LCAqdDI7CisgICAgSnBlZzIw MDBUZ3ROb2RlICp0LCAqdDI7CiAgICAgaW50MzJfdCB0dF9zaXplOworICAgIHNpemVfdCBwcm9k OwogCiAgICAgdHRfc2l6ZSA9IHRhZ190cmVlX3NpemUodywgaCk7CiAKLSAgICB0ID0gcmVzID0g YXZfY2FsbG9jKHR0X3NpemUsIHNpemVvZigqdCkpOwotICAgIGlmICghcmVzKQotICAgICAgICBy ZXR1cm4gTlVMTDsKKyAgICBpZiAoYXZfc2l6ZV9tdWx0KHR0X3NpemUsIHNpemVvZigqdCksICZw cm9kKSkKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIGF2X2Zhc3RfbWFs bG9jKG9sZCwgc2l6ZSwgcHJvZCk7CisgICAgaWYgKCEqb2xkKQorICAgICAgICByZXR1cm4gQVZF UlJPUihFTk9NRU0pOworICAgIHQgPSAqb2xkOworICAgIG1lbXNldCgqb2xkLCAwLCBwcm9kKTsK IAogICAgIHdoaWxlICh3ID4gMSB8fCBoID4gMSkgewogICAgICAgICBpbnQgaSwgajsKQEAgLTgw LDcgKzg2LDcgQEAgc3RhdGljIEpwZWcyMDAwVGd0Tm9kZSAqZmZfanBlZzIwMDBfdGFnX3RyZWVf aW5pdChpbnQgdywgaW50IGgpCiAgICAgICAgIHQgPSB0MjsKICAgICB9CiAgICAgdFswXS5wYXJl bnQgPSBOVUxMOwotICAgIHJldHVybiByZXM7CisgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQgZmZf dGFnX3RyZWVfemVybyhKcGVnMjAwMFRndE5vZGUgKnQsIGludCB3LCBpbnQgaCwgaW50IHZhbCkK QEAgLTI3OCw3ICsyODQsNyBAQCBzdGF0aWMgaW50IGluaXRfcHJlYyhBVkNvZGVjQ29udGV4dCAq YXZjdHgsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgbG9nMl9iYW5kX3ByZWNfaGVpZ2h0KQog ewogICAgIEpwZWcyMDAwUHJlYyAqcHJlYyA9IGJhbmQtPnByZWMgKyBwcmVjbm87Ci0gICAgaW50 IG5iX2NvZGVibG9ja3MsIGNibGtubzsKKyAgICBpbnQgbmJfY29kZWJsb2NrcywgY2Jsa25vLCBy ZXQ7CiAKICAgICBwcmVjLT5kZWNvZGVkX2xheWVycyA9IDA7CiAKQEAgLTMxNiwyNSArMzIyLDIy IEBAIHN0YXRpYyBpbnQgaW5pdF9wcmVjKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKIAogCiAgICAg LyogVGFnIHRyZWVzIGluaXRpYWxpemF0aW9uICovCi0gICAgcHJlYy0+Y2Jsa2luY2wgPQotICAg ICAgICBmZl9qcGVnMjAwMF90YWdfdHJlZV9pbml0KHByZWMtPm5iX2NvZGVibG9ja3Nfd2lkdGgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlYy0+bmJfY29kZWJsb2Nrc19o ZWlnaHQpOwotICAgIGlmICghcHJlYy0+Y2Jsa2luY2wpCi0gICAgICAgIHJldHVybiBBVkVSUk9S KEVOT01FTSk7Ci0KLSAgICBwcmVjLT56ZXJvYml0cyA9Ci0gICAgICAgIGZmX2pwZWcyMDAwX3Rh Z190cmVlX2luaXQocHJlYy0+bmJfY29kZWJsb2Nrc193aWR0aCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcmVjLT5uYl9jb2RlYmxvY2tzX2hlaWdodCk7Ci0gICAgaWYgKCFw cmVjLT56ZXJvYml0cykKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICBpZiAo KHJldCA9IGZmX2pwZWcyMDAwX3RhZ190cmVlX2luaXQoJnByZWMtPmNibGtpbmNsLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJlYy0+Y2Jsa2luY2xfc2l6ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlYy0+bmJfY29kZWJs b2Nrc193aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl Yy0+bmJfY29kZWJsb2Nrc19oZWlnaHQpKSA8IDAgfHwKKyAgICAgICAgKHJldCA9IGZmX2pwZWcy MDAwX3RhZ190cmVlX2luaXQoJnByZWMtPnplcm9iaXRzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcHJlYy0+emVyb2JpdHNfc2l6ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlYy0+bmJfY29kZWJsb2Nrc193aWR0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlYy0+bmJfY29kZWJsb2Nr c19oZWlnaHQpKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7CiAKICAgICBpZiAocHJlYy0+bmJf Y29kZWJsb2Nrc193aWR0aCAqICh1aW50NjRfdClwcmVjLT5uYl9jb2RlYmxvY2tzX2hlaWdodCA+ IElOVF9NQVgpIHsKICAgICAgICAgcHJlYy0+Y2JsayA9IE5VTEw7CiAgICAgICAgIHJldHVybiBB VkVSUk9SKEVOT01FTSk7CiAgICAgfQogICAgIG5iX2NvZGVibG9ja3MgPSBwcmVjLT5uYl9jb2Rl YmxvY2tzX3dpZHRoICogcHJlYy0+bmJfY29kZWJsb2Nrc19oZWlnaHQ7Ci0gICAgcHJlYy0+Y2Js ayA9IGF2X2NhbGxvYyhuYl9jb2RlYmxvY2tzLCBzaXplb2YoKnByZWMtPmNibGspKTsKLSAgICBp ZiAoIXByZWMtPmNibGspCisgICAgaWYgKGF2X3JlYWxsb2N6X2FycmF5X3JldXNlKCZwcmVjLT5j YmxrLCAmcHJlYy0+Y2Jsa19hbGxvY2F0ZWQsIG5iX2NvZGVibG9ja3MsIElOVF9NQVgsIHNpemVv ZigqcHJlYy0+Y2JsaykpKQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogICAgIGZv ciAoY2Jsa25vID0gMDsgY2Jsa25vIDwgbmJfY29kZWJsb2NrczsgY2Jsa25vKyspIHsKICAgICAg ICAgSnBlZzIwMDBDYmxrICpjYmxrID0gcHJlYy0+Y2JsayArIGNibGtubzsKQEAgLTM3Niw2ICsz NzksNyBAQCBzdGF0aWMgaW50IGluaXRfcHJlYyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCiAgICAg ICAgIGNibGstPmxlbmd0aCAgICA9IDA7CiAgICAgICAgIGNibGstPm5wYXNzZXMgICA9IDA7CiAg ICAgICAgIGlmIChhdl9jb2RlY19pc19lbmNvZGVyKGF2Y3R4LT5jb2RlYykpIHsKKyAgICAgICAg ICAgIGF2X2ZyZWVwKCZjYmxrLT5sYXllcnMpOwogICAgICAgICAgICAgY2Jsay0+bGF5ZXJzID0g YXZfY2FsbG9jKGNvZHN0eS0+bmxheWVycywgc2l6ZW9mKCpjYmxrLT5sYXllcnMpKTsKICAgICAg ICAgICAgIGlmICghY2Jsay0+bGF5ZXJzKQogICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9S KEVOT01FTSk7CkBAIC00NDgsOCArNDUyLDcgQEAgc3RhdGljIGludCBpbml0X2JhbmQoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LAogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogICAgIH0K ICAgICBuYl9wcmVjaW5jdHMgPSByZXNsZXZlbC0+bnVtX3ByZWNpbmN0c194ICogcmVzbGV2ZWwt Pm51bV9wcmVjaW5jdHNfeTsKLSAgICBiYW5kLT5wcmVjID0gYXZfY2FsbG9jKG5iX3ByZWNpbmN0 cywgc2l6ZW9mKCpiYW5kLT5wcmVjKSk7Ci0gICAgaWYgKCFiYW5kLT5wcmVjKQorICAgIGlmIChh dl9yZWFsbG9jel9hcnJheV9yZXVzZSgmYmFuZC0+cHJlYywgJmJhbmQtPnByZWNfYWxsb2NhdGVk LCBuYl9wcmVjaW5jdHMsIElOVF9NQVgsIHNpemVvZigqYmFuZC0+cHJlYykpKQogICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogCiAgICAgZm9yIChwcmVjbm8gPSAwOyBwcmVjbm8gPCBu Yl9wcmVjaW5jdHM7IHByZWNubysrKSB7CkBAIC00NzEsNiArNDc0LDcgQEAgaW50IGZmX2pwZWcy MDAwX2luaXRfY29tcG9uZW50KEpwZWcyMDAwQ29tcG9uZW50ICpjb21wLAogewogICAgIGludCBy ZXNsZXZlbG5vLCBiYW5kbm8sIGdiYW5kbm8gPSAwLCByZXQsIGksIGo7CiAgICAgdWludDMyX3Qg Y3NpemU7CisgICAgc2l6ZV90IHByb2Q7CiAKICAgICBpZiAoY29kc3R5LT5ucmVzbGV2ZWxzMmRl Y29kZSA8PSAwKSB7CiAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAibnJlc2xl dmVsczJkZWNvZGUgJWQgaW52YWxpZCBvciB1bmluaXRpYWxpemVkXG4iLCBjb2RzdHktPm5yZXNs ZXZlbHMyZGVjb2RlKTsKQEAgLTQ5NiwxOSArNTAwLDIyIEBAIGludCBmZl9qcGVnMjAwMF9pbml0 X2NvbXBvbmVudChKcGVnMjAwMENvbXBvbmVudCAqY29tcCwKIAogICAgIGlmIChjb2RzdHktPnRy YW5zZm9ybSA9PSBGRl9EV1Q5NykgewogICAgICAgICBjc2l6ZSArPSBBVl9JTlBVVF9CVUZGRVJf UEFERElOR19TSVpFIC8gc2l6ZW9mKCpjb21wLT5mX2RhdGEpOwotICAgICAgICBjb21wLT5pX2Rh dGEgPSBOVUxMOwotICAgICAgICBjb21wLT5mX2RhdGEgPSBhdl9jYWxsb2MoY3NpemUsIHNpemVv ZigqY29tcC0+Zl9kYXRhKSk7CisgICAgICAgIGlmIChhdl9zaXplX211bHQoY3NpemUsIHNpemVv ZigqY29tcC0+Zl9kYXRhKSwgJnByb2QpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5P TUVNKTsKKyAgICAgICAgYXZfZmFzdF9tYWxsb2MoJmNvbXAtPmZfZGF0YSwgJmNvbXAtPmZfZGF0 YV9zaXplLCBwcm9kKTsKICAgICAgICAgaWYgKCFjb21wLT5mX2RhdGEpCiAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgICAgICBtZW1zZXQoY29tcC0+Zl9kYXRhLCAwLCBw cm9kKTsKICAgICB9IGVsc2UgewogICAgICAgICBjc2l6ZSArPSBBVl9JTlBVVF9CVUZGRVJfUEFE RElOR19TSVpFIC8gc2l6ZW9mKCpjb21wLT5pX2RhdGEpOwotICAgICAgICBjb21wLT5mX2RhdGEg PSBOVUxMOwotICAgICAgICBjb21wLT5pX2RhdGEgPSBhdl9jYWxsb2MoY3NpemUsIHNpemVvZigq Y29tcC0+aV9kYXRhKSk7CisgICAgICAgIGlmIChhdl9zaXplX211bHQoY3NpemUsIHNpemVvZigq Y29tcC0+aV9kYXRhKSwgJnByb2QpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVN KTsKKyAgICAgICAgYXZfZmFzdF9tYWxsb2MoJmNvbXAtPmlfZGF0YSwgJmNvbXAtPmlfZGF0YV9z aXplLCBwcm9kKTsKICAgICAgICAgaWYgKCFjb21wLT5pX2RhdGEpCiAgICAgICAgICAgICByZXR1 cm4gQVZFUlJPUihFTk9NRU0pOworICAgICAgICBtZW1zZXQoY29tcC0+aV9kYXRhLCAwLCBwcm9k KTsKICAgICB9Ci0gICAgY29tcC0+cmVzbGV2ZWwgPSBhdl9jYWxsb2MoY29kc3R5LT5ucmVzbGV2 ZWxzLCBzaXplb2YoKmNvbXAtPnJlc2xldmVsKSk7Ci0gICAgaWYgKCFjb21wLT5yZXNsZXZlbCkK KyAgICBpZiAoYXZfcmVhbGxvY3pfYXJyYXlfcmV1c2UoJmNvbXAtPnJlc2xldmVsLCAmY29tcC0+ cmVzbGV2ZWxfYWxsb2NhdGVkLCBjb2RzdHktPm5yZXNsZXZlbHMsIElOVF9NQVgsIHNpemVvZigq Y29tcC0+cmVzbGV2ZWwpKSkKICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKICAgICAv KiBMT09QIG9uIHJlc29sdXRpb24gbGV2ZWxzICovCiAgICAgZm9yIChyZXNsZXZlbG5vID0gMDsg cmVzbGV2ZWxubyA8IGNvZHN0eS0+bnJlc2xldmVsczsgcmVzbGV2ZWxubysrKSB7CkBAIC01NTUs OCArNTYyLDcgQEAgaW50IGZmX2pwZWcyMDAwX2luaXRfY29tcG9uZW50KEpwZWcyMDAwQ29tcG9u ZW50ICpjb21wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2xl dmVsLT5sb2cyX3ByZWNfaGVpZ2h0KSAtCiAgICAgICAgICAgICAgICAgKHJlc2xldmVsLT5jb29y ZFsxXVswXSA+PiByZXNsZXZlbC0+bG9nMl9wcmVjX2hlaWdodCk7CiAKLSAgICAgICAgcmVzbGV2 ZWwtPmJhbmQgPSBhdl9jYWxsb2MocmVzbGV2ZWwtPm5iYW5kcywgc2l6ZW9mKCpyZXNsZXZlbC0+ YmFuZCkpOwotICAgICAgICBpZiAoIXJlc2xldmVsLT5iYW5kKQorICAgICAgICBpZiAoYXZfcmVh bGxvY3pfYXJyYXlfcmV1c2UoJnJlc2xldmVsLT5iYW5kLCAmcmVzbGV2ZWwtPmJhbmRfYWxsb2Nh dGVkLCByZXNsZXZlbC0+bmJhbmRzLCBJTlRfTUFYLCBzaXplb2YoKnJlc2xldmVsLT5iYW5kKSkp CiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogCiAgICAgICAgIGlmIChyZXNs ZXZlbC0+bnVtX3ByZWNpbmN0c194ICogKHVpbnQ2NF90KXJlc2xldmVsLT5udW1fcHJlY2luY3Rz X3kgKiByZXNsZXZlbC0+bmJhbmRzID4gYXZjdHgtPm1heF9waXhlbHMgLyBzaXplb2YoKnJlc2xl dmVsLT5iYW5kLT5wcmVjKSkKQEAgLTU5Nyw5ICs2MDMsOSBAQCB2b2lkIGZmX2pwZWcyMDAwX3Jl aW5pdChKcGVnMjAwMENvbXBvbmVudCAqY29tcCwgSnBlZzIwMDBDb2RpbmdTdHlsZSAqY29kc3R5 KQogCiB2b2lkIGZmX2pwZWcyMDAwX2NsZWFudXAoSnBlZzIwMDBDb21wb25lbnQgKmNvbXAsIEpw ZWcyMDAwQ29kaW5nU3R5bGUgKmNvZHN0eSkKIHsKLSAgICBpbnQgcmVzbGV2ZWxubywgYmFuZG5v LCBwcmVjbm87CisgICAgc2l6ZV90IHJlc2xldmVsbm8sIGJhbmRubywgcHJlY25vOwogICAgIGZv ciAocmVzbGV2ZWxubyA9IDA7Ci0gICAgICAgICBjb21wLT5yZXNsZXZlbCAmJiByZXNsZXZlbG5v IDwgY29kc3R5LT5ucmVzbGV2ZWxzOworICAgICAgICAgY29tcC0+cmVzbGV2ZWwgJiYgcmVzbGV2 ZWxubyA8IGNvbXAtPnJlc2xldmVsX2FsbG9jYXRlZDsKICAgICAgICAgIHJlc2xldmVsbm8rKykg ewogICAgICAgICBKcGVnMjAwMFJlc0xldmVsICpyZXNsZXZlbDsKIApAQCAtNjA3LDIzICs2MTMs MjAgQEAgdm9pZCBmZl9qcGVnMjAwMF9jbGVhbnVwKEpwZWcyMDAwQ29tcG9uZW50ICpjb21wLCBK cGVnMjAwMENvZGluZ1N0eWxlICpjb2RzdHkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg ICAgICByZXNsZXZlbCA9IGNvbXAtPnJlc2xldmVsICsgcmVzbGV2ZWxubzsKLSAgICAgICAgZm9y IChiYW5kbm8gPSAwOyBiYW5kbm8gPCByZXNsZXZlbC0+bmJhbmRzOyBiYW5kbm8rKykgeworICAg ICAgICBmb3IgKGJhbmRubyA9IDA7IGJhbmRubyA8IHJlc2xldmVsLT5iYW5kX2FsbG9jYXRlZDsg YmFuZG5vKyspIHsKICAgICAgICAgICAgIEpwZWcyMDAwQmFuZCAqYmFuZDsKIAogICAgICAgICAg ICAgaWYgKCFyZXNsZXZlbC0+YmFuZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg ICAgICAgICAgYmFuZCA9IHJlc2xldmVsLT5iYW5kICsgYmFuZG5vOwotICAgICAgICAgICAgZm9y IChwcmVjbm8gPSAwOyBwcmVjbm8gPCByZXNsZXZlbC0+bnVtX3ByZWNpbmN0c194ICogcmVzbGV2 ZWwtPm51bV9wcmVjaW5jdHNfeTsgcHJlY25vKyspIHsKKyAgICAgICAgICAgIGZvciAocHJlY25v ID0gMDsgcHJlY25vIDwgYmFuZC0+cHJlY19hbGxvY2F0ZWQ7IHByZWNubysrKSB7CiAgICAgICAg ICAgICAgICAgaWYgKGJhbmQtPnByZWMpIHsKICAgICAgICAgICAgICAgICAgICAgSnBlZzIwMDBQ cmVjICpwcmVjID0gYmFuZC0+cHJlYyArIHByZWNubzsKLSAgICAgICAgICAgICAgICAgICAgaW50 IG5iX2NvZGVfYmxvY2tzID0gcHJlYy0+bmJfY29kZWJsb2Nrc19oZWlnaHQgKiBwcmVjLT5uYl9j b2RlYmxvY2tzX3dpZHRoOwotCiAgICAgICAgICAgICAgICAgICAgIGF2X2ZyZWVwKCZwcmVjLT56 ZXJvYml0cyk7CiAgICAgICAgICAgICAgICAgICAgIGF2X2ZyZWVwKCZwcmVjLT5jYmxraW5jbCk7 CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVjLT5jYmxrKSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICBpbnQgY2Jsa25vOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjYmxrbm8g PSAwOyBjYmxrbm8gPCBuYl9jb2RlX2Jsb2NrczsgY2Jsa25vICsrKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgKHNpemVfdCBjYmxrbm8gPSAwOyBjYmxrbm8gPCBwcmVjLT5jYmxrX2Fs bG9jYXRlZDsgY2Jsa25vICsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSnBlZzIw MDBDYmxrICpjYmxrID0gJnByZWMtPmNibGtbY2Jsa25vXTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhdl9mcmVlcCgmY2Jsay0+ZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXZfZnJlZXAoJmNibGstPnBhc3Nlcyk7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcy MDAwLmggYi9saWJhdmNvZGVjL2pwZWcyMDAwLmgKaW5kZXggMzg5ODEzYTliOS4uNjU5NGQ4ZTVj YiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMC5oCisrKyBiL2xpYmF2Y29kZWMvanBl ZzIwMDAuaApAQCAtMTc5LDYgKzE3OSw3IEBAIHR5cGVkZWYgc3RydWN0IEpwZWcyMDAwQ2JsayB7 CiAgICAgdWludDhfdCBpbmNsOwogICAgIHVpbnQxNl90IGxlbmd0aDsKICAgICB1aW50MTZfdCAq bGVuZ3RoaW5jOworICAgIHNpemVfdCBsZW5ndGhpbmNfYWxsb2NhdGVkOwogICAgIHVpbnQ4X3Qg bmJfbGVuZ3RoaW5jOwogICAgIHVpbnQ4X3QgbGJsb2NrOwogICAgIHVpbnQ4X3QgKmRhdGE7CkBA IC0xODYsNiArMTg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnBlZzIwMDBDYmxrIHsKICAgICBpbnQg bmJfdGVybWluYXRpb25zOwogICAgIGludCBuYl90ZXJtaW5hdGlvbnNpbmM7CiAgICAgaW50ICpk YXRhX3N0YXJ0OworICAgIHNpemVfdCBkYXRhX3N0YXJ0X2FsbG9jYXRlZDsKICAgICBKcGVnMjAw MFBhc3MgKnBhc3NlczsKICAgICBKcGVnMjAwMExheWVyICpsYXllcnM7CiAgICAgaW50IGNvb3Jk WzJdWzJdOyAvLyBib3JkZXIgY29vcmRpbmF0ZXMge3t4MCwgeDF9LCB7eTAsIHkxfX0KQEAgLTE5 NSw4ICsxOTcsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgSnBlZzIwMDBQcmVjIHsKICAgICBpbnQgbmJf Y29kZWJsb2Nrc193aWR0aDsKICAgICBpbnQgbmJfY29kZWJsb2Nrc19oZWlnaHQ7CiAgICAgSnBl ZzIwMDBUZ3ROb2RlICp6ZXJvYml0czsKKyAgICB1bnNpZ25lZCBpbnQgemVyb2JpdHNfc2l6ZTsK ICAgICBKcGVnMjAwMFRndE5vZGUgKmNibGtpbmNsOworICAgIHVuc2lnbmVkIGludCBjYmxraW5j bF9zaXplOwogICAgIEpwZWcyMDAwQ2JsayAqY2JsazsKKyAgICBzaXplX3QgY2Jsa19hbGxvY2F0 ZWQ7CiAgICAgaW50IGRlY29kZWRfbGF5ZXJzOwogICAgIGludCBjb29yZFsyXVsyXTsgLy8gYm9y ZGVyIGNvb3JkaW5hdGVzIHt7eDAsIHgxfSwge3kwLCB5MX19CiB9IEpwZWcyMDAwUHJlYzsgLy8g cHJlY2luY3QKQEAgLTIwNyw2ICsyMTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBKcGVnMjAwMEJhbmQg ewogICAgIGludCBpX3N0ZXBzaXplOyAvLyBxdWFudGl6YXRpb24gc3RlcHNpemUKICAgICBmbG9h dCBmX3N0ZXBzaXplOyAvLyBxdWFudGl6YXRpb24gc3RlcHNpemUKICAgICBKcGVnMjAwMFByZWMg KnByZWM7CisgICAgc2l6ZV90IHByZWNfYWxsb2NhdGVkOwogfSBKcGVnMjAwMEJhbmQ7IC8vIHN1 YmJhbmQKIAogdHlwZWRlZiBzdHJ1Y3QgSnBlZzIwMDBSZXNMZXZlbCB7CkBAIC0yMTUsMTMgKzIy MSwxNyBAQCB0eXBlZGVmIHN0cnVjdCBKcGVnMjAwMFJlc0xldmVsIHsKICAgICBpbnQgbnVtX3By ZWNpbmN0c194LCBudW1fcHJlY2luY3RzX3k7IC8vIG51bWJlciBvZiBwcmVjaW5jdHMgaW4geC95 IGRpcmVjdGlvbgogICAgIHVpbnQ4X3QgbG9nMl9wcmVjX3dpZHRoLCBsb2cyX3ByZWNfaGVpZ2h0 OyAvLyBleHBvbmVudCBvZiBwcmVjaW5jdCBzaXplCiAgICAgSnBlZzIwMDBCYW5kICpiYW5kOwor ICAgIHNpemVfdCBiYW5kX2FsbG9jYXRlZDsKIH0gSnBlZzIwMDBSZXNMZXZlbDsgLy8gcmVzb2x1 dGlvbiBsZXZlbAogCiB0eXBlZGVmIHN0cnVjdCBKcGVnMjAwMENvbXBvbmVudCB7CiAgICAgSnBl ZzIwMDBSZXNMZXZlbCAqcmVzbGV2ZWw7CisgICAgc2l6ZV90IHJlc2xldmVsX2FsbG9jYXRlZDsK ICAgICBEV1RDb250ZXh0IGR3dDsKICAgICBmbG9hdCAqZl9kYXRhOworICAgIHVuc2lnbmVkIGlu dCBmX2RhdGFfc2l6ZTsKICAgICBpbnQgKmlfZGF0YTsKKyAgICB1bnNpZ25lZCBpbnQgaV9kYXRh X3NpemU7CiAgICAgaW50IGNvb3JkWzJdWzJdOyAgIC8vIGJvcmRlciBjb29yZGluYXRlcyB7e3gw LCB4MX0sIHt5MCwgeTF9fSAtLSBjYW4gYmUgcmVkdWNlZCB3aXRoIGxvd3JlcyBvcHRpb24KICAg ICBpbnQgY29vcmRfb1syXVsyXTsgLy8gYm9yZGVyIGNvb3JkaW5hdGVzIHt7eDAsIHgxfSwge3kw LCB5MX19IC0tIG9yaWdpbmFsIHZhbHVlcyBmcm9tIGpwZWcyMDAwIGhlYWRlcnMKICAgICB1aW50 OF90IHJvaV9zaGlmdDsgLy8gUk9JIHNjYWxpbmcgdmFsdWUgZm9yIHRoZSBjb21wb25lbnQKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkZWMuYyBiL2xpYmF2Y29kZWMvanBlZzIwMDBk ZWMuYwppbmRleCAwMGFhNzNlMjYxLi40OWE4MTVhOWIwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVj L2pwZWcyMDAwZGVjLmMKKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jCkBAIC03OSw2ICs3 OSw3IEBAIHR5cGVkZWYgc3RydWN0IEpwZWcyMDAwVGlsZVBhcnQgewogICogb25lIHBlciBjb21w b25lbnQsIHNvIHRpbGVfcGFydCBlbGVtZW50cyBoYXZlIGEgc2l6ZSBvZiAzICovCiB0eXBlZGVm IHN0cnVjdCBKcGVnMjAwMFRpbGUgewogICAgIEpwZWcyMDAwQ29tcG9uZW50ICAgKmNvbXA7Cisg ICAgc2l6ZV90ICAgICAgICAgICAgICBjb21wX2FsbG9jYXRlZDsKICAgICB1aW50OF90ICAgICAg ICAgICAgIHByb3BlcnRpZXNbNF07CiAgICAgSnBlZzIwMDBDb2RpbmdTdHlsZSBjb2RzdHlbNF07 CiAgICAgSnBlZzIwMDBRdWFudFN0eWxlICBxbnRzdHlbNF07CkBAIC0xNDEsNiArMTQyLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgSnBlZzIwMDBEZWNvZGVyQ29udGV4dCB7CiAgICAgaW50ICAgICAgICAg ICAgIGN1cnRpbGVubzsKIAogICAgIEpwZWcyMDAwVGlsZSAgICAqdGlsZTsKKyAgICBzaXplX3Qg ICAgICAgICAgdGlsZV9hbGxvY2F0ZWQ7CiAgICAgSnBlZzIwMDBEU1BDb250ZXh0IGRzcDsKIAog ICAgIC8qb3B0aW9ucyBwYXJhbWV0ZXJzKi8KQEAgLTM4MCw4ICszODIsNyBAQCBzdGF0aWMgaW50 IGdldF9zaXooSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcykKICAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlOVkFMKTsKICAgICB9CiAKLSAgICBzLT50aWxlID0gYXZfY2FsbG9jKHMtPm51bVh0aWxl cyAqIHMtPm51bVl0aWxlcywgc2l6ZW9mKCpzLT50aWxlKSk7Ci0gICAgaWYgKCFzLT50aWxlKSB7 CisgICAgaWYgKGF2X3JlYWxsb2N6X2FycmF5X3JldXNlKCZzLT50aWxlLCAmcy0+dGlsZV9hbGxv Y2F0ZWQsIHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlcywgSU5UX01BWCwgc2l6ZW9mKCpzLT50 aWxlKSkpIHsKICAgICAgICAgcy0+bnVtWHRpbGVzID0gcy0+bnVtWXRpbGVzID0gMDsKICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKICAgICB9CkBAIC0zODksOCArMzkwLDcgQEAgc3Rh dGljIGludCBnZXRfc2l6KEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMpCiAgICAgZm9yIChpID0g MDsgaSA8IHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlczsgaSsrKSB7CiAgICAgICAgIEpwZWcy MDAwVGlsZSAqdGlsZSA9IHMtPnRpbGUgKyBpOwogCi0gICAgICAgIHRpbGUtPmNvbXAgPSBhdl9t YWxsb2N6KHMtPm5jb21wb25lbnRzICogc2l6ZW9mKCp0aWxlLT5jb21wKSk7Ci0gICAgICAgIGlm ICghdGlsZS0+Y29tcCkKKyAgICAgICAgaWYgKGF2X3JlYWxsb2N6X2FycmF5X3JldXNlKCZ0aWxl LT5jb21wLCAmdGlsZS0+Y29tcF9hbGxvY2F0ZWQsIHMtPm5jb21wb25lbnRzLCBJTlRfTUFYLCBz aXplb2YoKnRpbGUtPmNvbXApKSkKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7 CiAgICAgfQogCkBAIC0xMTYwLDcgKzExNjAsNiBAQCBzdGF0aWMgaW50IGpwZWcyMDAwX2RlY29k ZV9wYWNrZXQoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBUaWxlICp0aWxlLAog ICAgICAgICBmb3IgKGNibGtubyA9IDA7IGNibGtubyA8IG5iX2NvZGVfYmxvY2tzOyBjYmxrbm8r KykgewogICAgICAgICAgICAgSnBlZzIwMDBDYmxrICpjYmxrID0gcHJlYy0+Y2JsayArIGNibGtu bzsKICAgICAgICAgICAgIGludCBpbmNsLCBuZXdwYXNzZXMsIGxsZW47Ci0gICAgICAgICAgICB2 b2lkICp0bXA7CiAKICAgICAgICAgICAgIGlmIChjYmxrLT5ucGFzc2VzKQogICAgICAgICAgICAg ICAgIGluY2wgPSBnZXRfYml0cyhzLCAxKTsKQEAgLTEyMDAsMTQgKzExOTksMTAgQEAgc3RhdGlj IGludCBqcGVnMjAwMF9kZWNvZGVfcGFja2V0KEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMsIEpw ZWcyMDAwVGlsZSAqdGlsZSwKIAogICAgICAgICAgICAgY2Jsay0+bmJfbGVuZ3RoaW5jID0gMDsK ICAgICAgICAgICAgIGNibGstPm5iX3Rlcm1pbmF0aW9uc2luYyA9IDA7Ci0gICAgICAgICAgICBh dl9mcmVlKGNibGstPmxlbmd0aGluYyk7Ci0gICAgICAgICAgICBjYmxrLT5sZW5ndGhpbmMgPSBh dl9jYWxsb2MobmV3cGFzc2VzLCBzaXplb2YoKmNibGstPmxlbmd0aGluYykpOwotICAgICAgICAg ICAgaWYgKCFjYmxrLT5sZW5ndGhpbmMpCisgICAgICAgICAgICBpZiAoYXZfcmVhbGxvY19hcnJh eV9yZXVzZSgmY2Jsay0+bGVuZ3RoaW5jLCAmY2Jsay0+bGVuZ3RoaW5jX2FsbG9jYXRlZCwgbmV3 cGFzc2VzLCBJTlRfTUFYLCBzaXplb2YoKmNibGstPmxlbmd0aGluYykpIHx8CisgICAgICAgICAg ICAgICAgYXZfcmVhbGxvY19hcnJheV9yZXVzZSgmY2Jsay0+ZGF0YV9zdGFydCwgJmNibGstPmRh dGFfc3RhcnRfYWxsb2NhdGVkLCBjYmxrLT5uYl90ZXJtaW5hdGlvbnMgKyBuZXdwYXNzZXMgKyAx LCBJTlRfTUFYLCBzaXplb2YoKmNibGstPmRhdGFfc3RhcnQpKSkKICAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwotICAgICAgICAgICAgdG1wID0gYXZfcmVhbGxvY19hcnJh eShjYmxrLT5kYXRhX3N0YXJ0LCBjYmxrLT5uYl90ZXJtaW5hdGlvbnMgKyBuZXdwYXNzZXMgKyAx LCBzaXplb2YoKmNibGstPmRhdGFfc3RhcnQpKTsKLSAgICAgICAgICAgIGlmICghdG1wKQotICAg ICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Ci0gICAgICAgICAgICBjYmxrLT5k YXRhX3N0YXJ0ID0gdG1wOworCiAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgaW50 IG5ld3Bhc3NlczEgPSAwOwogCkBAIC0xMjk2LDcgKzEyOTEsNiBAQCBzdGF0aWMgaW50IGpwZWcy MDAwX2RlY29kZV9wYWNrZXQoSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBUaWxl ICp0aWxlLAogICAgICAgICAgICAgICAgICAgICBjYmxrLT5kYXRhX3N0YXJ0W2NibGstPm5iX3Rl cm1pbmF0aW9uc10gPSBjYmxrLT5sZW5ndGg7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgfQotICAgICAgICAgICAgYXZfZnJlZXAoJmNibGstPmxlbmd0aGluYyk7CiAgICAgICAgIH0K ICAgICB9CiAgICAgLy8gU2F2ZSBzdGF0ZSBvZiBzdHJlYW0KQEAgLTIxNzIsMjQgKzIxNjYsOSBA QCBzdGF0aWMgaW50IGpwZWcyMDAwX21jdF93cml0ZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZj dHgsIHZvaWQgKnRkLAogCiBzdGF0aWMgdm9pZCBqcGVnMjAwMF9kZWNfY2xlYW51cChKcGVnMjAw MERlY29kZXJDb250ZXh0ICpzKQogewotICAgIGludCB0aWxlbm8sIGNvbXBubzsKLSAgICBmb3Ig KHRpbGVubyA9IDA7IHRpbGVubyA8IHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlczsgdGlsZW5v KyspIHsKLSAgICAgICAgaWYgKHMtPnRpbGVbdGlsZW5vXS5jb21wKSB7Ci0gICAgICAgICAgICBm b3IgKGNvbXBubyA9IDA7IGNvbXBubyA8IHMtPm5jb21wb25lbnRzOyBjb21wbm8rKykgewotICAg ICAgICAgICAgICAgIEpwZWcyMDAwQ29tcG9uZW50ICpjb21wICAgICA9IHMtPnRpbGVbdGlsZW5v XS5jb21wICAgKyBjb21wbm87Ci0gICAgICAgICAgICAgICAgSnBlZzIwMDBDb2RpbmdTdHlsZSAq Y29kc3R5ID0gcy0+dGlsZVt0aWxlbm9dLmNvZHN0eSArIGNvbXBubzsKLQotICAgICAgICAgICAg ICAgIGZmX2pwZWcyMDAwX2NsZWFudXAoY29tcCwgY29kc3R5KTsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICAgIGF2X2ZyZWVwKCZzLT50aWxlW3RpbGVub10uY29tcCk7Ci0gICAgICAgICAgICBh dl9mcmVlcCgmcy0+dGlsZVt0aWxlbm9dLnBhY2tlZF9oZWFkZXJzKTsKLSAgICAgICAgICAgIHMt PnRpbGVbdGlsZW5vXS5wYWNrZWRfaGVhZGVyc19zaXplID0gMDsKLSAgICAgICAgfQotICAgIH0K ICAgICBhdl9mcmVlcCgmcy0+cGFja2VkX2hlYWRlcnMpOwogICAgIHMtPnBhY2tlZF9oZWFkZXJz X3NpemUgPSAwOwogICAgIG1lbXNldCgmcy0+cGFja2VkX2hlYWRlcnNfc3RyZWFtLCAwLCBzaXpl b2Yocy0+cGFja2VkX2hlYWRlcnNfc3RyZWFtKSk7Ci0gICAgYXZfZnJlZXAoJnMtPnRpbGUpOwog ICAgIG1lbXNldChzLT5jb2RzdHksIDAsIHNpemVvZihzLT5jb2RzdHkpKTsKICAgICBtZW1zZXQo cy0+cW50c3R5LCAwLCBzaXplb2Yocy0+cW50c3R5KSk7CiAgICAgbWVtc2V0KHMtPnByb3BlcnRp ZXMsIDAsIHNpemVvZihzLT5wcm9wZXJ0aWVzKSk7CkBAIC0yNzI2LDYgKzI3MDUsMTkgQEAgc3Rh dGljIGF2X2NvbGQgaW50IGpwZWcyMDAwX2RlY29kZV9jbG9zZShBVkNvZGVjQ29udGV4dCAqYXZj dHgpCiB7CiAgICAgSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7 CiAKKyAgICBmb3IgKHNpemVfdCB0aWxlbm8gPSAwOyB0aWxlbm8gPCBzLT50aWxlX2FsbG9jYXRl ZDsgdGlsZW5vKyspIHsKKyAgICAgICAgaWYgKHMtPnRpbGVbdGlsZW5vXS5jb21wKSB7CisgICAg ICAgICAgICBmb3IgKHNpemVfdCBjb21wbm8gPSAwOyBjb21wbm8gPCBzLT50aWxlW3RpbGVub10u Y29tcF9hbGxvY2F0ZWQ7IGNvbXBubysrKSB7CisgICAgICAgICAgICAgICAgSnBlZzIwMDBDb21w b25lbnQgKmNvbXAgICAgID0gcy0+dGlsZVt0aWxlbm9dLmNvbXAgICArIGNvbXBubzsKKyAgICAg ICAgICAgICAgICBKcGVnMjAwMENvZGluZ1N0eWxlICpjb2RzdHkgPSBzLT50aWxlW3RpbGVub10u Y29kc3R5ICsgY29tcG5vOworCisgICAgICAgICAgICAgICAgZmZfanBlZzIwMDBfY2xlYW51cChj b21wLCBjb2RzdHkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZfZnJlZXAoJnMtPnRp bGVbdGlsZW5vXS5jb21wKTsKKyAgICAgICAgICAgIGF2X2ZyZWVwKCZzLT50aWxlW3RpbGVub10u cGFja2VkX2hlYWRlcnMpOworICAgICAgICB9CisgICAgfQorICAgIGF2X2ZyZWVwKCZzLT50aWxl KTsKICAgICBhdl9mcmVlcCgmcy0+aWR3dCk7CiAgICAgYXZfZnJlZXAoJnMtPmNiKTsKIApkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9qcGVnMjAwMGR3dC5jIGIvbGliYXZjb2RlYy9qcGVnMjAwMGR3 dC5jCmluZGV4IDkyMTQ2MWI2ZDcuLmYzZGRlZmU0OGYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMv anBlZzIwMDBkd3QuYworKysgYi9saWJhdmNvZGVjL2pwZWcyMDAwZHd0LmMKQEAgLTUzMSw2ICs1 MzEsNyBAQCBpbnQgZmZfanBlZzIwMDBfZHd0X2luaXQoRFdUQ29udGV4dCAqcywgaW50IGJvcmRl clsyXVsyXSwKIHsKICAgICBpbnQgaSwgaiwgbGV2ID0gZGVjb21wX2xldmVscywKICAgICAgICAg YlsyXVsyXTsKKyAgICBzaXplX3QgcHJvZDsKIAogICAgIHMtPm5kZWNsZXZlbHMgPSBkZWNvbXBf bGV2ZWxzOwogICAgIHMtPnR5cGUgICAgICAgPSB0eXBlOwpAQCAtNTU2LDExICs1NTcsMTUgQEAg aW50IGZmX2pwZWcyMDAwX2R3dF9pbml0KERXVENvbnRleHQgKnMsIGludCBib3JkZXJbMl1bMl0s CiAgICAgICAgIH0KIAogICAgIGlmICh0eXBlID09IEZGX0RXVDk3KSB7Ci0gICAgICAgIHMtPmZf bGluZWJ1ZiA9IGF2X21hbGxvY19hcnJheShzLT5saW5lc2l6ZSwgcy0+bWF4X3NsaWNlcypzaXpl b2YoKnMtPmZfbGluZWJ1ZikpOworICAgICAgICBpZiAoYXZfc2l6ZV9tdWx0KHMtPmxpbmVzaXpl LCBzLT5tYXhfc2xpY2VzKnNpemVvZigqcy0+Zl9saW5lYnVmKSwgJnByb2QpKQorICAgICAgICAg ICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgYXZfZmFzdF9tYWxsb2MoJnMtPmZf bGluZWJ1ZiwgJnMtPmZfbGluZWJ1Zl9zaXplLCBwcm9kKTsKICAgICAgICAgaWYgKCFzLT5mX2xp bmVidWYpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogICAgIH0gZWxzZSB7 Ci0gICAgICAgIHMtPmlfbGluZWJ1ZiA9IGF2X21hbGxvY19hcnJheShzLT5saW5lc2l6ZSwgcy0+ bWF4X3NsaWNlcypzaXplb2YoKnMtPmlfbGluZWJ1ZikpOworICAgICAgICBpZiAoYXZfc2l6ZV9t dWx0KHMtPmxpbmVzaXplLCBzLT5tYXhfc2xpY2VzKnNpemVvZigqcy0+aV9saW5lYnVmKSwgJnBy b2QpKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgYXZfZmFz dF9tYWxsb2MoJnMtPmlfbGluZWJ1ZiwgJnMtPmlfbGluZWJ1Zl9zaXplLCBwcm9kKTsKICAgICAg ICAgaWYgKCFzLT5pX2xpbmVidWYpCiAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p OwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvanBlZzIwMDBkd3QuaCBiL2xpYmF2Y29k ZWMvanBlZzIwMDBkd3QuaAppbmRleCBkNWU5NGM5OTE2Li5mYjZmYzhmMTIxIDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL2pwZWcyMDAwZHd0LmgKKysrIGIvbGliYXZjb2RlYy9qcGVnMjAwMGR3dC5o CkBAIC00OCw3ICs0OCw5IEBAIHR5cGVkZWYgc3RydWN0IERXVENvbnRleHQgewogICAgIHVpbnQ4 X3QgbmRlY2xldmVsczsgICAgICAgICAgICAgICAgICAvLy88IG51bWJlciBvZiBkZWNvbXBvc2l0 aW9uIGxldmVscwogICAgIHVpbnQ4X3QgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgICAvLy88 IDAgZm9yIDkvNzsgMSBmb3IgNS8zCiAgICAgaW50MzJfdCAqaV9saW5lYnVmOyAgICAgICAgICAg ICAgICAgIC8vLzwgaW50IGJ1ZmZlciB1c2VkIGJ5IHRyYW5zZm9ybQorICAgIHVuc2lnbmVkIGlu dCBpX2xpbmVidWZfc2l6ZTsKICAgICBmbG9hdCAgICpmX2xpbmVidWY7ICAgICAgICAgICAgICAg ICAgLy8vPCBmbG9hdCBidWZmZXIgdXNlZCBieSB0cmFuc2Zvcm0KKyAgICB1bnNpZ25lZCBpbnQg Zl9saW5lYnVmX3NpemU7CiAgICAgaW50IG1heF9zbGljZXM7CiAgICAgaW50IGxpbmVzaXplOwog fSBEV1RDb250ZXh0OwotLSAKMi4zMC4yCgo= --=-Shggl3KooN/qEb2rPX1w 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". --=-Shggl3KooN/qEb2rPX1w--