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 60F10443CF for ; Mon, 10 Oct 2022 12:45:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C847168BD03; Mon, 10 Oct 2022 15:45:12 +0300 (EEST) Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E79A68BCEF for ; Mon, 10 Oct 2022 15:45:05 +0300 (EEST) Received: by mail-lj1-f177.google.com with SMTP id c20so641525ljj.7 for ; Mon, 10 Oct 2022 05:45:05 -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:subject:date:message-id :reply-to; bh=EZy8fF6ElKizOOF79NM5L74BRlDC12EPI8wDR3hFH7E=; b=Pjf0w8HG6ZfBEq9JSlIvN9kh27Pqend0cK2CDnHmT0QrYpqgKgwSD5xEjujd1mesWX bY8KLTtEyTwp6S/GgZ9wGmh2Y9E94DXOcMdMcov+wYp13pWa5PiaN0VnKhWgEqBiCPJk EVJIoIaB6nYZMbNLw6aAyhKZBUok8f+kyTinTCIqYU+s9OBH5oHCixf5oRO/FVnGgXnh xabcaCEIwZrwvzQOHu0aehQdoCSZ4wKD75kjS57BBO+0Vjnr6/AK+0UmBLgQxnWlKx42 KGK15DmQH85cFjdrJf0t/AwTsPylNTdq2xZB54J4H4kPwy54P7FsmXf65EyjeqorOFfJ jyyQ== 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 :subject:date:message-id:reply-to; bh=EZy8fF6ElKizOOF79NM5L74BRlDC12EPI8wDR3hFH7E=; b=uHHfUErQgcQqX6zUBPZ0j3WevzKt+xJnxjLZtX6z6hOx5B3FntYkD5Gi3xc82jTZvh Bu+cV0YJPoBFr+IcwGMOVQyoaEHx/EfskeHweYsZdSA2RJ7OSFM1AOHOY6nlsdO/Frip +qfZYkOTbHGlUg0zT91en1YSjksp6FYsyGVLQNButwO+BKT199PA7UCtiOgk9Ti1yfkr 57VoxUfbB17nizGAB3Sl5hmXy+hYPXQkyaEjXcwVJKM4hBS6i2cr3vRN/c8LKRlcJLaT ne0kaQGFUWsUJYDt/ev6nBxkS8DWl5G7w+sqLo53oxitbC2N4jQO2TjiWkmIAL1I4hbB qE5A== X-Gm-Message-State: ACrzQf1NA6eYT1fkC9B1gX88svWpWex6KTHsJWFIbcxGzwtByxzX+05n tCLlEqSQ3BGWzEtiqMpDenZf4LWW1oE= X-Google-Smtp-Source: AMsMyM7soaJu24F5qIZv97R+6xom+mrLI7mlqzgn5yEgkZb8Gh6yQWjyLM1PiJm9qHIJGzdVvVHIcg== X-Received: by 2002:a2e:9b91:0:b0:26a:ce59:c517 with SMTP id z17-20020a2e9b91000000b0026ace59c517mr6512973lji.181.1665405904932; Mon, 10 Oct 2022 05:45:04 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id 14-20020a2e154e000000b0026dd1968533sm1657722ljv.86.2022.10.10.05.45.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Oct 2022 05:45:04 -0700 (PDT) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Oct 2022 15:44:57 +0300 Message-Id: <20221010124457.9213-3-jeebjp@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221010124457.9213-1-jeebjp@gmail.com> References: <20221010124457.9213-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 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 LnRleGkgYi9kb2MvZmZtcGVnLnRleGkKaW5kZXggZTkwMjBiMzBkNS4uY2Q5NTdmYTgyNiAxMDA2 NDQKLS0tIGEvZG9jL2ZmbXBlZy50ZXhpCisrKyBiL2RvYy9mZm1wZWcudGV4aQpAQCAtMTMxMyw2 ICsxMzEzLDE3IEBAIExpc3QgYWxsIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBjb21wb25lbnRzIGVu YWJsZWQgaW4gdGhpcyBidWlsZCBvZiBmZm1wZWcuCiBBY3R1YWwgcnVudGltZSBhdmFpbGFiaWxp dHkgZGVwZW5kcyBvbiB0aGUgaGFyZHdhcmUgYW5kIGl0cyBzdWl0YWJsZSBkcml2ZXIKIGJlaW5n IGluc3RhbGxlZC4KIAorQGl0ZW0gLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0WzpAdmFye3N0 cmVhbV9zcGVjaWZpZXJ9XQorU2V0IGEgc3BlY2lmaWMgb3V0cHV0IHZpZGVvIHN0cmVhbSBhcyB0 aGUgaGVhcnRiZWF0IHN0cmVhbSBhY2NvcmRpbmcgdG8gd2hpY2gKK3RvIHNwbGl0IGFuZCBwdXNo IHRocm91Z2ggY3VycmVudGx5IGluLXByb2dyZXNzIHN1YnRpdGxlIHVwb24gcmVjZWlwdCBvZiBh CityYW5kb20gYWNjZXNzIHBhY2tldC4KKworVGhpcyBsb3dlcnMgdGhlIGxhdGVuY3kgb2Ygc3Vi dGl0bGVzIGZvciB3aGljaCB0aGUgZW5kIHBhY2tldCBvciB0aGUgZm9sbG93aW5nCitzdWJ0aXRs ZSBoYXMgbm90IHlldCBiZWVuIHJlY2VpdmVkLgorCitSZXF1aXJlcyBAb3B0aW9uey1maXhfc3Vi X2R1cmF0aW9ufSB0byBiZSBzZXQgZm9yIHRoZSByZWxldmFudCBpbnB1dCBzdWJ0aXRsZQorc3Ry ZWFtIGZvciB0aGlzIHRvIGhhdmUgYW55IGVmZmVjdC4KKwogQGVuZCB0YWJsZQogCiBAc2VjdGlv biBBdWRpbyBPcHRpb25zCmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZy5jIGIvZmZ0b29scy9m Zm1wZWcuYwppbmRleCBhN2U2YzBmNmUwLi41NmZjYjk5NGUzIDEwMDY0NAotLS0gYS9mZnRvb2xz L2ZmbXBlZy5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnLmMKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBl ZGVmIHN0cnVjdCBCZW5jaG1hcmtUaW1lU3RhbXBzIHsKICAgICBpbnQ2NF90IHN5c191c2VjOwog fSBCZW5jaG1hcmtUaW1lU3RhbXBzOwogCitzdGF0aWMgaW50IHRyaWdnZXJfZml4X3N1Yl9kdXJh dGlvbl9oZWFydGJlYXQoT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwa3QpOwog c3RhdGljIEJlbmNobWFya1RpbWVTdGFtcHMgZ2V0X2JlbmNobWFya190aW1lX3N0YW1wcyh2b2lk KTsKIHN0YXRpYyBpbnQ2NF90IGdldG1heHJzcyh2b2lkKTsKIHN0YXRpYyBpbnQgaWZpbHRlcl9o YXNfYWxsX2lucHV0X2Zvcm1hdHMoRmlsdGVyR3JhcGggKmZnKTsKQEAgLTk3OCw2ICs5NzksMTMg QEAgc3RhdGljIGludCBlbmNvZGVfZnJhbWUoT3V0cHV0RmlsZSAqb2YsIE91dHB1dFN0cmVhbSAq b3N0LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgICAgICAgICAgICBhdl90czJzdHIocGt0LT5k dXJhdGlvbiksIGF2X3RzMnRpbWVzdHIocGt0LT5kdXJhdGlvbiwgJmVuYy0+dGltZV9iYXNlKSk7 CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoKHJldCA9IHRyaWdnZXJfZml4X3N1Yl9kdXJhdGlv bl9oZWFydGJlYXQob3N0LCBwa3QpKSA8IDApIHsKKyAgICAgICAgICAgIGF2X2xvZyhOVUxMLCBB Vl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgIlN1YnRpdGxlIGhlYXJ0YmVhdCBsb2dp YyBmYWlsZWQgaW4gJXMhICglcylcbiIsCisgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGF2 X2VycjJzdHIocmV0KSk7CisgICAgICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgICAgIH0K KwogICAgICAgICBvc3QtPmRhdGFfc2l6ZV9lbmMgKz0gcGt0LT5zaXplOwogCiAgICAgICAgIGlm IChlbmMtPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJREVPKQpAQCAtMTkzNCw2ICsxOTQy LDE2IEBAIHN0YXRpYyB2b2lkIGRvX3N0cmVhbWNvcHkoSW5wdXRTdHJlYW0gKmlzdCwgT3V0cHV0 U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwCiAKICAgICBvcGt0LT5kdXJhdGlvbiA9IGF2 X3Jlc2NhbGVfcShwa3QtPmR1cmF0aW9uLCBpc3QtPnN0LT50aW1lX2Jhc2UsIG9zdC0+bXV4X3Rp bWViYXNlKTsKIAorICAgIHsKKyAgICAgICAgaW50IHJldCA9IHRyaWdnZXJfZml4X3N1Yl9kdXJh dGlvbl9oZWFydGJlYXQob3N0LCBwa3QpOworICAgICAgICBpZiAocmV0IDwgMCkgeworICAgICAg ICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAiU3Vi dGl0bGUgaGVhcnRiZWF0IGxvZ2ljIGZhaWxlZCBpbiAlcyEgKCVzKVxuIiwKKyAgICAgICAgICAg ICAgICAgICBfX2Z1bmNfXywgYXZfZXJyMnN0cihyZXQpKTsKKyAgICAgICAgICAgIGV4aXRfcHJv Z3JhbSgxKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIG91dHB1dF9wYWNrZXQob2YsIG9wa3Qs IG9zdCwgMCk7CiAKICAgICBvc3QtPnN0cmVhbWNvcHlfc3RhcnRlZCA9IDE7CkBAIC0yMzY1LDYg KzIzODMsMTMwIEBAIG91dDoKICAgICByZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IGNvcHlf YXZfc3VidGl0bGUoQVZTdWJ0aXRsZSAqZHN0LCBBVlN1YnRpdGxlICpzcmMpCit7CisgICAgaW50 IHJldCA9IEFWRVJST1JfQlVHOworICAgIEFWU3VidGl0bGUgdG1wID0geworICAgICAgICAuZm9y bWF0ID0gc3JjLT5mb3JtYXQsCisgICAgICAgIC5zdGFydF9kaXNwbGF5X3RpbWUgPSBzcmMtPnN0 YXJ0X2Rpc3BsYXlfdGltZSwKKyAgICAgICAgLmVuZF9kaXNwbGF5X3RpbWUgPSBzcmMtPmVuZF9k aXNwbGF5X3RpbWUsCisgICAgICAgIC5udW1fcmVjdHMgPSAwLAorICAgICAgICAucmVjdHMgPSBO VUxMLAorICAgICAgICAucHRzID0gc3JjLT5wdHMKKyAgICB9OworCisgICAgaWYgKCFzcmMtPm51 bV9yZWN0cykKKyAgICAgICAgZ290byBzdWNjZXNzOworCisgICAgaWYgKCEodG1wLnJlY3RzID0g YXZfY2FsbG9jKHNyYy0+bnVtX3JlY3RzLCBzaXplb2YoKnRtcC5yZWN0cykpKSkKKyAgICAgICAg cmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3JjLT5u dW1fcmVjdHM7IGkrKykgeworICAgICAgICBBVlN1YnRpdGxlUmVjdCAqc3JjX3JlY3QgPSBzcmMt PnJlY3RzW2ldOworICAgICAgICBBVlN1YnRpdGxlUmVjdCAqZHN0X3JlY3Q7CisKKyAgICAgICAg aWYgKCEoZHN0X3JlY3QgPSB0bXAucmVjdHNbaV0gPSBhdl9tYWxsb2N6KHNpemVvZigqdG1wLnJl Y3RzWzBdKSkpKSB7CisgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7CisgICAgICAg ICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgICB0bXAubnVtX3JlY3RzKys7 CisKKyAgICAgICAgZHN0X3JlY3QtPnR5cGUgICAgICA9IHNyY19yZWN0LT50eXBlOworICAgICAg ICBkc3RfcmVjdC0+ZmxhZ3MgICAgID0gc3JjX3JlY3QtPmZsYWdzOworCisgICAgICAgIGRzdF9y ZWN0LT54ICAgICAgICAgPSBzcmNfcmVjdC0+eDsKKyAgICAgICAgZHN0X3JlY3QtPnkgICAgICAg ICA9IHNyY19yZWN0LT55OworICAgICAgICBkc3RfcmVjdC0+dyAgICAgICAgID0gc3JjX3JlY3Qt Pnc7CisgICAgICAgIGRzdF9yZWN0LT5oICAgICAgICAgPSBzcmNfcmVjdC0+aDsKKyAgICAgICAg ZHN0X3JlY3QtPm5iX2NvbG9ycyA9IHNyY19yZWN0LT5uYl9jb2xvcnM7CisKKyAgICAgICAgaWYg KHNyY19yZWN0LT50ZXh0KQorICAgICAgICAgICAgaWYgKCEoZHN0X3JlY3QtPnRleHQgPSBhdl9z dHJkdXAoc3JjX3JlY3QtPnRleHQpKSkgeworICAgICAgICAgICAgICAgIHJldCA9IEFWRVJST1Io RU5PTUVNKTsKKyAgICAgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgICAgICB9CisK KyAgICAgICAgaWYgKHNyY19yZWN0LT5hc3MpCisgICAgICAgICAgICBpZiAoIShkc3RfcmVjdC0+ YXNzID0gYXZfc3RyZHVwKHNyY19yZWN0LT5hc3MpKSkgeworICAgICAgICAgICAgICAgIHJldCA9 IEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAg ICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA0OyBqKyspIHsKKyAgICAgICAg ICAgIC8vIFNVQlRJVExFX0JJVE1BUCBpbWFnZXMgYXJlIHNwZWNpYWwgaW4gdGhlIHNlbnNlIHRo YXQgdGhleQorICAgICAgICAgICAgLy8gYXJlIGxpa2UgUEFMOCBpbWFnZXMuIGZpcnN0IHBvaW50 ZXIgdG8gZGF0YSwgc2Vjb25kIHRvCisgICAgICAgICAgICAvLyBwYWxldHRlLiBUaGlzIG1ha2Vz IHRoZSBzaXplIGNhbGN1bGF0aW9uIG1hdGNoIHRoaXMuCisgICAgICAgICAgICBzaXplX3QgYnVm X3NpemUgPSBzcmNfcmVjdC0+dHlwZSA9PSBTVUJUSVRMRV9CSVRNQVAgJiYgaiA9PSAxID8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWUEFMRVRURV9TSVpFIDoKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNyY19yZWN0LT5oICogc3JjX3JlY3QtPmxpbmVzaXplW2pdOwor CisgICAgICAgICAgICBpZiAoIXNyY19yZWN0LT5kYXRhW2pdKQorICAgICAgICAgICAgICAgIGNv bnRpbnVlOworCisgICAgICAgICAgICBpZiAoIShkc3RfcmVjdC0+ZGF0YVtqXSA9IGF2X21lbWR1 cChzcmNfcmVjdC0+ZGF0YVtqXSwgYnVmX3NpemUpKSkgeworICAgICAgICAgICAgICAgIHJldCA9 IEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICBkc3RfcmVjdC0+bGluZXNpemVbal0gPSBzcmNfcmVjdC0+bGlu ZXNpemVbal07CisgICAgICAgIH0KKyAgICB9CisKK3N1Y2Nlc3M6CisgICAgKmRzdCA9IHRtcDsK KworICAgIHJldHVybiAwOworCitjbGVhbnVwOgorICAgIGF2c3VidGl0bGVfZnJlZSgmdG1wKTsK KworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZml4X3N1Yl9kdXJhdGlvbl9oZWFy dGJlYXQoSW5wdXRTdHJlYW0gKmlzdCwgaW50NjRfdCBzaWduYWxfcHRzKQoreworICAgIGludCBy ZXQgPSBBVkVSUk9SX0JVRzsKKyAgICBpbnQgZ290X291dHB1dCA9IDE7CisgICAgQVZTdWJ0aXRs ZSAqcHJldl9zdWJ0aXRsZSA9ICZpc3QtPnByZXZfc3ViLnN1YnRpdGxlOworICAgIEFWU3VidGl0 bGUgc3VidGl0bGU7CisKKyAgICBpZiAoIWlzdC0+Zml4X3N1Yl9kdXJhdGlvbiB8fCAhcHJldl9z dWJ0aXRsZS0+bnVtX3JlY3RzIHx8CisgICAgICAgIHNpZ25hbF9wdHMgPD0gcHJldl9zdWJ0aXRs ZS0+cHRzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICgocmV0ID0gY29weV9hdl9zdWJ0 aXRsZSgmc3VidGl0bGUsIHByZXZfc3VidGl0bGUpKSA8IDApCisgICAgICAgIHJldHVybiByZXQ7 CisKKyAgICBzdWJ0aXRsZS5wdHMgPSBzaWduYWxfcHRzOworCisgICAgcmV0dXJuIHByb2Nlc3Nf c3VidGl0bGUoaXN0LCAmc3VidGl0bGUsICZnb3Rfb3V0cHV0KTsKK30KKworc3RhdGljIGludCB0 cmlnZ2VyX2ZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0KE91dHB1dFN0cmVhbSAqb3N0LCBjb25z dCBBVlBhY2tldCAqcGt0KQoreworICAgIGludDY0X3Qgc2lnbmFsX3B0cyA9IGF2X3Jlc2NhbGVf cShwa3QtPnB0cywgb3N0LT5tdXhfdGltZWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFWX1RJTUVfQkFTRV9RKTsKKworICAgIGlmICghb3N0LT5maXhfc3ViX2R1 cmF0aW9uX2hlYXJ0YmVhdCB8fCAhKHBrdC0+ZmxhZ3MgJiBBVl9QS1RfRkxBR19LRVkpKQorICAg ICAgICAvLyB3ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIGhlYXJ0YmVhdHMgb24gc3RyZWFtcyBj b25maWd1cmVkLCBhbmQKKyAgICAgICAgLy8gb25seSBvbiByYW5kb20gYWNjZXNzIHBvaW50cy4K KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgbmJf aW5wdXRfc3RyZWFtczsgaW5kZXgrKykgeworICAgICAgICBJbnB1dFN0cmVhbSAqc3VidGl0bGVf aXN0ID0gaW5wdXRfc3RyZWFtc1tpbmRleF07CisgICAgICAgIGludCByZXQgPSBBVkVSUk9SX0JV RzsKKworICAgICAgICBpZiAoIXN1YnRpdGxlX2lzdC0+ZGVjb2RpbmdfbmVlZGVkIHx8CisgICAg ICAgICAgICBzdWJ0aXRsZV9pc3QtPmRlY19jdHgtPmNvZGVjX3R5cGUgIT0gQVZNRURJQV9UWVBF X1NVQlRJVExFKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKChyZXQgPSBm aXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChzdWJ0aXRsZV9pc3QsIHNpZ25hbF9wdHMpKSA8IDAp CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBz dGF0aWMgaW50IHRyYW5zY29kZV9zdWJ0aXRsZXMoSW5wdXRTdHJlYW0gKmlzdCwgQVZQYWNrZXQg KnBrdCwgaW50ICpnb3Rfb3V0cHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqZGVjb2RlX2ZhaWxlZCkKIHsKZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnLmggYi9mZnRv b2xzL2ZmbXBlZy5oCmluZGV4IDg0NjAzOTFhZmEuLjkxYWM4MjFjYzIgMTAwNjQ0Ci0tLSBhL2Zm dG9vbHMvZmZtcGVnLmgKKysrIGIvZmZ0b29scy9mZm1wZWcuaApAQCAtMjE5LDYgKzIxOSw4IEBA IHR5cGVkZWYgc3RydWN0IE9wdGlvbnNDb250ZXh0IHsKICAgICBpbnQgICAgICAgIG5iX3JlaW5p dF9maWx0ZXJzOwogICAgIFNwZWNpZmllck9wdCAqZml4X3N1Yl9kdXJhdGlvbjsKICAgICBpbnQg ICAgICAgIG5iX2ZpeF9zdWJfZHVyYXRpb247CisgICAgU3BlY2lmaWVyT3B0ICpmaXhfc3ViX2R1 cmF0aW9uX2hlYXJ0YmVhdDsKKyAgICBpbnQgICAgICAgIG5iX2ZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0OwogICAgIFNwZWNpZmllck9wdCAqY2FudmFzX3NpemVzOwogICAgIGludCAgICAgICAg bmJfY2FudmFzX3NpemVzOwogICAgIFNwZWNpZmllck9wdCAqcGFzczsKQEAgLTYxMCw2ICs2MTIs MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgT3V0cHV0U3RyZWFtIHsKIAogICAgIGludCBzcV9pZHhfZW5j b2RlOwogICAgIGludCBzcV9pZHhfbXV4OworCisgICAgLyoKKyAgICAgKiBib29sIG9uIHdoZXRo ZXIgdGhpcyBzdHJlYW0gc2hvdWxkIGJlIHV0aWxpemVkIGZvciBzcGxpdHRpbmcKKyAgICAgKiBz dWJ0aXRsZXMgdXRpbGl6aW5nIGZpeF9zdWJfZHVyYXRpb24gYXQgcmFuZG9tIGFjY2VzcyBwb2lu dHMuCisgICAgICovCisgICAgdW5zaWduZWQgaW50IGZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0 OwogfSBPdXRwdXRTdHJlYW07CiAKIHR5cGVkZWYgc3RydWN0IE11eGVyIE11eGVyOwpkaWZmIC0t Z2l0IGEvZmZ0b29scy9mZm1wZWdfb3B0LmMgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwppbmRleCA4 ZjU3YjY5OWYxLi4wMjM3MDZjMmQ3IDEwMDY0NAotLS0gYS9mZnRvb2xzL2ZmbXBlZ19vcHQuYwor KysgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwpAQCAtOTgsNiArOTgsNyBAQCBzdGF0aWMgY29uc3Qg Y2hhciAqY29uc3Qgb3B0X25hbWVfZmlsdGVyc1tdICAgICAgICAgICAgICAgICAgID0geyJmaWx0 ZXIiLCAiYWYiLAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2ZpbHRlcl9zY3Jp cHRzW10gICAgICAgICAgICA9IHsiZmlsdGVyX3NjcmlwdCIsIE5VTEx9Owogc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3JlaW5pdF9maWx0ZXJzW10gICAgICAgICAgICA9IHsicmVp bml0X2ZpbHRlciIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2Zp eF9zdWJfZHVyYXRpb25bXSAgICAgICAgICA9IHsiZml4X3N1Yl9kdXJhdGlvbiIsIE5VTEx9Owor c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2ZpeF9zdWJfZHVyYXRpb25faGVhcnRi ZWF0W10gPSB7ImZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0IiwgTlVMTH07CiBzdGF0aWMgY29u c3QgY2hhciAqY29uc3Qgb3B0X25hbWVfY2FudmFzX3NpemVzW10gICAgICAgICAgICAgID0geyJj YW52YXNfc2l6ZSIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3Bh c3NbXSAgICAgICAgICAgICAgICAgICAgICA9IHsicGFzcyIsIE5VTEx9Owogc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3Bhc3Nsb2dmaWxlc1tdICAgICAgICAgICAgICA9IHsicGFz c2xvZ2ZpbGUiLCBOVUxMfTsKQEAgLTE3MTgsNiArMTcxOSw5IEBAIHN0YXRpYyBPdXRwdXRTdHJl YW0gKm5ld19vdXRwdXRfc3RyZWFtKE9wdGlvbnNDb250ZXh0ICpvLCBBVkZvcm1hdENvbnRleHQg Km9jLCBlCiAgICAgTUFUQ0hfUEVSX1NUUkVBTV9PUFQoYml0c19wZXJfcmF3X3NhbXBsZSwgaSwg b3N0LT5iaXRzX3Blcl9yYXdfc2FtcGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9jLCBz dCk7CiAKKyAgICBNQVRDSF9QRVJfU1RSRUFNX09QVChmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVh dCwgaSwgb3N0LT5maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICBvYywgc3QpOworCiAgICAgaWYgKG9jLT5vZm9ybWF0LT5mbGFncyAmIEFWRk1UX0dM T0JBTEhFQURFUiAmJiBvc3QtPmVuY19jdHgpCiAgICAgICAgIG9zdC0+ZW5jX2N0eC0+ZmxhZ3Mg fD0gQVZfQ09ERUNfRkxBR19HTE9CQUxfSEVBREVSOwogCkBAIC00MDk4LDYgKzQxMDIsMTEgQEAg Y29uc3QgT3B0aW9uRGVmIG9wdGlvbnNbXSA9IHsKICAgICB7ICJhdXRvc2NhbGUiLCAgICAgICAg SEFTX0FSRyB8IE9QVF9CT09MIHwgT1BUX1NQRUMgfAogICAgICAgICAgICAgICAgICAgICAgICAg ICBPUFRfRVhQRVJUIHwgT1BUX09VVFBVVCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyAub2ZmID0gT0ZGU0VUKGF1dG9zY2FsZSkgfSwKICAgICAgICAgImF1dG9tYXRpY2FsbHkgaW5z ZXJ0IGEgc2NhbGUgZmlsdGVyIGF0IHRoZSBlbmQgb2YgdGhlIGZpbHRlciBncmFwaCIgfSwKKyAg ICB7ICJmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCIsIE9QVF9WSURFTyB8IE9QVF9CT09MIHwg T1BUX0VYUEVSVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFRfU1BF QyB8IE9QVF9PVVRQVVQsICAgICAgICAgICAgICAgICAgICAgICB7IC5vZmYgPSBPRkZTRVQoZml4 X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQpIH0sCisgICAgICAgICJzZXQgdGhpcyB2aWRlbyBvdXRw dXQgc3RyZWFtIHRvIGJlIGEgaGVhcnRiZWF0IHN0cmVhbSBmb3IgIgorICAgICAgICAiZml4X3N1 Yl9kdXJhdGlvbiwgYWNjb3JkaW5nIHRvIHdoaWNoIHN1YnRpdGxlcyBzaG91bGQgYmUgc3BsaXQg YXQgIgorICAgICAgICAicmFuZG9tIGFjY2VzcyBwb2ludHMiIH0sCiAKICAgICAvKiBhdWRpbyBv cHRpb25zICovCiAgICAgeyAiYWZyYW1lcyIsICAgICAgICBPUFRfQVVESU8gfCBIQVNfQVJHICB8 IE9QVF9QRVJGSUxFIHwgT1BUX09VVFBVVCwgICAgICAgICAgIHsgLmZ1bmNfYXJnID0gb3B0X2F1 ZGlvX2ZyYW1lcyB9LApkaWZmIC0tZ2l0IGEvdGVzdHMvZmF0ZS9mZm1wZWcubWFrIGIvdGVzdHMv ZmF0ZS9mZm1wZWcubWFrCmluZGV4IGQ4NzYzOWM1OTYuLmE5ODNhY2UzYmQgMTAwNjQ0Ci0tLSBh L3Rlc3RzL2ZhdGUvZmZtcGVnLm1haworKysgYi90ZXN0cy9mYXRlL2ZmbXBlZy5tYWsKQEAgLTEx Nyw2ICsxMTcsMjAgQEAgZmF0ZS1mZm1wZWctZml4X3N1Yl9kdXJhdGlvbjogQ01EID0gZm10c3Rk b3V0IHNydCAtZml4X3N1Yl9kdXJhdGlvbiBcCiAgIC1yZWFsX3RpbWUgMSAtZiBsYXZmaSBcCiAg IC1pICJtb3ZpZT0kKFRBUkdFVF9TQU1QTEVTKS9zdWIvQ2xvc2VkY2FwdGlvbl9yb2xsdXAubTJ2 W291dDArc3ViY2NdIgogCisjIEJhc2ljIHRlc3QgZm9yIGZpeF9zdWJfZHVyYXRpb25faGVhcnRi ZWF0LCB3aGljaCBjYXVzZXMgYSBidWZmZXJlZCBzdWJ0aXRsZQorIyB0byBiZSBwdXNoZWQgb3V0 IHdoZW4gYSB2aWRlbyBrZXlmcmFtZSBpcyByZWNlaXZlZCBmcm9tIGFuIGVuY29kZXIuCitGQVRF X1NBTVBMRVNfRkZNUEVHLSQoY2FsbCBGSUxURVJERU1ERUNFTkNNVVgsIE1PVklFLCBNUEVHVklE RU8sIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRUcyVklERU8sIFNVQlJJUCwgU1JU LCBMQVZGSV9JTkRFViAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBFR1ZJREVPX1BB UlNFUiBDQ0FQVElPTl9ERUNPREVSIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRUcy VklERU9fRU5DT0RFUiBOVUxMX01VWEVSIFBJUEVfUFJPVE9DT0wpIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICs9IGZhdGUtZmZtcGVnLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0Citm YXRlLWZmbXBlZy1maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDogQ01EID0gZm10c3Rkb3V0IHNy dCAtZml4X3N1Yl9kdXJhdGlvbiBcCisgIC1yZWFsX3RpbWUgMSAtZiBsYXZmaSBcCisgIC1pICJt b3ZpZT0kKFRBUkdFVF9TQU1QTEVTKS9zdWIvQ2xvc2VkY2FwdGlvbl9yb2xsdXAubTJ2W291dDAr c3ViY2NdIiBcCisgIC1tYXAgMDp2IC1maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDp2OjAgXAor ICAtYyBtcGVnMnZpZGVvIC1iOnYgMk0gLWcgMzAgLXNjX3RocmVzaG9sZCAxMDAwMDAwMDAwIFwK KyAgLWYgbnVsbCAtCisKIEZBVEVfU1RSRUFNQ09QWS0kKGNhbGwgUkVNVVgsIE1QNCBNT1YsIEVB QzNfREVNVVhFUikgKz0gZmF0ZS1jb3B5LXRyYWMzMDc0CiBmYXRlLWNvcHktdHJhYzMwNzQ6IENN RCA9IHRyYW5zY29kZSBlYWMzICQoVEFSR0VUX1NBTVBMRVMpL2VhYzMvY3NpX21pYW1pX3N0ZXJl b18xMjhfc3B4LmVhYzNcCiAgICAgICAgICAgICAgICAgICAgICBtcDQgIi1jb2RlYyBjb3B5IC1t YXAgMCIgIi1jb2RlYyBjb3B5IgpkaWZmIC0tZ2l0IGEvdGVzdHMvcmVmL2ZhdGUvZmZtcGVnLWZp eF9zdWJfZHVyYXRpb25faGVhcnRiZWF0IGIvdGVzdHMvcmVmL2ZhdGUvZmZtcGVnLWZpeF9zdWJf ZHVyYXRpb25faGVhcnRiZWF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu Ljk1N2E0MTA5MjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9yZWYvZmF0ZS9mZm1wZWctZml4 X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKQEAgLTAsMCArMSw0OCBAQAorMQorMDA6MDA6MDAsOTY4 IC0tPiAwMDowMDowMSwwMDEKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDwvZm9udD4K KworMgorMDA6MDA6MDEsMDAxIC0tPiAwMDowMDowMSwxNjgKKzxmb250IGZhY2U9Ik1vbm9zcGFj ZSI+e1xhbjd9KDwvZm9udD4KKworMworMDA6MDA6MDEsMTY4IC0tPiAwMDowMDowMSwzNjgKKzxm b250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDxpPiBpbmF1ZGlibDwvaT48L2ZvbnQ+CisKKzQK KzAwOjAwOjAxLDM2OCAtLT4gMDA6MDA6MDEsNTY4Cis8Zm9udCBmYWNlPSJNb25vc3BhY2UiPntc YW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXQ8L2k+PC9mb250PgorCis1CiswMDowMDowMSw1 NjggLS0+IDAwOjAwOjAyLDAwMgorPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+IGlu YXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApPC9mb250PgorCis2CiswMDowMDowMiwwMDIgLS0+ IDAwOjAwOjAzLDAwMworPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJs ZSByYWRpbyBjaGF0dGVyPC9pPiApPC9mb250PgorCis3CiswMDowMDowMywwMDMgLS0+IDAwOjAw OjAzLDEwMworPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRp byBjaGF0dGVyPC9pPiApPC9mb250PgorCis4CiswMDowMDowMywxMDMgLS0+IDAwOjAwOjAzLDMw MworPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0 dGVyPC9pPiApCis+PjwvZm9udD4KKworOQorMDA6MDA6MDMsMzAzIC0tPiAwMDowMDowMyw1MDMK Kzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDxpPiBpbmF1ZGlibGUgcmFkaW8gY2hhdHRl cjwvaT4gKQorPj4gU2FmZXR5IHJlbWE8L2ZvbnQ+CisKKzEwCiswMDowMDowMyw1MDQgLS0+IDAw OjAwOjAzLDcwNAorPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSBy YWRpbyBjaGF0dGVyPC9pPiApCis+PiBTYWZldHkgcmVtYWlucyBvdXIgbnVtYjwvZm9udD4KKwor MTEKKzAwOjAwOjAzLDcwNCAtLT4gMDA6MDA6MDQsMDA0Cis8Zm9udCBmYWNlPSJNb25vc3BhY2Ui PntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICkKKz4+IFNhZmV0eSByZW1h aW5zIG91ciBudW1iZXIgb25lPC9mb250PgorCi0tIAoyLjM3LjMKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QK ZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGlu Zm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1h aWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2Ny aWJlIi4K