From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2CD2B48FDB for <ffmpegdev@gitmailbox.com>; Mon, 1 Apr 2024 16:17:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EF35568CDEA; Mon, 1 Apr 2024 19:17:00 +0300 (EEST) Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9745B68C308 for <ffmpeg-devel@ffmpeg.org>; Mon, 1 Apr 2024 19:16:54 +0300 (EEST) Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2d485886545so69508911fa.2 for <ffmpeg-devel@ffmpeg.org>; Mon, 01 Apr 2024 09:16:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711988213; x=1712593013; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Ep7M6tcr2uAdmNeXreyStuwauaesKcE0kdpHXBSuCCw=; b=xOk6BfaIMAH2+SHA3fLn98BSL2cg1iNNY/lllzW3jcjQwtt1lPjtZ6JxkUCFQE8FDQ dLsIAOx7f2AnXD4o0/8CYZiQcdOjJL8gij4xT6ptjl9AXlZPBf+wWhuQYCHd8ft+ZwbO RndmTITxKG/VoyGoW4tv2L+ewJ50t4zUXcvJp/d5BM2wZKayjEZx2L8Z1oC1QAxjYoDB FrzcZZNw+Mdj1eOMDs5fe0UImiTPmAaYBaLWjNRSGA9Tko4RARYKR9biHFa4rE1dtz2t eGDEjwfjILJfF9Z/Q0vQYHCLz5ryxNwhOS+yizae1fqSjq25BGxBOvtx/Q1BU0eMTsiu uXDg== X-Gm-Message-State: AOJu0YwNQSryp+ro4Q2rPJ4wHfjAfyFgv3WUkZTajOD13T2HvJ+EGamJ xO7A753pruTA0n3soWFC3xfiR1Qd49pQxcjdM7Dh5/VTK7MK2XFMKRlstRBLD4lKLsfsocQyPaE 4 X-Google-Smtp-Source: AGHT+IF3MUSz9guK5MP+W+Jcrzw+MCWtritcMUw1gSAfI5l/Jh5mVZ1woRUroOJdOgXpZ06i+mkwkA== X-Received: by 2002:a2e:a4d8:0:b0:2d4:7455:89f6 with SMTP id p24-20020a2ea4d8000000b002d4745589f6mr6813090ljm.40.1711988213298; Mon, 01 Apr 2024 09:16:53 -0700 (PDT) Received: from Denniss-MBP.fritz.box (ip-088-152-103-184.um26.pools.vodafone-ip.de. [88.152.103.184]) by smtp.gmail.com with ESMTPSA id kf16-20020a17090776d000b00a46bf6d890bsm5491341ejc.91.2024.04.01.09.16.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 01 Apr 2024 09:16:52 -0700 (PDT) To: ffmpeg-devel@ffmpeg.org Date: Mon, 1 Apr 2024 18:16:49 +0200 Message-Id: <20240401161650.34063-1-dennis@obsproject.com> X-Mailer: git-send-email 2.39.3 (Apple Git-146) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/flvenc: Implement support for multi-track video X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> From: =?utf-8?q?Dennis_S=C3=A4dtler_via_ffmpeg-devel?= <ffmpeg-devel@ffmpeg.org> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Cc: =?UTF-8?q?Dennis=20S=C3=A4dtler?= <dennis@obsproject.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/20240401161650.34063-1-dennis@obsproject.com/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> QmFzZWQgb24gZW5oYW5jZWQtcnRtcCB2MiBzcGVjIHB1Ymxpc2hlZCBieSBWZW92ZXJhOgpodHRw czovL3Zlb3ZlcmEuZ2l0aHViLmlvL2VuaGFuY2VkLXJ0bXAvZG9jcy9lbmhhbmNlZC9lbmhhbmNl ZC1ydG1wLXYyCgpUaGlzIGltcGxlbWVudGF0aW9uIG1haW50YWlucyBzb21lIGJhY2t3YXJkcyBj b21wYXRpYmlsaXR5IGJ5IG9ubHkKd3JpdGluZyB0aGUgdHJhY2sgaW5mb3JtYXRpb24gZm9yIHRy YWNrIGluZGljZXMgPiAwLiBUaGlzIG1lYW5zIHRoYXQKb2xkZXIgRkZtcGVnIHZlcnNpb25zIC0g YW5kIHBvc3NpYmx5IG90aGVyIHNvZnR3YXJlIC0gY2FuIHN0aWxsIHJlYWQgdGhlCmZpcnN0IHZp ZGVvIHRyYWNrIHByb3Blcmx5IGFuZCBza2lwIG92ZXIgdW5zdXBwb3J0ZWQgcGFja2V0cy4KClNp Z25lZC1vZmYtYnk6IERlbm5pcyBTw6RkdGxlciA8ZGVubmlzQG9ic3Byb2plY3QuY29tPgotLS0K IGxpYmF2Zm9ybWF0L2Zsdi5oICAgIHwgICA3ICsrCiBsaWJhdmZvcm1hdC9mbHZlbmMuYyB8IDE2 MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNo YW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWJhdmZvcm1hdC9mbHYuaCBiL2xpYmF2Zm9ybWF0L2Zsdi5oCmluZGV4IGY3MTA5NjNiOTIuLjY1 M2MyYmM4MmMgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2Zsdi5oCisrKyBiL2xpYmF2Zm9ybWF0 L2Zsdi5oCkBAIC0xMjUsNiArMTI1LDEzIEBAIGVudW0gewogICAgIFBhY2tldFR5cGVDb2RlZEZy YW1lc1ggICAgICAgICAgPSAzLAogICAgIFBhY2tldFR5cGVNZXRhZGF0YSAgICAgICAgICAgICAg PSA0LAogICAgIFBhY2tldFR5cGVNUEVHMlRTU2VxdWVuY2VTdGFydCAgPSA1LAorICAgIFBhY2tl dFR5cGVNdWx0aXRyYWNrICAgICAgICAgICAgPSA2LAorfTsKKworZW51bSB7CisJTXVsdGl0cmFj a1R5cGVPbmVUcmFjayAgICAgICAgICAgICA9IDB4MDAsCisJTXVsdGl0cmFja1R5cGVNYW55VHJh Y2tzICAgICAgICAgICA9IDB4MTAsCisJTXVsdGl0cmFja1R5cGVNYW55VHJhY2tzTWFueUNvZGVj cyA9IDB4MjAsCiB9OwogCiBlbnVtIHsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2ZsdmVuYy5j IGIvbGliYXZmb3JtYXQvZmx2ZW5jLmMKaW5kZXggYWJhMWQ3ZDgwYi4uODJmMjc1Nzc3ZiAxMDA2 NDQKLS0tIGEvbGliYXZmb3JtYXQvZmx2ZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvZmx2ZW5jLmMK QEAgLTEyNSw4ICsxMjUsOSBAQCB0eXBlZGVmIHN0cnVjdCBGTFZDb250ZXh0IHsKICAgICBBVkNv ZGVjUGFyYW1ldGVycyAqZGF0YV9wYXI7CiAKICAgICBpbnQgZmxhZ3M7Ci0gICAgaW50NjRfdCBs YXN0X3RzW0ZMVl9TVFJFQU1fVFlQRV9OQl07Ci0gICAgaW50IG1ldGFkYXRhX3BrdF93cml0dGVu OworICAgIGludDY0X3QgKmxhc3RfdHM7CisgICAgaW50ICptZXRhZGF0YV9wa3Rfd3JpdHRlbjsK KyAgICBpbnQgKnZpZGVvX3RyYWNrX2lkeF9tYXA7CiB9IEZMVkNvbnRleHQ7CiAKIHN0YXRpYyBp bnQgZ2V0X2F1ZGlvX2ZsYWdzKEFWRm9ybWF0Q29udGV4dCAqcywgQVZDb2RlY1BhcmFtZXRlcnMg KnBhcikKQEAgLTQ4NCw3ICs0ODUsNyBAQCBzdGF0aWMgdm9pZCB3cml0ZV9tZXRhZGF0YShBVkZv cm1hdENvbnRleHQgKnMsIHVuc2lnbmVkIGludCB0cykKICAgICBhdmlvX3diMzIocGIsIGZsdi0+ bWV0YWRhdGFfdG90YWxzaXplICsgMTEpOwogfQogCi1zdGF0aWMgdm9pZCBmbHZfd3JpdGVfbWV0 YWRhdGFfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwg dW5zaWduZWQgaW50IHRzKQorc3RhdGljIHZvaWQgZmx2X3dyaXRlX21ldGFkYXRhX3BhY2tldChB VkZvcm1hdENvbnRleHQgKnMsIEFWQ29kZWNQYXJhbWV0ZXJzICpwYXIsIHVuc2lnbmVkIGludCB0 cywgaW50IHN0cmVhbV9pZHgpCiB7CiAgICAgQVZJT0NvbnRleHQgKnBiID0gcy0+cGI7CiAgICAg RkxWQ29udGV4dCAqZmx2ID0gcy0+cHJpdl9kYXRhOwpAQCAtNDk0LDcgKzQ5NSw5IEBAIHN0YXRp YyB2b2lkIGZsdl93cml0ZV9tZXRhZGF0YV9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVkNv ZGVjUGFyYW1ldGVycyAqcGFyCiAgICAgaW50NjRfdCB0b3RhbF9zaXplID0gMDsKICAgICBjb25z dCBBVlBhY2tldFNpZGVEYXRhICpzaWRlX2RhdGEgPSBOVUxMOwogCi0gICAgaWYgKGZsdi0+bWV0 YWRhdGFfcGt0X3dyaXR0ZW4pIHJldHVybjsKKyAgICBpZiAoZmx2LT5tZXRhZGF0YV9wa3Rfd3Jp dHRlbltzdHJlYW1faWR4XSkKKyAgICAgICAgcmV0dXJuOworICAgIAogICAgIGlmIChwYXItPmNv ZGVjX2lkID09IEFWX0NPREVDX0lEX0hFVkMgfHwgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19J RF9BVjEgfHwKICAgICAgICAgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDkpIHsKICAg ICAgICAgaW50IGZsYWdzX3NpemUgPSA1OwpAQCAtNjE2LDcgKzYxOSw3IEBAIHN0YXRpYyB2b2lk IGZsdl93cml0ZV9tZXRhZGF0YV9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVkNvZGVjUGFy YW1ldGVycyAqcGFyCiAgICAgICAgIGF2aW9fd2IyNChwYiwgdG90YWxfc2l6ZSk7CiAgICAgICAg IGF2aW9fc2tpcChwYiwgdG90YWxfc2l6ZSArIDEwIC0gMyk7CiAgICAgICAgIGF2aW9fd2IzMihw YiwgdG90YWxfc2l6ZSArIDExKTsgLy8gcHJldmlvdXMgdGFnIHNpemUKLSAgICAgICAgZmx2LT5t ZXRhZGF0YV9wa3Rfd3JpdHRlbiA9IDE7CisgICAgICAgIGZsdi0+bWV0YWRhdGFfcGt0X3dyaXR0 ZW5bc3RyZWFtX2lkeF0gPSAxOwogICAgIH0KIH0KIApAQCAtNjMxLDcgKzYzNCw3IEBAIHN0YXRp YyBpbnQgdW5zdXBwb3J0ZWRfY29kZWMoQVZGb3JtYXRDb250ZXh0ICpzLAogICAgIHJldHVybiBB VkVSUk9SKEVOT1NZUyk7CiB9CiAKLXN0YXRpYyB2b2lkIGZsdl93cml0ZV9jb2RlY19oZWFkZXIo QVZGb3JtYXRDb250ZXh0KiBzLCBBVkNvZGVjUGFyYW1ldGVycyogcGFyLCBpbnQ2NF90IHRzKSB7 CitzdGF0aWMgdm9pZCBmbHZfd3JpdGVfY29kZWNfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCogcywg QVZDb2RlY1BhcmFtZXRlcnMqIHBhciwgaW50NjRfdCB0cywgaW50IHN0cmVhbV9pbmRleCkgewog ICAgIGludDY0X3QgZGF0YV9zaXplOwogICAgIEFWSU9Db250ZXh0ICpwYiA9IHMtPnBiOwogICAg IEZMVkNvbnRleHQgKmZsdiA9IHMtPnByaXZfZGF0YTsKQEAgLTY4MSwxMiArNjg0LDMyIEBAIHN0 YXRpYyB2b2lkIGZsdl93cml0ZV9jb2RlY19oZWFkZXIoQVZGb3JtYXRDb250ZXh0KiBzLCBBVkNv ZGVjUGFyYW1ldGVycyogcGFyLCBpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBhdmlvX3dy aXRlKHBiLCBwYXItPmV4dHJhZGF0YSwgcGFyLT5leHRyYWRhdGFfc2l6ZSk7CiAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICBpZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IRVZD KSB7Ci0gICAgICAgICAgICAgICAgYXZpb193OChwYiwgRkxWX0lTX0VYX0hFQURFUiB8IFBhY2tl dFR5cGVTZXF1ZW5jZVN0YXJ0IHwgRkxWX0ZSQU1FX0tFWSk7IC8vIEV4VmlkZW9UYWdIZWFkZXIg bW9kZSB3aXRoIFBhY2tldFR5cGVTZXF1ZW5jZVN0YXJ0Ci0gICAgICAgICAgICAgICAgYXZpb193 cml0ZShwYiwgImh2YzEiLCA0KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyLT5jb2RlY19p ZCA9PSBBVl9DT0RFQ19JRF9BVjEgfHwgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDkp IHsKLSAgICAgICAgICAgICAgICBhdmlvX3c4KHBiLCBGTFZfSVNfRVhfSEVBREVSIHwgUGFja2V0 VHlwZVNlcXVlbmNlU3RhcnQgfCBGTFZfRlJBTUVfS0VZKTsKLSAgICAgICAgICAgICAgICBhdmlv X3dyaXRlKHBiLCBwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0FWMSA/ICJhdjAxIiA6ICJ2 cDA5IiwgNCk7CisgICAgICAgICAgICBpbnQgdHJhY2tfaWR4ID0gZmx2LT52aWRlb190cmFja19p ZHhfbWFwW3N0cmVhbV9pbmRleF07CisgICAgICAgICAgICAvLyBJZiB2aWRlbyBzdHJlYW0gaGFz IHRyYWNrX2lkeCA+IDAgd2UgbmVlZCB0byBzZW5kIEguMjY0IGFzIGV4dGVuZGVkIHZpZGVvIHBh Y2tldAorICAgICAgICAgICAgaW50IGV4dGVuZGVkX2ZsdiA9IChwYXItPmNvZGVjX2lkID09IEFW X0NPREVDX0lEX0gyNjQgJiYgdHJhY2tfaWR4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfHwgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IRVZDCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lE X0FWMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcGFyLT5jb2RlY19p ZCA9PSBBVl9DT0RFQ19JRF9WUDk7CisKKyAgICAgICAgICAgIGlmIChleHRlbmRlZF9mbHYpIHsK KyAgICAgICAgICAgICAgICBpZiAodHJhY2tfaWR4KSB7CisgICAgICAgICAgICAgICAgICAgIGF2 aW9fdzgocGIsIEZMVl9JU19FWF9IRUFERVIgfCBQYWNrZXRUeXBlTXVsdGl0cmFjayB8IEZMVl9G UkFNRV9LRVkpOworICAgICAgICAgICAgICAgICAgICBhdmlvX3c4KHBiLCBNdWx0aXRyYWNrVHlw ZU9uZVRyYWNrIHwgUGFja2V0VHlwZVNlcXVlbmNlU3RhcnQpOworICAgICAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGF2aW9fdzgocGIsIEZMVl9JU19FWF9IRUFERVIg fCBQYWNrZXRUeXBlU2VxdWVuY2VTdGFydCB8IEZMVl9GUkFNRV9LRVkpOworICAgICAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lE X0gyNjQpCisgICAgICAgICAgICAgICAgICAgIGF2aW9fd3JpdGUocGIsICJhdmMxIiwgNCk7Cisg ICAgICAgICAgICAgICAgZWxzZSBpZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IRVZD KQorICAgICAgICAgICAgICAgICAgICBhdmlvX3dyaXRlKHBiLCAiaHZjMSIsIDQpOworICAgICAg ICAgICAgICAgIGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfQVYxKQorICAg ICAgICAgICAgICAgICAgICBhdmlvX3dyaXRlKHBiLCAiYXYwMSIsIDQpOworICAgICAgICAgICAg ICAgIGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA5KQorICAgICAgICAg ICAgICAgICAgICBhdmlvX3dyaXRlKHBiLCAidnAwOSIsIDQpOworCisgICAgICAgICAgICAgICAg aWYgKHRyYWNrX2lkeCkKKyAgICAgICAgICAgICAgICAgICAgYXZpb193OChwYiwgdHJhY2tfaWR4 KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgYXZpb193OChwYiwgcGFy LT5jb2RlY190YWcgfCBGTFZfRlJBTUVfS0VZKTsgLy8gZmxhZ3MKICAgICAgICAgICAgICAgICBh dmlvX3c4KHBiLCAwKTsgLy8gQVZDIHNlcXVlbmNlIGhlYWRlcgpAQCAtNzY5LDEzICs3OTIsMTIg QEAgc3RhdGljIGludCBzaGlmdF9kYXRhKEFWRm9ybWF0Q29udGV4dCAqcykKIHN0YXRpYyBpbnQg Zmx2X2luaXQoc3RydWN0IEFWRm9ybWF0Q29udGV4dCAqcykKIHsKICAgICBpbnQgaTsKKyAgICBp bnQgdmlkZW9fY3RyID0gMDsKICAgICBGTFZDb250ZXh0ICpmbHYgPSBzLT5wcml2X2RhdGE7Ci0K LSAgICBpZiAocy0+bmJfc3RyZWFtcyA+IEZMVl9TVFJFQU1fVFlQRV9OQikgewotICAgICAgICBh dl9sb2cocywgQVZfTE9HX0VSUk9SLCAiaW52YWxpZCBudW1iZXIgb2Ygc3RyZWFtcyAlZFxuIiwK LSAgICAgICAgICAgICAgICBzLT5uYl9zdHJlYW1zKTsKLSAgICAgICAgcmV0dXJuIEFWRVJST1Io RUlOVkFMKTsKLSAgICB9CisgICAgCisgICAgZmx2LT5sYXN0X3RzID0gYXZfbWFsbG9jeihzaXpl b2YoKmZsdi0+bGFzdF90cykgKiBzLT5uYl9zdHJlYW1zKTsKKyAgICBmbHYtPm1ldGFkYXRhX3Br dF93cml0dGVuID0gYXZfbWFsbG9jeihzaXplb2YoKmZsdi0+bWV0YWRhdGFfcGt0X3dyaXR0ZW4p ICogcy0+bmJfc3RyZWFtcyk7CisgICAgZmx2LT52aWRlb190cmFja19pZHhfbWFwID0gYXZfbWFs bG9jeihzaXplb2YoKmZsdi0+dmlkZW9fdHJhY2tfaWR4X21hcCkgKiBzLT5uYl9zdHJlYW1zKTsK IAogICAgIGZvciAoaSA9IDA7IGkgPCBzLT5uYl9zdHJlYW1zOyBpKyspIHsKICAgICAgICAgQVZD b2RlY1BhcmFtZXRlcnMgKnBhciA9IHMtPnN0cmVhbXNbaV0tPmNvZGVjcGFyOwpAQCAtNzg2LDEy ICs4MDgsMTcgQEAgc3RhdGljIGludCBmbHZfaW5pdChzdHJ1Y3QgQVZGb3JtYXRDb250ZXh0ICpz KQogICAgICAgICAgICAgICAgIHMtPnN0cmVhbXNbaV0tPmF2Z19mcmFtZV9yYXRlLm51bSkgewog ICAgICAgICAgICAgICAgIGZsdi0+ZnJhbWVyYXRlID0gYXZfcTJkKHMtPnN0cmVhbXNbaV0tPmF2 Z19mcmFtZV9yYXRlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChmbHYtPnZpZGVv X3BhcikgeworICAgICAgICAgICAgZmx2LT52aWRlb190cmFja19pZHhfbWFwW2ldID0gdmlkZW9f Y3RyKys7CisgICAgICAgICAgICBpZiAoZmx2LT52aWRlb19wYXIgJiYgZmx2LT5mbGFncyAmIEZM Vl9BRERfS0VZRlJBTUVfSU5ERVgpIHsKICAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9H X0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAiYXQgbW9zdCBvbmUgdmlkZW8gc3RyZWFt IGlzIHN1cHBvcnRlZCBpbiBmbHZcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAiYXQgbW9z dCBvbmUgdmlkZW8gc3RyZWFtIGlzIHN1cHBvcnRlZCBpbiBmbHYgd2l0aCBrZXlmcmFtZSBpbmRl eFxuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICAgICAg ICAgIH0gZWxzZSBpZiAoZmx2LT52aWRlb19wYXIpIHsKKyAgICAgICAgICAgICAgICBhdl9sb2co cywgQVZfTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICJtb3JlIHRoYW4gb25l IHZpZGVvIHN0cmVhbSBpcyBub3Qgc3VwcG9ydGVkIGJ5IG1vc3QgZmx2IGRlbXV4ZXJzLlxuIik7 CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmbHYtPnZpZGVvX3BhciA9IHBhcjsKKyAgICAg ICAgICAgIGlmICghZmx2LT52aWRlb19wYXIpCisgICAgICAgICAgICAgICAgZmx2LT52aWRlb19w YXIgPSBwYXI7CiAgICAgICAgICAgICBpZiAoIWZmX2NvZGVjX2dldF90YWcoZmx2X3ZpZGVvX2Nv ZGVjX2lkcywgcGFyLT5jb2RlY19pZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHVuc3VwcG9y dGVkX2NvZGVjKHMsICJWaWRlbyIsIHBhci0+Y29kZWNfaWQpOwogCkBAIC04ODEsNyArOTA4LDcg QEAgc3RhdGljIGludCBmbHZfd3JpdGVfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICB9 CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgcy0+bmJfc3RyZWFtczsgaSsrKSB7Ci0gICAgICAgIGZs dl93cml0ZV9jb2RlY19oZWFkZXIocywgcy0+c3RyZWFtc1tpXS0+Y29kZWNwYXIsIDApOworICAg ICAgICBmbHZfd3JpdGVfY29kZWNfaGVhZGVyKHMsIHMtPnN0cmVhbXNbaV0tPmNvZGVjcGFyLCAw LCBpKTsKICAgICB9CiAKICAgICBmbHYtPmRhdGFzdGFydF9vZmZzZXQgPSBhdmlvX3RlbGwocGIp OwpAQCAtOTg5LDYgKzEwMTYsNyBAQCBzdGF0aWMgaW50IGZsdl93cml0ZV9wYWNrZXQoQVZGb3Jt YXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIHVpbnQ4X3QgZnJhbWV0eXBlID0gcGt0 LT5mbGFncyAmIEFWX1BLVF9GTEFHX0tFWSA/IEZMVl9GUkFNRV9LRVkgOiBGTFZfRlJBTUVfSU5U RVI7CiAgICAgaW50IGZsYWdzID0gLTEsIGZsYWdzX3NpemUsIHJldCA9IDA7CiAgICAgaW50NjRf dCBjdXJfb2Zmc2V0ID0gYXZpb190ZWxsKHBiKTsKKyAgICBpbnQgdHJhY2tfaWR4ID0gZmx2LT52 aWRlb190cmFja19pZHhfbWFwW3BrdC0+c3RyZWFtX2luZGV4XTsKIAogICAgIGlmIChwYXItPmNv ZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPICYmICFwa3QtPnNpemUpIHsKICAgICAgICAg YXZfbG9nKHMsIEFWX0xPR19XQVJOSU5HLCAiRW1wdHkgYXVkaW8gUGFja2V0XG4iKTsKQEAgLTEw MDUsNyArMTAzMywxMiBAQCBzdGF0aWMgaW50IGZsdl93cml0ZV9wYWNrZXQoQVZGb3JtYXRDb250 ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIGVsc2UKICAgICAgICAgZmxhZ3Nfc2l6ZSA9IDE7 CiAKLSAgICBpZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IRVZDICYmIHBrdC0+cHRz ICE9IHBrdC0+ZHRzKQorICAgIGlmIChwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJ REVPICYmIHRyYWNrX2lkeCkKKyAgICAgICAgZmxhZ3Nfc2l6ZSArPSAyOyAvLyBhZGRpdGlvbmFs IGhlYWRlciBieXRlcyBmb3IgbXVsdGktdHJhY2sgdmlkZW8KKworICAgIGlmICgocGFyLT5jb2Rl Y19pZCA9PSBBVl9DT0RFQ19JRF9IRVZDIHx8CisgICAgICAgIChwYXItPmNvZGVjX2lkID09IEFW X0NPREVDX0lEX0gyNjQgJiYgdHJhY2tfaWR4KSkKKyAgICAgICAgICAgICYmIHBrdC0+cHRzICE9 IHBrdC0+ZHRzKQogICAgICAgICBmbGFnc19zaXplICs9IDM7CiAKICAgICBpZiAocGFyLT5jb2Rl Y19pZCA9PSBBVl9DT0RFQ19JRF9BQUMgfHwgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9I MjY0CkBAIC0xMDE4LDkgKzEwNTEsOSBAQCBzdGF0aWMgaW50IGZsdl93cml0ZV9wYWNrZXQoQVZG b3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgICAgICAgICAgaWYgKHJldCA8IDAp CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgICAgIG1lbWNweShwYXItPmV4 dHJhZGF0YSwgc2lkZSwgc2lkZV9zaXplKTsKLSAgICAgICAgICAgIGZsdl93cml0ZV9jb2RlY19o ZWFkZXIocywgcGFyLCBwa3QtPmR0cyk7CisgICAgICAgICAgICBmbHZfd3JpdGVfY29kZWNfaGVh ZGVyKHMsIHBhciwgcGt0LT5kdHMsIHBrdC0+c3RyZWFtX2luZGV4KTsKICAgICAgICAgfQotICAg ICAgICBmbHZfd3JpdGVfbWV0YWRhdGFfcGFja2V0KHMsIHBhciwgcGt0LT5kdHMpOworICAgICAg ICBmbHZfd3JpdGVfbWV0YWRhdGFfcGFja2V0KHMsIHBhciwgcGt0LT5kdHMsIHBrdC0+c3RyZWFt X2luZGV4KTsKICAgICB9CiAKICAgICBpZiAoZmx2LT5kZWxheSA9PSBBVl9OT1BUU19WQUxVRSkK QEAgLTExNDIsMzIgKzExNzUsNTkgQEAgc3RhdGljIGludCBmbHZfd3JpdGVfcGFja2V0KEFWRm9y bWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKICAgICAgICAgYXZpb19zZWVrKHBiLCBkYXRh X3NpemUgKyAxMCAtIDMsIFNFRUtfQ1VSKTsKICAgICAgICAgYXZpb193YjMyKHBiLCBkYXRhX3Np emUgKyAxMSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXZfYXNzZXJ0MShmbGFncz49MCk7Ci0g ICAgICAgIGlmIChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0hFVkMpIHsKLSAgICAgICAg ICAgIGludCBwa3R0eXBlID0gKHBrdC0+cHRzICE9IHBrdC0+ZHRzKSA/IFBhY2tldFR5cGVDb2Rl ZEZyYW1lcyA6IFBhY2tldFR5cGVDb2RlZEZyYW1lc1g7Ci0gICAgICAgICAgICBhdmlvX3c4KHBi LCBGTFZfSVNfRVhfSEVBREVSIHwgcGt0dHlwZSB8IGZyYW1ldHlwZSk7IC8vIEV4VmlkZW9UYWdI ZWFkZXIgbW9kZSB3aXRoIFBhY2tldFR5cGVDb2RlZEZyYW1lcyhYKQotICAgICAgICAgICAgYXZp b193cml0ZShwYiwgImh2YzEiLCA0KTsKLSAgICAgICAgICAgIGlmIChwa3R0eXBlID09IFBhY2tl dFR5cGVDb2RlZEZyYW1lcykKKyAgICAgICAgaW50IGV4dGVuZGVkX2ZsdiA9IChwYXItPmNvZGVj X2lkID09IEFWX0NPREVDX0lEX0gyNjQgJiYgdHJhY2tfaWR4KQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8fCBwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0hFVkMKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19J RF9BVjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcGFyLT5jb2RlY19pZCA9 PSBBVl9DT0RFQ19JRF9WUDk7CisKKyAgICAgICAgaWYgKGV4dGVuZGVkX2ZsdikgeworICAgICAg ICAgICAgaW50IGgyNjQ1ID0gcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IMjY0IHx8Cisg ICAgICAgICAgICAgICAgICAgICAgICBwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0hFVkM7 CisgICAgICAgICAgICBpbnQgcGt0dHlwZSA9IFBhY2tldFR5cGVDb2RlZEZyYW1lczsKKyAgICAg ICAgICAgIC8vIE9wdGltaXNhdGlvbiBmb3IgSEVWQy9IMjY0OiBEbyBub3Qgc2VuZCBjb21wb3Np dGlvbiB0aW1lIGlmIERUUyA9PSBQVFMKKyAgICAgICAgICAgIGlmIChoMjY0NSAmJiBwa3QtPnB0 cyA9PSBwa3QtPmR0cykKKyAgICAgICAgICAgICAgICBwa3R0eXBlID0gUGFja2V0VHlwZUNvZGVk RnJhbWVzWDsKKworICAgICAgICAgICAgaWYgKHRyYWNrX2lkeCkgeworICAgICAgICAgICAgICAg IGF2aW9fdzgocGIsIEZMVl9JU19FWF9IRUFERVIgfCBQYWNrZXRUeXBlTXVsdGl0cmFjayB8IGZy YW1ldHlwZSk7CisgICAgICAgICAgICAgICAgYXZpb193OChwYiwgTXVsdGl0cmFja1R5cGVPbmVU cmFjayB8IHBrdHR5cGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBh dmlvX3c4KHBiLCBGTFZfSVNfRVhfSEVBREVSIHwgcGt0dHlwZSB8IGZyYW1ldHlwZSk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwYXItPmNvZGVjX2lkID09 IEFWX0NPREVDX0lEX0gyNjQpCisgICAgICAgICAgICAgICAgYXZpb193cml0ZShwYiwgImF2YzEi LCA0KTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURf SEVWQykKKyAgICAgICAgICAgICAgICBhdmlvX3dyaXRlKHBiLCAiaHZjMSIsIDQpOworICAgICAg ICAgICAgZWxzZSBpZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9BVjEpCisgICAgICAg ICAgICAgICAgYXZpb193cml0ZShwYiwgImF2MDEiLCA0KTsKKyAgICAgICAgICAgIGVsc2UgaWYg KHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA5KQorICAgICAgICAgICAgICAgIGF2aW9f d3JpdGUocGIsICJ2cDA5IiwgNCk7CisKKyAgICAgICAgICAgIGlmICh0cmFja19pZHgpCisgICAg ICAgICAgICAgICAgYXZpb193OChwYiwgdHJhY2tfaWR4KTsKKyAgICAgICAgICAgIGlmIChoMjY0 NSAmJiBwa3R0eXBlID09IFBhY2tldFR5cGVDb2RlZEZyYW1lcykKICAgICAgICAgICAgICAgICBh dmlvX3diMjQocGIsIHBrdC0+cHRzIC0gcGt0LT5kdHMpOwotICAgICAgICB9IGVsc2UgaWYgKHBh ci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfQVYxIHx8IHBhci0+Y29kZWNfaWQgPT0gQVZfQ09E RUNfSURfVlA5KSB7Ci0gICAgICAgICAgICBhdmlvX3c4KHBiLCBGTFZfSVNfRVhfSEVBREVSIHwg UGFja2V0VHlwZUNvZGVkRnJhbWVzIHwgZnJhbWV0eXBlKTsKLSAgICAgICAgICAgIGF2aW9fd3Jp dGUocGIsIHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfQVYxID8gImF2MDEiIDogInZwMDki LCA0KTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF2X2Fzc2VydDEoZmxhZ3M+PTAp OwogICAgICAgICAgICAgYXZpb193OChwYiwgZmxhZ3MpOwotICAgICAgICB9Ci0gICAgICAgIGlm IChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1ZQNikKLSAgICAgICAgICAgIGF2aW9fdzgo cGIsMCk7Ci0gICAgICAgIGlmIChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1ZQNkYgfHwg cGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDZBKSB7Ci0gICAgICAgICAgICBpZiAocGFy LT5leHRyYWRhdGFfc2l6ZSkKLSAgICAgICAgICAgICAgICBhdmlvX3c4KHBiLCBwYXItPmV4dHJh ZGF0YVswXSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYXZpb193OChwYiwg KChGRkFMSUdOKHBhci0+d2lkdGgsICAxNikgLSBwYXItPndpZHRoKSA8PCA0KSB8Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChGRkFMSUdOKHBhci0+aGVpZ2h0LCAxNikgLSBwYXItPmhl aWdodCkpOwotICAgICAgICB9IGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURf QUFDKQotICAgICAgICAgICAgYXZpb193OChwYiwgMSk7IC8vIEFBQyByYXcKLSAgICAgICAgZWxz ZSBpZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IMjY0IHx8IHBhci0+Y29kZWNfaWQg PT0gQVZfQ09ERUNfSURfTVBFRzQpIHsKLSAgICAgICAgICAgIGF2aW9fdzgocGIsIDEpOyAvLyBB VkMgTkFMVQotICAgICAgICAgICAgYXZpb193YjI0KHBiLCBwa3QtPnB0cyAtIHBrdC0+ZHRzKTsK KworICAgICAgICAgICAgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA2KSB7Cisg ICAgICAgICAgICAgICAgYXZpb193OChwYiwwKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocGFy LT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDZGIHx8CisgICAgICAgICAgICAgICAgICAgICAg ICBwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1ZQNkEpIHsKKyAgICAgICAgICAgICAgICBp ZiAocGFyLT5leHRyYWRhdGFfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgYXZpb193OChwYiwg cGFyLT5leHRyYWRhdGFbMF0pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICAgICAgYXZpb193OChwYiwgKChGRkFMSUdOKHBhci0+d2lkdGgsICAxNikgLSBwYXItPndpZHRo KSA8PCA0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChGRkFMSUdOKHBhci0+ aGVpZ2h0LCAxNikgLSBwYXItPmhlaWdodCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChwYXIt PmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0FBQykgeworICAgICAgICAgICAgICAgIGF2aW9fdzgo cGIsIDEpOyAvLyBBQUMgcmF3CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhci0+Y29kZWNfaWQg PT0gQVZfQ09ERUNfSURfSDI2NCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyLT5jb2Rl Y19pZCA9PSBBVl9DT0RFQ19JRF9NUEVHNCkgeworICAgICAgICAgICAgICAgIGF2aW9fdzgocGIs IDEpOyAvLyBBVkMgTkFMVQorICAgICAgICAgICAgICAgIGF2aW9fd2IyNChwYiwgcGt0LT5wdHMg LSBwa3QtPmR0cyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBhdmlvX3dy aXRlKHBiLCBkYXRhID8gZGF0YSA6IHBrdC0+ZGF0YSwgc2l6ZSk7CkBAIC0xMjM0LDYgKzEyOTQs MTAgQEAgc3RhdGljIHZvaWQgZmx2X2RlaW5pdChBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgfQog ICAgIGZsdi0+ZmlsZXBvc2l0aW9ucyA9IGZsdi0+aGVhZF9maWxlcG9zaXRpb25zID0gTlVMTDsK ICAgICBmbHYtPmZpbGVwb3NpdGlvbnNfY291bnQgPSAwOworICAgIAorICAgIGF2X2ZyZWVwKCZm bHYtPmxhc3RfdHMpOworICAgIGF2X2ZyZWVwKCZmbHYtPm1ldGFkYXRhX3BrdF93cml0dGVuKTsK KyAgICBhdl9mcmVlcCgmZmx2LT52aWRlb190cmFja19pZHhfbWFwKTsKIH0KIAogc3RhdGljIGNv bnN0IEFWT3B0aW9uIG9wdGlvbnNbXSA9IHsKLS0gCjIuMzkuMyAoQXBwbGUgR2l0LTE0NikKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZl bCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3Jn L21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGlu ayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1 YmplY3QgInVuc3Vic2NyaWJlIi4K