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 A81FE4487C for ; Mon, 26 Sep 2022 13:46:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3973468B94F; Mon, 26 Sep 2022 16:46:45 +0300 (EEST) Received: from mail.frobbit.se (mail.frobbit.se [85.30.129.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E1BF768B0DC for ; Mon, 26 Sep 2022 16:46:38 +0300 (EEST) Received: from [10.10.150.19] (unknown [134.65.164.34]) by mail.frobbit.se (Postfix) with ESMTPSA id 9ED8E20101 for ; Mon, 26 Sep 2022 15:46:37 +0200 (CEST) Message-ID: <99afc63012bcb654bba64f2cadc2d1404316c027.camel@haerdin.se> From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: ffmpeg-devel Date: Mon, 26 Sep 2022 15:46:36 +0200 Content-Type: multipart/mixed; boundary="=-gIz/YqMb2HWn4rve4MFt" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3] Add avpriv_slicethread_create2() and avpriv_slicethread_execute2(), make execute() and execute2() return FFMIN() of thread return codes 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: --=-gIz/YqMb2HWn4rve4MFt Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Fixed the ABI break in the previous version of this patch, updated all internal uses of related APIs. Tested with both ./configure and ./configure --disable-pthreads Also using a new email for mailing list purposes. /Tomas --=-gIz/YqMb2HWn4rve4MFt Content-Disposition: attachment; filename*0=0001-Add-avpriv_slicethread_create2-and-avpriv_slicethrea.pat; filename*1=ch Content-Type: text/x-patch; name="0001-Add-avpriv_slicethread_create2-and-avpriv_slicethrea.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyNjVmMTA5NWZiODViMWViYTE4ZWQxYjg5ZmU3MTUzMWVlMDlmZTliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogVGh1LCAxNiBKdW4gMjAyMiAxMjoxNjo0NCArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEFkZCBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlMigpIGFuZAogYXZwcml2X3Ns aWNldGhyZWFkX2V4ZWN1dGUyKCksIG1ha2UgZXhlY3V0ZSgpIGFuZCBleGVjdXRlMigpIHJldHVy biBGRk1JTigpCiBvZiB0aHJlYWQgcmV0dXJuIGNvZGVzCgpVcGRhdGVzIGFsbCBpbnRlcm5hbCB1 c2VzIG9mIHJlbGF0ZWQgQVBJcy4KQXQgdGhlIG1vbWVudCBvbmx5IGZpYy5jIGFjdHVhbGx5IGNo ZWNrcyByZXR1cm4gY29kZSBvZiBleGVjdXRlKCkgaGVuY2UgdGhlIGNoYW5nZSB0byBpdHMgRkFU RSByZWZlcmVuY2UuCi0tLQogZG9jL0FQSWNoYW5nZXMgICAgICAgICAgICAgICAgfCAgNCArKwog bGliYXZjb2RlYy9hdmNvZGVjLmMgICAgICAgICAgfCAxMCArKystLQogbGliYXZjb2RlYy9wdGhy ZWFkX3NsaWNlLmMgICAgfCAxNCArKystLS0tCiBsaWJhdmZpbHRlci9wdGhyZWFkLmMgICAgICAg ICB8ICA4ICsrLS0KIGxpYmF2dXRpbC9zbGljZXRocmVhZC5jICAgICAgIHwgNzAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KIGxpYmF2dXRpbC9zbGljZXRocmVhZC5oICAgICAg IHwgMjcgKysrKysrKysrKysrKysKIGxpYmF2dXRpbC92ZXJzaW9uLmggICAgICAgICAgIHwgIDIg Ky0KIGxpYnN3c2NhbGUvc3dzY2FsZS5jICAgICAgICAgIHwgMjAgKystLS0tLS0tLQogbGlic3dz Y2FsZS9zd3NjYWxlX2ludGVybmFsLmggfCAgNiArLS0KIGxpYnN3c2NhbGUvdXRpbHMuYyAgICAg ICAgICAgIHwgIDggKystLQogdGVzdHMvZmF0ZS9zY3JlZW4ubWFrICAgICAgICAgfCAgMSArCiB0 ZXN0cy9yZWYvZmF0ZS9maWMtYXZpICAgICAgICB8IDMwICsrKysrKystLS0tLS0tLQogMTIgZmls ZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9BUEljaGFuZ2VzIGIvZG9jL0FQSWNoYW5nZXMKaW5kZXggYjBhNDFjOWUzNy4uMjQw ZTU0OWEyZiAxMDA2NDQKLS0tIGEvZG9jL0FQSWNoYW5nZXMKKysrIGIvZG9jL0FQSWNoYW5nZXMK QEAgLTE0LDYgKzE0LDEwIEBAIGxpYmF2dXRpbDogICAgIDIwMjEtMDQtMjcKIAogQVBJIGNoYW5n ZXMsIG1vc3QgcmVjZW50IGZpcnN0OgogCisyMDIyLTA5LTI2IC0geHh4eHh4eHh4eCAtIGxhdnUg NTcuMzguMTAwIC0gc2xpY2V0aHJlYWQuaAorICBEZXByZWNhdGUgYXZwcml2X3NsaWNldGhyZWFk X2NyZWF0ZSgpIGFuZCBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZSgpLgorICBBZGQgYXZwcml2 X3NsaWNldGhyZWFkX2NyZWF0ZTIoKSBhbmQgYXZwcml2X3NsaWNldGhyZWFkX2V4ZWN1dGUyKCku CisKIDIwMjItMDktMjYgLSB4eHh4eHh4eHh4IC0gbGF2YyA1OS40OC4xMDAgLSBhdmNvZGVjLmgK ICAgRGVwcmVjYXRlIGF2Y29kZWNfZW51bV90b19jaHJvbWFfcG9zKCkgYW5kIGF2Y29kZWNfY2hy b21hX3Bvc190b19lbnVtKCkuCiAgIFVzZSBhdl9jaHJvbWFfbG9jYXRpb25fZW51bV90b19wb3Mo KSBvciBhdl9jaHJvbWFfbG9jYXRpb25fcG9zX3RvX2VudW0oKQpkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy9hdmNvZGVjLmMgYi9saWJhdmNvZGVjL2F2Y29kZWMuYwppbmRleCBhODVkM2MyMzA5Li5l ZTc1YjNhYmU3IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2F2Y29kZWMuYworKysgYi9saWJhdmNv ZGVjL2F2Y29kZWMuYwpAQCAtNDQsMjggKzQ0LDMwIEBACiAKIGludCBhdmNvZGVjX2RlZmF1bHRf ZXhlY3V0ZShBVkNvZGVjQ29udGV4dCAqYywgaW50ICgqZnVuYykoQVZDb2RlY0NvbnRleHQgKmMy LCB2b2lkICphcmcyKSwgdm9pZCAqYXJnLCBpbnQgKnJldCwgaW50IGNvdW50LCBpbnQgc2l6ZSkK IHsKLSAgICBpbnQgaTsKKyAgICBpbnQgaSwgcnIgPSAwOwogCiAgICAgZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspIHsKICAgICAgICAgaW50IHIgPSBmdW5jKGMsIChjaGFyICopYXJnICsgaSAq IHNpemUpOworICAgICAgICByciA9IEZGTUlOKHJyLCByKTsKICAgICAgICAgaWYgKHJldCkKICAg ICAgICAgICAgIHJldFtpXSA9IHI7CiAgICAgfQogICAgIGVtbXNfYygpOwotICAgIHJldHVybiAw OworICAgIHJldHVybiBycjsKIH0KIAogaW50IGF2Y29kZWNfZGVmYXVsdF9leGVjdXRlMihBVkNv ZGVjQ29udGV4dCAqYywgaW50ICgqZnVuYykoQVZDb2RlY0NvbnRleHQgKmMyLCB2b2lkICphcmcy LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciksIHZvaWQgKmFyZywgaW50ICpyZXQsIGludCBjb3Vu dCkKIHsKLSAgICBpbnQgaTsKKyAgICBpbnQgaSwgcnIgPSAwOwogCiAgICAgZm9yIChpID0gMDsg aSA8IGNvdW50OyBpKyspIHsKICAgICAgICAgaW50IHIgPSBmdW5jKGMsIGFyZywgaSwgMCk7Cisg ICAgICAgIHJyID0gRkZNSU4ocnIsIHIpOwogICAgICAgICBpZiAocmV0KQogICAgICAgICAgICAg cmV0W2ldID0gcjsKICAgICB9CiAgICAgZW1tc19jKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0 dXJuIHJyOwogfQogCiBzdGF0aWMgQVZNdXRleCBjb2RlY19tdXRleCA9IEFWX01VVEVYX0lOSVRJ QUxJWkVSOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9wdGhyZWFkX3NsaWNlLmMgYi9saWJhdmNv ZGVjL3B0aHJlYWRfc2xpY2UuYwppbmRleCBhNGQzMWM2ZjRkLi43OTVkMGM5YzVhIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL3B0aHJlYWRfc2xpY2UuYworKysgYi9saWJhdmNvZGVjL3B0aHJlYWRf c2xpY2UuYwpAQCAtNjEsMTMgKzYxLDEzIEBAIHR5cGVkZWYgc3RydWN0IFNsaWNlVGhyZWFkQ29u dGV4dCB7CiAgICAgUHJvZ3Jlc3MgKnByb2dyZXNzOwogfSBTbGljZVRocmVhZENvbnRleHQ7CiAK LXN0YXRpYyB2b2lkIG1haW5fZnVuY3Rpb24odm9pZCAqcHJpdikgeworc3RhdGljIGludCBtYWlu X2Z1bmN0aW9uKHZvaWQgKnByaXYpIHsKICAgICBBVkNvZGVjQ29udGV4dCAqYXZjdHggPSBwcml2 OwogICAgIFNsaWNlVGhyZWFkQ29udGV4dCAqYyA9IGF2Y3R4LT5pbnRlcm5hbC0+dGhyZWFkX2N0 eDsKLSAgICBjLT5tYWluZnVuYyhhdmN0eCk7CisgICAgcmV0dXJuIGMtPm1haW5mdW5jKGF2Y3R4 KTsKIH0KIAotc3RhdGljIHZvaWQgd29ya2VyX2Z1bmModm9pZCAqcHJpdiwgaW50IGpvYm5yLCBp bnQgdGhyZWFkbnIsIGludCBuYl9qb2JzLCBpbnQgbmJfdGhyZWFkcykKK3N0YXRpYyBpbnQgd29y a2VyX2Z1bmModm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsIGludCBuYl9qb2Jz LCBpbnQgbmJfdGhyZWFkcykKIHsKICAgICBBVkNvZGVjQ29udGV4dCAqYXZjdHggPSBwcml2Owog ICAgIFNsaWNlVGhyZWFkQ29udGV4dCAqYyA9IGF2Y3R4LT5pbnRlcm5hbC0+dGhyZWFkX2N0eDsK QEAgLTc3LDYgKzc3LDcgQEAgc3RhdGljIHZvaWQgd29ya2VyX2Z1bmModm9pZCAqcHJpdiwgaW50 IGpvYm5yLCBpbnQgdGhyZWFkbnIsIGludCBuYl9qb2JzLCBpbnQgbmIKICAgICAgICAgICAgICAg ICAgIDogYy0+ZnVuYzIoYXZjdHgsIGMtPmFyZ3MsIGpvYm5yLCB0aHJlYWRucik7CiAgICAgaWYg KGMtPnJldHMpCiAgICAgICAgIGMtPnJldHNbam9ibnJdID0gcmV0OworICAgIHJldHVybiByZXQ7 CiB9CiAKIHZvaWQgZmZfc2xpY2VfdGhyZWFkX2ZyZWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQpA QCAtMTEyLDggKzExMyw3IEBAIHN0YXRpYyBpbnQgdGhyZWFkX2V4ZWN1dGUoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LCBhY3Rpb25fZnVuYyogZnVuYywgdm9pZCAqYXJnLCBpCiAgICAgYy0+ZnVuYyA9 IGZ1bmM7CiAgICAgYy0+cmV0cyA9IHJldDsKIAotICAgIGF2cHJpdl9zbGljZXRocmVhZF9leGVj dXRlKGMtPnRocmVhZCwgam9iX2NvdW50LCAhIWMtPm1haW5mdW5jICApOwotICAgIHJldHVybiAw OworICAgIHJldHVybiBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZTIoYy0+dGhyZWFkLCBqb2Jf Y291bnQsICEhYy0+bWFpbmZ1bmMpOwogfQogCiBzdGF0aWMgaW50IHRocmVhZF9leGVjdXRlMihB VkNvZGVjQ29udGV4dCAqYXZjdHgsIGFjdGlvbl9mdW5jMiogZnVuYzIsIHZvaWQgKmFyZywgaW50 ICpyZXQsIGludCBqb2JfY291bnQpCkBAIC0xMzUsNyArMTM1LDcgQEAgaW50IGZmX3NsaWNlX3Ro cmVhZF9pbml0KEFWQ29kZWNDb250ZXh0ICphdmN0eCkKIHsKICAgICBTbGljZVRocmVhZENvbnRl eHQgKmM7CiAgICAgaW50IHRocmVhZF9jb3VudCA9IGF2Y3R4LT50aHJlYWRfY291bnQ7Ci0gICAg dm9pZCAoKm1haW5mdW5jKSh2b2lkICopOworICAgIGludCAoKm1haW5mdW5jKSh2b2lkICopOwog CiAgICAgLy8gV2UgY2Fubm90IGRvIHRoaXMgaW4gdGhlIGVuY29kZXIgaW5pdCBhcyB0aGUgdGhy ZWFkcyBhcmUgY3JlYXRlZCBiZWZvcmUKICAgICBpZiAoYXZfY29kZWNfaXNfZW5jb2RlcihhdmN0 eC0+Y29kZWMpICYmCkBAIC0xNjEsNyArMTYxLDcgQEAgaW50IGZmX3NsaWNlX3RocmVhZF9pbml0 KEFWQ29kZWNDb250ZXh0ICphdmN0eCkKIAogICAgIGF2Y3R4LT5pbnRlcm5hbC0+dGhyZWFkX2N0 eCA9IGMgPSBhdl9tYWxsb2N6KHNpemVvZigqYykpOwogICAgIG1haW5mdW5jID0gZmZjb2RlYyhh dmN0eC0+Y29kZWMpLT5jYXBzX2ludGVybmFsICYgRkZfQ09ERUNfQ0FQX1NMSUNFX1RIUkVBRF9I QVNfTUYgPyAmbWFpbl9mdW5jdGlvbiA6IE5VTEw7Ci0gICAgaWYgKCFjIHx8ICh0aHJlYWRfY291 bnQgPSBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlKCZjLT50aHJlYWQsIGF2Y3R4LCB3b3JrZXJf ZnVuYywgbWFpbmZ1bmMsIHRocmVhZF9jb3VudCkpIDw9IDEpIHsKKyAgICBpZiAoIWMgfHwgKHRo cmVhZF9jb3VudCA9IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUyKCZjLT50aHJlYWQsIGF2Y3R4 LCB3b3JrZXJfZnVuYywgbWFpbmZ1bmMsIHRocmVhZF9jb3VudCkpIDw9IDEpIHsKICAgICAgICAg aWYgKGMpCiAgICAgICAgICAgICBhdnByaXZfc2xpY2V0aHJlYWRfZnJlZSgmYy0+dGhyZWFkKTsK ICAgICAgICAgYXZfZnJlZXAoJmF2Y3R4LT5pbnRlcm5hbC0+dGhyZWFkX2N0eCk7CmRpZmYgLS1n aXQgYS9saWJhdmZpbHRlci9wdGhyZWFkLmMgYi9saWJhdmZpbHRlci9wdGhyZWFkLmMKaW5kZXgg MWEwNjNkM2NjMC4uODU1Yzg0MmRmOSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvcHRocmVhZC5j CisrKyBiL2xpYmF2ZmlsdGVyL3B0aHJlYWQuYwpAQCAtNDMsMTIgKzQzLDEzIEBAIHR5cGVkZWYg c3RydWN0IFRocmVhZENvbnRleHQgewogICAgIGludCAgICpyZXRzOwogfSBUaHJlYWRDb250ZXh0 OwogCi1zdGF0aWMgdm9pZCB3b3JrZXJfZnVuYyh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0 aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKQorc3RhdGljIGludCB3b3JrZXJf ZnVuYyh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGlu dCBuYl90aHJlYWRzKQogewogICAgIFRocmVhZENvbnRleHQgKmMgPSBwcml2OwogICAgIGludCBy ZXQgPSBjLT5mdW5jKGMtPmN0eCwgYy0+YXJnLCBqb2JuciwgbmJfam9icyk7CiAgICAgaWYgKGMt PnJldHMpCiAgICAgICAgIGMtPnJldHNbam9ibnJdID0gcmV0OworICAgIHJldHVybiByZXQ7CiB9 CiAKIHN0YXRpYyB2b2lkIHNsaWNlX3RocmVhZF91bmluaXQoVGhyZWFkQ29udGV4dCAqYykKQEAg LTY4LDEzICs2OSwxMiBAQCBzdGF0aWMgaW50IHRocmVhZF9leGVjdXRlKEFWRmlsdGVyQ29udGV4 dCAqY3R4LCBhdmZpbHRlcl9hY3Rpb25fZnVuYyAqZnVuYywKICAgICBjLT5mdW5jICAgICAgICA9 IGZ1bmM7CiAgICAgYy0+cmV0cyAgICAgICAgPSByZXQ7CiAKLSAgICBhdnByaXZfc2xpY2V0aHJl YWRfZXhlY3V0ZShjLT50aHJlYWQsIG5iX2pvYnMsIDApOwotICAgIHJldHVybiAwOworICAgIHJl dHVybiBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZTIoYy0+dGhyZWFkLCBuYl9qb2JzLCAwKTsK IH0KIAogc3RhdGljIGludCB0aHJlYWRfaW5pdF9pbnRlcm5hbChUaHJlYWRDb250ZXh0ICpjLCBp bnQgbmJfdGhyZWFkcykKIHsKLSAgICBuYl90aHJlYWRzID0gYXZwcml2X3NsaWNldGhyZWFkX2Ny ZWF0ZSgmYy0+dGhyZWFkLCBjLCB3b3JrZXJfZnVuYywgTlVMTCwgbmJfdGhyZWFkcyk7CisgICAg bmJfdGhyZWFkcyA9IGF2cHJpdl9zbGljZXRocmVhZF9jcmVhdGUyKCZjLT50aHJlYWQsIGMsIHdv cmtlcl9mdW5jLCBOVUxMLCBuYl90aHJlYWRzKTsKICAgICBpZiAobmJfdGhyZWFkcyA8PSAxKQog ICAgICAgICBhdnByaXZfc2xpY2V0aHJlYWRfZnJlZSgmYy0+dGhyZWFkKTsKICAgICByZXR1cm4g RkZNQVgobmJfdGhyZWFkcywgMSk7CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvc2xpY2V0aHJlYWQu YyBiL2xpYmF2dXRpbC9zbGljZXRocmVhZC5jCmluZGV4IDExNWIwOTk3MzYuLjM4YzRlYmRjNGMg MTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9zbGljZXRocmVhZC5jCisrKyBiL2xpYmF2dXRpbC9zbGlj ZXRocmVhZC5jCkBAIC0zNCw2ICszNCw3IEBAIHR5cGVkZWYgc3RydWN0IFdvcmtlckNvbnRleHQg ewogICAgIHB0aHJlYWRfY29uZF90ICBjb25kOwogICAgIHB0aHJlYWRfdCAgICAgICB0aHJlYWQ7 CiAgICAgaW50ICAgICAgICAgICAgIGRvbmU7CisgICAgaW50ICAgICAgICAgICAgIHJldDsKIH0g V29ya2VyQ29udGV4dDsKIAogc3RydWN0IEFWU2xpY2VUaHJlYWQgewpAQCAtNTAsMTEgKzUxLDE1 IEBAIHN0cnVjdCBBVlNsaWNlVGhyZWFkIHsKICAgICBpbnQgICAgICAgICAgICAgZmluaXNoZWQ7 CiAKICAgICB2b2lkICAgICAgICAgICAgKnByaXY7CisgICAgLy8gZWl0aGVyIHdvcmtlcl9mdW5j IGFuZCBtYWluX2Z1bmMgYXJlIG5vbi1OVUxMIG9yIHdvcmtlcl9mdW5jMiBhbmQgbWFpbl9mdW5j MiBhcmUKKyAgICAvLyBhbGwgZm91ciBhcmUgbmV2ZXIgbm9uLU5VTEwgYXQgdGhlIHNhbWUgdGlt ZQogICAgIHZvaWQgICAgICAgICAgICAoKndvcmtlcl9mdW5jKSh2b2lkICpwcml2LCBpbnQgam9i bnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKTsKICAgICB2b2lk ICAgICAgICAgICAgKCptYWluX2Z1bmMpKHZvaWQgKnByaXYpOworICAgIGludCAgICAgICAgICAg ICAoKndvcmtlcl9mdW5jMikodm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsIGlu dCBuYl9qb2JzLCBpbnQgbmJfdGhyZWFkcyk7CisgICAgaW50ICAgICAgICAgICAgICgqbWFpbl9m dW5jMikodm9pZCAqcHJpdik7CiB9OwogCi1zdGF0aWMgaW50IHJ1bl9qb2JzKEFWU2xpY2VUaHJl YWQgKmN0eCkKK3N0YXRpYyBpbnQgcnVuX2pvYnMoQVZTbGljZVRocmVhZCAqY3R4LCBpbnQgKnJl dF9vdXQpCiB7CiAgICAgdW5zaWduZWQgbmJfam9icyAgICA9IGN0eC0+bmJfam9iczsKICAgICB1 bnNpZ25lZCBuYl9hY3RpdmVfdGhyZWFkcyA9IGN0eC0+bmJfYWN0aXZlX3RocmVhZHM7CkBAIC02 Miw3ICs2NywxMiBAQCBzdGF0aWMgaW50IHJ1bl9qb2JzKEFWU2xpY2VUaHJlYWQgKmN0eCkKICAg ICB1bnNpZ25lZCBjdXJyZW50X2pvYiAgPSBmaXJzdF9qb2I7CiAKICAgICBkbyB7Ci0gICAgICAg IGN0eC0+d29ya2VyX2Z1bmMoY3R4LT5wcml2LCBjdXJyZW50X2pvYiwgZmlyc3Rfam9iLCBuYl9q b2JzLCBuYl9hY3RpdmVfdGhyZWFkcyk7CisgICAgICAgIGlmIChjdHgtPndvcmtlcl9mdW5jMikg eworICAgICAgICAgICAgaW50IHJldCA9IGN0eC0+d29ya2VyX2Z1bmMyKGN0eC0+cHJpdiwgY3Vy cmVudF9qb2IsIGZpcnN0X2pvYiwgbmJfam9icywgbmJfYWN0aXZlX3RocmVhZHMpOworICAgICAg ICAgICAgKnJldF9vdXQgPSBGRk1JTigqcmV0X291dCwgcmV0KTsKKyAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgIGN0eC0+d29ya2VyX2Z1bmMoY3R4LT5wcml2LCBjdXJyZW50X2pvYiwgZmly c3Rfam9iLCBuYl9qb2JzLCBuYl9hY3RpdmVfdGhyZWFkcyk7CisgICAgICAgIH0KICAgICB9IHdo aWxlICgoY3VycmVudF9qb2IgPSBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KCZjdHgtPmN1cnJl bnRfam9iLCAxLCBtZW1vcnlfb3JkZXJfYWNxX3JlbCkpIDwgbmJfam9icyk7CiAKICAgICByZXR1 cm4gY3VycmVudF9qb2IgPT0gbmJfam9icyArIG5iX2FjdGl2ZV90aHJlYWRzIC0gMTsKQEAgLTg2 LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgKmF0dHJpYnV0ZV9hbGlnbl9hcmcgdGhyZWFkX3dvcmtl cih2b2lkICp2KQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KIAotICAgICAg ICBpZiAocnVuX2pvYnMoY3R4KSkgeworICAgICAgICBpZiAocnVuX2pvYnMoY3R4LCAmdy0+cmV0 KSkgewogICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZjdHgtPmRvbmVfbXV0ZXgpOwog ICAgICAgICAgICAgY3R4LT5kb25lID0gMTsKICAgICAgICAgICAgIHB0aHJlYWRfY29uZF9zaWdu YWwoJmN0eC0+ZG9uZV9jb25kKTsKQEAgLTk1LDkgKzEwNSwxMSBAQCBzdGF0aWMgdm9pZCAqYXR0 cmlidXRlX2FsaWduX2FyZyB0aHJlYWRfd29ya2VyKHZvaWQgKnYpCiAgICAgfQogfQogCi1pbnQg YXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZShBVlNsaWNlVGhyZWFkICoqcGN0eCwgdm9pZCAqcHJp diwKK3N0YXRpYyBpbnQgc2xpY2V0aHJlYWRfY3JlYXRlKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2 b2lkICpwcml2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKndvcmtlcl9m dW5jKSh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGlu dCBuYl90aHJlYWRzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCptYWlu X2Z1bmMpKHZvaWQgKnByaXYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgq d29ya2VyX2Z1bmMyKSh2b2lkICpwcml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5i X2pvYnMsIGludCBuYl90aHJlYWRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAoKm1haW5fZnVuYzIpKHZvaWQgKnByaXYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IG5iX3RocmVhZHMpCiB7CiAgICAgQVZTbGljZVRocmVhZCAqY3R4OwpAQCAtMTI4LDYg KzE0MCw4IEBAIGludCBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlKEFWU2xpY2VUaHJlYWQgKipw Y3R4LCB2b2lkICpwcml2LAogICAgIGN0eC0+cHJpdiAgICAgICAgPSBwcml2OwogICAgIGN0eC0+ d29ya2VyX2Z1bmMgPSB3b3JrZXJfZnVuYzsKICAgICBjdHgtPm1haW5fZnVuYyAgID0gbWFpbl9m dW5jOworICAgIGN0eC0+d29ya2VyX2Z1bmMyPSB3b3JrZXJfZnVuYzI7CisgICAgY3R4LT5tYWlu X2Z1bmMyICA9IG1haW5fZnVuYzI7CiAgICAgY3R4LT5uYl90aHJlYWRzICA9IG5iX3RocmVhZHM7 CiAgICAgY3R4LT5uYl9hY3RpdmVfdGhyZWFkcyA9IDA7CiAgICAgY3R4LT5uYl9qb2JzICAgICA9 IDA7CkBAIC0xNjUsOSArMTc5LDMwIEBAIGludCBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlKEFW U2xpY2VUaHJlYWQgKipwY3R4LCB2b2lkICpwcml2LAogICAgIHJldHVybiBuYl90aHJlYWRzOwog fQogCitpbnQgYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZShBVlNsaWNlVGhyZWFkICoqcGN0eCwg dm9pZCAqcHJpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCp3b3JrZXJf ZnVuYykodm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsIGludCBuYl9qb2JzLCBp bnQgbmJfdGhyZWFkcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqbWFp bl9mdW5jKSh2b2lkICpwcml2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBu Yl90aHJlYWRzKQoreworICAgIHJldHVybiBzbGljZXRocmVhZF9jcmVhdGUocGN0eCwgcHJpdiwg d29ya2VyX2Z1bmMsIG1haW5fZnVuYywgTlVMTCwgTlVMTCwgbmJfdGhyZWFkcyk7Cit9CisKK2lu dCBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlMihBVlNsaWNlVGhyZWFkICoqcGN0eCwgdm9pZCAq cHJpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCp3b3JrZXJfZnVuYyko dm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsIGludCBuYl9qb2JzLCBpbnQgbmJf dGhyZWFkcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqbWFpbl9mdW5j KSh2b2lkICpwcml2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmJfdGhy ZWFkcykKK3sKKyAgICByZXR1cm4gc2xpY2V0aHJlYWRfY3JlYXRlKHBjdHgsIHByaXYsIE5VTEws IE5VTEwsIHdvcmtlcl9mdW5jLCBtYWluX2Z1bmMsIG5iX3RocmVhZHMpOworfQorCiB2b2lkIGF2 cHJpdl9zbGljZXRocmVhZF9leGVjdXRlKEFWU2xpY2VUaHJlYWQgKmN0eCwgaW50IG5iX2pvYnMs IGludCBleGVjdXRlX21haW4pCiB7Ci0gICAgaW50IG5iX3dvcmtlcnMsIGksIGlzX2xhc3QgPSAw OworICAgICh2b2lkKWF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRlMihjdHgsIG5iX2pvYnMsIGV4 ZWN1dGVfbWFpbik7Cit9CisKK2ludCBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZTIoQVZTbGlj ZVRocmVhZCAqY3R4LCBpbnQgbmJfam9icywgaW50IGV4ZWN1dGVfbWFpbikKK3sKKyAgICBpbnQg bmJfd29ya2VycywgaSwgaXNfbGFzdCA9IDAsIHJldCA9IDA7CiAKICAgICBhdl9hc3NlcnQwKG5i X2pvYnMgPiAwKTsKICAgICBjdHgtPm5iX2pvYnMgICAgICAgICAgID0gbmJfam9iczsKQEAgLTE4 MiwxNCArMjE3LDE3IEBAIHZvaWQgYXZwcml2X3NsaWNldGhyZWFkX2V4ZWN1dGUoQVZTbGljZVRo cmVhZCAqY3R4LCBpbnQgbmJfam9icywgaW50IGV4ZWN1dGVfbWFpCiAgICAgICAgIFdvcmtlckNv bnRleHQgKncgPSAmY3R4LT53b3JrZXJzW2ldOwogICAgICAgICBwdGhyZWFkX211dGV4X2xvY2so JnctPm11dGV4KTsKICAgICAgICAgdy0+ZG9uZSA9IDA7CisgICAgICAgIHctPnJldCA9IDA7CiAg ICAgICAgIHB0aHJlYWRfY29uZF9zaWduYWwoJnctPmNvbmQpOwogICAgICAgICBwdGhyZWFkX211 dGV4X3VubG9jaygmdy0+bXV0ZXgpOwogICAgIH0KIAogICAgIGlmIChjdHgtPm1haW5fZnVuYyAm JiBleGVjdXRlX21haW4pCiAgICAgICAgIGN0eC0+bWFpbl9mdW5jKGN0eC0+cHJpdik7CisgICAg ZWxzZSBpZiAoY3R4LT5tYWluX2Z1bmMyICYmIGV4ZWN1dGVfbWFpbikKKyAgICAgICAgcmV0ID0g Y3R4LT5tYWluX2Z1bmMyKGN0eC0+cHJpdik7CiAgICAgZWxzZQotICAgICAgICBpc19sYXN0ID0g cnVuX2pvYnMoY3R4KTsKKyAgICAgICAgaXNfbGFzdCA9IHJ1bl9qb2JzKGN0eCwgJnJldCk7CiAK ICAgICBpZiAoIWlzX2xhc3QpIHsKICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZjdHgtPmRv bmVfbXV0ZXgpOwpAQCAtMTk4LDYgKzIzNiwxMSBAQCB2b2lkIGF2cHJpdl9zbGljZXRocmVhZF9l eGVjdXRlKEFWU2xpY2VUaHJlYWQgKmN0eCwgaW50IG5iX2pvYnMsIGludCBleGVjdXRlX21haQog ICAgICAgICBjdHgtPmRvbmUgPSAwOwogICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmY3R4 LT5kb25lX211dGV4KTsKICAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJfd29ya2Vyczsg aSsrKQorICAgICAgICByZXQgPSBGRk1JTihyZXQsIGN0eC0+d29ya2Vyc1tpXS5yZXQpOworCisg ICAgcmV0dXJuIHJldDsKIH0KIAogdm9pZCBhdnByaXZfc2xpY2V0aHJlYWRfZnJlZShBVlNsaWNl VGhyZWFkICoqcGN0eCkKQEAgLTI0NiwxMSArMjg5LDI2IEBAIGludCBhdnByaXZfc2xpY2V0aHJl YWRfY3JlYXRlKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2b2lkICpwcml2LAogICAgIHJldHVybiBB VkVSUk9SKEVOT1NZUyk7CiB9CiAKK2ludCBhdnByaXZfc2xpY2V0aHJlYWRfY3JlYXRlMihBVlNs aWNlVGhyZWFkICoqcGN0eCwgdm9pZCAqcHJpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgKCp3b3JrZXJfZnVuYykodm9pZCAqcHJpdiwgaW50IGpvYm5yLCBpbnQgdGhyZWFk bnIsIGludCBuYl9qb2JzLCBpbnQgbmJfdGhyZWFkcyksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50ICgqbWFpbl9mdW5jKSh2b2lkICpwcml2KSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgbmJfdGhyZWFkcykKK3sKKyAgICAqcGN0eCA9IE5VTEw7CisgICAg cmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKK30KKwogdm9pZCBhdnByaXZfc2xpY2V0aHJlYWRfZXhl Y3V0ZShBVlNsaWNlVGhyZWFkICpjdHgsIGludCBuYl9qb2JzLCBpbnQgZXhlY3V0ZV9tYWluKQog ewogICAgIGF2X2Fzc2VydDAoMCk7CiB9CiAKK2ludCBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0 ZTIoQVZTbGljZVRocmVhZCAqY3R4LCBpbnQgbmJfam9icywgaW50IGV4ZWN1dGVfbWFpbikKK3sK KyAgICBhdl9hc3NlcnQwKDApOworICAgIHJldHVybiBBVkVSUk9SKEVOT1NZUyk7Cit9CisKIHZv aWQgYXZwcml2X3NsaWNldGhyZWFkX2ZyZWUoQVZTbGljZVRocmVhZCAqKnBjdHgpCiB7CiAgICAg YXZfYXNzZXJ0MCghcGN0eCB8fCAhKnBjdHgpOwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3NsaWNl dGhyZWFkLmggYi9saWJhdnV0aWwvc2xpY2V0aHJlYWQuaAppbmRleCBmNmY2ZjMwMmM0Li40ZGVi Mjg3Njc0IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvc2xpY2V0aHJlYWQuaAorKysgYi9saWJhdnV0 aWwvc2xpY2V0aHJlYWQuaApAQCAtMjksMjAgKzI5LDQ3IEBAIHR5cGVkZWYgc3RydWN0IEFWU2xp Y2VUaHJlYWQgQVZTbGljZVRocmVhZDsKICAqIEBwYXJhbSBtYWluX2Z1bmMgc3BlY2lhbCBjYWxs YmFjayBmdW5jdGlvbiwgY2FsbGVkIGZyb20gbWFpbiB0aHJlYWQsIG1heSBiZSBOVUxMCiAgKiBA cGFyYW0gbmJfdGhyZWFkcyBudW1iZXIgb2YgdGhyZWFkcywgMCBmb3IgYXV0b21hdGljLCBtdXN0 IGJlID49IDAKICAqIEByZXR1cm4gcmV0dXJuIG51bWJlciBvZiB0aHJlYWRzIG9yIG5lZ2F0aXZl IEFWRVJST1Igb24gZmFpbHVyZQorICogQGRlcHJlY2F0ZWQgVXNlIGF2cHJpdl9zbGljZXRocmVh ZF9jcmVhdGUyKCkgaW5zdGVhZC4KICAqLworYXR0cmlidXRlX2RlcHJlY2F0ZWQKIGludCBhdnBy aXZfc2xpY2V0aHJlYWRfY3JlYXRlKEFWU2xpY2VUaHJlYWQgKipwY3R4LCB2b2lkICpwcml2LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKndvcmtlcl9mdW5jKSh2b2lkICpw cml2LCBpbnQgam9ibnIsIGludCB0aHJlYWRuciwgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRz KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCptYWluX2Z1bmMpKHZvaWQg KnByaXYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5iX3RocmVhZHMpOwog CisvKioKKyAqIExpa2UgYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZSgpIGV4Y2VwdCB3b3JrZXJf ZnVuYyBhbmQgbWFpbl9mdW5jIHJldHVybiBpbnQuCisgKiBAcGFyYW0gcGN0eCBzbGljZSB0aHJl YWRpbmcgY29udGV4dCByZXR1cm5lZCBoZXJlCisgKiBAcGFyYW0gcHJpdiBwcml2YXRlIHBvaW50 ZXIgdG8gYmUgcGFzc2VkIHRvIGNhbGxiYWNrIGZ1bmN0aW9uCisgKiBAcGFyYW0gd29ya2VyX2Z1 bmMgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQKKyAqIEBwYXJhbSBtYWluX2Z1bmMg c3BlY2lhbCBjYWxsYmFjayBmdW5jdGlvbiwgY2FsbGVkIGZyb20gbWFpbiB0aHJlYWQsIG1heSBi ZSBOVUxMCisgKiBAcGFyYW0gbmJfdGhyZWFkcyBudW1iZXIgb2YgdGhyZWFkcywgMCBmb3IgYXV0 b21hdGljLCBtdXN0IGJlID49IDAKKyAqIEByZXR1cm4gcmV0dXJuIG51bWJlciBvZiB0aHJlYWRz IG9yIG5lZ2F0aXZlIEFWRVJST1Igb24gZmFpbHVyZQorICovCitpbnQgYXZwcml2X3NsaWNldGhy ZWFkX2NyZWF0ZTIoQVZTbGljZVRocmVhZCAqKnBjdHgsIHZvaWQgKnByaXYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50ICgqd29ya2VyX2Z1bmMpKHZvaWQgKnByaXYsIGludCBq b2JuciwgaW50IHRocmVhZG5yLCBpbnQgbmJfam9icywgaW50IG5iX3RocmVhZHMpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKm1haW5fZnVuYykodm9pZCAqcHJpdiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5iX3RocmVhZHMpOworCiAvKioKICAq IEV4ZWN1dGUgc2xpY2UgdGhyZWFkaW5nLgogICogQHBhcmFtIGN0eCBzbGljZSB0aHJlYWRpbmcg Y29udGV4dAogICogQHBhcmFtIG5iX2pvYnMgbnVtYmVyIG9mIGpvYnMsIG11c3QgYmUgPiAwCiAg KiBAcGFyYW0gZXhlY3V0ZV9tYWluIGFsc28gZXhlY3V0ZSBtYWluX2Z1bmMKKyAqIEBkZXByZWNh dGVkIFVzZSBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZTIoKSBpbnN0ZWFkLgogICovCithdHRy aWJ1dGVfZGVwcmVjYXRlZAogdm9pZCBhdnByaXZfc2xpY2V0aHJlYWRfZXhlY3V0ZShBVlNsaWNl VGhyZWFkICpjdHgsIGludCBuYl9qb2JzLCBpbnQgZXhlY3V0ZV9tYWluKTsKIAorLyoqCisgKiBM aWtlIGF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRlKCkgZXhjZXB0IHJldHVybnMgRkZNSU4oMCwg bWFpbl9mdW5jKCksIHdvcmtlcl9mdW5jKCkpLgorICogQHBhcmFtIGN0eCBzbGljZSB0aHJlYWRp bmcgY29udGV4dAorICogQHBhcmFtIG5iX2pvYnMgbnVtYmVyIG9mIGpvYnMsIG11c3QgYmUgPiAw CisgKiBAcGFyYW0gZXhlY3V0ZV9tYWluIGFsc28gZXhlY3V0ZSBtYWluX2Z1bmMKKyAqIEByZXR1 cm4gQVZFUlJPUiBvbiBlcnJvci4KKyAqLworaW50IGF2cHJpdl9zbGljZXRocmVhZF9leGVjdXRl MihBVlNsaWNlVGhyZWFkICpjdHgsIGludCBuYl9qb2JzLCBpbnQgZXhlY3V0ZV9tYWluKTsKKwog LyoqCiAgKiBEZXN0cm95IHNsaWNlIHRocmVhZGluZyBjb250ZXh0LgogICogQHBhcmFtIHBjdHgg cG9pbnRlciB0byBjb250ZXh0CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdmVyc2lvbi5oIGIvbGli YXZ1dGlsL3ZlcnNpb24uaAppbmRleCA5YzQ0Y2VmNmFhLi41YWNhNTUwZjQ1IDEwMDY0NAotLS0g YS9saWJhdnV0aWwvdmVyc2lvbi5oCisrKyBiL2xpYmF2dXRpbC92ZXJzaW9uLmgKQEAgLTc5LDcg Kzc5LDcgQEAKICAqLwogCiAjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01BSk9SICA1NwotI2Rl ZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUiAgMzcKKyNkZWZpbmUgTElCQVZVVElMX1ZFUlNJ T05fTUlOT1IgIDM4CiAjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JQ1JPIDEwMAogCiAjZGVm aW5lIExJQkFWVVRJTF9WRVJTSU9OX0lOVCAgIEFWX1ZFUlNJT05fSU5UKExJQkFWVVRJTF9WRVJT SU9OX01BSk9SLCBcCmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3N3c2NhbGUuYyBiL2xpYnN3c2Nh bGUvc3dzY2FsZS5jCmluZGV4IDM2N2QwNDVhMDIuLjUwMGI3NGMwOTkgMTAwNjQ0Ci0tLSBhL2xp YnN3c2NhbGUvc3dzY2FsZS5jCisrKyBiL2xpYnN3c2NhbGUvc3dzY2FsZS5jCkBAIC0xMTUwLDIz ICsxMTUwLDExIEBAIGludCBzd3NfcmVjZWl2ZV9zbGljZShzdHJ1Y3QgU3dzQ29udGV4dCAqYywg dW5zaWduZWQgaW50IHNsaWNlX3N0YXJ0LAogCiAgICAgaWYgKGMtPnNsaWNldGhyZWFkKSB7CiAg ICAgICAgIGludCBuYl9qb2JzID0gYy0+c2xpY2VfY3R4WzBdLT5kaXRoZXIgPT0gU1dTX0RJVEhF Ul9FRCA/IDEgOiBjLT5uYl9zbGljZV9jdHg7Ci0gICAgICAgIGludCByZXQgPSAwOwogCiAgICAg ICAgIGMtPmRzdF9zbGljZV9zdGFydCAgPSBzbGljZV9zdGFydDsKICAgICAgICAgYy0+ZHN0X3Ns aWNlX2hlaWdodCA9IHNsaWNlX2hlaWdodDsKIAotICAgICAgICBhdnByaXZfc2xpY2V0aHJlYWRf ZXhlY3V0ZShjLT5zbGljZXRocmVhZCwgbmJfam9icywgMCk7Ci0KLSAgICAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBjLT5uYl9zbGljZV9jdHg7IGkrKykgewotICAgICAgICAgICAgaWYgKGMtPnNs aWNlX2VycltpXSA8IDApIHsKLSAgICAgICAgICAgICAgICByZXQgPSBjLT5zbGljZV9lcnJbaV07 Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg ICAgICBtZW1zZXQoYy0+c2xpY2VfZXJyLCAwLCBjLT5uYl9zbGljZV9jdHggKiBzaXplb2YoKmMt PnNsaWNlX2VycikpOwotCi0gICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIHJldHVybiBhdnBy aXZfc2xpY2V0aHJlYWRfZXhlY3V0ZTIoYy0+c2xpY2V0aHJlYWQsIG5iX2pvYnMsIDApOwogICAg IH0KIAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMoZHN0KTsgaSsrKSB7 CkBAIC0xMjEzLDggKzEyMDEsOCBAQCBpbnQgYXR0cmlidXRlX2FsaWduX2FyZyBzd3Nfc2NhbGUo c3RydWN0IFN3c0NvbnRleHQgKmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdCwgZHN0 U3RyaWRlLCAwLCBjLT5kc3RIKTsKIH0KIAotdm9pZCBmZl9zd3Nfc2xpY2Vfd29ya2VyKHZvaWQg KnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLAotICAgICAgICAgICAgICAgICAgICAgICAg IGludCBuYl9qb2JzLCBpbnQgbmJfdGhyZWFkcykKK2ludCBmZl9zd3Nfc2xpY2Vfd29ya2VyKHZv aWQgKnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLAorICAgICAgICAgICAgICAgICAgICAg ICAgaW50IG5iX2pvYnMsIGludCBuYl90aHJlYWRzKQogewogICAgIFN3c0NvbnRleHQgKnBhcmVu dCA9IHByaXY7CiAgICAgU3dzQ29udGV4dCAgICAgICpjID0gcGFyZW50LT5zbGljZV9jdHhbdGhy ZWFkbnJdOwpAQCAtMTI0Miw1ICsxMjMwLDUgQEAgdm9pZCBmZl9zd3Nfc2xpY2Vfd29ya2VyKHZv aWQgKnByaXYsIGludCBqb2JuciwgaW50IHRocmVhZG5yLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXJlbnQtPmRzdF9zbGljZV9zdGFydCArIHNsaWNlX3N0YXJ0LCBzbGljZV9lbmQg LSBzbGljZV9zdGFydCk7CiAgICAgfQogCi0gICAgcGFyZW50LT5zbGljZV9lcnJbdGhyZWFkbnJd ID0gZXJyOworICAgIHJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3N3c2Nh bGVfaW50ZXJuYWwuaCBiL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5oCmluZGV4IGFiZWVi YmIwMDIuLjUwZTczYzg2ZmEgMTAwNjQ0Ci0tLSBhL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5h bC5oCisrKyBiL2xpYnN3c2NhbGUvc3dzY2FsZV9pbnRlcm5hbC5oCkBAIC0zMDYsNyArMzA2LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgU3dzQ29udGV4dCB7CiAKICAgICBBVlNsaWNlVGhyZWFkICAgICAg KnNsaWNldGhyZWFkOwogICAgIHN0cnVjdCBTd3NDb250ZXh0ICoqc2xpY2VfY3R4OwotICAgIGlu dCAgICAgICAgICAgICAgICAqc2xpY2VfZXJyOworICAgIGF0dHJpYnV0ZV9kZXByZWNhdGVkIGlu dCAqc2xpY2VfZXJyOyAvLy88IEBkZXByZWNhdGVkIE5vdCB1c2VkIGFueSBtb3JlLiBSZW1vdmlu ZyBpdCB3b3VsZCByZXF1aXJlIGEgYnVuY2ggb2YgYXNtIHRvIGJlIHJld3JpdHRlbi4KICAgICBp bnQgICAgICAgICAgICAgIG5iX3NsaWNlX2N0eDsKIAogICAgIC8vIHZhbHVlcyBwYXNzZWQgdG8g Y3VycmVudCBzd3NfcmVjZWl2ZV9zbGljZSgpIGNhbGwKQEAgLTExNTIsOCArMTE1Miw4IEBAIHZv aWQgZmZfaW5pdF92c2NhbGVfcGZuKFN3c0NvbnRleHQgKmMsIHl1djJwbGFuYXIxX2ZuIHl1djJw bGFuZTEsIHl1djJwbGFuYXJYX2ZuCiAgICAgeXV2MmludGVybGVhdmVkWF9mbiB5dXYybnYxMmNY LCB5dXYycGFja2VkMV9mbiB5dXYycGFja2VkMSwgeXV2MnBhY2tlZDJfZm4geXV2MnBhY2tlZDIs CiAgICAgeXV2MnBhY2tlZFhfZm4geXV2MnBhY2tlZFgsIHl1djJhbnlYX2ZuIHl1djJhbnlYLCBp bnQgdXNlX21teCk7CiAKLXZvaWQgZmZfc3dzX3NsaWNlX3dvcmtlcih2b2lkICpwcml2LCBpbnQg am9ibnIsIGludCB0aHJlYWRuciwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmJfam9i cywgaW50IG5iX3RocmVhZHMpOworaW50IGZmX3N3c19zbGljZV93b3JrZXIodm9pZCAqcHJpdiwg aW50IGpvYm5yLCBpbnQgdGhyZWFkbnIsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmJf am9icywgaW50IG5iX3RocmVhZHMpOwogCiAvL251bWJlciBvZiBleHRyYSBsaW5lcyB0byBwcm9j ZXNzCiAjZGVmaW5lIE1BWF9MSU5FU19BSEVBRCA0CmRpZmYgLS1naXQgYS9saWJzd3NjYWxlL3V0 aWxzLmMgYi9saWJzd3NjYWxlL3V0aWxzLmMKaW5kZXggNDViYWEyMmIyMy4uOGJmZDNhNjRhYyAx MDA2NDQKLS0tIGEvbGlic3dzY2FsZS91dGlscy5jCisrKyBiL2xpYnN3c2NhbGUvdXRpbHMuYwpA QCAtMTI3Myw4ICsxMjczLDggQEAgc3RhdGljIGludCBjb250ZXh0X2luaXRfdGhyZWFkZWQoU3dz Q29udGV4dCAqYywKIHsKICAgICBpbnQgcmV0OwogCi0gICAgcmV0ID0gYXZwcml2X3NsaWNldGhy ZWFkX2NyZWF0ZSgmYy0+c2xpY2V0aHJlYWQsICh2b2lkKiljLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmZfc3dzX3NsaWNlX3dvcmtlciwgTlVMTCwgYy0+bmJfdGhyZWFk cyk7CisgICAgcmV0ID0gYXZwcml2X3NsaWNldGhyZWFkX2NyZWF0ZTIoJmMtPnNsaWNldGhyZWFk LCAodm9pZCopYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZl9zd3Nf c2xpY2Vfd29ya2VyLCBOVUxMLCBjLT5uYl90aHJlYWRzKTsKICAgICBpZiAocmV0ID09IEFWRVJS T1IoRU5PU1lTKSkgewogICAgICAgICBjLT5uYl90aHJlYWRzID0gMTsKICAgICAgICAgcmV0dXJu IDA7CkBAIC0xMjg0LDggKzEyODQsNyBAQCBzdGF0aWMgaW50IGNvbnRleHRfaW5pdF90aHJlYWRl ZChTd3NDb250ZXh0ICpjLAogICAgIGMtPm5iX3RocmVhZHMgPSByZXQ7CiAKICAgICBjLT5zbGlj ZV9jdHggPSBhdl9jYWxsb2MoYy0+bmJfdGhyZWFkcywgc2l6ZW9mKCpjLT5zbGljZV9jdHgpKTsK LSAgICBjLT5zbGljZV9lcnIgPSBhdl9jYWxsb2MoYy0+bmJfdGhyZWFkcywgc2l6ZW9mKCpjLT5z bGljZV9lcnIpKTsKLSAgICBpZiAoIWMtPnNsaWNlX2N0eCB8fCAhYy0+c2xpY2VfZXJyKQorICAg IGlmICghYy0+c2xpY2VfY3R4KQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwogCiAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjLT5uYl90aHJlYWRzOyBpKyspIHsKQEAgLTI0MjEsNyAr MjQyMCw2IEBAIHZvaWQgc3dzX2ZyZWVDb250ZXh0KFN3c0NvbnRleHQgKmMpCiAgICAgZm9yIChp ID0gMDsgaSA8IGMtPm5iX3NsaWNlX2N0eDsgaSsrKQogICAgICAgICBzd3NfZnJlZUNvbnRleHQo Yy0+c2xpY2VfY3R4W2ldKTsKICAgICBhdl9mcmVlcCgmYy0+c2xpY2VfY3R4KTsKLSAgICBhdl9m cmVlcCgmYy0+c2xpY2VfZXJyKTsKIAogICAgIGF2cHJpdl9zbGljZXRocmVhZF9mcmVlKCZjLT5z bGljZXRocmVhZCk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvc2NyZWVuLm1hayBiL3Rlc3Rz L2ZhdGUvc2NyZWVuLm1hawppbmRleCBiZDZkMjI4NTQ0Li5iNTcyZjY3YjU1IDEwMDY0NAotLS0g YS90ZXN0cy9mYXRlL3NjcmVlbi5tYWsKKysrIGIvdGVzdHMvZmF0ZS9zY3JlZW4ubWFrCkBAIC01 LDYgKzUsNyBAQCBmYXRlLWNzY2Q6IENNRCA9IGZyYW1lY3JjIC1pICQoVEFSR0VUX1NBTVBMRVMp L0NTQ0Qvc2FtcGxlX3ZpZGVvLmF2aSAtYW4gLXBpeF9mbQogRkFURV9TQ1JFRU4tJChjYWxsIEZS QU1FQ1JDLCBBVkksIERYVE9SWSkgKz0gZmF0ZS1keHRvcnkKIGZhdGUtZHh0b3J5OiBDTUQgPSBm cmFtZWNyYyAtaSAkKFRBUkdFVF9TQU1QTEVTKS9keHRvcnkvZHh0b3J5X21pYy5hdmkgLWFuCiAK KyMgZmljIHNhbXBsZSBpcyBicm9rZW4uIHNvbWUgcGFja2V0cyBhcmUgdHJ1bmNhdGVkIGFuZCBv bmUgcGFja2V0IGhhcyBsZW5ndGggemVybwogRkFURV9TQ1JFRU4tJChjYWxsIEZSQU1FQ1JDLCBB VkksIEZJQykgKz0gZmF0ZS1maWMtYXZpCiBmYXRlLWZpYy1hdmk6IENNRCA9IGZyYW1lY3JjIC1p ICQoVEFSR0VUX1NBTVBMRVMpL2ZpYy9maWMtcGFydGlhbC0yTUIuYXZpIC1hbgogCmRpZmYgLS1n aXQgYS90ZXN0cy9yZWYvZmF0ZS9maWMtYXZpIGIvdGVzdHMvcmVmL2ZhdGUvZmljLWF2aQppbmRl eCBkZjU1Nzg5ZDU0Li40NTQ2ZjIzMGIxIDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvZmF0ZS9maWMt YXZpCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZpYy1hdmkKQEAgLTc2LDE5ICs3NiwxOCBAQAogMCwg ICAgICAgICA3MCwgICAgICAgICA3MCwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiAw LCAgICAgICAgIDcxLCAgICAgICAgIDcxLCAgICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEK IDAsICAgICAgICAgNzIsICAgICAgICAgNzIsICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5 YQotMCwgICAgICAgICA3MywgICAgICAgICA3MywgICAgICAgIDEsICAxNTY2NzIwLCAweGE3ZDZl MjVmCi0wLCAgICAgICAgIDc0LCAgICAgICAgIDc0LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4YTdk NmUyNWYKLTAsICAgICAgICAgNzUsICAgICAgICAgNzUsICAgICAgICAxLCAgMTU2NjcyMCwgMHhh N2Q2ZTI1ZgotMCwgICAgICAgICA3NiwgICAgICAgICA3NiwgICAgICAgIDEsICAxNTY2NzIwLCAw eGE3ZDZlMjVmCi0wLCAgICAgICAgIDc3LCAgICAgICAgIDc3LCAgICAgICAgMSwgIDE1NjY3MjAs IDB4YTdkNmUyNWYKLTAsICAgICAgICAgNzgsICAgICAgICAgNzgsICAgICAgICAxLCAgMTU2Njcy MCwgMHhhN2Q2ZTI1ZgotMCwgICAgICAgICA3OSwgICAgICAgICA3OSwgICAgICAgIDEsICAxNTY2 NzIwLCAweGE3ZDZlMjVmCi0wLCAgICAgICAgIDgwLCAgICAgICAgIDgwLCAgICAgICAgMSwgIDE1 NjY3MjAsIDB4YTdkNmUyNWYKLTAsICAgICAgICAgODEsICAgICAgICAgODEsICAgICAgICAxLCAg MTU2NjcyMCwgMHhhN2Q2ZTI1ZgotMCwgICAgICAgICA4MiwgICAgICAgICA4MiwgICAgICAgIDEs ICAxNTY2NzIwLCAweGE3ZDZlMjVmCi0wLCAgICAgICAgIDgzLCAgICAgICAgIDgzLCAgICAgICAg MSwgIDE1NjY3MjAsIDB4YTdkNmUyNWYKLTAsICAgICAgICAgODQsICAgICAgICAgODQsICAgICAg ICAxLCAgMTU2NjcyMCwgMHhhN2Q2ZTI1ZgotMCwgICAgICAgICA4NSwgICAgICAgICA4NSwgICAg ICAgIDEsICAxNTY2NzIwLCAweGE3ZDZlMjVmCiswLCAgICAgICAgIDc0LCAgICAgICAgIDc0LCAg ICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgNzUsICAgICAgICAgNzUs ICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA3NiwgICAgICAgICA3 NiwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiswLCAgICAgICAgIDc3LCAgICAgICAg IDc3LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgNzgsICAgICAg ICAgNzgsICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA3OSwgICAg ICAgICA3OSwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiswLCAgICAgICAgIDgwLCAg ICAgICAgIDgwLCAgICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAgICAgODEs ICAgICAgICAgODEsICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAgICAgICA4 MiwgICAgICAgICA4MiwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiswLCAgICAgICAg IDgzLCAgICAgICAgIDgzLCAgICAgICAgMSwgIDE1NjY3MjAsIDB4NDBmN2QzOWEKKzAsICAgICAg ICAgODQsICAgICAgICAgODQsICAgICAgICAxLCAgMTU2NjcyMCwgMHg0MGY3ZDM5YQorMCwgICAg ICAgICA4NSwgICAgICAgICA4NSwgICAgICAgIDEsICAxNTY2NzIwLCAweDQwZjdkMzlhCiAwLCAg ICAgICAgIDg2LCAgICAgICAgIDg2LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4YTdkNmUyNWYKIDAs ICAgICAgICAgODcsICAgICAgICAgODcsICAgICAgICAxLCAgMTU2NjcyMCwgMHhhN2Q2ZTI1Zgog MCwgICAgICAgICA4OCwgICAgICAgICA4OCwgICAgICAgIDEsICAxNTY2NzIwLCAweGE3ZDZlMjVm CkBAIC0xMDQsNyArMTAzLDYgQEAKIDAsICAgICAgICAgOTgsICAgICAgICAgOTgsICAgICAgICAx LCAgMTU2NjcyMCwgMHhhN2Q2ZTI1ZgogMCwgICAgICAgICA5OSwgICAgICAgICA5OSwgICAgICAg IDEsICAxNTY2NzIwLCAweGE3ZDZlMjVmCiAwLCAgICAgICAgMTAwLCAgICAgICAgMTAwLCAgICAg ICAgMSwgIDE1NjY3MjAsIDB4ZWFmOGQyMDcKLTAsICAgICAgICAxMDEsICAgICAgICAxMDEsICAg ICAgICAxLCAgMTU2NjcyMCwgMHg2NzI0OTgzZQogMCwgICAgICAgIDEwMiwgICAgICAgIDEwMiwg ICAgICAgIDEsICAxNTY2NzIwLCAweDBlOTVkMjA5CiAwLCAgICAgICAgMTAzLCAgICAgICAgMTAz LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4MGU5NWQyMDkKIDAsICAgICAgICAxMDQsICAgICAgICAx MDQsICAgICAgICAxLCAgMTU2NjcyMCwgMHgwZTk1ZDIwOQpAQCAtMTIxLDYgKzExOSw0IEBACiAw LCAgICAgICAgMTE1LCAgICAgICAgMTE1LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4ZmU4M2I5NjQK IDAsICAgICAgICAxMTYsICAgICAgICAxMTYsICAgICAgICAxLCAgMTU2NjcyMCwgMHhmZTgzYjk2 NAogMCwgICAgICAgIDExNywgICAgICAgIDExNywgICAgICAgIDEsICAxNTY2NzIwLCAweGZlODNi OTY0Ci0wLCAgICAgICAgMTE4LCAgICAgICAgMTE4LCAgICAgICAgMSwgIDE1NjY3MjAsIDB4MjVk YzMwYTYKLTAsICAgICAgICAxMTksICAgICAgICAxMTksICAgICAgICAxLCAgMTU2NjcyMCwgMHgy NWRjMzBhNgotMCwgICAgICAgIDEyMCwgICAgICAgIDEyMCwgICAgICAgIDEsICAxNTY2NzIwLCAw eDI1ZGMzMGE2CiswLCAgICAgICAgMTE5LCAgICAgICAgMTE5LCAgICAgICAgMSwgIDE1NjY3MjAs IDB4ZmU4M2I5NjQKLS0gCjIuMzAuMgoK --=-gIz/YqMb2HWn4rve4MFt 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". --=-gIz/YqMb2HWn4rve4MFt--