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 AE7824719E for ; Mon, 28 Aug 2023 17:29:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 65D5E68C642; Mon, 28 Aug 2023 20:29:07 +0300 (EEST) Received: from mail-vk1-f172.google.com (mail-vk1-f172.google.com [209.85.221.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 62F8268C601 for ; Mon, 28 Aug 2023 20:29:01 +0300 (EEST) Received: by mail-vk1-f172.google.com with SMTP id 71dfb90a1353d-48d0edd8a81so1359694e0c.0 for ; Mon, 28 Aug 2023 10:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693243740; x=1693848540; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=KIgt1m1SI05kt8+HI3L3SsuG7/t10bXX6zkDoK1QKjs=; b=I57U0rZp3SNZqDeJ5cwhP7kq55Qs4HCC5sPvoYQFIeKcorzr0cpzX4KFeu7K8tTnwt Wwwl8KG4KLRwon/nwEbCRMDj6O4sgiShKXqLYYLAy6SpPXFH/RN7MZ7Tg9+F984n3xKS YsrqGP3yZHkgmeJ3twFKpRELzM4kM5Pv9Qt2Rwh9SnZjodjMCiaMKMFmD9lo/nRSe5l/ GSZFJteXOBSgGJJTkf3T1h0DqbDzxz25u+LO5f21nG8DdwNE3DxAN2CZ/szVCIR3TuVQ 5JB2LhvIn1AWeN/TS7iuLzYooSYF5Z/spQ92Dun8RFvfJu2fXq1th1oRNovQXOTpsmYW CtVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693243740; x=1693848540; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=KIgt1m1SI05kt8+HI3L3SsuG7/t10bXX6zkDoK1QKjs=; b=DG0/6axAPtEDt+3Irz+ZZYbtTrwh8Vyyh5ToBdLe7ugFOFKQRqOQ+jy1gM6K4M9tZE mWa9IMvS7hvzvdubCvwT6yWyZusP11Hsorfs/nFfjMTHU1sip/8dyKjTjFBoYec9P/p+ UvLCN6ucdGDFjrV0ysAYZnw1tVMG6x8m1n3n8gN20Z6kHqBd0HfE12vyWu4aMyfNVjfN 8vG9OQ/gMyIV0HG5gNXwrW92xobJSN72gBxHWDzM/QMgn8piOE/tbAFr5Un4LsDgr1hf iiiY1iUXNktK3s+sbeOQtuIem29YneAXEGYdX0aZDNAx1ES7SgXvDQJtjDGBxXSbMuIk W60Q== X-Gm-Message-State: AOJu0Yx7d/3zDUY6NRJIjkrryrIVLMrv0kJN34ZSunqDPjKTX9a5GVz1 el7SHxHynx6mLhiBwsyPWDGjCL0V7EWHnJIcAbAIBoMR X-Google-Smtp-Source: AGHT+IHGosg0oDjE3Wc0mCC1cB8wdO44MeC9ym6pnXiafbuLdJbAhxtWBe5BdhJ+i7g2U6VB20Y3Mv1iBkgW65w5JwE= X-Received: by 2002:a05:6122:118a:b0:48d:10eb:7fb4 with SMTP id x10-20020a056122118a00b0048d10eb7fb4mr20407874vkn.4.1693243739610; Mon, 28 Aug 2023 10:28:59 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Mon, 28 Aug 2023 19:36:17 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="0000000000009e469f0603ff07fd" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] MULTI VLC decoding boost 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: --0000000000009e469f0603ff07fd Content-Type: text/plain; charset="UTF-8" Patches attached. Thanks for kurosu for pointing unmerged branches. The UNCACHED_PATH for x86_32 is broken with this for 2 codecs it touches. Fix is trivial, to be fixed later. --0000000000009e469f0603ff07fd Content-Type: text/x-patch; charset="US-ASCII"; name="0002-avcodec-magicyuv-add-vlc-multi-support.patch" Content-Disposition: attachment; filename="0002-avcodec-magicyuv-add-vlc-multi-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llv5si7t1 RnJvbSAyZmViNTU5Y2U2Mzg0YzQwOGE1ZDUwMDg3MjJiMGEyMDI2MmU5NzZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMjggQXVnIDIwMjMgMTI6MjA6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvM10gYXZj b2RlYy9tYWdpY3l1djogYWRkIHZsYyBtdWx0aSBzdXBwb3J0CgpHaXZlcyBuaWNlIHNwZWVkIGJv b3N0LCBkZXBlbmRpbmcgb24gZW5jb2RlZCBjb250ZW50IGl0IGdvZXMgZnJvbQozMCUgdG8gNjAl IGZhc3Rlci4KClNpZ25lZC1vZmYtYnk6IFBhdWwgQiBNYWhvbCA8b25lbWRhQGdtYWlsLmNvbT4K LS0tCiBsaWJhdmNvZGVjL21hZ2ljeXV2LmMgfCA2NCArKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMzEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tYWdpY3l1di5jIGIvbGliYXZj b2RlYy9tYWdpY3l1di5jCmluZGV4IDc4OThjZDViZTQuLjdhNzM4MzcyNDggMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvbWFnaWN5dXYuYworKysgYi9saWJhdmNvZGVjL21hZ2ljeXV2LmMKQEAgLTM0 LDYgKzM0LDggQEAKICNpbmNsdWRlICJsb3NzbGVzc192aWRlb2RzcC5oIgogI2luY2x1ZGUgInRo cmVhZC5oIgogCisjZGVmaW5lIFZMQ19CSVRTIDEyCisKIHR5cGVkZWYgc3RydWN0IFNsaWNlIHsK ICAgICB1aW50MzJfdCBzdGFydDsKICAgICB1aW50MzJfdCBzaXplOwpAQCAtNjcsMTMgKzY5LDE0 IEBAIHR5cGVkZWYgc3RydWN0IE1hZ2ljWVVWQ29udGV4dCB7CiAgICAgU2xpY2UgICAgICAgICAg ICAqc2xpY2VzWzRdOyAgICAgIC8vIHNsaWNlIGJpdHN0cmVhbSBwb3NpdGlvbnMgZm9yIGVhY2gg cGxhbmUKICAgICB1bnNpZ25lZCBpbnQgICAgICBzbGljZXNfc2l6ZVs0XTsgLy8gc2xpY2Ugc2l6 ZXMgZm9yIGVhY2ggcGxhbmUKICAgICBWTEMgICAgICAgICAgICAgICB2bGNbNF07ICAgICAgICAg Ly8gVkxDIGZvciBlYWNoIHBsYW5lCisgICAgVkxDX01VTFRJICAgICAgICAgbXVsdGlbNF07ICAg ICAgIC8vIEJ1ZmZlciBmb3Igam9pbnQgVkxDIGRhdGEKICAgICBpbnQgKCptYWd5X2RlY29kZV9z bGljZSkoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lkICp0ZGF0YSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IGosIGludCB0aHJlYWRucik7CiAgICAgTExWaWREU1BDb250ZXh0 ICAgbGx2aWRkc3A7CiB9IE1hZ2ljWVVWQ29udGV4dDsKIAogc3RhdGljIGludCBodWZmX2J1aWxk KGNvbnN0IHVpbnQ4X3QgbGVuW10sIHVpbnQxNl90IGNvZGVzX3Bvc1szM10sCi0gICAgICAgICAg ICAgICAgICAgICAgVkxDICp2bGMsIGludCBuYl9lbGVtcywgdm9pZCAqbG9nY3R4KQorICAgICAg ICAgICAgICAgICAgICAgIFZMQyAqdmxjLCBWTENfTVVMVEkgKm11bHRpLCBpbnQgbmJfZWxlbXMs IHZvaWQgKmxvZ2N0eCkKIHsKICAgICBIdWZmRW50cnkgaGVbNDA5Nl07CiAKQEAgLTg0LDcgKzg3 LDggQEAgc3RhdGljIGludCBodWZmX2J1aWxkKGNvbnN0IHVpbnQ4X3QgbGVuW10sIHVpbnQxNl90 IGNvZGVzX3Bvc1szM10sCiAgICAgICAgIGhlWy0tY29kZXNfcG9zW2xlbltpXV1dID0gKEh1ZmZF bnRyeSl7IGxlbltpXSwgaSB9OwogCiAgICAgZmZfZnJlZV92bGModmxjKTsKLSAgICByZXR1cm4g ZmZfaW5pdF92bGNfZnJvbV9sZW5ndGhzKHZsYywgRkZNSU4oaGVbMF0ubGVuLCAxMiksIG5iX2Vs ZW1zLAorICAgIGZmX2ZyZWVfdmxjX211bHRpKG11bHRpKTsKKyAgICByZXR1cm4gZmZfaW5pdF92 bGNfbXVsdGlfZnJvbV9sZW5ndGhzKHZsYywgbXVsdGksIEZGTUlOKGhlWzBdLmxlbiwgVkxDX0JJ VFMpLCBuYl9lbGVtcywgbmJfZWxlbXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmaGVbMF0ubGVuLCBzaXplb2YoaGVbMF0pLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmhlWzBdLnN5bSwgc2l6ZW9mKGhlWzBdKSwgc2l6ZW9mKGhlWzBdLnN5bSks CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBsb2djdHgpOwpAQCAt MTExLDYgKzExNSwyMSBAQCBzdGF0aWMgdm9pZCBtYWdpY3l1dl9tZWRpYW5fcHJlZDE2KHVpbnQx Nl90ICpkc3QsIGNvbnN0IHVpbnQxNl90ICpzcmMxLAogICAgICpsZWZ0X3RvcCA9IGx0OwogfQog CisjZGVmaW5lIFJFQURfUExBTkUoZHN0LCBwbGFuZSwgYiwgYykgXAoreyBcCisgICAgZm9yICh4 ID0gMDsgQ0FDSEVEX0JJVFNUUkVBTV9SRUFERVIgJiYgeCA8IHdpZHRoLWMgJiYgZ2V0X2JpdHNf bGVmdCgmZ2IpID4gMDspIHtcCisgICAgICAgIHJldCA9IGdldF92bGNfbXVsdGkoJmdiLCAodWlu dDhfdCAqKWRzdCArIHggKiBiLCBtdWx0aSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZsYywgdmxjX2JpdHMsIDMpOyBcCisgICAgICAgIGlmIChyZXQgPiAwKSBcCisgICAgICAgICAg ICB4ICs9IHJldDsgXAorICAgICAgICBpZiAocmV0IDw9IDApIFwKKyAgICAgICAgICAgIHJldHVy biBBVkVSUk9SX0lOVkFMSUREQVRBOyBcCisgICAgfSBcCisgICAgZm9yICg7IHggPCB3aWR0aCAm JiBnZXRfYml0c19sZWZ0KCZnYikgPiAwOyB4KyspIFwKKyAgICAgICAgZHN0W3hdID0gZ2V0X3Zs YzIoJmdiLCB2bGMsIHZsY19iaXRzLCAzKTsgXAorICAgIGRzdCArPSBzdHJpZGU7IFwKK30KKwog c3RhdGljIGludCBtYWd5X2RlY29kZV9zbGljZTEwKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgdm9p ZCAqdGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGosIGludCB0aHJl YWRucikKIHsKQEAgLTEzMCw2ICsxNDksOSBAQCBzdGF0aWMgaW50IG1hZ3lfZGVjb2RlX3NsaWNl MTAoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lkICp0ZGF0YSwKICAgICAgICAgaW50IHNoZWln aHQgPSBBVl9DRUlMX1JTSElGVChzLT5zbGljZV9oZWlnaHQsIHMtPnZzaGlmdFtpXSk7CiAgICAg ICAgIHB0cmRpZmZfdCBmYWtlX3N0cmlkZSA9IChwLT5saW5lc2l6ZVtpXSAvIDIpICogKDEgKyBp bnRlcmxhY2VkKTsKICAgICAgICAgcHRyZGlmZl90IHN0cmlkZSA9IHAtPmxpbmVzaXplW2ldIC8g MjsKKyAgICAgICAgY29uc3QgVkxDX01VTFRJX0VMRU0gKmNvbnN0IG11bHRpID0gcy0+bXVsdGlb aV0udGFibGU7CisgICAgICAgIGNvbnN0IFZMQ0VsZW0gKmNvbnN0IHZsYyA9IHMtPnZsY1tpXS50 YWJsZTsKKyAgICAgICAgY29uc3QgaW50IHZsY19iaXRzID0gcy0+dmxjW2ldLmJpdHM7CiAgICAg ICAgIGludCBmbGFncywgcHJlZDsKICAgICAgICAgaW50IHJldCA9IGluaXRfZ2V0X2JpdHM4KCZn Yiwgcy0+YnVmICsgcy0+c2xpY2VzW2ldW2pdLnN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcy0+c2xpY2VzW2ldW2pdLnNpemUpOwpAQCAtMTUxLDIwICsxNzMsOCBAQCBz dGF0aWMgaW50IG1hZ3lfZGVjb2RlX3NsaWNlMTAoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCB2b2lk ICp0ZGF0YSwKICAgICAgICAgICAgICAgICBkc3QgKz0gc3RyaWRlOwogICAgICAgICAgICAgfQog ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IGhlaWdodDsgaysr KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKLSAgICAg ICAgICAgICAgICAgICAgaW50IHBpeDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGdldF9iaXRz X2xlZnQoJmdiKSA8PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7Ci0KLSAgICAgICAgICAgICAgICAgICAgcGl4ID0gZ2V0X3ZsYzIoJmdiLCBz LT52bGNbaV0udGFibGUsIHMtPnZsY1tpXS5iaXRzLCAzKTsKLSAgICAgICAgICAgICAgICAgICAg aWYgKHBpeCA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKLQotICAgICAgICAgICAgICAgICAgICBkc3RbeF0gPSBwaXg7Ci0gICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgIGRzdCArPSBzdHJpZGU7Ci0gICAgICAgICAgICB9Cisg ICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgaGVpZ2h0OyBrKyspCisgICAgICAgICAgICAgICAg UkVBRF9QTEFORShkc3QsIGksIDIsIDMpCiAgICAgICAgIH0KIAogICAgICAgICBzd2l0Y2ggKHBy ZWQpIHsKQEAgLTI2MSw2ICsyNzEsOSBAQCBzdGF0aWMgaW50IG1hZ3lfZGVjb2RlX3NsaWNlKEFW Q29kZWNDb250ZXh0ICphdmN0eCwgdm9pZCAqdGRhdGEsCiAgICAgICAgIHB0cmRpZmZfdCBmYWtl X3N0cmlkZSA9IHAtPmxpbmVzaXplW2ldICogKDEgKyBpbnRlcmxhY2VkKTsKICAgICAgICAgcHRy ZGlmZl90IHN0cmlkZSA9IHAtPmxpbmVzaXplW2ldOwogICAgICAgICBjb25zdCB1aW50OF90ICpz bGljZSA9IHMtPmJ1ZiArIHMtPnNsaWNlc1tpXVtqXS5zdGFydDsKKyAgICAgICAgY29uc3QgVkxD X01VTFRJX0VMRU0gKmNvbnN0IG11bHRpID0gcy0+bXVsdGlbaV0udGFibGU7CisgICAgICAgIGNv bnN0IFZMQ0VsZW0gKmNvbnN0IHZsYyA9IHMtPnZsY1tpXS50YWJsZTsKKyAgICAgICAgY29uc3Qg aW50IHZsY19iaXRzID0gcy0+dmxjW2ldLmJpdHM7CiAgICAgICAgIGludCBmbGFncywgcHJlZDsK IAogICAgICAgICBmbGFncyA9IGJ5dGVzdHJlYW1fZ2V0X2J5dGUoJnNsaWNlKTsKQEAgLTI4MCwy MCArMjkzLDggQEAgc3RhdGljIGludCBtYWd5X2RlY29kZV9zbGljZShBVkNvZGVjQ29udGV4dCAq YXZjdHgsIHZvaWQgKnRkYXRhLAogICAgICAgICAgICAgaWYgKHJldCA8IDApCiAgICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsKIAotICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IGhlaWdodDsg aysrKSB7Ci0gICAgICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKLSAg ICAgICAgICAgICAgICAgICAgaW50IHBpeDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGdldF9i aXRzX2xlZnQoJmdiKSA8PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7Ci0KLSAgICAgICAgICAgICAgICAgICAgcGl4ID0gZ2V0X3ZsYzIoJmdi LCBzLT52bGNbaV0udGFibGUsIHMtPnZsY1tpXS5iaXRzLCAzKTsKLSAgICAgICAgICAgICAgICAg ICAgaWYgKHBpeCA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9J TlZBTElEREFUQTsKLQotICAgICAgICAgICAgICAgICAgICBkc3RbeF0gPSBwaXg7Ci0gICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRzdCArPSBzdHJpZGU7Ci0gICAgICAgICAgICB9 CisgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgaGVpZ2h0OyBrKyspCisgICAgICAgICAgICAg ICAgUkVBRF9QTEFORShkc3QsIGksIDEsIDUpCiAgICAgICAgIH0KIAogICAgICAgICBzd2l0Y2gg KHByZWQpIHsKQEAgLTQwNyw3ICs0MDgsNyBAQCBzdGF0aWMgaW50IGJ1aWxkX2h1ZmZtYW4oQVZD b2RlY0NvbnRleHQgKmF2Y3R4LCBjb25zdCB1aW50OF90ICp0YWJsZSwKIAogICAgICAgICBpZiAo aiA9PSBtYXgpIHsKICAgICAgICAgICAgIGogPSAwOwotICAgICAgICAgICAgaWYgKGh1ZmZfYnVp bGQobGVuLCBsZW5ndGhfY291bnQsICZzLT52bGNbaV0sIG1heCwgYXZjdHgpKSB7CisgICAgICAg ICAgICBpZiAoaHVmZl9idWlsZChsZW4sIGxlbmd0aF9jb3VudCwgJnMtPnZsY1tpXSwgJnMtPm11 bHRpW2ldLCBtYXgsIGF2Y3R4KSkgewogICAgICAgICAgICAgICAgIGF2X2xvZyhhdmN0eCwgQVZf TE9HX0VSUk9SLCAiQ2Fubm90IGJ1aWxkIEh1ZmZtYW4gY29kZXNcbiIpOwogICAgICAgICAgICAg ICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogICAgICAgICAgICAgfQpAQCAtNjg3LDYg KzY4OCw3IEBAIHN0YXRpYyBhdl9jb2xkIGludCBtYWd5X2RlY29kZV9lbmQoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KQogICAgICAgICBhdl9mcmVlcCgmcy0+c2xpY2VzW2ldKTsKICAgICAgICAgcy0+ c2xpY2VzX3NpemVbaV0gPSAwOwogICAgICAgICBmZl9mcmVlX3ZsYygmcy0+dmxjW2ldKTsKKyAg ICAgICAgZmZfZnJlZV92bGNfbXVsdGkoJnMtPm11bHRpW2ldKTsKICAgICB9CiAKICAgICByZXR1 cm4gMDsKLS0gCjIuMzkuMQoK --0000000000009e469f0603ff07fd Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avcodec-add-multi-vlc-reader.patch" Content-Disposition: attachment; filename="0001-avcodec-add-multi-vlc-reader.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llv5si9a2 RnJvbSBhNWFkZTUxMzczYmI5ODcxNzcyMjQ0ZjJkMTM1ZmYxYjhmZjBmZjYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFN1biwgMjcgQXVnIDIwMjMgMjE6MTg6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10gYXZj b2RlYzogYWRkIG11bHRpIHZsYyByZWFkZXIKCkhlYXZpbHkgYmFzZWQgYW5kIGluc3BpcmVkIGJ5 IENocmlzdG9waGUncyBjYWNoZSBicmFuY2hlcy4KCkNvLUF1dGhvcmVkLWJ5OiBDaHJpc3RvcGhl IEdpc3F1ZXQKU2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxvbmVtZGFAZ21haWwuY29tPgot LS0KIGxpYmF2Y29kZWMvYml0c3RyZWFtLmggICAgICAgICAgfCAgIDIgKwogbGliYXZjb2RlYy9i aXRzdHJlYW1fdGVtcGxhdGUuaCB8ICAyOSArKysrKysrCiBsaWJhdmNvZGVjL2dldF9iaXRzLmgg ICAgICAgICAgIHwgICAxICsKIGxpYmF2Y29kZWMvdmxjLmMgICAgICAgICAgICAgICAgfCAxMzcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2Y29kZWMvdmxjLmggICAgICAg ICAgICAgICAgfCAgNTMgKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDIyMiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9iaXRzdHJlYW0uaCBiL2xpYmF2Y29kZWMv Yml0c3RyZWFtLmgKaW5kZXggYjYwZjBjMjk2ZC4uMzViNzg3M2I5YyAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9iaXRzdHJlYW0uaAorKysgYi9saWJhdmNvZGVjL2JpdHN0cmVhbS5oCkBAIC0xMDIs NiArMTAyLDcgQEAKICMgZGVmaW5lIGJpdHNfZGVjb2RlMjEwICAgICBiaXRzX2RlY29kZTIxMF9s ZQogIyBkZWZpbmUgYml0c19hcHBseV9zaWduICAgIGJpdHNfYXBwbHlfc2lnbl9sZQogIyBkZWZp bmUgYml0c19yZWFkX3ZsYyAgICAgIGJpdHNfcmVhZF92bGNfbGUKKyMgZGVmaW5lIGJpdHNfcmVh ZF92bGNfbXVsdGkgYml0c19yZWFkX3ZsY19tdWx0aV9sZQogCiAjZWxpZiBkZWZpbmVkKEJJVFNf REVGQVVMVF9CRSkKIApAQCAtMTMwLDYgKzEzMSw3IEBACiAjIGRlZmluZSBiaXRzX2RlY29kZTIx MCAgICAgYml0c19kZWNvZGUyMTBfYmUKICMgZGVmaW5lIGJpdHNfYXBwbHlfc2lnbiAgICBiaXRz X2FwcGx5X3NpZ25fYmUKICMgZGVmaW5lIGJpdHNfcmVhZF92bGMgICAgICBiaXRzX3JlYWRfdmxj X2JlCisjIGRlZmluZSBiaXRzX3JlYWRfdmxjX211bHRpIGJpdHNfcmVhZF92bGNfbXVsdGlfYmUK IAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYml0c3RyZWFtX3RlbXBsYXRlLmgg Yi9saWJhdmNvZGVjL2JpdHN0cmVhbV90ZW1wbGF0ZS5oCmluZGV4IDMwYmVhODRhZGQuLjAzMDhl M2E5MjQgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYml0c3RyZWFtX3RlbXBsYXRlLmgKKysrIGIv bGliYXZjb2RlYy9iaXRzdHJlYW1fdGVtcGxhdGUuaApAQCAtNTIwLDYgKzUyMCwzNSBAQCBzdGF0 aWMgaW5saW5lIGludCBCU19GVU5DKHJlYWRfdmxjKShCU0NUWCAqYmMsIGNvbnN0IFZMQ0VsZW0g KnRhYmxlLAogICAgIHJldHVybiBjb2RlOwogfQogCitzdGF0aWMgaW5saW5lIGludCBCU19GVU5D KHJlYWRfdmxjX211bHRpKShCU0NUWCAqYmMsIHVpbnQ4X3QgKmRzdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZMQ19NVUxUSV9FTEVNICpjb25zdCBK dGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBW TENFbGVtICpjb25zdCB0YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGludCBiaXRzLCBjb25zdCBpbnQgbWF4X2RlcHRoKQoreworICAgIHVuc2ln bmVkIGlkeCA9IEJTX0ZVTkMocGVlaykoYmMsIGJpdHMpOworICAgIGludCByZXQsIG5iX2JpdHMs IGNvZGUsIG4gPSBKdGFibGVbaWR4XS5sZW47CisgICAgaWYgKEp0YWJsZVtpZHhdLm51bSkgewor ICAgICAgICBBVl9DT1BZNjRVKGRzdCwgSnRhYmxlW2lkeF0udmFsKTsKKyAgICAgICAgcmV0ID0g SnRhYmxlW2lkeF0ubnVtOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvZGUgPSB0YWJsZVtpZHhd LnN5bTsKKyAgICAgICAgbiA9IHRhYmxlW2lkeF0ubGVuOworICAgICAgICBpZiAobWF4X2RlcHRo ID4gMSAmJiBuIDwgMCkgeworICAgICAgICAgICAgQlNfRlVOQyhwcml2X3NraXBfcmVtYWluaW5n KShiYywgYml0cyk7CisgICAgICAgICAgICBjb2RlID0gQlNfRlVOQyhwcml2X3NldF9pZHgpKGJj LCBjb2RlLCAmbiwgJm5iX2JpdHMsIHRhYmxlKTsKKyAgICAgICAgICAgIGlmIChtYXhfZGVwdGgg PiAyICYmIG4gPCAwKSB7CisgICAgICAgICAgICAgICAgQlNfRlVOQyhwcml2X3NraXBfcmVtYWlu aW5nKShiYywgbmJfYml0cyk7CisgICAgICAgICAgICAgICAgY29kZSA9IEJTX0ZVTkMocHJpdl9z ZXRfaWR4KShiYywgY29kZSwgJm4sICZuYl9iaXRzLCB0YWJsZSk7CisgICAgICAgICAgICB9Cisg ICAgICAgIH0KKyAgICAgICAgQVZfV04xNihkc3QsIGNvZGUpOworICAgICAgICByZXQgPSBuID4g MDsKKyAgICB9CisgICAgQlNfRlVOQyhwcml2X3NraXBfcmVtYWluaW5nKShiYywgbik7CisKKyAg ICByZXR1cm4gcmV0OworfQorCiAjdW5kZWYgQlNDVFgKICN1bmRlZiBCU19GVU5DCiAjdW5kZWYg QlNfSk9JTjMKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZ2V0X2JpdHMuaCBiL2xpYmF2Y29kZWMv Z2V0X2JpdHMuaAppbmRleCA2NWRjMDgwZGRiLi41ODFlM2Q0NGE0IDEwMDY0NAotLS0gYS9saWJh dmNvZGVjL2dldF9iaXRzLmgKKysrIGIvbGliYXZjb2RlYy9nZXRfYml0cy5oCkBAIC05Myw2ICs5 Myw3IEBAIHR5cGVkZWYgQml0c3RyZWFtQ29udGV4dCBHZXRCaXRDb250ZXh0OwogI2RlZmluZSBp bml0X2dldF9iaXRzOCAgICAgIGJpdHNfaW5pdDgKICNkZWZpbmUgYWxpZ25fZ2V0X2JpdHMgICAg ICBiaXRzX2FsaWduCiAjZGVmaW5lIGdldF92bGMyICAgICAgICAgICAgYml0c19yZWFkX3ZsYwor I2RlZmluZSBnZXRfdmxjX211bHRpICAgICAgIGJpdHNfcmVhZF92bGNfbXVsdGkKIAogI2RlZmlu ZSBpbml0X2dldF9iaXRzOF9sZShzLCBidWZmZXIsIGJ5dGVfc2l6ZSkgYml0c19pbml0OF9sZSgo Qml0c3RyZWFtQ29udGV4dExFKilzLCBidWZmZXIsIGJ5dGVfc2l6ZSkKICNkZWZpbmUgZ2V0X2Jp dHNfbGUocywgbikgICAgICAgICAgICAgICAgICAgICAgIGJpdHNfcmVhZF9sZSgoQml0c3RyZWFt Q29udGV4dExFKilzLCBuKQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92bGMuYyBiL2xpYmF2Y29k ZWMvdmxjLmMKaW5kZXggOTZmMmIyOGM3ZS4uODQwYmY4YWI3NiAxMDA2NDQKLS0tIGEvbGliYXZj b2RlYy92bGMuYworKysgYi9saWJhdmNvZGVjL3ZsYy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j bHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0LmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2Vycm9yLmgi CiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludGVybmFsLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2lu dHJlYWR3cml0ZS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9sb2cuaCIKICNpbmNsdWRlICJsaWJh dnV0aWwvbWFjcm9zLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIgpAQCAtMzcyLDYgKzM3 MywxNDIgQEAgZmFpbDoKICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIH0KIAorc3Rh dGljIHZvaWQgYWRkX2xldmVsKFZMQ19NVUxUSV9FTEVNICp0YWJsZSwgY29uc3QgaW50IG5iX2Vs ZW1zLAorCQkgICAgICBjb25zdCBpbnQgbnVtLCBjb25zdCBpbnQgbnVtYml0cywKKyAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBWTENjb2RlICpidWYsCisgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgY3VyY29kZSwgaW50IGN1cmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQg Y3VybGltaXQsIGludCBjdXJsZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQg bWlubGVuLCBjb25zdCBpbnQgbWF4LAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBs ZXZlbGNudCwgVkxDX01VTFRJX0VMRU0gKmluZm8pCit7CisgICAgaWYgKG5iX2VsZW1zID4gMjU2 ICYmIGN1cmxldmVsID4gMikKKyAgICAgICAgcmV0dXJuOyAvLyBObyByb29tCisgICAgZm9yIChp bnQgaSA9IG51bS0xOyBpID4gbWF4OyBpLS0pIHsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGog PCAyOyBqKyspIHsKKyAgICAgICAgICAgIGludCBuZXdsaW1pdCwgc3ltOworICAgICAgICAgICAg aW50IHQgPSBqID8gaS0xIDogaTsKKyAgICAgICAgICAgIGludCBsID0gYnVmW3RdLmJpdHM7Cisg ICAgICAgICAgICB1aW50MzJfdCBjb2RlOworCisgICAgICAgICAgICBzeW0gPSBidWZbdF0uc3lt Ym9sOworICAgICAgICAgICAgaWYgKGwgPiBjdXJsaW1pdCkKKyAgICAgICAgICAgICAgICByZXR1 cm47CisgICAgICAgICAgICBjb2RlID0gY3VyY29kZSArIChidWZbdF0uY29kZSA+PiBjdXJsZW4p OworICAgICAgICAgICAgbmV3bGltaXQgPSBjdXJsaW1pdCAtIGw7CisgICAgICAgICAgICBsICAr PSBjdXJsZW47CisgICAgICAgICAgICBpZiAobmJfZWxlbXM+MjU2KSBBVl9XTjE2KGluZm8tPnZh bCsyKmN1cmxldmVsLCBzeW0pOworICAgICAgICAgICAgZWxzZSBpbmZvLT52YWxbY3VybGV2ZWxd ID0gc3ltJjB4RkY7CisKKyAgICAgICAgICAgIGlmIChjdXJsZXZlbCkgeyAvLyBsZXQncyBub3Qg YWRkIHNpbmdsZSBlbnRyaWVzCisgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsID0gY29kZSA+ PiAoMzIgLSBudW1iaXRzKTsKKyAgICAgICAgICAgICAgICB1aW50MzJfdCAgbmIgPSB2YWwgKyAo MVUgPDwgKG51bWJpdHMgLSBsKSk7CisgICAgICAgICAgICAgICAgaW5mby0+bGVuID0gbDsKKyAg ICAgICAgICAgICAgICBpbmZvLT5udW0gPSBjdXJsZXZlbCsxOworICAgICAgICAgICAgICAgIGZv ciAoOyB2YWwgPCBuYjsgdmFsKyspCisgICAgICAgICAgICAgICAgICAgIEFWX0NPUFk2NCh0YWJs ZSt2YWwsIGluZm8pOworICAgICAgICAgICAgICAgIGxldmVsY250W2N1cmxldmVsLTFdKys7Cisg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjdXJsZXZlbCsxIDwgVkxDX01VTFRJX01B WF9TWU1CT0xTICYmIG5ld2xpbWl0ID49IG1pbmxlbikgeworICAgICAgICAgICAgICAgIGFkZF9s ZXZlbCh0YWJsZSwgbmJfZWxlbXMsIG51bSwgbnVtYml0cywgYnVmLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBjb2RlLCBsLCBuZXdsaW1pdCwgY3VybGV2ZWwrMSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgbWlubGVuLCBtYXgsIGxldmVsY250LCBpbmZvKTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIGludCB2bGNfbXVsdGlfZ2VuKFZMQ19NVUxU SV9FTEVNICp0YWJsZSwgY29uc3QgVkxDICpzaW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50IG5iX2VsZW1zLCBjb25zdCBpbnQgbmJfY29kZXMsIGNvbnN0IGludCBudW1i aXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIFZMQ2NvZGUgKmJ1Ziwgdm9pZCAqbG9nY3R4 KQoreworICAgIGludCBtaW5iaXRzLCBtYXhiaXRzLCBtYXggPSBuYl9jb2Rlcy0xOworICAgIHVu c2lnbmVkIGNvdW50W1ZMQ19NVUxUSV9NQVhfU1lNQk9MUy0xXSA9IHsgMCwgfTsKKyAgICBWTENf TVVMVElfRUxFTSBpbmZvID0geyB7IDAsIH0sIDAsIH07CisKKyAgICBtaW5iaXRzID0gYnVmW25i X2NvZGVzLTFdLmJpdHM7CisgICAgbWF4Yml0cyA9IEZGTUlOKGJ1ZlswXS5iaXRzLCBudW1iaXRz KTsKKworICAgIHdoaWxlIChtYXggPj0gbmJfY29kZXMvMikgeworICAgICAgICBpZiAoYnVmW21h eF0uYml0cyttaW5iaXRzID4gbWF4Yml0cykKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBt YXgtLTsKKyAgICB9CisKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IDE8PG51bWJpdHM7IGorKykg eworICAgICAgICB0YWJsZVtqXS5sZW4gPSBzaW5nbGUtPnRhYmxlW2pdLmxlbjsKKyAgICAgICAg dGFibGVbal0ubnVtID0gc2luZ2xlLT50YWJsZVtqXS5sZW4gPiAwID8gMSA6IDA7CisgICAgICAg IEFWX1dOMTYodGFibGVbal0udmFsLCBzaW5nbGUtPnRhYmxlW2pdLnN5bSk7CisgICAgfQorCisg ICAgYWRkX2xldmVsKHRhYmxlLCBuYl9lbGVtcywgbmJfY29kZXMsIG51bWJpdHMsIGJ1ZiwKKyAg ICAgICAgICAgICAgMCwgMCwgbnVtYml0cywgMCwgbWluYml0cywgbWF4LCBjb3VudCwgJmluZm8p OworCisgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19ERUJVRywgIkpvaW50OiAlZC8lZC8lZC8lZC8l ZCBjb2RlcyBtaW49JXViaXRzIG1heD0ldVxuIiwKKyAgICAgICAgICAgY291bnRbMF0sIGNvdW50 WzFdLCBjb3VudFsyXSwgY291bnRbM10sIGNvdW50WzRdLCBtaW5iaXRzLCBtYXgpOworCisgICAg cmV0dXJuIDA7Cit9CisKK2ludCBmZl9pbml0X3ZsY19tdWx0aV9mcm9tX2xlbmd0aHMoVkxDICp2 bGMsIFZMQ19NVUxUSSAqbXVsdGksIGludCBuYl9iaXRzLCBpbnQgbmJfZWxlbXMsCisJCSAgICAg ICAgICAgICAgICAgICBpbnQgbmJfY29kZXMsIGNvbnN0IGludDhfdCAqbGVucywgaW50IGxlbnNf d3JhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqc3lt Ym9scywgaW50IHN5bWJvbHNfd3JhcCwgaW50IHN5bWJvbHNfc2l6ZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCwgaW50IGZsYWdzLCB2b2lkICpsb2djdHgp Cit7CisgICAgVkxDY29kZSBsb2NhbGJ1ZltMT0NBTEJVRl9FTEVNU10sICpidWYgPSBsb2NhbGJ1 ZjsKKyAgICB1aW50NjRfdCBjb2RlOworICAgIGludCByZXQsIGosIGxlbl9tYXggPSBGRk1JTigz MiwgMyAqIG5iX2JpdHMpOworCisgICAgcmV0ID0gdmxjX2NvbW1vbl9pbml0KHZsYywgbmJfYml0 cywgbmJfY29kZXMsICZidWYsIGZsYWdzKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0 dXJuIHJldDsKKworICAgIG11bHRpLT50YWJsZSA9IGF2X21hbGxvYyhzaXplb2YoKm11bHRpLT50 YWJsZSkgPDwgbmJfYml0cyk7CisgICAgaWYgKCFtdWx0aS0+dGFibGUpCisgICAgICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBqID0gY29kZSA9IDA7CisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuYl9jb2RlczsgaSsrLCBsZW5zICs9IGxlbnNfd3JhcCkgeworICAgICAgICBpbnQg bGVuID0gKmxlbnM7CisgICAgICAgIGlmIChsZW4gPiAwKSB7CisgICAgICAgICAgICB1bnNpZ25l ZCBzeW07CisKKyAgICAgICAgICAgIGJ1ZltqXS5iaXRzID0gbGVuOworICAgICAgICAgICAgaWYg KHN5bWJvbHMpCisgICAgICAgICAgICAgICAgR0VUX0RBVEEoc3ltLCBzeW1ib2xzLCBpLCBzeW1i b2xzX3dyYXAsIHN5bWJvbHNfc2l6ZSkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICBzeW0gPSBpOworICAgICAgICAgICAgYnVmW2pdLnN5bWJvbCA9IHN5bSArIG9mZnNldDsKKyAg ICAgICAgICAgIGJ1ZltqKytdLmNvZGUgPSBjb2RlOworICAgICAgICB9IGVsc2UgaWYgKGxlbiA8 ICAwKSB7CisgICAgICAgICAgICBsZW4gPSAtbGVuOworICAgICAgICB9IGVsc2UKKyAgICAgICAg ICAgIGNvbnRpbnVlOworICAgICAgICBpZiAobGVuID4gbGVuX21heCB8fCBjb2RlICYgKCgxVSA8 PCAoMzIgLSBsZW4pKSAtIDEpKSB7CisgICAgICAgICAgICBhdl9sb2cobG9nY3R4LCBBVl9MT0df RVJST1IsICJJbnZhbGlkIFZMQyAobGVuZ3RoICV1KVxuIiwgbGVuKTsKKyAgICAgICAgICAgIGdv dG8gZmFpbDsKKyAgICAgICAgfQorICAgICAgICBjb2RlICs9IDFVIDw8ICgzMiAtIGxlbik7Cisg ICAgICAgIGlmIChjb2RlID4gVUlOVDMyX01BWCArIDFVTEwpIHsKKyAgICAgICAgICAgIGF2X2xv Zyhsb2djdHgsIEFWX0xPR19FUlJPUiwgIk92ZXJkZXRlcm1pbmVkIFZMQyB0cmVlXG4iKTsKKyAg ICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXQgPSB2bGNfY29t bW9uX2VuZCh2bGMsIG5iX2JpdHMsIGosIGJ1ZiwgZmxhZ3MsIGxvY2FsYnVmKTsKKyAgICBpZiAo cmV0IDwgMCkKKyAgICAgICAgZ290byBmYWlsOworICAgIHJldHVybiB2bGNfbXVsdGlfZ2VuKG11 bHRpLT50YWJsZSwgdmxjLCBuYl9lbGVtcywgaiwgbmJfYml0cywgYnVmLCBsb2djdHgpOworZmFp bDoKKyAgICBpZiAoYnVmICE9IGxvY2FsYnVmKQorICAgICAgICBhdl9mcmVlKGJ1Zik7CisgICAg cmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cit9CisKK3ZvaWQgZmZfZnJlZV92bGNfbXVsdGko VkxDX01VTFRJICp2bGMpCit7CisgICAgYXZfZnJlZXAoJnZsYy0+dGFibGUpOworfQorCiB2b2lk IGZmX2ZyZWVfdmxjKFZMQyAqdmxjKQogewogICAgIGF2X2ZyZWVwKCZ2bGMtPnRhYmxlKTsKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvdmxjLmggYi9saWJhdmNvZGVjL3ZsYy5oCmluZGV4IGU2M2M0 ODQ3NTUuLjQ2MDYzODYyZjYgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvdmxjLmgKKysrIGIvbGli YXZjb2RlYy92bGMuaApAQCAtMjEsNiArMjEsOCBAQAogCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAK KyNkZWZpbmUgVkxDX01VTFRJX01BWF9TWU1CT0xTIDYKKwogLy8gV2hlbiBjaGFuZ2luZyB0aGlz LCBiZSBzdXJlIHRvIGFsc28gdXBkYXRlIHRhYmxlcHJpbnRfdmxjLmggYWNjb3JkaW5nbHkuCiB0 eXBlZGVmIGludDE2X3QgVkxDQmFzZVR5cGU7CiAKQEAgLTM0LDYgKzM2LDE3IEBAIHR5cGVkZWYg c3RydWN0IFZMQyB7CiAgICAgaW50IHRhYmxlX3NpemUsIHRhYmxlX2FsbG9jYXRlZDsKIH0gVkxD OwogCit0eXBlZGVmIHN0cnVjdCBWTENfTVVMVElfRUxFTSB7CisgICAgdWludDhfdCB2YWxbVkxD X01VTFRJX01BWF9TWU1CT0xTXTsKKyAgICBpbnQ4X3QgbGVuOyAvLyAtMzEsMzIKKyAgICB1aW50 OF90IG51bTsKK30gVkxDX01VTFRJX0VMRU07CisKK3R5cGVkZWYgc3RydWN0IFZMQ19NVUxUSSB7 CisgICAgVkxDX01VTFRJX0VMRU0gKnRhYmxlOworICAgIGludCB0YWJsZV9zaXplLCB0YWJsZV9h bGxvY2F0ZWQ7Cit9IFZMQ19NVUxUSTsKKwogdHlwZWRlZiBzdHJ1Y3QgUkxfVkxDX0VMRU0gewog ICAgIGludDE2X3QgbGV2ZWw7CiAgICAgaW50OF90IGxlbjsKQEAgLTg5LDYgKzEwMiw0NiBAQCBp bnQgZmZfaW5pdF92bGNfZnJvbV9sZW5ndGhzKFZMQyAqdmxjLCBpbnQgbmJfYml0cywgaW50IG5i X2NvZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpzeW1ib2xz LCBpbnQgc3ltYm9sc193cmFwLCBpbnQgc3ltYm9sc19zaXplLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgb2Zmc2V0LCBpbnQgZmxhZ3MsIHZvaWQgKmxvZ2N0eCk7CiAKKy8qKgor ICogQnVpbGQgVkxDIGRlY29kaW5nIHRhYmxlcyBzdWl0YWJsZSBmb3IgdXNlIHdpdGggZ2V0X3Zs Y19tdWx0aSgpCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyBsZW5ndGhzIGFuZCBzeW1ib2xz IGFuZCBjYWxjdWxhdGVzIHRoZSBjb2RlcyBmcm9tIHRoZW0uCisgKiBGb3IgdGhpcyB0aGUgaW5w dXQgbGVuZ3RocyBhbmQgc3ltYm9scyBoYXZlIHRvIGJlIHNvcnRlZCBhY2NvcmRpbmcgdG8gImxl ZnQKKyAqIG5vZGVzIGluIHRoZSBjb3JyZXNwb25kaW5nIHRyZWUgZmlyc3QiLgorICoKKyAqIEBw YXJhbVtpbixvdXRdIHZsYyAgICAgIFRoZSBWTEMgdG8gYmUgaW5pdGlhbGl6ZWQ7IHRhYmxlIGFu ZCB0YWJsZV9hbGxvY2F0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgaGF2ZSBi ZWVuIHNldCB3aGVuIGluaXRpYWxpemluZyBhIHN0YXRpYyBWTEMsCisgKiAgICAgICAgICAgICAg ICAgICAgICAgICBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIHRyZWF0ZWQgYXMgdW5pbml0aWFsaXpl ZC4KKyAqIEBwYXJhbVtpbixvdXRdIG11bHRpICAgIFRoZSBWTENfTVVMVEkgdG8gYmUgaW5pdGlh bGl6ZWQ7IHRhYmxlIGFuZCB0YWJsZV9hbGxvY2F0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgIG11c3QgaGF2ZSBiZWVuIHNldCB3aGVuIGluaXRpYWxpemluZyBhIHN0YXRpYyBWTEMsCisg KiAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcndpc2UgdGhpcyB3aWxsIGJlIHRyZWF0ZWQg YXMgdW5pbml0aWFsaXplZC4KKyAqIEBwYXJhbVtpbl0gbmJfYml0cyAgICAgIFRoZSBudW1iZXIg b2YgYml0cyB0byB1c2UgZm9yIHRoZSBWTEMgdGFibGU7CisgKiAgICAgICAgICAgICAgICAgICAg ICAgICBoaWdoZXIgdmFsdWVzIHRha2UgdXAgbW9yZSBtZW1vcnkgYW5kIGNhY2hlLCBidXQKKyAq ICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93IHRvIHJlYWQgY29kZXMgd2l0aCBmZXdlciBy ZWFkcy4KKyAqIEBwYXJhbVtpbl0gbmJfZWxlbXMgICAgIFRoZSBtYXggcG9zc2libGUgbnVtYmVy IG9mIGVsZW1lbnRzLgorICogQHBhcmFtW2luXSBuYl9jb2RlcyAgICAgVGhlIG51bWJlciBvZiBw cm92aWRlZCBsZW5ndGggYW5kIChpZiBzdXBwbGllZCkgc3ltYm9sCisgKiAgICAgICAgICAgICAg ICAgICAgICAgICBlbnRyaWVzLgorICogQHBhcmFtW2luXSBsZW5zICAgICAgICAgVGhlIGxlbmd0 aHMgb2YgdGhlIGNvZGVzLiBFbnRyaWVzID4gMCBjb3JyZXNwb25kIHRvCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICB2YWxpZCBjb2RlczsgZW50cmllcyA9PSAwIHdpbGwgYmUgc2tpcHBlZCBh bmQgZW50cmllcworICogICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBsZW4gPCAwIGluZGlj YXRlIHRoYXQgdGhlIHRyZWUgaXMgaW5jb21wbGV0ZSBhbmQKKyAqICAgICAgICAgICAgICAgICAg ICAgICAgIGhhcyBhbiBvcGVuIGVuZCBvZiBsZW5ndGggLWxlbiBhdCB0aGlzIHBvc2l0aW9uLgor ICogQHBhcmFtW2luXSBsZW5zX3dyYXAgICAgU3RyaWRlIChpbiBieXRlcykgb2YgdGhlIGxlbmd0 aHMuCisgKiBAcGFyYW1baW5dIHN5bWJvbHMgICAgICBUaGUgc3ltYm9scywgaS5lLiB3aGF0IGlz IHJldHVybmVkIGZyb20gZ2V0X3ZsYzIoKQorICogICAgICAgICAgICAgICAgICAgICAgICAgd2hl biB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGlzIGVuY291bnRlcmVkLgorICogICAgICAgICAgICAg ICAgICAgICAgICAgTWF5IGJlIE5VTEwsIHRoZW4gMCwgMSwgMiwgMywgNCwuLi4gd2lsbCBiZSB1 c2VkLgorICogQHBhcmFtW2luXSBzeW1ib2xzX3dyYXAgU3RyaWRlIChpbiBieXRlcykgb2YgdGhl IHN5bWJvbHMuCisgKiBAcGFyYW1baW5dIHN5bWJvbHNfc2l6ZSBTaXplIG9mIHRoZSBzeW1ib2xz LiAxIGFuZCAyIGFyZSBzdXBwb3J0ZWQuCisgKiBAcGFyYW1baW5dIG9mZnNldCAgICAgICBBbiBv ZmZzZXQgdG8gYXBwbHkgdG8gYWxsIHRoZSB2YWxpZCBzeW1ib2xzLgorICogQHBhcmFtW2luXSBm bGFncyAgICAgICAgQSBjb21iaW5hdGlvbiBvZiB0aGUgSU5JVF9WTENfKiBmbGFnczsgbm90aWNl IHRoYXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIElOSVRfVkxDX0lOUFVUX0xFIGlzIHBv aW50bGVzcyBhbmQgaWdub3JlZC4KKyAqLworaW50IGZmX2luaXRfdmxjX211bHRpX2Zyb21fbGVu Z3RocyhWTEMgKnZsYywgVkxDX01VTFRJICptdWx0aSwgaW50IG5iX2JpdHMsIGludCBuYl9lbGVt cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5iX2NvZGVzLCBjb25z dCBpbnQ4X3QgKmxlbnMsIGludCBsZW5zX3dyYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQgKnN5bWJvbHMsIGludCBzeW1ib2xzX3dyYXAsIGludCBzeW1i b2xzX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQs IGludCBmbGFncywgdm9pZCAqbG9nY3R4KTsKKworCit2b2lkIGZmX2ZyZWVfdmxjX211bHRpKFZM Q19NVUxUSSAqdmxjKTsKIHZvaWQgZmZfZnJlZV92bGMoVkxDICp2bGMpOwogCiAvKiBJZiBJTklU X1ZMQ19JTlBVVF9MRSBpcyBzZXQsIHRoZSBMU0IgYml0IG9mIHRoZSBjb2RlcyB1c2VkIHRvCi0t IAoyLjM5LjEKCg== --0000000000009e469f0603ff07fd Content-Type: text/x-patch; charset="US-ASCII"; name="0003-avcodec-utvideodec-add-vlc-multi-support.patch" Content-Disposition: attachment; filename="0003-avcodec-utvideodec-add-vlc-multi-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llv5si1f0 RnJvbSA0MjUwZDc0ZGFkMmJmYjRjOGQwMWZjMjZjOTYzNWM1NjI5M2ZjNzRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGhlIEdpc3F1ZXQgPGNocmlzdG9waGUuZ2lzcXVl dEBnbWFpbC5jb20+CkRhdGU6IFN1biwgOSBKdWwgMjAxNyAxMjo1NjozNSArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMy8zXSBhdmNvZGVjL3V0dmlkZW9kZWM6IGFkZCB2bGMgbXVsdGkgc3VwcG9ydAoK RmFzdGVyIGRlY29kaW5nLCBieSBhdmVyYWdlIDUwJSBmYXN0ZXIgb3ZlcmFsbC4KClNpZ25lZC1v ZmYtYnk6IFBhdWwgQiBNYWhvbCA8b25lbWRhQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmNvZGVjL3V0 dmlkZW8uaCAgICB8ICAxICsKIGxpYmF2Y29kZWMvdXR2aWRlb2RlYy5jIHwgOTEgKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDUgaW5z ZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy91dHZp ZGVvLmggYi9saWJhdmNvZGVjL3V0dmlkZW8uaAppbmRleCA5ZGE5MzI5ZmYzLi5kMjc0YjY1ODZk IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3V0dmlkZW8uaAorKysgYi9saWJhdmNvZGVjL3V0dmlk ZW8uaApAQCAtODAsNiArODAsNyBAQCB0eXBlZGVmIHN0cnVjdCBVdHZpZGVvQ29udGV4dCB7CiAK ICAgICBwdHJkaWZmX3Qgc2xpY2Vfc3RyaWRlOwogICAgIHVpbnQ4X3QgKnNsaWNlX2JpdHMsICpz bGljZV9idWZmZXJbNF07CisgICAgdm9pZCAgICAqYnVmZmVyOwogICAgIGludCAgICAgIHNsaWNl X2JpdHNfc2l6ZTsKIAogICAgIGNvbnN0IHVpbnQ4X3QgKnBhY2tlZF9zdHJlYW1bNF1bMjU2XTsK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdXR2aWRlb2RlYy5jIGIvbGliYXZjb2RlYy91dHZpZGVv ZGVjLmMKaW5kZXggMWYwMGM1ODk1MC4uMGIwMzUyYjdlYyAxMDA2NDQKLS0tIGEvbGliYXZjb2Rl Yy91dHZpZGVvZGVjLmMKKysrIGIvbGliYXZjb2RlYy91dHZpZGVvZGVjLmMKQEAgLTQ2LDcgKzQ2 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSHVmZkVudHJ5IHsKIH0gSHVmZkVudHJ5OwogCiBzdGF0aWMg aW50IGJ1aWxkX2h1ZmYoVXR2aWRlb0NvbnRleHQgKmMsIGNvbnN0IHVpbnQ4X3QgKnNyYywgVkxD ICp2bGMsCi0gICAgICAgICAgICAgICAgICAgICAgaW50ICpmc3ltLCB1bnNpZ25lZCBuYl9lbGVt cykKKyAgICAgICAgICAgICAgICAgICAgICBWTENfTVVMVEkgKm11bHRpLCBpbnQgKmZzeW0sIHVu c2lnbmVkIG5iX2VsZW1zKQogewogICAgIGludCBpOwogICAgIEh1ZmZFbnRyeSBoZVsxMDI0XTsK QEAgLTgyLDExICs4MiwzNCBAQCBzdGF0aWMgaW50IGJ1aWxkX2h1ZmYoVXR2aWRlb0NvbnRleHQg KmMsIGNvbnN0IHVpbnQ4X3QgKnNyYywgVkxDICp2bGMsCiAgICAgICAgIGhlWy0tY29kZXNfY291 bnRbYml0c1tpXV1dID0gKEh1ZmZFbnRyeSkgeyBiaXRzW2ldLCBpIH07CiAKICNkZWZpbmUgVkxD X0JJVFMgMTEKLSAgICByZXR1cm4gZmZfaW5pdF92bGNfZnJvbV9sZW5ndGhzKHZsYywgVkxDX0JJ VFMsIGNvZGVzX2NvdW50WzBdLAorICAgIHJldHVybiBmZl9pbml0X3ZsY19tdWx0aV9mcm9tX2xl bmd0aHModmxjLCBtdWx0aSwgVkxDX0JJVFMsIG5iX2VsZW1zLCBjb2Rlc19jb3VudFswXSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoZVswXS5sZW4sIHNpemVvZigqaGUp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhlWzBdLnN5bSwgc2l6ZW9m KCpoZSksIDIsIDAsIDAsIGMtPmF2Y3R4KTsKIH0KIAorI2RlZmluZSBSRUFEX1BMQU5FKGIsIGVu ZCkgXAoreyBcCisgICAgYnVmID0gIXVzZV9wcmVkID8gZGVzdCA6IGMtPmJ1ZmZlcjsgXAorICAg IGZvciAoaSA9IDA7IENBQ0hFRF9CSVRTVFJFQU1fUkVBREVSICYmIGkgPCB3aWR0aC1lbmQgJiYg Z2V0X2JpdHNfbGVmdCgmZ2IpID4gMDspIHtcCisgICAgICAgIHJldCA9IGdldF92bGNfbXVsdGko JmdiLCAodWludDhfdCAqKWJ1ZiArIGkgKiBiLCBtdWx0aS50YWJsZSwgXAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZsYy50YWJsZSwgVkxDX0JJVFMsIDMpOyBcCisgICAgICAgIGlmIChy ZXQgPiAwKSBcCisgICAgICAgICAgICBpICs9IHJldDsgXAorICAgICAgICBpZiAocmV0IDw9IDAp IFwKKyAgICAgICAgICAgIGdvdG8gZmFpbDsgXAorICAgIH0gXAorICAgIGZvciAoOyBpIDwgd2lk dGggJiYgZ2V0X2JpdHNfbGVmdCgmZ2IpID4gMDsgaSsrKSBcCisgICAgICAgIGJ1ZltpXSA9IGdl dF92bGMyKCZnYiwgdmxjLnRhYmxlLCBWTENfQklUUywgMyk7IFwKKyAgICBpZiAodXNlX3ByZWQp IHsgXAorICAgICAgICBpZiAoYiA9PSAyKSBcCisgICAgICAgICAgICBjLT5sbHZpZGRzcC5hZGRf bGVmdF9wcmVkX2ludDE2KCh1aW50MTZfdCAqKWRlc3QsIChjb25zdCB1aW50MTZfdCAqKWJ1Ziwg MHgzZmYsIHdpZHRoLCBwcmV2KTsgXAorICAgICAgICBlbHNlIFwKKyAgICAgICAgICAgIGMtPmxs dmlkZHNwLmFkZF9sZWZ0X3ByZWQoKHVpbnQ4X3QgKilkZXN0LCAoY29uc3QgdWludDhfdCAqKWJ1 Ziwgd2lkdGgsIHByZXYpOyBcCisgICAgfSBcCisgICAgcHJldiA9IGRlc3Rbd2lkdGgtMV07IFwK KyAgICBkZXN0ICs9IHN0cmlkZTsgXAorfQorCiBzdGF0aWMgaW50IGRlY29kZV9wbGFuZTEwKFV0 dmlkZW9Db250ZXh0ICpjLCBpbnQgcGxhbmVfbm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQxNl90ICpkc3QsIHB0cmRpZmZfdCBzdHJpZGUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwKQEAgLTk1LDExICsxMTgsMTIgQEAgc3RhdGljIGlu dCBkZWNvZGVfcGxhbmUxMChVdHZpZGVvQ29udGV4dCAqYywgaW50IHBsYW5lX25vLAogewogICAg IGludCBpLCBqLCBzbGljZSwgcGl4LCByZXQ7CiAgICAgaW50IHNzdGFydCwgc2VuZDsKKyAgICBW TENfTVVMVEkgbXVsdGk7CiAgICAgVkxDIHZsYzsKICAgICBHZXRCaXRDb250ZXh0IGdiOwogICAg IGludCBwcmV2LCBmc3ltOwogCi0gICAgaWYgKChyZXQgPSBidWlsZF9odWZmKGMsIGh1ZmYsICZ2 bGMsICZmc3ltLCAxMDI0KSkgPCAwKSB7CisgICAgaWYgKChyZXQgPSBidWlsZF9odWZmKGMsIGh1 ZmYsICZ2bGMsICZtdWx0aSwgJmZzeW0sIDEwMjQpKSA8IDApIHsKICAgICAgICAgYXZfbG9nKGMt PmF2Y3R4LCBBVl9MT0dfRVJST1IsICJDYW5ub3QgYnVpbGQgSHVmZm1hbiBjb2Rlc1xuIik7CiAg ICAgICAgIHJldHVybiByZXQ7CiAgICAgfQpAQCAtMTMxLDcgKzE1NSw3IEBAIHN0YXRpYyBpbnQg ZGVjb2RlX3BsYW5lMTAoVXR2aWRlb0NvbnRleHQgKmMsIGludCBwbGFuZV9ubywKIAogICAgIHNl bmQgPSAwOwogICAgIGZvciAoc2xpY2UgPSAwOyBzbGljZSA8IGMtPnNsaWNlczsgc2xpY2UrKykg ewotICAgICAgICB1aW50MTZfdCAqZGVzdDsKKyAgICAgICAgdWludDE2X3QgKmRlc3QsICpidWY7 CiAgICAgICAgIGludCBzbGljZV9kYXRhX3N0YXJ0LCBzbGljZV9kYXRhX2VuZCwgc2xpY2Vfc2l6 ZTsKIAogICAgICAgICBzc3RhcnQgPSBzZW5kOwpAQCAtMTU2LDM3ICsxODAsMjAgQEAgc3RhdGlj IGludCBkZWNvZGVfcGxhbmUxMChVdHZpZGVvQ29udGV4dCAqYywgaW50IHBsYW5lX25vLAogICAg ICAgICBpbml0X2dldF9iaXRzKCZnYiwgYy0+c2xpY2VfYml0cywgc2xpY2Vfc2l6ZSAqIDgpOwog CiAgICAgICAgIHByZXYgPSAweDIwMDsKLSAgICAgICAgZm9yIChqID0gc3N0YXJ0OyBqIDwgc2Vu ZDsgaisrKSB7Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd2lkdGg7IGkrKykgewotICAg ICAgICAgICAgICAgIHBpeCA9IGdldF92bGMyKCZnYiwgdmxjLnRhYmxlLCBWTENfQklUUywgMyk7 Ci0gICAgICAgICAgICAgICAgaWYgKHBpeCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYXZf bG9nKGMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsICJEZWNvZGluZyBlcnJvclxuIik7Ci0gICAgICAg ICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgaWYgKHVzZV9wcmVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByZXYgKz0gcGl4OwotICAg ICAgICAgICAgICAgICAgICBwcmV2ICY9IDB4M0ZGOwotICAgICAgICAgICAgICAgICAgICBwaXgg ICA9IHByZXY7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRlc3RbaV0gPSBw aXg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZXN0ICs9IHN0cmlkZTsKLSAgICAgICAg ICAgIGlmIChnZXRfYml0c19sZWZ0KCZnYikgPCAwKSB7Ci0gICAgICAgICAgICAgICAgYXZfbG9n KGMtPmF2Y3R4LCBBVl9MT0dfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiU2xpY2Ug ZGVjb2RpbmcgcmFuIG91dCBvZiBiaXRzXG4iKTsKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7 Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgZm9yIChqID0gc3N0YXJ0OyBqIDwg c2VuZDsgaisrKQorICAgICAgICAgICAgUkVBRF9QTEFORSgyLCAzKQogICAgICAgICBpZiAoZ2V0 X2JpdHNfbGVmdCgmZ2IpID4gMzIpCiAgICAgICAgICAgICBhdl9sb2coYy0+YXZjdHgsIEFWX0xP R19XQVJOSU5HLAogICAgICAgICAgICAgICAgICAgICIlZCBiaXRzIGxlZnQgYWZ0ZXIgZGVjb2Rp bmcgc2xpY2VcbiIsIGdldF9iaXRzX2xlZnQoJmdiKSk7CiAgICAgfQogCiAgICAgZmZfZnJlZV92 bGMoJnZsYyk7CisgICAgZmZfZnJlZV92bGNfbXVsdGkoJm11bHRpKTsKIAogICAgIHJldHVybiAw OwogZmFpbDoKICAgICBmZl9mcmVlX3ZsYygmdmxjKTsKKyAgICBmZl9mcmVlX3ZsY19tdWx0aSgm bXVsdGkpOwogICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogfQogCkBAIC0yMDcsNiAr MjE0LDcgQEAgc3RhdGljIGludCBkZWNvZGVfcGxhbmUoVXR2aWRlb0NvbnRleHQgKmMsIGludCBw bGFuZV9ubywKIHsKICAgICBpbnQgaSwgaiwgc2xpY2UsIHBpeDsKICAgICBpbnQgc3N0YXJ0LCBz ZW5kOworICAgIFZMQ19NVUxUSSBtdWx0aTsKICAgICBWTEMgdmxjOwogICAgIEdldEJpdENvbnRl eHQgZ2I7CiAgICAgaW50IHJldCwgcHJldiwgZnN5bTsKQEAgLTI1OSw3ICsyNjcsNyBAQCBzdGF0 aWMgaW50IGRlY29kZV9wbGFuZShVdHZpZGVvQ29udGV4dCAqYywgaW50IHBsYW5lX25vLAogICAg ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpZiAoYnVpbGRfaHVmZihjLCBzcmMsICZ2bGMs ICZmc3ltLCAyNTYpKSB7CisgICAgaWYgKGJ1aWxkX2h1ZmYoYywgc3JjLCAmdmxjLCAmbXVsdGks ICZmc3ltLCAyNTYpKSB7CiAgICAgICAgIGF2X2xvZyhjLT5hdmN0eCwgQVZfTE9HX0VSUk9SLCAi Q2Fubm90IGJ1aWxkIEh1ZmZtYW4gY29kZXNcbiIpOwogICAgICAgICByZXR1cm4gQVZFUlJPUl9J TlZBTElEREFUQTsKICAgICB9CkBAIC0yOTIsNyArMzAwLDcgQEAgc3RhdGljIGludCBkZWNvZGVf cGxhbmUoVXR2aWRlb0NvbnRleHQgKmMsIGludCBwbGFuZV9ubywKIAogICAgIHNlbmQgPSAwOwog ICAgIGZvciAoc2xpY2UgPSAwOyBzbGljZSA8IGMtPnNsaWNlczsgc2xpY2UrKykgewotICAgICAg ICB1aW50OF90ICpkZXN0OworICAgICAgICB1aW50OF90ICpkZXN0LCAqYnVmOwogICAgICAgICBp bnQgc2xpY2VfZGF0YV9zdGFydCwgc2xpY2VfZGF0YV9lbmQsIHNsaWNlX3NpemU7CiAKICAgICAg ICAgc3N0YXJ0ID0gc2VuZDsKQEAgLTMxNywzNiArMzI1LDIwIEBAIHN0YXRpYyBpbnQgZGVjb2Rl X3BsYW5lKFV0dmlkZW9Db250ZXh0ICpjLCBpbnQgcGxhbmVfbm8sCiAgICAgICAgIGluaXRfZ2V0 X2JpdHMoJmdiLCBjLT5zbGljZV9iaXRzLCBzbGljZV9zaXplICogOCk7CiAKICAgICAgICAgcHJl diA9IDB4ODA7Ci0gICAgICAgIGZvciAoaiA9IHNzdGFydDsgaiA8IHNlbmQ7IGorKykgewotICAg ICAgICAgICAgZm9yIChpID0gMDsgaSA8IHdpZHRoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBw aXggPSBnZXRfdmxjMigmZ2IsIHZsYy50YWJsZSwgVkxDX0JJVFMsIDMpOwotICAgICAgICAgICAg ICAgIGlmIChwaXggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF2X2xvZyhjLT5hdmN0eCwg QVZfTE9HX0VSUk9SLCAiRGVjb2RpbmcgZXJyb3JcbiIpOwotICAgICAgICAgICAgICAgICAgICBn b3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh1c2VfcHJl ZCkgewotICAgICAgICAgICAgICAgICAgICBwcmV2ICs9IHBpeDsKLSAgICAgICAgICAgICAgICAg ICAgcGl4ICAgPSBwcmV2OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBkZXN0 W2ldID0gcGl4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGdldF9iaXRzX2xlZnQo JmdiKSA8IDApIHsKLSAgICAgICAgICAgICAgICBhdl9sb2coYy0+YXZjdHgsIEFWX0xPR19FUlJP UiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJTbGljZSBkZWNvZGluZyByYW4gb3V0IG9mIGJp dHNcbiIpOwotICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAg ICAgICAgIGRlc3QgKz0gc3RyaWRlOwotICAgICAgICB9CisgICAgICAgIGZvciAoaiA9IHNzdGFy dDsgaiA8IHNlbmQ7IGorKykKKyAgICAgICAgICAgIFJFQURfUExBTkUoMSwgNSkKICAgICAgICAg aWYgKGdldF9iaXRzX2xlZnQoJmdiKSA+IDMyKQogICAgICAgICAgICAgYXZfbG9nKGMtPmF2Y3R4 LCBBVl9MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAiJWQgYml0cyBsZWZ0IGFmdGVy IGRlY29kaW5nIHNsaWNlXG4iLCBnZXRfYml0c19sZWZ0KCZnYikpOwogICAgIH0KIAogICAgIGZm X2ZyZWVfdmxjKCZ2bGMpOworICAgIGZmX2ZyZWVfdmxjX211bHRpKCZtdWx0aSk7CiAKICAgICBy ZXR1cm4gMDsKIGZhaWw6CiAgICAgZmZfZnJlZV92bGMoJnZsYyk7CisgICAgZmZfZnJlZV92bGNf bXVsdGkoJm11bHRpKTsKICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIH0KIApAQCAt OTkyLDYgKzk4NCwxMCBAQCBzdGF0aWMgYXZfY29sZCBpbnQgZGVjb2RlX2luaXQoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4KQogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKICAgICB9 CiAKKyAgICBjLT5idWZmZXIgPSBhdl9jYWxsb2MoYXZjdHgtPndpZHRoLCBjLT5wcm8/MjoxKTsK KyAgICBpZiAoIWMtPmJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKwog ICAgIGF2X3BpeF9mbXRfZ2V0X2Nocm9tYV9zdWJfc2FtcGxlKGF2Y3R4LT5waXhfZm10LCAmaF9z aGlmdCwgJnZfc2hpZnQpOwogICAgIGlmICgoYXZjdHgtPndpZHRoICAmICgoMTw8aF9zaGlmdCkt MSkpIHx8CiAgICAgICAgIChhdmN0eC0+aGVpZ2h0ICYgKCgxPDx2X3NoaWZ0KS0xKSkpIHsKQEAg LTEwNDcsNiArMTA0Myw3IEBAIHN0YXRpYyBhdl9jb2xkIGludCBkZWNvZGVfZW5kKEFWQ29kZWND b250ZXh0ICphdmN0eCkKICAgICBVdHZpZGVvQ29udGV4dCAqIGNvbnN0IGMgPSBhdmN0eC0+cHJp dl9kYXRhOwogCiAgICAgYXZfZnJlZXAoJmMtPnNsaWNlX2JpdHMpOworICAgIGF2X2ZyZWVwKCZj LT5idWZmZXIpOwogCiAgICAgcmV0dXJuIDA7CiB9Ci0tIAoyLjM5LjEKCg== --0000000000009e469f0603ff07fd 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". --0000000000009e469f0603ff07fd--