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 F1A2843A32 for ; Fri, 5 Aug 2022 13:20:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2A6E868B620; Fri, 5 Aug 2022 16:20:02 +0300 (EEST) Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 33D9A68B1F6 for ; Fri, 5 Aug 2022 16:19:54 +0300 (EEST) Received: by mail-lf1-f44.google.com with SMTP id u1so3421731lfq.4 for ; Fri, 05 Aug 2022 06:19:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc; bh=zYBv7IyR9ECkN9LU9sZf/yuAj6DpCpWNJAi8VoPYyOA=; b=adBCu5l52sdh5k5Jscs6T9Qg2hn3OqDL5RPLbxigfs6sjCaK4D2X3+Ww+fV+XKmX8H 7GpFHmwEyZvykXZCHLkQyXOymJQqxcqnB9Vj+XWeMTIw0Dmxre0wvTLZhVAVtLHa0c1l RQRkgFhOmngGiCiU8m5BFY/6UFhFNjWeVQKmjhfKwS0RxE4UW5AHhf6CTZCBFc8i4KLZ YWO4YZOP9VHN/Cuz97Q4tECPyQRoeT2xzucVpPgx53qlN4sEXAPoQzbMMF0kc4bs6vdn fFQNTAeHpO8OOX+e86vktggPxXNCUNnP8vnlsytQz73flpJy3WDZKr4FtvbvZNBuwX7w kM+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc; bh=zYBv7IyR9ECkN9LU9sZf/yuAj6DpCpWNJAi8VoPYyOA=; b=RTo7S7cG59am3T9s8BW8ERAM1Bzjh8MyC9Wh7Vd+k/6Mn62z8aMef9tzcPNqHwI9Bd dIM5wLSEF2XcpCCMkJlKNZPb0NnTPIFOpuW5/18K3pySae7O+ikD1mEmzAMvL+8Wz4gH bZqk57MjUUDuimAZGo2oiIZJ172AhweLKih9FzOCsR9NLTWX0bd6G8AkciU7YCQrpvwg guRfrFbkTYOTOa+x5u0yNpkm3t5knQA3vnG6xE9m0uoLWTyRe053OKtTnXlrcgjBs5l7 mgUGHxRpOLYZm43ZD22+HmPcdyZbJEEnWjYDmixBVGRNI7LZxVUjrGowLwYZPgV51xll dkdg== X-Gm-Message-State: ACgBeo0/W2VXFUpnOQ7nkhGPDKdqtzdXppRB9byn1jd6XEjPoXjL9w7L lPfaVmnU157Ld/AoWSXI/0EfBssfl/w= X-Google-Smtp-Source: AA6agR4x5FgVdWoaqObQDR7PBsqywOCscqtlhlUhyZRqEd4oo47l1jN7tDYgG8/hsaRl2rcz7V5AcQ== X-Received: by 2002:a05:6512:3982:b0:48b:3f81:54fd with SMTP id j2-20020a056512398200b0048b3f8154fdmr1058011lfu.229.1659705593370; Fri, 05 Aug 2022 06:19:53 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id o20-20020a2e9b54000000b0025e2c5a12b6sm467373ljj.129.2022.08.05.06.19.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Aug 2022 06:19:52 -0700 (PDT) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 5 Aug 2022 16:19:45 +0300 Message-Id: <20220805131945.21970-3-jeebjp@gmail.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220805131945.21970-1-jeebjp@gmail.com> References: <20220729133537.53269-1-jeebjp@gmail.com> <20220805131945.21970-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 3/3] ffmpeg: add video heartbeat capability to fix_sub_duration 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJvbTogSmFuIEVrc3Ryw7ZtIDxqYW4uZWtzdHJvbUAyNGkuY29tPgoKU3BsaXRzIHRoZSBjdXJy ZW50bHkgaGFuZGxlZCBzdWJ0aXRsZSBhdCByYW5kb20gYWNjZXNzIHBvaW50CnBhY2tldHMgdGhh dCBjYW4gYmUgY29uZmlndXJlZCB0byBmb2xsb3cgYSBzcGVjaWZpYyBvdXRwdXQgc3RyZWFtLgoK VGhpcyB3YXkgdGhlIHN1YnRpdGxlIC0gd2hpY2ggaXMga25vd24gdG8gYmUgc2hvd24gYXQgdGhp cyB0aW1lCmNhbiBiZSBzcGxpdCBhbmQgcGFzc2VkIHRvIG11eGVyIGJlZm9yZSBpdHMgZnVsbCBk dXJhdGlvbiBpcwp5ZXQga25vd24uCgpDby1hdXRob3JlZC1ieTogQW5kcnplaiBOYWRhY2hvd3Nr aSA8YW5kcnplai5uYWRhY2hvd3NraUAyNGkuY29tPgpDby1hdXRob3JlZC1ieTogQmVybmFyZCBC b3VsYXkgPGJlcm5hcmQuYm91bGF5QDI0aS5jb20+CgpTaWduZWQtb2ZmLWJ5OiBKYW4gRWtzdHLD tm0gPGphbi5la3N0cm9tQDI0aS5jb20+Ci0tLQogZG9jL2ZmbXBlZy50ZXhpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDExICsrCiBmZnRvb2xzL2ZmbXBlZy5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrCiBmZnRvb2xzL2ZmbXBl Zy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKwogZmZ0b29scy9mZm1wZWdf b3B0LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsrCiB0ZXN0cy9mYXRlL2ZmbXBl Zy5tYWsgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKysKIC4uLi9mYXRlL2ZmbXBlZy1m aXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCAgICB8ICA0OCArKysrKysKIDYgZmlsZXMgY2hhbmdl ZCwgMjMyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9yZWYvZmF0ZS9m Zm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKCmRpZmYgLS1naXQgYS9kb2MvZmZtcGVn LnRleGkgYi9kb2MvZmZtcGVnLnRleGkKaW5kZXggMmZiMGJjOGZmYS4uZTNhY2U4ZWU2NSAxMDA2 NDQKLS0tIGEvZG9jL2ZmbXBlZy50ZXhpCisrKyBiL2RvYy9mZm1wZWcudGV4aQpAQCAtMTMxMyw2 ICsxMzEzLDE3IEBAIExpc3QgYWxsIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBjb21wb25lbnRzIGVu YWJsZWQgaW4gdGhpcyBidWlsZCBvZiBmZm1wZWcuCiBBY3R1YWwgcnVudGltZSBhdmFpbGFiaWxp dHkgZGVwZW5kcyBvbiB0aGUgaGFyZHdhcmUgYW5kIGl0cyBzdWl0YWJsZSBkcml2ZXIKIGJlaW5n IGluc3RhbGxlZC4KIAorQGl0ZW0gLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0WzpAdmFye3N0 cmVhbV9zcGVjaWZpZXJ9XQorU2V0IGEgc3BlY2lmaWMgb3V0cHV0IHZpZGVvIHN0cmVhbSBhcyB0 aGUgaGVhcnRiZWF0IHN0cmVhbSBhY2NvcmRpbmcgdG8gd2hpY2gKK3RvIHNwbGl0IGFuZCBwdXNo IHRocm91Z2ggY3VycmVudGx5IGluLXByb2dyZXNzIHN1YnRpdGxlIHVwb24gcmVjZWlwdCBvZiBh CityYW5kb20gYWNjZXNzIHBhY2tldC4KKworVGhpcyBsb3dlcnMgdGhlIGxhdGVuY3kgb2Ygc3Vi dGl0bGVzIGZvciB3aGljaCB0aGUgZW5kIHBhY2tldCBvciB0aGUgZm9sbG93aW5nCitzdWJ0aXRs ZSBoYXMgbm90IHlldCBiZWVuIHJlY2VpdmVkLgorCitSZXF1aXJlcyBAb3B0aW9uey1maXhfc3Vi X2R1cmF0aW9ufSB0byBiZSBzZXQgZm9yIHRoZSByZWxldmFudCBpbnB1dCBzdWJ0aXRsZQorc3Ry ZWFtIGZvciB0aGlzIHRvIGhhdmUgYW55IGVmZmVjdC4KKwogQGVuZCB0YWJsZQogCiBAc2VjdGlv biBBdWRpbyBPcHRpb25zCmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZy5jIGIvZmZ0b29scy9m Zm1wZWcuYwppbmRleCAwMTlkNmI4MjFiLi5hYWU2NTBjNDVjIDEwMDY0NAotLS0gYS9mZnRvb2xz L2ZmbXBlZy5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnLmMKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBl ZGVmIHN0cnVjdCBCZW5jaG1hcmtUaW1lU3RhbXBzIHsKICAgICBpbnQ2NF90IHN5c191c2VjOwog fSBCZW5jaG1hcmtUaW1lU3RhbXBzOwogCitzdGF0aWMgaW50IHRyaWdnZXJfZml4X3N1Yl9kdXJh dGlvbl9oZWFydGJlYXQoT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwa3QpOwog c3RhdGljIEJlbmNobWFya1RpbWVTdGFtcHMgZ2V0X2JlbmNobWFya190aW1lX3N0YW1wcyh2b2lk KTsKIHN0YXRpYyBpbnQ2NF90IGdldG1heHJzcyh2b2lkKTsKIHN0YXRpYyBpbnQgaWZpbHRlcl9o YXNfYWxsX2lucHV0X2Zvcm1hdHMoRmlsdGVyR3JhcGggKmZnKTsKQEAgLTk4MSw2ICs5ODIsMTMg QEAgc3RhdGljIGludCBlbmNvZGVfZnJhbWUoT3V0cHV0RmlsZSAqb2YsIE91dHB1dFN0cmVhbSAq b3N0LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgICAgICAgICAgICBhdl90czJzdHIocGt0LT5k dXJhdGlvbiksIGF2X3RzMnRpbWVzdHIocGt0LT5kdXJhdGlvbiwgJmVuYy0+dGltZV9iYXNlKSk7 CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoKHJldCA9IHRyaWdnZXJfZml4X3N1Yl9kdXJhdGlv bl9oZWFydGJlYXQob3N0LCBwa3QpKSA8IDApIHsKKyAgICAgICAgICAgIGF2X2xvZyhOVUxMLCBB Vl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgIlN1YnRpdGxlIGhlYXJ0YmVhdCBsb2dp YyBmYWlsZWQgaW4gJXMhICglcylcbiIsCisgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGF2 X2VycjJzdHIocmV0KSk7CisgICAgICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgICAgIH0K KwogICAgICAgICBpZiAoZW5jLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTykKICAg ICAgICAgICAgIHVwZGF0ZV92aWRlb19zdGF0cyhvc3QsIHBrdCwgISF2c3RhdHNfZmlsZW5hbWUp OwogCkBAIC0xOTMxLDYgKzE5MzksMTYgQEAgc3RhdGljIHZvaWQgZG9fc3RyZWFtY29weShJbnB1 dFN0cmVhbSAqaXN0LCBPdXRwdXRTdHJlYW0gKm9zdCwgY29uc3QgQVZQYWNrZXQgKnAKIAogICAg IG9zdC0+c3luY19vcHRzICs9IG9wa3QtPmR1cmF0aW9uOwogCisgICAgeworICAgICAgICBpbnQg cmV0ID0gdHJpZ2dlcl9maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChvc3QsIHBrdCk7CisgICAg ICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9S LAorICAgICAgICAgICAgICAgICAgICJTdWJ0aXRsZSBoZWFydGJlYXQgbG9naWMgZmFpbGVkIGlu ICVzISAoJXMpXG4iLAorICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBhdl9lcnIyc3RyKHJl dCkpOworICAgICAgICAgICAgZXhpdF9wcm9ncmFtKDEpOworICAgICAgICB9CisgICAgfQorCiAg ICAgb3V0cHV0X3BhY2tldChvZiwgb3BrdCwgb3N0LCAwKTsKIAogICAgIG9zdC0+c3RyZWFtY29w eV9zdGFydGVkID0gMTsKQEAgLTIzNjMsNiArMjM4MSwxMzAgQEAgb3V0OgogICAgIHJldHVybiBy ZXQ7CiB9CiAKK3N0YXRpYyBpbnQgY29weV9hdl9zdWJ0aXRsZShBVlN1YnRpdGxlICpkc3QsIEFW U3VidGl0bGUgKnNyYykKK3sKKyAgICBpbnQgcmV0ID0gQVZFUlJPUl9CVUc7CisgICAgQVZTdWJ0 aXRsZSB0bXAgPSB7CisgICAgICAgIC5mb3JtYXQgPSBzcmMtPmZvcm1hdCwKKyAgICAgICAgLnN0 YXJ0X2Rpc3BsYXlfdGltZSA9IHNyYy0+c3RhcnRfZGlzcGxheV90aW1lLAorICAgICAgICAuZW5k X2Rpc3BsYXlfdGltZSA9IHNyYy0+ZW5kX2Rpc3BsYXlfdGltZSwKKyAgICAgICAgLm51bV9yZWN0 cyA9IDAsCisgICAgICAgIC5yZWN0cyA9IE5VTEwsCisgICAgICAgIC5wdHMgPSBzcmMtPnB0cwor ICAgIH07CisKKyAgICBpZiAoIXNyYy0+bnVtX3JlY3RzKQorICAgICAgICBnb3RvIHN1Y2Nlc3M7 CisKKyAgICBpZiAoISh0bXAucmVjdHMgPSBhdl9jYWxsb2Moc3JjLT5udW1fcmVjdHMsIHNpemVv ZigqdG1wLnJlY3RzKSkpKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBzcmMtPm51bV9yZWN0czsgaSsrKSB7CisgICAgICAgIEFWU3Vi dGl0bGVSZWN0ICpzcmNfcmVjdCA9IHNyYy0+cmVjdHNbaV07CisgICAgICAgIEFWU3VidGl0bGVS ZWN0ICpkc3RfcmVjdDsKKworICAgICAgICBpZiAoIShkc3RfcmVjdCA9IHRtcC5yZWN0c1tpXSA9 IGF2X21hbGxvY3ooc2l6ZW9mKCp0bXAucmVjdHNbMF0pKSkpIHsKKyAgICAgICAgICAgIHJldCA9 IEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQor CisgICAgICAgIHRtcC5udW1fcmVjdHMrKzsKKworICAgICAgICBkc3RfcmVjdC0+dHlwZSAgICAg ID0gc3JjX3JlY3QtPnR5cGU7CisgICAgICAgIGRzdF9yZWN0LT5mbGFncyAgICAgPSBzcmNfcmVj dC0+ZmxhZ3M7CisKKyAgICAgICAgZHN0X3JlY3QtPnggICAgICAgICA9IHNyY19yZWN0LT54Owor ICAgICAgICBkc3RfcmVjdC0+eSAgICAgICAgID0gc3JjX3JlY3QtPnk7CisgICAgICAgIGRzdF9y ZWN0LT53ICAgICAgICAgPSBzcmNfcmVjdC0+dzsKKyAgICAgICAgZHN0X3JlY3QtPmggICAgICAg ICA9IHNyY19yZWN0LT5oOworICAgICAgICBkc3RfcmVjdC0+bmJfY29sb3JzID0gc3JjX3JlY3Qt Pm5iX2NvbG9yczsKKworICAgICAgICBpZiAoc3JjX3JlY3QtPnRleHQpCisgICAgICAgICAgICBp ZiAoIShkc3RfcmVjdC0+dGV4dCA9IGF2X3N0cmR1cChzcmNfcmVjdC0+dGV4dCkpKSB7CisgICAg ICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAgICAgIGdvdG8g Y2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAoc3JjX3JlY3QtPmFzcykKKyAg ICAgICAgICAgIGlmICghKGRzdF9yZWN0LT5hc3MgPSBhdl9zdHJkdXAoc3JjX3JlY3QtPmFzcykp KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAg ICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBqID0g MDsgaiA8IDQ7IGorKykgeworICAgICAgICAgICAgLy8gU1VCVElUTEVfQklUTUFQIGltYWdlcyBh cmUgc3BlY2lhbCBpbiB0aGUgc2Vuc2UgdGhhdCB0aGV5CisgICAgICAgICAgICAvLyBhcmUgbGlr ZSBQQUw4IGltYWdlcy4gZmlyc3QgcG9pbnRlciB0byBkYXRhLCBzZWNvbmQgdG8KKyAgICAgICAg ICAgIC8vIHBhbGV0dGUuIFRoaXMgbWFrZXMgdGhlIHNpemUgY2FsY3VsYXRpb24gbWF0Y2ggdGhp cy4KKyAgICAgICAgICAgIHNpemVfdCBidWZfc2l6ZSA9IHNyY19yZWN0LT50eXBlID09IFNVQlRJ VExFX0JJVE1BUCAmJiBqID09IDEgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZQ QUxFVFRFX1NJWkUgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3JlY3QtPmgg KiBzcmNfcmVjdC0+bGluZXNpemVbal07CisKKyAgICAgICAgICAgIGlmICghc3JjX3JlY3QtPmRh dGFbal0pCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmICghKGRz dF9yZWN0LT5kYXRhW2pdID0gYXZfbWVtZHVwKHNyY19yZWN0LT5kYXRhW2pdLCBidWZfc2l6ZSkp KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAg ICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRzdF9yZWN0LT5s aW5lc2l6ZVtqXSA9IHNyY19yZWN0LT5saW5lc2l6ZVtqXTsKKyAgICAgICAgfQorICAgIH0KKwor c3VjY2VzczoKKyAgICAqZHN0ID0gdG1wOworCisgICAgcmV0dXJuIDA7CisKK2NsZWFudXA6Cisg ICAgYXZzdWJ0aXRsZV9mcmVlKCZ0bXApOworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGludCBmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChJbnB1dFN0cmVhbSAqaXN0LCBpbnQ2NF90 IHNpZ25hbF9wdHMpCit7CisgICAgaW50IHJldCA9IEFWRVJST1JfQlVHOworICAgIGludCBnb3Rf b3V0cHV0ID0gMTsKKyAgICBBVlN1YnRpdGxlICpwcmV2X3N1YnRpdGxlID0gJmlzdC0+cHJldl9z dWIuc3VidGl0bGU7CisgICAgQVZTdWJ0aXRsZSBzdWJ0aXRsZTsKKworICAgIGlmICghaXN0LT5m aXhfc3ViX2R1cmF0aW9uIHx8ICFwcmV2X3N1YnRpdGxlLT5udW1fcmVjdHMgfHwKKyAgICAgICAg c2lnbmFsX3B0cyA8PSBwcmV2X3N1YnRpdGxlLT5wdHMpCisgICAgICAgIHJldHVybiAwOworCisg ICAgaWYgKChyZXQgPSBjb3B5X2F2X3N1YnRpdGxlKCZzdWJ0aXRsZSwgcHJldl9zdWJ0aXRsZSkp IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHN1YnRpdGxlLnB0cyA9IHNpZ25hbF9w dHM7CisKKyAgICByZXR1cm4gcHJvY2Vzc19zdWJ0aXRsZShpc3QsICZzdWJ0aXRsZSwgJmdvdF9v dXRwdXQpOworfQorCitzdGF0aWMgaW50IHRyaWdnZXJfZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJl YXQoT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwa3QpCit7CisgICAgaW50NjRf dCBzaWduYWxfcHRzID0gYXZfcmVzY2FsZV9xKHBrdC0+cHRzLCBvc3QtPm11eF90aW1lYmFzZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfVElNRV9CQVNFX1EpOwor CisgICAgaWYgKCFvc3QtPmZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0IHx8ICEocGt0LT5mbGFn cyAmIEFWX1BLVF9GTEFHX0tFWSkpCisgICAgICAgIC8vIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQg aW4gaGVhcnRiZWF0cyBvbiBzdHJlYW1zIGNvbmZpZ3VyZWQsIGFuZAorICAgICAgICAvLyBvbmx5 IG9uIHJhbmRvbSBhY2Nlc3MgcG9pbnRzLgorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAo aW50IGluZGV4ID0gMDsgaW5kZXggPCBuYl9pbnB1dF9zdHJlYW1zOyBpbmRleCsrKSB7CisgICAg ICAgIElucHV0U3RyZWFtICpzdWJ0aXRsZV9pc3QgPSBpbnB1dF9zdHJlYW1zW2luZGV4XTsKKyAg ICAgICAgaW50IHJldCA9IEFWRVJST1JfQlVHOworCisgICAgICAgIGlmICghc3VidGl0bGVfaXN0 LT5kZWNvZGluZ19uZWVkZWQgfHwKKyAgICAgICAgICAgIHN1YnRpdGxlX2lzdC0+ZGVjX2N0eC0+ Y29kZWNfdHlwZSAhPSBBVk1FRElBX1RZUEVfU1VCVElUTEUpCisgICAgICAgICAgICBjb250aW51 ZTsKKworICAgICAgICBpZiAoKHJldCA9IGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0KHN1YnRp dGxlX2lzdCwgc2lnbmFsX3B0cykpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAg fQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdHJhbnNjb2RlX3N1YnRpdGxlcyhJ bnB1dFN0cmVhbSAqaXN0LCBBVlBhY2tldCAqcGt0LCBpbnQgKmdvdF9vdXRwdXQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpkZWNvZGVfZmFpbGVkKQogewpkaWZmIC0tZ2l0 IGEvZmZ0b29scy9mZm1wZWcuaCBiL2ZmdG9vbHMvZmZtcGVnLmgKaW5kZXggNjQxN2RiMDNiZC4u ODljOTdmMTAyZiAxMDA2NDQKLS0tIGEvZmZ0b29scy9mZm1wZWcuaAorKysgYi9mZnRvb2xzL2Zm bXBlZy5oCkBAIC0yMjAsNiArMjIwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgT3B0aW9uc0NvbnRleHQg ewogICAgIGludCAgICAgICAgbmJfcmVpbml0X2ZpbHRlcnM7CiAgICAgU3BlY2lmaWVyT3B0ICpm aXhfc3ViX2R1cmF0aW9uOwogICAgIGludCAgICAgICAgbmJfZml4X3N1Yl9kdXJhdGlvbjsKKyAg ICBTcGVjaWZpZXJPcHQgKmZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0OworICAgIGludCAgICAg ICAgbmJfZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQ7CiAgICAgU3BlY2lmaWVyT3B0ICpjYW52 YXNfc2l6ZXM7CiAgICAgaW50ICAgICAgICBuYl9jYW52YXNfc2l6ZXM7CiAgICAgU3BlY2lmaWVy T3B0ICpwYXNzOwpAQCAtNTg0LDYgKzU4NiwxMiBAQCB0eXBlZGVmIHN0cnVjdCBPdXRwdXRTdHJl YW0gewogCiAgICAgaW50IHNxX2lkeF9lbmNvZGU7CiAgICAgaW50IHNxX2lkeF9tdXg7CisKKyAg ICAvKgorICAgICAqIGJvb2wgb24gd2hldGhlciB0aGlzIHN0cmVhbSBzaG91bGQgYmUgdXRpbGl6 ZWQgZm9yIHNwbGl0dGluZworICAgICAqIHN1YnRpdGxlcyB1dGlsaXppbmcgZml4X3N1Yl9kdXJh dGlvbiBhdCByYW5kb20gYWNjZXNzIHBvaW50cy4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQg Zml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQ7CiB9IE91dHB1dFN0cmVhbTsKIAogdHlwZWRlZiBz dHJ1Y3QgTXV4ZXIgTXV4ZXI7CmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZ19vcHQuYyBiL2Zm dG9vbHMvZmZtcGVnX29wdC5jCmluZGV4IGE4YjA2NGUwNzAuLjYyYzU1YjE2YWIgMTAwNjQ0Ci0t LSBhL2ZmdG9vbHMvZmZtcGVnX29wdC5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnX29wdC5jCkBAIC05 OCw2ICs5OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9maWx0ZXJzW10g ICAgICAgICAgICAgICAgICAgPSB7ImZpbHRlciIsICJhZiIsCiBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3Qgb3B0X25hbWVfZmlsdGVyX3NjcmlwdHNbXSAgICAgICAgICAgID0geyJmaWx0ZXJfc2Ny aXB0IiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfcmVpbml0X2Zp bHRlcnNbXSAgICAgICAgICAgID0geyJyZWluaXRfZmlsdGVyIiwgTlVMTH07CiBzdGF0aWMgY29u c3QgY2hhciAqY29uc3Qgb3B0X25hbWVfZml4X3N1Yl9kdXJhdGlvbltdICAgICAgICAgID0geyJm aXhfc3ViX2R1cmF0aW9uIiwgTlVMTH07CitzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25h bWVfZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXRbXSA9IHsiZml4X3N1Yl9kdXJhdGlvbl9oZWFy dGJlYXQiLCBOVUxMfTsKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBvcHRfbmFtZV9jYW52YXNf c2l6ZXNbXSAgICAgICAgICAgICAgPSB7ImNhbnZhc19zaXplIiwgTlVMTH07CiBzdGF0aWMgY29u c3QgY2hhciAqY29uc3Qgb3B0X25hbWVfcGFzc1tdICAgICAgICAgICAgICAgICAgICAgID0geyJw YXNzIiwgTlVMTH07CiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfcGFzc2xvZ2Zp bGVzW10gICAgICAgICAgICAgID0geyJwYXNzbG9nZmlsZSIsIE5VTEx9OwpAQCAtMTc1OCw2ICsx NzU5LDkgQEAgc3RhdGljIE91dHB1dFN0cmVhbSAqbmV3X291dHB1dF9zdHJlYW0oT3B0aW9uc0Nv bnRleHQgKm8sIEFWRm9ybWF0Q29udGV4dCAqb2MsIGUKICAgICBNQVRDSF9QRVJfU1RSRUFNX09Q VChiaXRzX3Blcl9yYXdfc2FtcGxlLCBpLCBvc3QtPmJpdHNfcGVyX3Jhd19zYW1wbGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgb2MsIHN0KTsKIAorICAgIE1BVENIX1BFUl9TVFJFQU1fT1BU KGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0LCBpLCBvc3QtPmZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIG9jLCBzdCk7CisKICAgICBpZiAob2Mt Pm9mb3JtYXQtPmZsYWdzICYgQVZGTVRfR0xPQkFMSEVBREVSICYmIG9zdC0+ZW5jX2N0eCkKICAg ICAgICAgb3N0LT5lbmNfY3R4LT5mbGFncyB8PSBBVl9DT0RFQ19GTEFHX0dMT0JBTF9IRUFERVI7 CiAKQEAgLTQxMDUsNiArNDEwOSwxMSBAQCBjb25zdCBPcHRpb25EZWYgb3B0aW9uc1tdID0gewog ICAgIHsgImF1dG9zY2FsZSIsICAgICAgICBIQVNfQVJHIHwgT1BUX0JPT0wgfCBPUFRfU1BFQyB8 CiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVF9FWFBFUlQgfCBPUFRfT1VUUFVULCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7IC5vZmYgPSBPRkZTRVQoYXV0b3NjYWxlKSB9LAog ICAgICAgICAiYXV0b21hdGljYWxseSBpbnNlcnQgYSBzY2FsZSBmaWx0ZXIgYXQgdGhlIGVuZCBv ZiB0aGUgZmlsdGVyIGdyYXBoIiB9LAorICAgIHsgImZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0 IiwgT1BUX1ZJREVPIHwgT1BUX0JPT0wgfCBPUFRfRVhQRVJUIHwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9QVF9TUEVDIHwgT1BUX09VVFBVVCwgICAgICAgICAgICAgICAg ICAgICAgIHsgLm9mZiA9IE9GRlNFVChmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCkgfSwKKyAg ICAgICAgInNldCB0aGlzIHZpZGVvIG91dHB1dCBzdHJlYW0gdG8gYmUgYSBoZWFydGJlYXQgc3Ry ZWFtIGZvciAiCisgICAgICAgICJmaXhfc3ViX2R1cmF0aW9uLCBhY2NvcmRpbmcgdG8gd2hpY2gg c3VidGl0bGVzIHNob3VsZCBiZSBzcGxpdCBhdCAiCisgICAgICAgICJyYW5kb20gYWNjZXNzIHBv aW50cyIgfSwKIAogICAgIC8qIGF1ZGlvIG9wdGlvbnMgKi8KICAgICB7ICJhZnJhbWVzIiwgICAg ICAgIE9QVF9BVURJTyB8IEhBU19BUkcgIHwgT1BUX1BFUkZJTEUgfCBPUFRfT1VUUFVULCAgICAg ICAgICAgeyAuZnVuY19hcmcgPSBvcHRfYXVkaW9fZnJhbWVzIH0sCmRpZmYgLS1naXQgYS90ZXN0 cy9mYXRlL2ZmbXBlZy5tYWsgYi90ZXN0cy9mYXRlL2ZmbXBlZy5tYWsKaW5kZXggMzhhMWFlN2Vk NS4uMzllYjI2ZjI5NSAxMDA2NDQKLS0tIGEvdGVzdHMvZmF0ZS9mZm1wZWcubWFrCisrKyBiL3Rl c3RzL2ZhdGUvZmZtcGVnLm1hawpAQCAtMTE3LDYgKzExNywyMCBAQCBmYXRlLWZmbXBlZy1maXhf c3ViX2R1cmF0aW9uOiBDTUQgPSBmbXRzdGRvdXQgc3J0IC1maXhfc3ViX2R1cmF0aW9uIFwKICAg LXJlYWxfdGltZSAxIC1mIGxhdmZpIFwKICAgLWkgIm1vdmllPSQoVEFSR0VUX1NBTVBMRVMpL3N1 Yi9DbG9zZWRjYXB0aW9uX3JvbGx1cC5tMnZbb3V0MCtzdWJjY10iCiAKKyMgQmFzaWMgdGVzdCBm b3IgZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQsIHdoaWNoIGNhdXNlcyBhIGJ1ZmZlcmVkIHN1 YnRpdGxlCisjIHRvIGJlIHB1c2hlZCBvdXQgd2hlbiBhIHZpZGVvIGtleWZyYW1lIGlzIHJlY2Vp dmVkIGZyb20gYW4gZW5jb2Rlci4KK0ZBVEVfU0FNUExFU19GRk1QRUctJChjYWxsIEZJTFRFUkRF TURFQ0VOQ01VWCwgTU9WSUUsIE1QRUdWSURFTywgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgTVBFRzJWSURFTywgU1VCUklQLCBTUlQsIExBVkZJX0lOREVWICBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBNUEVHVklERU9fUEFSU0VSIENDQVBUSU9OX0RFQ09ERVIgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgTVBFRzJWSURFT19FTkNPREVSIE5VTExfTVVYRVIgUElQRV9Q Uk9UT0NPTCkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKz0gZmF0ZS1mZm1wZWctZml4 X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKK2ZhdGUtZmZtcGVnLWZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0OiBDTUQgPSBmbXRzdGRvdXQgc3J0IC1maXhfc3ViX2R1cmF0aW9uIFwKKyAgLXJlYWxf dGltZSAxIC1mIGxhdmZpIFwKKyAgLWkgIm1vdmllPSQoVEFSR0VUX1NBTVBMRVMpL3N1Yi9DbG9z ZWRjYXB0aW9uX3JvbGx1cC5tMnZbb3V0MCtzdWJjY10iIFwKKyAgLW1hcCAwOnYgLWZpeF9zdWJf ZHVyYXRpb25faGVhcnRiZWF0OnY6MCBcCisgIC1jIG1wZWcydmlkZW8gLWI6diAyTSAtZyAzMCAt c2NfdGhyZXNob2xkIDEwMDAwMDAwMDAgXAorICAtZiBudWxsIC0KKwogRkFURV9TVFJFQU1DT1BZ LSQoY2FsbCBSRU1VWCwgTVA0IE1PViwgRUFDM19ERU1VWEVSKSArPSBmYXRlLWNvcHktdHJhYzMw NzQKIGZhdGUtY29weS10cmFjMzA3NDogQ01EID0gdHJhbnNjb2RlIGVhYzMgJChUQVJHRVRfU0FN UExFUykvZWFjMy9jc2lfbWlhbWlfc3RlcmVvXzEyOF9zcHguZWFjM1wKICAgICAgICAgICAgICAg ICAgICAgIG1wNCAiLWNvZGVjIGNvcHkgLW1hcCAwIiAiLWNvZGVjIGNvcHkiCmRpZmYgLS1naXQg YS90ZXN0cy9yZWYvZmF0ZS9mZm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQgYi90ZXN0 cy9yZWYvZmF0ZS9mZm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTU3YTQxMDkyMQotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3RzL3JlZi9mYXRlL2ZmbXBlZy1maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdApAQCAtMCww ICsxLDQ4IEBACisxCiswMDowMDowMCw5NjggLS0+IDAwOjAwOjAxLDAwMQorPGZvbnQgZmFjZT0i TW9ub3NwYWNlIj57XGFuN30oPC9mb250PgorCisyCiswMDowMDowMSwwMDEgLS0+IDAwOjAwOjAx LDE2OAorPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPC9mb250PgorCiszCiswMDowMDow MSwxNjggLS0+IDAwOjAwOjAxLDM2OAorPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+ IGluYXVkaWJsPC9pPjwvZm9udD4KKworNAorMDA6MDA6MDEsMzY4IC0tPiAwMDowMDowMSw1NjgK Kzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDxpPiBpbmF1ZGlibGUgcmFkaW8gY2hhdDwv aT48L2ZvbnQ+CisKKzUKKzAwOjAwOjAxLDU2OCAtLT4gMDA6MDA6MDIsMDAyCis8Zm9udCBmYWNl PSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICk8L2Zv bnQ+CisKKzYKKzAwOjAwOjAyLDAwMiAtLT4gMDA6MDA6MDMsMDAzCis8Zm9udCBmYWNlPSJNb25v c3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICk8L2ZvbnQ+CisK KzcKKzAwOjAwOjAzLDAwMyAtLT4gMDA6MDA6MDMsMTAzCis8Zm9udCBmYWNlPSJNb25vc3BhY2Ui PntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICk8L2ZvbnQ+CisKKzgKKzAw OjAwOjAzLDEwMyAtLT4gMDA6MDA6MDMsMzAzCis8Zm9udCBmYWNlPSJNb25vc3BhY2UiPntcYW43 fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICkKKz4+PC9mb250PgorCis5CiswMDow MDowMywzMDMgLS0+IDAwOjAwOjAzLDUwMworPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30o PGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApCis+PiBTYWZldHkgcmVtYTwvZm9udD4K KworMTAKKzAwOjAwOjAzLDUwNCAtLT4gMDA6MDA6MDMsNzA0Cis8Zm9udCBmYWNlPSJNb25vc3Bh Y2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICkKKz4+IFNhZmV0eSBy ZW1haW5zIG91ciBudW1iPC9mb250PgorCisxMQorMDA6MDA6MDMsNzA0IC0tPiAwMDowMDowNCww MDQKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDxpPiBpbmF1ZGlibGUgcmFkaW8gY2hh dHRlcjwvaT4gKQorPj4gU2FmZXR5IHJlbWFpbnMgb3VyIG51bWJlciBvbmU8L2ZvbnQ+CisKLS0g CjIuMzcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczov L2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJl LCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=