From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 4436D40280 for ; Wed, 2 Jul 2025 10:58:00 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 5BE5D68CEF5; Wed, 2 Jul 2025 13:57:55 +0300 (EEST) Received: from smtp-8fa8.mail.infomaniak.ch (smtp-8fa8.mail.infomaniak.ch [83.166.143.168]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id A0CA168CC5A for ; Wed, 2 Jul 2025 13:57:48 +0300 (EEST) Received: from smtp-3-0001.mail.infomaniak.ch (unknown [IPv6:2001:1600:4:17::246c]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4bXH176NRnzSCw for ; Wed, 2 Jul 2025 12:57:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=regaud-chapuy.fr; s=20201206; t=1751453867; bh=WhoH9jRYQ8d9G7ER8hl0R+82amq/E3ALh4lOTd8tfCc=; h=Date:From:Subject:To:From; b=p9ma5MEHUVkxZ3R17MXalMFTn6v0+0o2dGmVGX7MfMNyRMYj0GsM7Xumy1TSPnhK4 ZCuSpbIgjaJ8iiV0SijOOI9bsixgTIufDtXMUcxgGgYTmyH1MGg6ZIOVLAEUnWnqat TceBHCko0SW2NZu96QljZlV70gskjlxw+PsC8gpg= Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4bXH1723XNzgZP for ; Wed, 2 Jul 2025 12:57:47 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------hTz5E8NkJ8qifiJgskDudw8t" Message-ID: <67c3bd5d-4570-48d3-9957-60f788adfcb2@regaud-chapuy.fr> Date: Wed, 2 Jul 2025 12:57:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Timothee To: ffmpeg-devel@ffmpeg.org X-Infomaniak-Routing: alpha X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] Macroblocks modes extraction 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. --------------hTz5E8NkJ8qifiJgskDudw8t Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, I am working on a modification toextract per-macroblock prediction modes (H.264 for now). The goal is to make this information available to vf_codecview and print it in a log file (for now). This are what I have added: 1. A new H264MBInfostruct holding the prediction modes. 2. An AVBufferRef *mb_info_refis added to the H264Picturestruct to store this data for each picture. 3. This buffer is allocated with av_buffer_allocz()in alloc_picture()and its reference is released with av_buffer_unref()in ff_h264_unref_picture(). 4. A new function, ff_h264_collect_mb_info(), is called after macroblock decoding to populate the buffer. 5. In output_frame(), a new side data (AV_FRAME_DATA_H264_MB_INFO) buffer is allocated, and the contents of srcp->mb_info_ref->dataare copied into it. 6. A new function to log the result in vf_codecview.c This implementation results in a segmentation fault. I guess it is a race condition, but I am struggling to fix it. The patch provided should result in the same error when running `./ffmpeg -loglevel debug -i input.mp4 -vf codecview=show_modes=1 -f null -` Are side data the right thing to use in this context ? Is there a better approach to do it ? I am new to FFmpeg and, in general, to large open-source projects, but I am willing to learn so please do not hesitate to correct me. Thank you for your guidance. Timothée --------------hTz5E8NkJ8qifiJgskDudw8t Content-Type: text/x-patch; charset=UTF-8; name="mb_modes_extraction_not_working.patch" Content-Disposition: attachment; filename="mb_modes_extraction_not_working.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI2NF9tYi5jIGIvbGliYXZjb2RlYy9oMjY0X21i LmMKaW5kZXggMGQ2NTYyYjU4My4uNDAwZDc2OWZjZSAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy9oMjY0X21iLmMKKysrIGIvbGliYXZjb2RlYy9oMjY0X21iLmMKQEAgLTM3LDYgKzM3LDY4 IEBACiAjaW5jbHVkZSAicmVjdGFuZ2xlLmgiCiAjaW5jbHVkZSAidGhyZWFkZnJhbWUuaCIK IAorLyoqCisgKiBDb2xsZWN0cyBkZXRhaWxlZCBtb2RlLCByZWZlcmVuY2UsIGFuZCBtb3Rp b24gdmVjdG9yIGluZm9ybWF0aW9uIGZvciB0aGUKKyAqIGN1cnJlbnQgbWFjcm9ibG9jayBh bmQgc3RvcmVzIGl0IGluIHRoZSBwaWN0dXJlJ3MgbWJfaW5mbyBidWZmZXIuIFRoaXMgYWxs b3dzCisgKiB0aGUgaW5mb3JtYXRpb24gdG8gYmUgcGFzc2VkIHRvIGZpbHRlcnMgdmlhIGZy YW1lIHNpZGUgZGF0YS4KKyAqLworc3RhdGljIHZvaWQgZmZfaDI2NF9jb2xsZWN0X21iX2lu Zm8oY29uc3QgSDI2NENvbnRleHQgKmgsIEgyNjRTbGljZUNvbnRleHQgKnNsKQoreworICAg IC8vIENoZWNrIGZvciBOVUxMIHBvaW50ZXJzIGF0IHRoZSB2ZXJ5IGJlZ2lubmluZy4KKyAg ICBpZiAoIWgtPmN1cl9waWNfcHRyKSB7CisgICAgICAgIC8qIGF2X2xvZyhoLT5hdmN0eCwg QVZfTE9HX0VSUk9SLCAiY29sbGVjdF9tYl9pbmZvOiBoLT5jdXJfcGljX3B0ciBpcyBOVUxM ISBtYl94eT0lZFxuIiwgc2wtPm1iX3h5KTsgKi8KKyAgICAgICAgcmV0dXJuOworICAgIH0K KworICAgIGlmICghaC0+Y3VyX3BpY19wdHItPm1iX2luZm9fcmVmKSB7CisgICAgICAgIHJl dHVybjsKKyAgICB9CisKKyAgICAvLyBDaGVjayBmb3Igb3V0LW9mLWJvdW5kcyBhY2Nlc3Mu CisgICAgaWYgKHNsLT5tYl94eSA+PSBoLT5tYl9udW0pIHsKKyAgICAgICAgLyogYXZfbG9n KGgtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJjb2xsZWN0X21iX2luZm86IG1iX3h5IG91dCBv ZiBib3VuZHMhIG1iX3h5PSVkLCBtYl9udW09JWRcbiIsIHNsLT5tYl94eSwgaC0+bWJfbnVt KTsgKi8KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEdldCB0aGUgZGF0YSBw b2ludGVyIGZyb20gdGhlIGJ1ZmZlcgorICAgIEgyNjRNQkluZm8gKm1iX2luZm8gPSAoSDI2 NE1CSW5mbyopaC0+Y3VyX3BpY19wdHItPm1iX2luZm9fcmVmLT5kYXRhOworICAgIEgyNjRN QkluZm8gKmluZm8gPSAmbWJfaW5mb1tzbC0+bWJfeHldOworICAgIGludCBtYl90eXBlID0g aC0+Y3VyX3BpYy5tYl90eXBlW3NsLT5tYl94eV07CisgICAgaW50IGksIGxpc3Q7CisKKyAg ICAvLyBDbGVhciBwcmV2aW91cyBpbmZvIHRvIGF2b2lkIHN0YWxlIGRhdGEKKyAgICBtZW1z ZXQoaW5mbywgMCwgc2l6ZW9mKEgyNjRNQkluZm8pKTsKKworICAgIGluZm8tPm1iX3R5cGUg PSBtYl90eXBlOworCisgICAgaWYgKElTX0lOVFJBKG1iX3R5cGUpKSB7CisgICAgICAgIGlm IChJU19JTlRSQTR4NChtYl90eXBlKSkgeworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8 IDE2OyBpKyspCisgICAgICAgICAgICAgICAgaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9t b2RlW2ldID0gc2wtPmludHJhNHg0X3ByZWRfbW9kZV9jYWNoZVtzY2FuOFtpXV07CisgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbmZvLT5pbnRyYS5pbnRyYTE2eDE2X3ByZWRf bW9kZSA9IHNsLT5pbnRyYTE2eDE2X3ByZWRfbW9kZTsKKyAgICAgICAgfQorICAgICAgICBp bmZvLT5pbnRyYS5jaHJvbWFfcHJlZF9tb2RlID0gc2wtPmNocm9tYV9wcmVkX21vZGU7Cisg ICAgfSBlbHNlIHsgLy8gSW50ZXIgbW9kZXMKKyAgICAgICAgaWYgKElTXzhYOChtYl90eXBl KSkgeworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKKyAgICAgICAgICAg ICAgICBpbmZvLT5pbnRlci5zdWJfbWJfdHlwZVtpXSA9IHNsLT5zdWJfbWJfdHlwZVtpXTsK KyAgICAgICAgfQorCisgICAgICAgIGZvciAobGlzdCA9IDA7IGxpc3QgPCAyOyBsaXN0Kysp IHsKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBsaXN0IGlzIHVzZWQgYnkgdGhlIG1h Y3JvYmxvY2sgcGFydGl0aW9uIG9yIGFueSBzdWItcGFydGl0aW9uCisgICAgICAgICAgICBp ZiAoVVNFU19MSVNUKG1iX3R5cGUsIGxpc3QpIHx8IChJU184WDgobWJfdHlwZSkgJiYgVVNF U19MSVNUKGluZm8tPmludGVyLnN1Yl9tYl90eXBlWzBdfGluZm8tPmludGVyLnN1Yl9tYl90 eXBlWzFdfGluZm8tPmludGVyLnN1Yl9tYl90eXBlWzJdfGluZm8tPmludGVyLnN1Yl9tYl90 eXBlWzNdLCBsaXN0KSkpIHsKKyAgICAgICAgICAgICAgICAvLyBTdG9yZSByZWZfaWR4IGFu ZCBNVnMgZm9yIGFsbCAxNiA0eDQgYmxvY2tzCisgICAgICAgICAgICAgICAgZm9yIChpID0g MDsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mby0+aW50ZXIucmVm X2lkeFtsaXN0XVtpXSA9IHNsLT5yZWZfY2FjaGVbbGlzdF1bc2NhbjhbaV1dOworICAgICAg ICAgICAgICAgICAgICBpbmZvLT5pbnRlci5tdltsaXN0XVtpXVswXSAgID0gc2wtPm12X2Nh Y2hlW2xpc3RdW3NjYW44W2ldXVswXTsKKyAgICAgICAgICAgICAgICAgICAgaW5mby0+aW50 ZXIubXZbbGlzdF1baV1bMV0gICA9IHNsLT5tdl9jYWNoZVtsaXN0XVtzY2FuOFtpXV1bMV07 CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor fQorCiBzdGF0aWMgaW5saW5lIGludCBnZXRfbG93ZXN0X3BhcnRfbGlzdF95KEgyNjRTbGlj ZUNvbnRleHQgKnNsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbiwgaW50IGhlaWdodCwgaW50IHlfb2Zmc2V0LCBpbnQgbGlzdCkKIHsKZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvaDI2NF9tYl9pbmZvLmggYi9saWJhdmNvZGVjL2gyNjRfbWJf aW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjEwNGQ2ZjU2 NjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL2gyNjRfbWJfaW5mby5oCkBAIC0w LDAgKzEsMjcgQEAKKyNpZm5kZWYgQVZDT0RFQ19IMjY0X01CX0lORk9fSAorI2RlZmluZSBB VkNPREVDX0gyNjRfTUJfSU5GT19ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKwordHlwZWRl ZiBzdHJ1Y3QgSDI2NE1CSW5mbyB7CisgICAgdWludDMyX3QgbWJfdHlwZTsgLy8gVGhlIGJh c2UgbWFjcm9ibG9jayB0eXBlIGZyb20gSC4yNjQgc3BlY3MKKworICAgIHVuaW9uIHsKKyAg ICAgICAgLy8gSW5mb3JtYXRpb24gZm9yIEludHJhLWNvZGVkIG1hY3JvYmxvY2tzCisgICAg ICAgIHN0cnVjdCB7CisgICAgICAgICAgICBpbnQ4X3QgaW50cmE0eDRfcHJlZF9tb2RlWzE2 XTsKKyAgICAgICAgICAgIHVpbnQ4X3QgaW50cmExNngxNl9wcmVkX21vZGU7CisgICAgICAg ICAgICB1aW50OF90IGNocm9tYV9wcmVkX21vZGU7CisgICAgICAgIH0gaW50cmE7CisKKyAg ICAgICAgLy8gSW5mb3JtYXRpb24gZm9yIEludGVyLWNvZGVkIG1hY3JvYmxvY2tzCisgICAg ICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50OF90IHN1Yl9tYl90eXBlWzRdOyAvLyBU eXBlIGZvciBlYWNoIDh4OCBwYXJ0aXRpb24KKyAgICAgICAgICAgIC8vIEZvciBlYWNoIG9m IHRoZSAxNiA0eDQgYmxvY2tzLCBzdG9yZSByZWZfaWR4IGFuZCBNViBmb3IgTDAgYW5kIEwx CisgICAgICAgICAgICBpbnQ4X3QgIHJlZl9pZHhbMl1bMTZdOworICAgICAgICAgICAgaW50 MTZfdCBtdlsyXVsxNl1bMl07CisgICAgICAgIH0gaW50ZXI7CisgICAgfTsKK30gSDI2NE1C SW5mbzsKKworI2VuZGlmIC8qIEFWQ09ERUNfSDI2NF9NQl9JTkZPX0ggKi8KZGlmZiAtLWdp dCBhL2xpYmF2Y29kZWMvaDI2NF9tYl90ZW1wbGF0ZS5jIGIvbGliYXZjb2RlYy9oMjY0X21i X3RlbXBsYXRlLmMKaW5kZXggZDVlYTI2YTZlMy4uNWM1ZWEyYWU0YyAxMDA2NDQKLS0tIGEv bGliYXZjb2RlYy9oMjY0X21iX3RlbXBsYXRlLmMKKysrIGIvbGliYXZjb2RlYy9oMjY0X21i X3RlbXBsYXRlLmMKQEAgLTUzLDYgKzUzLDkgQEAgc3RhdGljIGF2X25vaW5saW5lIHZvaWQg RlVOQyhobF9kZWNvZGVfbWIpKGNvbnN0IEgyNjRDb250ZXh0ICpoLCBIMjY0U2xpY2VDb250 ZXgKICAgICBjb25zdCBpbnQgYmxvY2tfaCAgID0gMTYgPj4gaC0+Y2hyb21hX3lfc2hpZnQ7 CiAgICAgY29uc3QgaW50IGNocm9tYTQyMiA9IENIUk9NQTQyMihoKTsKIAorICAgIC8vIENv bGxlY3QgbWFjcm9ibG9jayBpbmZvcm1hdGlvbiBhZnRlciBkZWNvZGluZworICAgIGZmX2gy NjRfY29sbGVjdF9tYl9pbmZvKGgsIHNsKTsKKwogICAgIGRlc3RfeSAgPSBoLT5jdXJfcGlj LmYtPmRhdGFbMF0gKyAoKG1iX3ggPDwgUElYRUxfU0hJRlQpICAgICArIG1iX3kgKiBzbC0+ bGluZXNpemUpICAqIDE2OwogICAgIGRlc3RfY2IgPSBoLT5jdXJfcGljLmYtPmRhdGFbMV0g KyAgKG1iX3ggPDwgUElYRUxfU0hJRlQpICogOCArIG1iX3kgKiBzbC0+dXZsaW5lc2l6ZSAq IGJsb2NrX2g7CiAgICAgZGVzdF9jciA9IGgtPmN1cl9waWMuZi0+ZGF0YVsyXSArICAobWJf eCA8PCBQSVhFTF9TSElGVCkgKiA4ICsgbWJfeSAqIHNsLT51dmxpbmVzaXplICogYmxvY2tf aDsKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI2NF9waWN0dXJlLmMgYi9saWJhdmNvZGVj L2gyNjRfcGljdHVyZS5jCmluZGV4IGY1ZDJiMzFjZDYuLjc2N2UxN2Y4M2UgMTAwNjQ0Ci0t LSBhL2xpYmF2Y29kZWMvaDI2NF9waWN0dXJlLmMKKysrIGIvbGliYXZjb2RlYy9oMjY0X3Bp Y3R1cmUuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9yZWZzdHJ1 Y3QuaCIKICNpbmNsdWRlICJ0aHJlYWQuaCIKICNpbmNsdWRlICJ0aHJlYWRmcmFtZS5oIgor I2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKIAogdm9pZCBmZl9oMjY0X3VucmVmX3BpY3R1 cmUoSDI2NFBpY3R1cmUgKnBpYykKIHsKQEAgLTU2LDYgKzU3LDcgQEAgdm9pZCBmZl9oMjY0 X3VucmVmX3BpY3R1cmUoSDI2NFBpY3R1cmUgKnBpYykKICAgICAgICAgYXZfcmVmc3RydWN0 X3VucmVmKCZwaWMtPnJlZl9pbmRleFtpXSk7CiAgICAgfQogICAgIGF2X3JlZnN0cnVjdF91 bnJlZigmcGljLT5kZWNvZGVfZXJyb3JfZmxhZ3MpOworICAgIGF2X2J1ZmZlcl91bnJlZigm cGljLT5tYl9pbmZvX3JlZik7CiAKICAgICBtZW1zZXQoKHVpbnQ4X3QqKXBpYyArIG9mZiwg MCwgc2l6ZW9mKCpwaWMpIC0gb2ZmKTsKIH0KQEAgLTEwMyw2ICsxMDUsNyBAQCBzdGF0aWMg dm9pZCBoMjY0X2NvcHlfcGljdHVyZV9wYXJhbXMoSDI2NFBpY3R1cmUgKmRzdCwgY29uc3Qg SDI2NFBpY3R1cmUgKnNyYykKICAgICBkc3QtPm1iX2hlaWdodCAgICAgPSBzcmMtPm1iX2hl aWdodDsKICAgICBkc3QtPm1iX3N0cmlkZSAgICAgPSBzcmMtPm1iX3N0cmlkZTsKICAgICBk c3QtPm5lZWRzX2ZnICAgICAgPSBzcmMtPm5lZWRzX2ZnOworICAgIGRzdC0+bWJfaW5mb19y ZWYgPSBhdl9idWZmZXJfcmVmKHNyYy0+bWJfaW5mb19yZWYpOwogfQogCiBpbnQgZmZfaDI2 NF9yZWZfcGljdHVyZShIMjY0UGljdHVyZSAqZHN0LCBjb25zdCBIMjY0UGljdHVyZSAqc3Jj KQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oMjY0X3NsaWNlLmMgYi9saWJhdmNvZGVjL2gy NjRfc2xpY2UuYwppbmRleCA3ZTUzZTM4Y2NhLi5mNDQxMzYxZDZmIDEwMDY0NAotLS0gYS9s aWJhdmNvZGVjL2gyNjRfc2xpY2UuYworKysgYi9saWJhdmNvZGVjL2gyNjRfc2xpY2UuYwpA QCAtMjY2LDYgKzI2NiwxMyBAQCBzdGF0aWMgaW50IGFsbG9jX3BpY3R1cmUoSDI2NENvbnRl eHQgKmgsIEgyNjRQaWN0dXJlICpwaWMpCiAgICAgcGljLT5tYl9oZWlnaHQgPSBoLT5tYl9o ZWlnaHQ7CiAgICAgcGljLT5tYl9zdHJpZGUgPSBoLT5tYl9zdHJpZGU7CiAKKyAgICAvLyBB bGxvY2F0ZSB0aGUgbWJfaW5mbyBidWZmZXIgZm9yIHRoaXMgcGljdHVyZS4KKyAgICBwaWMt Pm1iX2luZm9fcmVmID0gYXZfYnVmZmVyX2FsbG9jeihoLT5tYl9udW0gKiBzaXplb2YoSDI2 NE1CSW5mbykpOworICAgIGF2X2xvZyhoLT5hdmN0eCwgQVZfTE9HX0RFQlVHLCAiQWxsb2Nh dGVkIG1iX2luZm8gYnVmZmVyIGZvciBwaWMgJXAgKHNpemU6ICV6dSlcbiIsIHBpYywgKHNp emVfdCloLT5tYl9udW0gKiBzaXplb2YoSDI2NE1CSW5mbykpOworCisgICAgaWYgKCFwaWMt Pm1iX2luZm9fcmVmKQorICAgICAgICBnb3RvIGZhaWw7CisKICAgICByZXR1cm4gMDsKIGZh aWw6CiAgICAgZmZfaDI2NF91bnJlZl9waWN0dXJlKHBpYyk7CmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL2gyNjRkZWMuYyBiL2xpYmF2Y29kZWMvaDI2NGRlYy5jCmluZGV4IDgyYjg1YjMz ODcuLjE1NjBhYjFiMzMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvaDI2NGRlYy5jCisrKyBi L2xpYmF2Y29kZWMvaDI2NGRlYy5jCkBAIC04ODcsNiArODg3LDI5IEBAIHN0YXRpYyBpbnQg b3V0cHV0X2ZyYW1lKEgyNjRDb250ZXh0ICpoLCBBVkZyYW1lICpkc3QsIEgyNjRQaWN0dXJl ICpzcmNwKQogICAgICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAorICAgIGF2X2xvZyho LT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiV2lsbCB0cnkgdG8gYXR0YWNoIHRoZSBtYWNyb2Js b2NrIGluZm8gaW5zaWRlIGFzIHNpZGUgZGF0YVxuIik7CisKKyAgICAvLyBBdHRhY2ggdGhl IG1hY3JvYmxvY2sgaW5mbyBmcm9tIHRoZSBzb3VyY2UgcGljdHVyZSAoc3JjcCkuCisgICAg aWYgKHNyY3AtPm1iX2luZm9fcmVmKSB7CisgICAgICAgIEFWRnJhbWVTaWRlRGF0YSAqc2lk ZV9kYXRhOworICAgICAgICBzaXplX3QgbWJfaW5mb19zaXplID0gc3JjcC0+bWJfaW5mb19y ZWYtPnNpemU7CisKKyAgICAgICAgYXZfbG9nKGgtPmF2Y3R4LCBBVl9MT0dfREVCVUcsICJB dHRhY2hpbmcgbWJfaW5mbyBmcm9tIHBpYyAlcCB0byBmcmFtZSAlIlBSSWQ2NCJcbiIsIHNy Y3AsIGRzdC0+cHRzKTsKKworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgc2lkZSBkYXRhIGVu dHJ5IGFuZCBjb3B5IHRoZSBkYXRhIGludG8gaXQuCisgICAgICAgIHNpZGVfZGF0YSA9IGF2 X2ZyYW1lX25ld19zaWRlX2RhdGEoZHN0LCBBVl9GUkFNRV9EQVRBX0gyNjRfTUJfSU5GTywg bWJfaW5mb19zaXplKTsKKyAgICAgICAgaWYgKCFzaWRlX2RhdGEpIHsKKyAgICAgICAgICAg IGF2X2xvZyhoLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGFsbG9jYXRlIHNp ZGUgZGF0YSBmb3IgTUIgaW5mby5cbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgYXZfbG9nKGgtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJDb3B5aW5nIHNpZGUgZGF0YSBm b3IgTUIgaW5mby5cbiIpOworICAgICAgICAgICAgbWVtY3B5KHNpZGVfZGF0YS0+ZGF0YSwg c3JjcC0+bWJfaW5mb19yZWYtPmRhdGEsIG1iX2luZm9fc2l6ZSk7CisgICAgICAgIH0KKyAg ICB9IGVsc2UgeworICAgICAgICBhdl9sb2coaC0+YXZjdHgsIEFWX0xPR19XQVJOSU5HLCAi b3V0cHV0X2ZyYW1lOiBzcmNwLT5tYl9pbmZvX3JlZiB3YXMgTlVMTCBmb3IgcGljICVwLiBO byBzaWRlIGRhdGEgdG8gYXR0YWNoLlxuIiwgc3JjcCk7CisgICAgfQorCisgICAgYXZfbG9n KGgtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJFbmQgb2YgYmxvY2sgYXR0YWNoIHRoZSBtYWNy b2Jsb2NrIGluZm8gaW5zaWRlIGFzIHNpZGUgZGF0YVxuIik7CisKICAgICBpZiAoIShoLT5h dmN0eC0+ZXhwb3J0X3NpZGVfZGF0YSAmIEFWX0NPREVDX0VYUE9SVF9EQVRBX0ZJTE1fR1JB SU4pKQogICAgICAgICBhdl9mcmFtZV9yZW1vdmVfc2lkZV9kYXRhKGRzdCwgQVZfRlJBTUVf REFUQV9GSUxNX0dSQUlOX1BBUkFNUyk7CiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvaDI2 NGRlYy5oIGIvbGliYXZjb2RlYy9oMjY0ZGVjLmgKaW5kZXggYzI4ZDI3ODI0MC4uZmUxNTA3 NWM2NCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9oMjY0ZGVjLmgKKysrIGIvbGliYXZjb2Rl Yy9oMjY0ZGVjLmgKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJtcGVndXRpbHMuaCIK ICNpbmNsdWRlICJ0aHJlYWRmcmFtZS5oIgogI2luY2x1ZGUgInZpZGVvZHNwLmgiCisjaW5j bHVkZSAiaDI2NF9tYl9pbmZvLmgiCiAKICNkZWZpbmUgSDI2NF9NQVhfUElDVFVSRV9DT1VO VCAzNgogCkBAIC0xNjQsNiArMTY1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgSDI2NFBpY3R1cmUg ewogICAgIGF0b21pY19pbnQgKmRlY29kZV9lcnJvcl9mbGFnczsKIAogICAgIGludCBncmF5 OworCisgICAgLy8gQnVmZmVyIHRvIHN0b3JlIG1hY3JvYmxvY2sgbW9kZSBpbmZvcm1hdGlv biBmb3IgdGhpcyBwaWN0dXJlLgorICAgIEFWQnVmZmVyUmVmICptYl9pbmZvX3JlZjsKIH0g SDI2NFBpY3R1cmU7CiAKIHR5cGVkZWYgc3RydWN0IEgyNjRSZWYgewpkaWZmIC0tZ2l0IGEv bGliYXZmaWx0ZXIvdmZfY29kZWN2aWV3LmMgYi9saWJhdmZpbHRlci92Zl9jb2RlY3ZpZXcu YwppbmRleCBhNGE3MDFiMDBjLi45NjM1ZjY0MjBkIDEwMDY0NAotLS0gYS9saWJhdmZpbHRl ci92Zl9jb2RlY3ZpZXcuYworKysgYi9saWJhdmZpbHRlci92Zl9jb2RlY3ZpZXcuYwpAQCAt MzksNiArMzksMTEgQEAKICNpbmNsdWRlICJxcF90YWJsZS5oIgogI2luY2x1ZGUgInZpZGVv LmgiCiAKKyNpbmNsdWRlICJsaWJhdmNvZGVjL2gyNjQuaCIKKyNpbmNsdWRlICJsaWJhdmNv ZGVjL2gyNjRwcmVkLmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9oMjY0X21iX2luZm8uaCIK KyNpbmNsdWRlICJsaWJhdmNvZGVjL21wZWd1dGlscy5oIgorCiAjZGVmaW5lIE1WX1BfRk9S ICAoMTw8MCkKICNkZWZpbmUgTVZfQl9GT1IgICgxPDwxKQogI2RlZmluZSBNVl9CX0JBQ0sg KDE8PDIpCkBAIC01Niw2ICs2MSw4IEBAIHR5cGVkZWYgc3RydWN0IENvZGVjVmlld0NvbnRl eHQgewogICAgIGludCBoc3ViLCB2c3ViOwogICAgIGludCBxcDsKICAgICBpbnQgYmxvY2s7 CisgICAgaW50IHNob3dfbW9kZXM7CisgICAgaW50IGZyYW1lX2NvdW50OwogfSBDb2RlY1Zp ZXdDb250ZXh0OwogCiAjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihDb2RlY1ZpZXdDb250 ZXh0LCB4KQpAQCAtNzgsOSArODUsNTUgQEAgc3RhdGljIGNvbnN0IEFWT3B0aW9uIGNvZGVj dmlld19vcHRpb25zW10gPSB7CiAgICAgICAgIENPTlNUKCJwZiIsICJQLWZyYW1lcyIsIEZS QU1FX1RZUEVfUCwgImZyYW1lX3R5cGUiKSwKICAgICAgICAgQ09OU1QoImJmIiwgIkItZnJh bWVzIiwgRlJBTUVfVFlQRV9CLCAiZnJhbWVfdHlwZSIpLAogICAgIHsgImJsb2NrIiwgICAg ICAic2V0IGJsb2NrIHBhcnRpdGlvbmluZyBzdHJ1Y3R1cmUgdG8gdmlzdWFsaXplIiwgT0ZG U0VUKGJsb2NrKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQ9MH0sIDAsIDEsIEZMQUdTIH0s CisgICAgeyAic2hvd19tb2RlcyIsICJWaXN1YWxpemUgbWFjcm9ibG9jayBtb2RlcyIsIE9G RlNFVChzaG93X21vZGVzKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQ9MH0sIDAsIDEsIEZM QUdTIH0sCiAgICAgeyBOVUxMIH0KIH07CiAKK3N0YXRpYyBjb25zdCBjaGFyICpnZXRfaW50 cmFfNHg0X21vZGVfbmFtZShpbnQgbW9kZSkgeworICAgIHN3aXRjaCAobW9kZSkgeworICAg IGNhc2UgVkVSVF9QUkVEOiAgICAgICAgICAgIHJldHVybiAiViI7CisgICAgY2FzZSBIT1Jf UFJFRDogICAgICAgICAgICAgcmV0dXJuICJIIjsKKyAgICBjYXNlIERDX1BSRUQ6ICAgICAg ICAgICAgICByZXR1cm4gIkRDIjsKKyAgICBjYXNlIERJQUdfRE9XTl9MRUZUX1BSRUQ6ICBy ZXR1cm4gIkRMIjsKKyAgICBjYXNlIERJQUdfRE9XTl9SSUdIVF9QUkVEOiByZXR1cm4gIkRS IjsKKyAgICBjYXNlIFZFUlRfUklHSFRfUFJFRDogICAgICByZXR1cm4gIlZSIjsKKyAgICBj YXNlIEhPUl9ET1dOX1BSRUQ6ICAgICAgICByZXR1cm4gIkhEIjsKKyAgICBjYXNlIFZFUlRf TEVGVF9QUkVEOiAgICAgICByZXR1cm4gIlZMIjsKKyAgICBjYXNlIEhPUl9VUF9QUkVEOiAg ICAgICAgICByZXR1cm4gIkhVIjsKKyAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAgICBy ZXR1cm4gIj8iOworICAgIH0KK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmdldF9pbnRyYV8x NngxNl9tb2RlX25hbWUoaW50IG1vZGUpIHsKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBj YXNlIFZFUlRfUFJFRDh4ODogICByZXR1cm4gIlZlcnRpY2FsIjsKKyAgICBjYXNlIEhPUl9Q UkVEOHg4OiAgICByZXR1cm4gIkhvcml6b250YWwiOworICAgIGNhc2UgRENfUFJFRDh4ODog ICAgIHJldHVybiAiREMiOworICAgIGNhc2UgUExBTkVfUFJFRDh4ODogIHJldHVybiAiUGxh bmUiOworICAgIGRlZmF1bHQ6ICAgICAgICAgICAgIHJldHVybiAiVW5rbm93biI7CisgICAg fQorfQorCitzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2Nocm9tYV9tb2RlX25hbWUoaW50IG1v ZGUpIHsKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIERDX1BSRUQ4eDg6ICAgIHJl dHVybiAiREMiOworICAgIGNhc2UgSE9SX1BSRUQ4eDg6ICAgcmV0dXJuICJIIjsKKyAgICBj YXNlIFZFUlRfUFJFRDh4ODogIHJldHVybiAiViI7CisgICAgY2FzZSBQTEFORV9QUkVEOHg4 OiByZXR1cm4gIlBsYW5lIjsKKyAgICBkZWZhdWx0OiAgICAgICAgICAgIHJldHVybiAiVW5r bm93biI7CisgICAgfQorfQorCitzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2ludGVyX3N1Yl9t Yl90eXBlX25hbWUodWludDhfdCB0eXBlKSB7CisgICAgc3dpdGNoKHR5cGUpeworICAgICAg ICBjYXNlIDA6IHJldHVybiAiRCI7ICAvLyBEaXJlY3QKKyAgICAgICAgY2FzZSAxOiByZXR1 cm4gIkwwIjsKKyAgICAgICAgY2FzZSAyOiByZXR1cm4gIkwxIjsKKyAgICAgICAgY2FzZSAz OiByZXR1cm4gIkJJIjsKKyAgICAgICAgZGVmYXVsdDogcmV0dXJuICI/IjsKKyAgICB9Cit9 CisKIEFWRklMVEVSX0RFRklORV9DTEFTUyhjb2RlY3ZpZXcpOwogCiBzdGF0aWMgaW50IGNs aXBfbGluZShpbnQgKnN4LCBpbnQgKnN5LCBpbnQgKmV4LCBpbnQgKmV5LCBpbnQgbWF4eCkK QEAgLTIxOSwxMiArMjcyLDEzMSBAQCBzdGF0aWMgdm9pZCBkcmF3X2Jsb2NrX3JlY3Rhbmds ZSh1aW50OF90ICpidWYsIGludCBzeCwgaW50IHN5LCBpbnQgdywgaW50IGgsIHB0cgogICAg IH0KIH0KIAorc3RhdGljIHZvaWQgbG9nX21iX2luZm8oQVZGaWx0ZXJDb250ZXh0ICpjdHgs IEFWRnJhbWUgKmZyYW1lLCBpbnQ2NF90IGZyYW1lX251bSkKK3sKKyAgICBBVkZyYW1lU2lk ZURhdGEgKnNkID0gYXZfZnJhbWVfZ2V0X3NpZGVfZGF0YShmcmFtZSwgQVZfRlJBTUVfREFU QV9IMjY0X01CX0lORk8pOworICAgIGlmICghc2QpCisgICAgICAgIHJldHVybjsKKworICAg IGNvbnN0IEgyNjRNQkluZm8gKm1iX2luZm8gPSAoY29uc3QgSDI2NE1CSW5mbyAqKXNkLT5k YXRhOworICAgIGludCBuYl9tYiA9IHNkLT5zaXplIC8gc2l6ZW9mKEgyNjRNQkluZm8pOwor ICAgIGludCBtYl93ID0gKGZyYW1lLT53aWR0aCArIDE1KSAvIDE2OworCisgICAgLy8gQWxs b2NhdGUgYSBsYXJnZSBidWZmZXIgdG8gYnVpbGQgdGhlIGxvZyBzdHJpbmcuCisgICAgc2l6 ZV90IGJ1Zl9zaXplID0gMzI3Njg7CisgICAgY2hhciAqbG9nX2J1ZiA9IGF2X21hbGxvYyhi dWZfc2l6ZSk7CisgICAgaWYgKCFsb2dfYnVmKQorICAgICAgICByZXR1cm47CisKKyAgICBj aGFyICpwID0gbG9nX2J1ZjsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gYnVmX3NpemU7Cisg ICAgaW50IHJldDsKKworICAgIC8vIFdyaXRlIHRoZSBtYWluIGhlYWRlciBmb3IgdGhlIGZy YW1lIGludG8gdGhlIGJ1ZmZlcgorICAgIHJldCA9IHNucHJpbnRmKHAsIHJlbWFpbmluZywg IkguMjY0IE1vZGVzIGZvciBmcmFtZV9udW0gJSJQUklkNjQiIChwdHM6ICUiUFJJZDY0Iiwg dHlwZTogJWMpOlxuIiwKKyAgICAgICAgICAgICAgICAgICBmcmFtZV9udW0sIGZyYW1lLT5w dHMsIGF2X2dldF9waWN0dXJlX3R5cGVfY2hhcihmcmFtZS0+cGljdF90eXBlKSk7CisgICAg aWYgKHJldCA+IDAgJiYgcmV0IDwgcmVtYWluaW5nKSB7CisgICAgICAgIHAgKz0gcmV0Owor ICAgICAgICByZW1haW5pbmcgLT0gcmV0OworICAgIH0KKworICAgIGZvciAoaW50IGkgPSAw OyBpIDwgbmJfbWI7IGkrKykgeworICAgICAgICBjb25zdCBIMjY0TUJJbmZvICppbmZvID0g Jm1iX2luZm9baV07CisgICAgICAgIGludCBtYl94ID0gaSAlIG1iX3c7CisgICAgICAgIGlu dCBtYl95ID0gaSAvIG1iX3c7CisKKyAgICAgICAgaWYgKHJlbWFpbmluZyA8IDI1NikgLy8g U2FmZXR5IGNoZWNrLCBicmVhayBpZiBidWZmZXIgaXMgYWxtb3N0IGZ1bGwKKyAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgIGlmIChJU19JTlRSQShpbmZvLT5tYl90eXBlKSkgewor ICAgICAgICAgICAgaWYgKElTX0lOVFJBNHg0KGluZm8tPm1iX3R5cGUpKSB7CisgICAgICAg ICAgICAgICAgcmV0ID0gc25wcmludGYocCwgcmVtYWluaW5nLCAiTUIoJTJkLCUyZCk6IElf NHg0ICBDOiUtNXMgUDpbJXMsJXMsJXMsJXN8JXMsJXMsJXMsJXN8JXMsJXMsJXMsJXN8JXMs JXMsJXMsJXNdXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBtYl94LCBtYl95LCBnZXRf Y2hyb21hX21vZGVfbmFtZShpbmZvLT5pbnRyYS5jaHJvbWFfcHJlZF9tb2RlKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEu aW50cmE0eDRfcHJlZF9tb2RlWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2lu dHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzFdKSwK KyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25hbWUoaW5mby0+ aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAg Z2V0X2ludHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2Rl WzNdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25hbWUo aW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzRdKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJl ZF9tb2RlWzVdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2Rl X25hbWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzZdKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEuaW50cmE0 eDRfcHJlZF9tb2RlWzddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4 NF9tb2RlX25hbWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzhdKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEu aW50cmE0eDRfcHJlZF9tb2RlWzldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2lu dHJhXzR4NF9tb2RlX25hbWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzEwXSks CisgICAgICAgICAgICAgICAgICAgICAgIGdldF9pbnRyYV80eDRfbW9kZV9uYW1lKGluZm8t PmludHJhLmludHJhNHg0X3ByZWRfbW9kZVsxMV0pLAorICAgICAgICAgICAgICAgICAgICAg ICBnZXRfaW50cmFfNHg0X21vZGVfbmFtZShpbmZvLT5pbnRyYS5pbnRyYTR4NF9wcmVkX21v ZGVbMTJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2ludHJhXzR4NF9tb2RlX25h bWUoaW5mby0+aW50cmEuaW50cmE0eDRfcHJlZF9tb2RlWzEzXSksCisgICAgICAgICAgICAg ICAgICAgICAgIGdldF9pbnRyYV80eDRfbW9kZV9uYW1lKGluZm8tPmludHJhLmludHJhNHg0 X3ByZWRfbW9kZVsxNF0pLAorICAgICAgICAgICAgICAgICAgICAgICBnZXRfaW50cmFfNHg0 X21vZGVfbmFtZShpbmZvLT5pbnRyYS5pbnRyYTR4NF9wcmVkX21vZGVbMTVdKSk7CisgICAg ICAgICAgICB9IGVsc2UgaWYgKElTX0lOVFJBMTZ4MTYoaW5mby0+bWJfdHlwZSkpIHsKKyAg ICAgICAgICAgICAgICByZXQgPSBzbnByaW50ZihwLCByZW1haW5pbmcsICJNQiglMmQsJTJk KTogSV8xNngxNiBNb2RlOiUtMTBzIENocm9tYU1vZGU6JXNcbiIsCisgICAgICAgICAgICAg ICAgICAgICAgIG1iX3gsIG1iX3ksIGdldF9pbnRyYV8xNngxNl9tb2RlX25hbWUoaW5mby0+ aW50cmEuaW50cmExNngxNl9wcmVkX21vZGUpLAorICAgICAgICAgICAgICAgICAgICAgICBn ZXRfY2hyb21hX21vZGVfbmFtZShpbmZvLT5pbnRyYS5jaHJvbWFfcHJlZF9tb2RlKSk7Cisg ICAgICAgICAgICB9IGVsc2UgaWYgKElTX0lOVFJBX1BDTShpbmZvLT5tYl90eXBlKSkgewor ICAgICAgICAgICAgICAgIHJldCA9IHNucHJpbnRmKHAsIHJlbWFpbmluZywgIk1CKCUyZCwl MmQpOiBJX1BDTVxuIiwgbWJfeCwgbWJfeSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g ZWxzZSB7IC8vIEludGVyCisgICAgICAgICAgICBpZiAoSVNfU0tJUChpbmZvLT5tYl90eXBl KSkgeworICAgICAgICAgICAgICAgIHJldCA9IHNucHJpbnRmKHAsIHJlbWFpbmluZywgIk1C KCUyZCwlMmQpOiBTa2lwXG4iLCBtYl94LCBtYl95KTsKKyAgICAgICAgICAgIH0gZWxzZSBp ZiAoSVNfMTZYMTYoaW5mby0+bWJfdHlwZSkpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBz bnByaW50ZihwLCByZW1haW5pbmcsICJNQiglMmQsJTJkKTogUF8xNngxNiBMMDpbJWQgJTRk LCU0ZF0gTDE6WyVkICU0ZCwlNGRdXG4iLCBtYl94LCBtYl95LAorICAgICAgICAgICAgICAg ICAgICAgICBpbmZvLT5pbnRlci5yZWZfaWR4WzBdWzBdLCBpbmZvLT5pbnRlci5tdlswXVsw XVswXSwgaW5mby0+aW50ZXIubXZbMF1bMF1bMV0sCisgICAgICAgICAgICAgICAgICAgICAg IGluZm8tPmludGVyLnJlZl9pZHhbMV1bMF0sIGluZm8tPmludGVyLm12WzFdWzBdWzBdLCBp bmZvLT5pbnRlci5tdlsxXVswXVsxXSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKElTXzE2 WDgoaW5mby0+bWJfdHlwZSkpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzbnByaW50Zihw LCByZW1haW5pbmcsICJNQiglMmQsJTJkKTogUF8xNng4IFQ6IEwwOlslZCAlNGQsJTRkXSBM MTpbJWQgJTRkLCU0ZF0gQjogTDA6WyVkICU0ZCwlNGRdIEwxOlslZCAlNGQsJTRkXVxuIiwg bWJfeCwgbWJfeSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+aW50ZXIucmVmX2lk eFswXVswXSwgaW5mby0+aW50ZXIubXZbMF1bMF1bMF0sIGluZm8tPmludGVyLm12WzBdWzBd WzFdLAorICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5pbnRlci5yZWZfaWR4WzFdWzBd LCBpbmZvLT5pbnRlci5tdlsxXVswXVswXSwgaW5mby0+aW50ZXIubXZbMV1bMF1bMV0sCisg ICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmludGVyLnJlZl9pZHhbMF1bOF0sIGluZm8t PmludGVyLm12WzBdWzhdWzBdLCBpbmZvLT5pbnRlci5tdlswXVs4XVsxXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgaW5mby0+aW50ZXIucmVmX2lkeFsxXVs4XSwgaW5mby0+aW50ZXIu bXZbMV1bOF1bMF0sIGluZm8tPmludGVyLm12WzFdWzhdWzFdKTsKKyAgICAgICAgICAgIH0g ZWxzZSBpZiAoSVNfOFgxNihpbmZvLT5tYl90eXBlKSkgeworICAgICAgICAgICAgICAgIHJl dCA9IHNucHJpbnRmKHAsIHJlbWFpbmluZywgIk1CKCUyZCwlMmQpOiBQXzh4MTYgIEw6IEww OlslZCAlNGQsJTRkXSBMMTpbJWQgJTRkLCU0ZF0gUjogTDA6WyVkICU0ZCwlNGRdIEwxOlsl ZCAlNGQsJTRkXVxuIiwgbWJfeCwgbWJfeSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW5m by0+aW50ZXIucmVmX2lkeFswXVswXSwgaW5mby0+aW50ZXIubXZbMF1bMF1bMF0sIGluZm8t PmludGVyLm12WzBdWzBdWzFdLAorICAgICAgICAgICAgICAgICAgICAgICBpbmZvLT5pbnRl ci5yZWZfaWR4WzFdWzBdLCBpbmZvLT5pbnRlci5tdlsxXVswXVswXSwgaW5mby0+aW50ZXIu bXZbMV1bMF1bMV0sCisgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPmludGVyLnJlZl9p ZHhbMF1bNF0sIGluZm8tPmludGVyLm12WzBdWzRdWzBdLCBpbmZvLT5pbnRlci5tdlswXVs0 XVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+aW50ZXIucmVmX2lkeFsxXVs0 XSwgaW5mby0+aW50ZXIubXZbMV1bNF1bMF0sIGluZm8tPmludGVyLm12WzFdWzRdWzFdKTsK KyAgICAgICAgICAgIH0gZWxzZSBpZiAoSVNfOFg4KGluZm8tPm1iX3R5cGUpKSB7CisgICAg ICAgICAgICAgICAgcmV0ID0gc25wcmludGYocCwgcmVtYWluaW5nLCAiTUIoJTJkLCUyZCk6 IFBfOHg4XG4iLCBtYl94LCBtYl95KTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ID4gMCAm JiByZXQgPCByZW1haW5pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgcCArPSByZXQ7Cisg ICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyAtPSByZXQ7CisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgNDsgaisrKSB7CisgICAg ICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPCAxMjgpIGJyZWFrOworICAgICAgICAg ICAgICAgICAgICByZXQgPSBzbnByaW50ZihwLCByZW1haW5pbmcsICJcdEJsayAlZDogJS0y cyBMMDpbJWQgJTRkLCU0ZF0gTDE6WyVkICU0ZCwlNGRdXG4iLCBqLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2V0X2ludGVyX3N1Yl9tYl90eXBlX25hbWUoaW5mby0+aW50ZXIu c3ViX21iX3R5cGVbal0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+aW50 ZXIucmVmX2lkeFswXVtqKjRdLCBpbmZvLT5pbnRlci5tdlswXVtqKjRdWzBdLCBpbmZvLT5p bnRlci5tdlswXVtqKjRdWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+ aW50ZXIucmVmX2lkeFsxXVtqKjRdLCBpbmZvLT5pbnRlci5tdlsxXVtqKjRdWzBdLCBpbmZv LT5pbnRlci5tdlsxXVtqKjRdWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA+ IDAgJiYgcmV0IDwgcmVtYWluaW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwICs9 IHJldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyAtPSByZXQ7CisgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg cmV0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXQg PiAwICYmIHJldCA8IHJlbWFpbmluZykgeworICAgICAgICAgICAgcCArPSByZXQ7CisgICAg ICAgICAgICByZW1haW5pbmcgLT0gcmV0OworICAgICAgICB9CisgICAgfQorCisgICAgLy8g UHJpbnQgdGhlIGVudGlyZSBidWZmZXIgaW4gb25lIGdvLgorICAgIGF2X2xvZyhjdHgsIEFW X0xPR19JTkZPLCAiJXMiLCBsb2dfYnVmKTsKKyAgICBhdl9mcmVlKGxvZ19idWYpOworfQog c3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxpbmssIEFWRnJhbWUg KmZyYW1lKQogewogICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gaW5saW5rLT5kc3Q7CiAg ICAgQ29kZWNWaWV3Q29udGV4dCAqcyA9IGN0eC0+cHJpdjsKICAgICBBVkZpbHRlckxpbmsg Km91dGxpbmsgPSBjdHgtPm91dHB1dHNbMF07CiAKKyAgICBpZiAocy0+c2hvd19tb2Rlcykg eworICAgICAgICBsb2dfbWJfaW5mbyhjdHgsIGZyYW1lLCBzLT5mcmFtZV9jb3VudCk7Cisg ICAgfQorCisgICAgcy0+ZnJhbWVfY291bnQrKzsKKwogICAgIGlmIChzLT5xcCkgewogICAg ICAgICBlbnVtIEFWVmlkZW9FbmNQYXJhbXNUeXBlIHFwX3R5cGU7CiAgICAgICAgIGludCBx c3RyaWRlLCByZXQ7CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvZnJhbWUuaCBiL2xpYmF2dXRp bC9mcmFtZS5oCmluZGV4IGM1MGNkMjYzZDkuLjhhNTRjYTc5ODkgMTAwNjQ0Ci0tLSBhL2xp YmF2dXRpbC9mcmFtZS5oCisrKyBiL2xpYmF2dXRpbC9mcmFtZS5oCkBAIC0yNTQsNiArMjU0 LDExIEBAIGVudW0gQVZGcmFtZVNpZGVEYXRhVHlwZSB7CiAgICAgICogbGliYXZ1dGlsL3Rk cmRpLmguCiAgICAgICovCiAgICAgQVZfRlJBTUVfREFUQV8zRF9SRUZFUkVOQ0VfRElTUExB WVMsCisKKyAgICAvKioKKyAgICAgKiBILjI2NCBNYWNyb2Jsb2NrIEluZm8sIHRoZSBkYXRh IGlzIGFuIGFycmF5IG9mIEgyNjRNQkluZm8gc3RydWN0dXJlcy4KKyAgICAgKi8KKyAgICBB Vl9GUkFNRV9EQVRBX0gyNjRfTUJfSU5GTywKIH07CiAKIGVudW0gQVZBY3RpdmVGb3JtYXRE ZXNjcmlwdGlvbiB7Cg== --------------hTz5E8NkJ8qifiJgskDudw8t 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". --------------hTz5E8NkJ8qifiJgskDudw8t--