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 770664496A for ; Wed, 28 Sep 2022 10:04:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 93FE068BBFE; Wed, 28 Sep 2022 13:04:42 +0300 (EEST) Received: from mail.frobbit.se (mail.frobbit.se [85.30.129.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 73A9168BB5D for ; Wed, 28 Sep 2022 13:04:35 +0300 (EEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) by mail.frobbit.se (Postfix) with ESMTPSA id D4A2420403 for ; Wed, 28 Sep 2022 12:04:34 +0200 (CEST) Message-ID: <65e79fe701374868bb2f4b70ce8fd220938e2e86.camel@haerdin.se> From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: ffmpeg-devel Date: Wed, 28 Sep 2022 12:04:33 +0200 Content-Type: multipart/mixed; boundary="=-o9r6hy52yDtC7Ec9QlUl" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/11] lavc/jpeg2000dec: Finer granularity threading 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: --=-o9r6hy52yDtC7Ec9QlUl Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi This patchset depends both on my execute2() patchset and on av_realloc*_array_reuse(). The performance numbers aren't fully up to date, but I expect they won't have changed much. /Tomas --=-o9r6hy52yDtC7Ec9QlUl Content-Disposition: attachment; filename="0001-lavc-jpeg2000dec-Finer-granularity-threading.patch" Content-Type: text/x-patch; name="0001-lavc-jpeg2000dec-Finer-granularity-threading.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5ZjcwZjY3M2IyOTc3ZTk2OWMyYzZkZjUxZDdhMmI3ZDczMzAyZjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogRnJpLCAxMCBKdW4gMjAyMiAxNDoxMDowMiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDEvMTFdIGxhdmMvanBlZzIwMDBkZWM6IEZpbmVyIGdyYW51bGFyaXR5IHRocmVh ZGluZwoKRGVjb2RpbmcgYW5kIGRlcXVhbnQgaXMgbm93IHRocmVhZGVkIG9uIGNvZGVibG9jayBs ZXZlbC4KSURXVCBpcyB0aHJlYWRlZCBvbiBjb21wb25lbnQgbGV2ZWwuCk1DVCBhbmQgd3JpdGVf ZnJhbWUoKSByZW1haW4gdGhyZWFkZWQgb24gdGlsZSBsZXZlbC4KClRoaXMgYnJpbmdzIGxvc3Ns ZXNzIDRLIEoySyB3aXRoIC1sb3dyZXMgMiAtdGhyZWFkX3R5cGUgc2xpY2UgLXRocmVhZHMgOTYg b24gYW4gQU1EIEVQWUMgN1IzMiBmcm9tIDQuOCBmcHMgKDE3NyUgQ1BVKSB0byAzMSBmcHMgKDEy ODQlIENQVSkuCi0tLQogbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jIHwgMTk1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0MSBpbnNlcnRp b25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2pwZWcyMDAw ZGVjLmMgYi9saWJhdmNvZGVjL2pwZWcyMDAwZGVjLmMKaW5kZXggYzJiODFlYzEwMy4uZTgyM2Fl NThlYyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9qcGVnMjAwMGRlYy5jCisrKyBiL2xpYmF2Y29k ZWMvanBlZzIwMDBkZWMuYwpAQCAtOTIsNiArOTIsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgSnBlZzIw MDBUaWxlIHsKICAgICBpbnQgY29vcmRbMl1bMl07ICAgICAgICAgICAgICAgICAgICAvLyBib3Jk ZXIgY29vcmRpbmF0ZXMge3t4MCwgeDF9LCB7eTAsIHkxfX0KIH0gSnBlZzIwMDBUaWxlOwogCit0 eXBlZGVmIHN0cnVjdCBKcGVnMjAwMElkd3RUaHJlYWQgeworICAgIGludCBjYl9zdGFydCwgY2Jf ZW5kOworfSBKcGVnMjAwMElkd3RUaHJlYWQ7CisKK3R5cGVkZWYgc3RydWN0IEpwZWcyMDAwQ29k ZWJsb2NrVGhyZWFkIHsKKyAgICBpbnQgdGlsZW5vLCBjb21wbm8sIHJlc2xldmVsbm8sIGJhbmRu bywgcHJlY25vLCBjYmxrbm87CisgICAgaW50IGNvZGVkOworfSBKcGVnMjAwMENvZGVibG9ja1Ro cmVhZDsKKwogdHlwZWRlZiBzdHJ1Y3QgSnBlZzIwMDBEZWNvZGVyQ29udGV4dCB7CiAgICAgQVZD bGFzcyAgICAgICAgICpjbGFzczsKICAgICBBVkNvZGVjQ29udGV4dCAgKmF2Y3R4OwpAQCAtMTM2 LDYgKzE0NSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBKcGVnMjAwMERlY29kZXJDb250ZXh0IHsKIAog ICAgIC8qb3B0aW9ucyBwYXJhbWV0ZXJzKi8KICAgICBpbnQgICAgICAgICAgICAgcmVkdWN0aW9u X2ZhY3RvcjsKKworICAgIEpwZWcyMDAwSWR3dFRocmVhZCAqaWR3dDsKKyAgICBzaXplX3QgaWR3 dF9hbGxvY2F0ZWQ7CisgICAgSnBlZzIwMDBDb2RlYmxvY2tUaHJlYWQgKmNiOworICAgIHNpemVf dCBjYl9hbGxvY2F0ZWQ7CiB9IEpwZWcyMDAwRGVjb2RlckNvbnRleHQ7CiAKIC8qIGdldF9iaXRz IGZ1bmN0aW9ucyBmb3IgSlBFRzIwMDAgcGFja2V0IGJpdHN0cmVhbQpAQCAtMTk0MSw1NCArMTk1 NSwzMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcm9pX3NjYWxlX2NibGsoSnBlZzIwMDBDYmxrICpj YmxrLAogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHRpbGVfY29kZWJsb2Nrcyhjb25z dCBKcGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBKcGVnMjAwMFRpbGUgKnRpbGUpCitzdGF0aWMg aW50IGpwZWcyMDAwX2RlY29kZV9jYihBVkNvZGVjQ29udGV4dCAqYXZjdHgsIHZvaWQgKnRkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIpCiB7 CiAgICAgSnBlZzIwMDBUMUNvbnRleHQgdDE7Ci0KLSAgICBpbnQgY29tcG5vLCByZXNsZXZlbG5v LCBiYW5kbm87Ci0KLSAgICAvKiBMb29wIG9uIHRpbGUgY29tcG9uZW50cyAqLwotICAgIGZvciAo Y29tcG5vID0gMDsgY29tcG5vIDwgcy0+bmNvbXBvbmVudHM7IGNvbXBubysrKSB7Ci0gICAgICAg IEpwZWcyMDAwQ29tcG9uZW50ICpjb21wICAgICA9IHRpbGUtPmNvbXAgKyBjb21wbm87Ci0gICAg ICAgIEpwZWcyMDAwQ29kaW5nU3R5bGUgKmNvZHN0eSA9IHRpbGUtPmNvZHN0eSArIGNvbXBubzsK LSAgICAgICAgaW50IGNvZGVkID0gMDsKLQotICAgICAgICB0MS5zdHJpZGUgPSAoMTw8Y29kc3R5 LT5sb2cyX2NibGtfd2lkdGgpICsgMjsKLQotICAgICAgICAvKiBMb29wIG9uIHJlc29sdXRpb24g bGV2ZWxzICovCi0gICAgICAgIGZvciAocmVzbGV2ZWxubyA9IDA7IHJlc2xldmVsbm8gPCBjb2Rz dHktPm5yZXNsZXZlbHMyZGVjb2RlOyByZXNsZXZlbG5vKyspIHsKLSAgICAgICAgICAgIEpwZWcy MDAwUmVzTGV2ZWwgKnJsZXZlbCA9IGNvbXAtPnJlc2xldmVsICsgcmVzbGV2ZWxubzsKLSAgICAg ICAgICAgIC8qIExvb3Agb24gYmFuZHMgKi8KLSAgICAgICAgICAgIGZvciAoYmFuZG5vID0gMDsg YmFuZG5vIDwgcmxldmVsLT5uYmFuZHM7IGJhbmRubysrKSB7Ci0gICAgICAgICAgICAgICAgaW50 IG5iX3ByZWNpbmN0cywgcHJlY25vOwotICAgICAgICAgICAgICAgIEpwZWcyMDAwQmFuZCAqYmFu ZCA9IHJsZXZlbC0+YmFuZCArIGJhbmRubzsKLSAgICAgICAgICAgICAgICBpbnQgY2Jsa25vID0g MCwgYmFuZHBvczsKLQotICAgICAgICAgICAgICAgIGJhbmRwb3MgPSBiYW5kbm8gKyAocmVzbGV2 ZWxubyA+IDApOwotCi0gICAgICAgICAgICAgICAgaWYgKGJhbmQtPmNvb3JkWzBdWzBdID09IGJh bmQtPmNvb3JkWzBdWzFdIHx8Ci0gICAgICAgICAgICAgICAgICAgIGJhbmQtPmNvb3JkWzFdWzBd ID09IGJhbmQtPmNvb3JkWzFdWzFdKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQot ICAgICAgICAgICAgICAgIG5iX3ByZWNpbmN0cyA9IHJsZXZlbC0+bnVtX3ByZWNpbmN0c194ICog cmxldmVsLT5udW1fcHJlY2luY3RzX3k7Ci0gICAgICAgICAgICAgICAgLyogTG9vcCBvbiBwcmVj aW5jdHMgKi8KLSAgICAgICAgICAgICAgICBmb3IgKHByZWNubyA9IDA7IHByZWNubyA8IG5iX3By ZWNpbmN0czsgcHJlY25vKyspIHsKLSAgICAgICAgICAgICAgICAgICAgSnBlZzIwMDBQcmVjICpw cmVjID0gYmFuZC0+cHJlYyArIHByZWNubzsKLQotICAgICAgICAgICAgICAgICAgICAvKiBMb29w IG9uIGNvZGVibG9ja3MgKi8KLSAgICAgICAgICAgICAgICAgICAgZm9yIChjYmxrbm8gPSAwOwot ICAgICAgICAgICAgICAgICAgICAgICAgIGNibGtubyA8IHByZWMtPm5iX2NvZGVibG9ja3Nfd2lk dGggKiBwcmVjLT5uYl9jb2RlYmxvY2tzX2hlaWdodDsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBjYmxrbm8rKykgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsIHk7Ci0gICAgICAg ICAgICAgICAgICAgICAgICBKcGVnMjAwMENibGsgKmNibGsgPSBwcmVjLT5jYmxrICsgY2Jsa25v OwotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJldCA9IGRlY29kZV9jYmxrKHMsIGNvZHN0 eSwgJnQxLCBjYmxrLAorICAgIGNvbnN0IEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMgPSBhdmN0 eC0+cHJpdl9kYXRhOworICAgIEpwZWcyMDAwQ29kZWJsb2NrVGhyZWFkICpjYiAgICAgPSBzLT5j YiArIGpvYm5yOworICAgIEpwZWcyMDAwVGlsZSAqdGlsZSAgICAgICAgICAgICAgPSBzLT50aWxl ICsgY2ItPnRpbGVubzsKKyAgICBKcGVnMjAwMENvbXBvbmVudCAqY29tcCAgICAgICAgID0gdGls ZS0+Y29tcCArIGNiLT5jb21wbm87CisgICAgSnBlZzIwMDBDb2RpbmdTdHlsZSAqY29kc3R5ICAg ICA9IHRpbGUtPmNvZHN0eSArIGNiLT5jb21wbm87CisgICAgSnBlZzIwMDBSZXNMZXZlbCAqcmxl dmVsICAgICAgICA9IGNvbXAtPnJlc2xldmVsICsgY2ItPnJlc2xldmVsbm87CisgICAgSnBlZzIw MDBCYW5kICpiYW5kICAgICAgICAgICAgICA9IHJsZXZlbC0+YmFuZCArIGNiLT5iYW5kbm87Cisg ICAgSnBlZzIwMDBQcmVjICpwcmVjICAgICAgICAgICAgICA9IGJhbmQtPnByZWMgKyBjYi0+cHJl Y25vOworICAgIEpwZWcyMDAwQ2JsayAqY2JsayAgICAgICAgICAgICAgPSBwcmVjLT5jYmxrICsg Y2ItPmNibGtubzsKKyAgICBpbnQgcmV0LCB4LCB5LCBiYW5kcG9zICAgICAgICAgID0gY2ItPmJh bmRubyArIChjYi0+cmVzbGV2ZWxubyA+IDApOworCisgICAgdDEuc3RyaWRlID0gKDE8PGNvZHN0 eS0+bG9nMl9jYmxrX3dpZHRoKSArIDI7CisgICAgY2ItPmNvZGVkID0gMDsKKworICAgICAgICAg ICAgICAgICAgICAgICAgcmV0ID0gZGVjb2RlX2NibGsocywgY29kc3R5LCAmdDEsIGNibGssCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYmxrLT5jb29yZFswXVsxXSAtIGNi bGstPmNvb3JkWzBdWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Js ay0+Y29vcmRbMV1bMV0gLSBjYmxrLT5jb29yZFsxXVswXSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJhbmRwb3MsIGNvbXAtPnJvaV9zaGlmdCk7CiAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAocmV0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVkID0g MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi0+Y29kZWQgPSAxOwogICAgICAgICAg ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworCiAgICAgICAgICAgICAg ICAgICAgICAgICB4ID0gY2Jsay0+Y29vcmRbMF1bMF0gLSBiYW5kLT5jb29yZFswXVswXTsKICAg ICAgICAgICAgICAgICAgICAgICAgIHkgPSBjYmxrLT5jb29yZFsxXVswXSAtIGJhbmQtPmNvb3Jk WzFdWzBdOwogCkBAIC0yMDAwLDE2ICsxOTkzLDI4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0aWxl X2NvZGVibG9ja3MoY29uc3QgSnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcywgSnBlZzIwMDBUaWxl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVxdWFudGl6YXRpb25faW50Xzk3KHgsIHks IGNibGssIGNvbXAsICZ0MSwgYmFuZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVxdWFudGl6YXRpb25faW50KHgsIHksIGNibGss IGNvbXAsICZ0MSwgYmFuZCk7Ci0gICAgICAgICAgICAgICAgICAgfSAvKiBlbmQgY2JsayAqLwot ICAgICAgICAgICAgICAgIH0gLyplbmQgcHJlYyAqLwotICAgICAgICAgICAgfSAvKiBlbmQgYmFu ZCAqLwotICAgICAgICB9IC8qIGVuZCByZXNsZXZlbCAqLwogCi0gICAgICAgIC8qIGludmVyc2Ug RFdUICovCi0gICAgICAgIGlmIChjb2RlZCkKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBqcGVnMjAwMF9pZHd0KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqdGQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGpvYm5yLCBpbnQgdGhyZWFkbnIpCit7CisgICAgY29uc3Qg SnBlZzIwMDBEZWNvZGVyQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgSnBlZzIw MDBJZHd0VGhyZWFkICppZHd0ICAgICAgICA9IHMtPmlkd3QgKyBqb2JucjsKKyAgICBKcGVnMjAw MFRpbGUgKnRpbGUgICAgICAgICAgICAgID0gcy0+dGlsZSArIGpvYm5yIC8gcy0+bmNvbXBvbmVu dHM7CisgICAgaW50IGNvbXBubyAgICAgICAgICAgICAgICAgICAgICA9IGpvYm5yICUgcy0+bmNv bXBvbmVudHM7CisgICAgSnBlZzIwMDBDb21wb25lbnQgKmNvbXAgICAgICAgICA9IHRpbGUtPmNv bXAgKyBjb21wbm87CisgICAgSnBlZzIwMDBDb2RpbmdTdHlsZSAqY29kc3R5ICAgICA9IHRpbGUt PmNvZHN0eSArIGNvbXBubzsKKworICAgIGZvciAoaW50IGkgPSBpZHd0LT5jYl9zdGFydDsgaSA8 IGlkd3QtPmNiX2VuZDsgaSsrKSB7CisgICAgICAgIGlmIChzLT5jYltpXS5jb2RlZCkgewogICAg ICAgICAgICAgZmZfZHd0X2RlY29kZSgmY29tcC0+ZHd0LCBjb2RzdHktPnRyYW5zZm9ybSA9PSBG Rl9EV1Q5NyA/ICh2b2lkKiljb21wLT5mX2RhdGEgOiAodm9pZCopY29tcC0+aV9kYXRhKTsKKyAg ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQogCi0gICAgfSAvKmVuZCBjb21wICov CisgICAgcmV0dXJuIDA7CiB9CiAKICNkZWZpbmUgV1JJVEVfRlJBTUUoRCwgUElYRUwpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXApAQCAtMjA3OSwxNSArMjA4NCwxMyBAQCBXUklURV9GUkFNRSgxNiwgdWludDE2X3Qp CiAKICN1bmRlZiBXUklURV9GUkFNRQogCi1zdGF0aWMgaW50IGpwZWcyMDAwX2RlY29kZV90aWxl KEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqdGQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCBqb2JuciwgaW50IHRocmVhZG5yKQorc3RhdGljIGludCBqcGVnMjAwMF9t Y3Rfd3JpdGVfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lkICp0ZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBqb2JuciwgaW50IHRocmVhZG5yKQogewog ICAgIGNvbnN0IEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOwog ICAgIEFWRnJhbWUgKnBpY3R1cmUgPSB0ZDsKICAgICBKcGVnMjAwMFRpbGUgKnRpbGUgPSBzLT50 aWxlICsgam9ibnI7CiAKLSAgICB0aWxlX2NvZGVibG9ja3MocywgdGlsZSk7Ci0KICAgICAvKiBp bnZlcnNlIE1DVCB0cmFuc2Zvcm1hdGlvbiAqLwogICAgIGlmICh0aWxlLT5jb2RzdHlbMF0ubWN0 KQogICAgICAgICBtY3RfZGVjb2RlKHMsIHRpbGUpOwpAQCAtMjQ3NywxMSArMjQ4MCw3OSBAQCBz dGF0aWMgYXZfY29sZCBpbnQganBlZzIwMDBfZGVjb2RlX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2 Y3R4KQogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGpwZWcyMDAwX3NldHVwX2NicyhK cGVnMjAwMERlY29kZXJDb250ZXh0ICpzLCBpbnQgKmNic19vdXQpCit7CisgICAgaWYgKHMtPm51 bVh0aWxlcyAqIHMtPm51bVl0aWxlcyA+IElOVF9NQVgvcy0+bmNvbXBvbmVudHMpCisgICAgICAg IHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBpZiAoYXZfcmVhbGxvY19hcnJheV9yZXVz ZSgmcy0+aWR3dCwgJnMtPmlkd3RfYWxsb2NhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHMtPm51bVh0aWxlcyAqIHMtPm51bVl0aWxlcyAqIHMtPm5jb21wb25lbnRzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVF9NQVgsIHNpemVvZigqcy0+aWR3dCkpIDwg MCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIGZvciAoaW50IHBhc3Mg PSAwOyBwYXNzIDwgMjsgcGFzcysrKSB7CisgICAgICAgIGludCBjYnMgPSAwOworICAgICAgICBm b3IgKGludCB0aWxlbm8gPSAwOyB0aWxlbm8gPCBzLT5udW1YdGlsZXMgKiBzLT5udW1ZdGlsZXM7 IHRpbGVubysrKSB7CisgICAgICAgICAgICBmb3IgKGludCBjb21wbm8gPSAwOyBjb21wbm8gPCBz LT5uY29tcG9uZW50czsgY29tcG5vKyspIHsKKyAgICAgICAgICAgICAgICBKcGVnMjAwMFRpbGUg KnRpbGUgICAgICAgICAgPSBzLT50aWxlICsgdGlsZW5vOworICAgICAgICAgICAgICAgIEpwZWcy MDAwQ29tcG9uZW50ICpjb21wICAgICA9IHRpbGUtPmNvbXAgKyBjb21wbm87CisgICAgICAgICAg ICAgICAgSnBlZzIwMDBDb2RpbmdTdHlsZSAqY29kc3R5ID0gdGlsZS0+Y29kc3R5ICsgY29tcG5v OworICAgICAgICAgICAgICAgIEpwZWcyMDAwSWR3dFRocmVhZCAqaWR3dCAgICA9IHMtPmlkd3Qg KyBjb21wbm8gKyB0aWxlbm8gKiBzLT5uY29tcG9uZW50czsKKworICAgICAgICAgICAgICAgIGlk d3QtPmNiX3N0YXJ0ID0gY2JzOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgcmVzbGV2ZWxu byA9IDA7IHJlc2xldmVsbm8gPCBjb2RzdHktPm5yZXNsZXZlbHMyZGVjb2RlOyByZXNsZXZlbG5v KyspIHsKKyAgICAgICAgICAgICAgICAgICAgSnBlZzIwMDBSZXNMZXZlbCAqcmxldmVsID0gY29t cC0+cmVzbGV2ZWwgKyByZXNsZXZlbG5vOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBi YW5kbm8gPSAwOyBiYW5kbm8gPCBybGV2ZWwtPm5iYW5kczsgYmFuZG5vKyspIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgIGludCBuYl9wcmVjaW5jdHMgPSBybGV2ZWwtPm51bV9wcmVjaW5jdHNf eCAqIHJsZXZlbC0+bnVtX3ByZWNpbmN0c195OworICAgICAgICAgICAgICAgICAgICAgICAgSnBl ZzIwMDBCYW5kICpiYW5kID0gcmxldmVsLT5iYW5kICsgYmFuZG5vOworCisgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoYmFuZC0+Y29vcmRbMF1bMF0gPT0gYmFuZC0+Y29vcmRbMF1bMV0gfHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5kLT5jb29yZFsxXVswXSA9PSBiYW5kLT5j b29yZFsxXVsxXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgcHJlY25vID0gMDsgcHJlY25vIDwgbmJfcHJl Y2luY3RzOyBwcmVjbm8rKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpwZWcyMDAw UHJlYyAqcHJlYyA9IGJhbmQtPnByZWMgKyBwcmVjbm87CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IHByZWNfY2JzID0gcHJlYy0+bmJfY29kZWJsb2Nrc193aWR0aCAqIHByZWMtPm5i X2NvZGVibG9ja3NfaGVpZ2h0OworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNi cyA+IElOVF9NQVggLSBwcmVjX2NicykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv ciAoaW50IGNibGtubyA9IDA7IGNibGtubyA8IHByZWNfY2JzOyBjYmxrbm8rKywgY2JzKyspIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3MgPT0gMSkgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSnBlZzIwMDBDb2RlYmxvY2tUaHJlYWQgKmNi ID0gcy0+Y2IgKyBjYnM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi0+ dGlsZW5vID0gdGlsZW5vOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2It PmNvbXBubyA9IGNvbXBubzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNi LT5yZXNsZXZlbG5vID0gcmVzbGV2ZWxubzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNiLT5iYW5kbm8gPSBiYW5kbm87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjYi0+cHJlY25vID0gcHJlY25vOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2ItPmNibGtubyA9IGNibGtubzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAg ICAgICAgICAgICAgIGlkd3QtPmNiX2VuZCA9IGNiczsKKyAgICAgICAgICAgIH0KKyAgICAgICAg fQorCisgICAgICAgIGlmIChwYXNzID09IDApIHsKKyAgICAgICAgICAgIGlmIChhdl9yZWFsbG9j X2FycmF5X3JldXNlKCZzLT5jYiwgJnMtPmNiX2FsbG9jYXRlZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNicywgSU5UX01BWCwgc2l6ZW9mKCpzLT5jYikpIDwgMCkK KyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgICAgICB9CisKKyAg ICAgICAgKmNic19vdXQgPSBjYnM7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiBzdGF0aWMg aW50IGpwZWcyMDAwX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUg KnBpY3R1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmdvdF9mcmFt ZSwgQVZQYWNrZXQgKmF2cGt0KQogewogICAgIEpwZWcyMDAwRGVjb2RlckNvbnRleHQgKnMgPSBh dmN0eC0+cHJpdl9kYXRhOwotICAgIGludCByZXQ7CisgICAgaW50IHJldCwgY2JzOwogCiAgICAg cy0+YXZjdHggICAgID0gYXZjdHg7CiAgICAgYnl0ZXN0cmVhbTJfaW5pdCgmcy0+ZywgYXZwa3Qt PmRhdGEsIGF2cGt0LT5zaXplKTsKQEAgLTI1NDgsNyArMjYxOSwxMiBAQCBzdGF0aWMgaW50IGpw ZWcyMDAwX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKnBpY3R1 cmUsCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdmN0eC0+ZXhlY3V0ZTIoYXZjdHgsIGpwZWcy MDAwX2RlY29kZV90aWxlLCBwaWN0dXJlLCBOVUxMLCBzLT5udW1YdGlsZXMgKiBzLT5udW1ZdGls ZXMpOworICAgIGlmICgocmV0ID0ganBlZzIwMDBfc2V0dXBfY2JzKHMsICZjYnMpKSA8IDAgfHwK KyAgICAgICAgKHJldCA9IGF2Y3R4LT5leGVjdXRlMihhdmN0eCwganBlZzIwMDBfZGVjb2RlX2Ni LCBOVUxMLCBOVUxMLCBjYnMpKSA8IDAgfHwKKyAgICAgICAgKHJldCA9IGF2Y3R4LT5leGVjdXRl MihhdmN0eCwganBlZzIwMDBfaWR3dCwgTlVMTCwgTlVMTCwgcy0+bnVtWHRpbGVzICogcy0+bnVt WXRpbGVzICogcy0+bmNvbXBvbmVudHMpKSA8IDAgfHwKKyAgICAgICAgKHJldCA9IGF2Y3R4LT5l eGVjdXRlMihhdmN0eCwganBlZzIwMDBfbWN0X3dyaXRlX2ZyYW1lLCBwaWN0dXJlLCBOVUxMLCBz LT5udW1YdGlsZXMgKiBzLT5udW1ZdGlsZXMpKSA8IDApCisgICAgICAgIGdvdG8gZW5kOworCiAK ICAgICBqcGVnMjAwMF9kZWNfY2xlYW51cChzKTsKIApAQCAtMjU2NCw2ICsyNjQwLDE2IEBAIGVu ZDoKICAgICByZXR1cm4gcmV0OwogfQogCitzdGF0aWMgYXZfY29sZCBpbnQganBlZzIwMDBfZGVj b2RlX2Nsb3NlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKK3sKKyAgICBKcGVnMjAwMERlY29kZXJD b250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKKworICAgIGF2X2ZyZWVwKCZzLT5pZHd0KTsK KyAgICBhdl9mcmVlcCgmcy0+Y2IpOworCisgICAgcmV0dXJuIDA7Cit9CisKICNkZWZpbmUgT0ZG U0VUKHgpIG9mZnNldG9mKEpwZWcyMDAwRGVjb2RlckNvbnRleHQsIHgpCiAjZGVmaW5lIFZEIEFW X09QVF9GTEFHX1ZJREVPX1BBUkFNIHwgQVZfT1BUX0ZMQUdfREVDT0RJTkdfUEFSQU0KIApAQCAt MjU4OSw2ICsyNjc1LDcgQEAgY29uc3QgRkZDb2RlYyBmZl9qcGVnMjAwMF9kZWNvZGVyID0gewog ICAgIC5wcml2X2RhdGFfc2l6ZSAgID0gc2l6ZW9mKEpwZWcyMDAwRGVjb2RlckNvbnRleHQpLAog ICAgIC5pbml0ICAgICAgICAgICAgID0ganBlZzIwMDBfZGVjb2RlX2luaXQsCiAgICAgRkZfQ09E RUNfREVDT0RFX0NCKGpwZWcyMDAwX2RlY29kZV9mcmFtZSksCisgICAgLmNsb3NlICAgICAgICAg ICAgPSBqcGVnMjAwMF9kZWNvZGVfY2xvc2UsCiAgICAgLnAucHJpdl9jbGFzcyAgICAgPSAmanBl ZzIwMDBfY2xhc3MsCiAgICAgLnAubWF4X2xvd3JlcyAgICAgPSA1LAogICAgIC5wLnByb2ZpbGVz ICAgICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoZmZfanBlZzIwMDBfcHJvZmlsZXMpLAotLSAK Mi4zMC4yCgo= --=-o9r6hy52yDtC7Ec9QlUl 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". --=-o9r6hy52yDtC7Ec9QlUl--