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 764FD46927 for ; Sun, 24 Sep 2023 00:50:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF96668C9D4; Sun, 24 Sep 2023 03:50:33 +0300 (EEST) Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 61CA368C944 for ; Sun, 24 Sep 2023 03:50:27 +0300 (EEST) Received: by mail-qk1-f172.google.com with SMTP id af79cd13be357-7740729ae12so278251585a.1 for ; Sat, 23 Sep 2023 17:50:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695516626; x=1696121426; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=D/O5HDMJYVayZt9w7EMKCHaq0OVIqZ3Wj/APpfdO0Vg=; b=BJYfGu6brgjPc8X1DBP3Pmsfo367L+YZFtMCL+WEVsbmlwOOeRtlii+Vke4BBh1tCk tqs4fkAKPI3pj4Yzx2NPQzMdiV+34VaUIqnLDkZdGy18IrkjAS71+TmBipKCVsql033s eyi4klwDSAr6qD2HANVVqR02MOLOpQdIfozk3xh0XtSzzaIubuO+RhXzosjZn5dufc4r mAl++VHoDamhrI3mfCE7iBbuPLNFItpLj5vW7sjToLBt1VfAW8Zx2yJVVBGzXeU+DCQp i/sjqNcEQ9mkP8nu6YI2eibkOZP7Bmo+VE1+y5w4gI4JwCRt2KgE6xC9ZL1JCnQDy7EW f40g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695516626; x=1696121426; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=D/O5HDMJYVayZt9w7EMKCHaq0OVIqZ3Wj/APpfdO0Vg=; b=JYEAn1PN2UzwwQj+E3TBf/E6oKuL55PcYr5iupPcQBkb7XB+ELiMUwi9pD9pXykNvm ynnIxi1S8GjFOeWtNVByLJkdbjS/TTaBYcwT4gDfPmZB0N5fae2PVEZR384cCb2vFa9d TjKM/dU20uWxO+/qqKAtYFrDkkCBMpcF2/40HRj3M8WkERJ7+qrxru0iV+4pJIJxbiUf i+BfcQmmczEkctcuhBAULhkP2yn+1fgTaFrnQiwjfAy2Ma2tD27RePnFa6+M08APhgd+ SjFbjPJ7QZ0CvkcwXgCgN0M7antMDlYMeHpp+QuS2CJtLSFa9qiIjr4URR4VpSxsVHVc WwkA== X-Gm-Message-State: AOJu0Yz97nW00lDVg9hJwjUcwJq7CsahoVDU2SEz4/fsXEFCh8hzRw10 s2eRf9CeXu4ct7cIaav87grrKT2b+rCaFn5Qy9FgjdY8eA0= X-Google-Smtp-Source: AGHT+IFdfLT6DmERYsvYKobMcF1Nchtv7bg0CMtfAM7AMChlB6klqFATvObSvp3NS8EX/c3xW7v9lPXjL4TKcO3JK5s= X-Received: by 2002:a05:620a:b87:b0:774:187d:889d with SMTP id k7-20020a05620a0b8700b00774187d889dmr2969691qkh.73.1695516626198; Sat, 23 Sep 2023 17:50:26 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Paul B Mahol Date: Sun, 24 Sep 2023 02:50:12 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000379f1f0606103aed" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] QOA decoding support 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: --000000000000379f1f0606103aed Content-Type: text/plain; charset="UTF-8" New patches. --000000000000379f1f0606103aed Content-Type: text/x-patch; charset="US-ASCII"; name="0002-avformat-add-QOA-demuxer.patch" Content-Disposition: attachment; filename="0002-avformat-add-QOA-demuxer.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lmwqsp5k0 RnJvbSA2MzM5MmU2MGM3MTA2YmZjYzZkZWM1ZmU0NWE5ZGQzOGY0YzI5ZTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjMgU2VwIDIwMjMgMTY6Mzg6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gYXZm b3JtYXQ6IGFkZCBRT0EgZGVtdXhlcgoKU2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxvbmVt ZGFAZ21haWwuY29tPgotLS0KIGxpYmF2Zm9ybWF0L01ha2VmaWxlICAgICB8ICAxICsKIGxpYmF2 Zm9ybWF0L2FsbGZvcm1hdHMuYyB8ICAxICsKIGxpYmF2Zm9ybWF0L3FvYWRlYy5jICAgICB8IDgz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgODUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9ybWF0L3FvYWRl Yy5jCgpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtl ZmlsZQppbmRleCAzMjkwNTVjY2ZkLi4yZGI4M2FmZjgxIDEwMDY0NAotLS0gYS9saWJhdmZvcm1h dC9NYWtlZmlsZQorKysgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQpAQCAtNDg0LDYgKzQ4NCw3IEBA IE9CSlMtJChDT05GSUdfUFBfQk5LX0RFTVVYRVIpICAgICAgICAgICAgKz0gcHBfYm5rLm8KIE9C SlMtJChDT05GSUdfUFZBX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gcHZhLm8KIE9CSlMtJChD T05GSUdfUFZGX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gcHZmZGVjLm8gcGNtLm8KIE9CSlMt JChDT05GSUdfUUNQX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gcWNwLm8KK09CSlMtJChDT05G SUdfUU9BX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gcW9hZGVjLm8KIE9CSlMtJChDT05GSUdf UjNEX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gcjNkLm8KIE9CSlMtJChDT05GSUdfUkFXVklE RU9fREVNVVhFUikgICAgICAgICAgKz0gcmF3dmlkZW9kZWMubwogT0JKUy0kKENPTkZJR19SQVdW SURFT19NVVhFUikgICAgICAgICAgICArPSByYXdlbmMubwpkaWZmIC0tZ2l0IGEvbGliYXZmb3Jt YXQvYWxsZm9ybWF0cy5jIGIvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCmluZGV4IGQ0YjUwNWE1 YTMuLmM4YmI0ZTM4NjYgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYworKysg Yi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKQEAgLTM4Myw2ICszODMsNyBAQCBleHRlcm4gY29u c3QgRkZPdXRwdXRGb3JtYXQgZmZfcHNwX211eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3Jt YXQgIGZmX3B2YV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX3B2Zl9k ZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX3FjcF9kZW11eGVyOworZXh0 ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX3FvYV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFW SW5wdXRGb3JtYXQgIGZmX3IzZF9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQg IGZmX3Jhd3ZpZGVvX2RlbXV4ZXI7CiBleHRlcm4gY29uc3QgRkZPdXRwdXRGb3JtYXQgZmZfcmF3 dmlkZW9fbXV4ZXI7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9xb2FkZWMuYyBiL2xpYmF2Zm9y bWF0L3FvYWRlYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjIyOGUw OGNlZTgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmZvcm1hdC9xb2FkZWMuYwpAQCAtMCwwICsx LDgzIEBACisvKgorICogUU9BIGRlbXV4ZXIKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBG Rm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVn OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEg VVNBCisgKi8KKworI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiYXZpb19pbnRlcm5h bC5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAicmF3ZGVjLmgiCisjaW5jbHVk ZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgorCitzdGF0aWMgaW50IHFvYV9wcm9iZShjb25z dCBBVlByb2JlRGF0YSAqcCkKK3sKKyAgICBpZiAoKHAtPmJ1Zl9zaXplIDwgMTYpIHx8CisgICAg ICAgIChBVl9SQjMyKHAtPmJ1ZikgIT0gTUtCRVRBRygncScsJ28nLCdhJywnZicpKSB8fAorICAg ICAgICAoQVZfUkIzMihwLT5idWYgKyA0KSA9PSAwKSB8fAorICAgICAgICAocC0+YnVmWzhdID09 IDApIHx8CisgICAgICAgIChBVl9SQjI0KHAtPmJ1ZiArIDkpID09IDApIHx8CisgICAgICAgIChB Vl9SQjE2KHAtPmJ1ZiArIDEyKSA9PSAwKSB8fAorICAgICAgICAoQVZfUkIxNihwLT5idWYgKyAx NCkgPT0gMCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBBVlBST0JFX1NDT1JFX01B WDsKK30KKworc3RhdGljIGludCBxb2FfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQor eworICAgIEFWSU9Db250ZXh0ICpwYiA9IHMtPnBiOworICAgIEFWU3RyZWFtICpzdDsKKworICAg IHN0ID0gYXZmb3JtYXRfbmV3X3N0cmVhbShzLCBOVUxMKTsKKyAgICBpZiAoIXN0KQorICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgYXZpb19za2lwKHBiLCA0KTsKKyAgICBz dC0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPSBBVk1FRElBX1RZUEVfQVVESU87CisgICAgc3QtPmNv ZGVjcGFyLT5jb2RlY19pZCA9IEFWX0NPREVDX0lEX1FPQTsKKyAgICBmZnN0cmVhbShzdCktPm5l ZWRfcGFyc2luZyA9IEFWU1RSRUFNX1BBUlNFX0ZVTExfUkFXOworICAgIHN0LT5kdXJhdGlvbiA9 IGF2aW9fcmIzMihwYik7CisgICAgc3QtPnN0YXJ0X3RpbWUgPSAwOworCisgICAgZmZpb19lbnN1 cmVfc2Vla2JhY2socGIsIDQpOworICAgIHN0LT5jb2RlY3Bhci0+Y2hfbGF5b3V0Lm5iX2NoYW5u ZWxzID0gYXZpb19yOChwYik7CisgICAgaWYgKHN0LT5jb2RlY3Bhci0+Y2hfbGF5b3V0Lm5iX2No YW5uZWxzID09IDApCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAg c3QtPmNvZGVjcGFyLT5zYW1wbGVfcmF0ZSA9IGF2aW9fcmIyNChwYik7CisgICAgaWYgKHN0LT5j b2RlY3Bhci0+c2FtcGxlX3JhdGUgPT0gMCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7CisKKyAgICBhdmlvX3NlZWsocGIsIC00LCBTRUVLX0NVUik7CisKKyAgICBhdnByaXZf c2V0X3B0c19pbmZvKHN0LCA2NCwgMSwgc3QtPmNvZGVjcGFyLT5zYW1wbGVfcmF0ZSk7CisKKyAg ICByZXR1cm4gMDsKK30KKworY29uc3QgQVZJbnB1dEZvcm1hdCBmZl9xb2FfZGVtdXhlciA9IHsK KyAgICAubmFtZSAgICAgICAgICAgPSAicW9hIiwKKyAgICAubG9uZ19uYW1lICAgICAgPSBOVUxM X0lGX0NPTkZJR19TTUFMTCgicmF3IFFPQSIpLAorICAgIC5yZWFkX3Byb2JlICAgICA9IHFvYV9w cm9iZSwKKyAgICAucmVhZF9oZWFkZXIgICAgPSBxb2FfcmVhZF9oZWFkZXIsCisgICAgLnJlYWRf cGFja2V0ICAgID0gZmZfcmF3X3JlYWRfcGFydGlhbF9wYWNrZXQsCisgICAgLmZsYWdzICAgICAg ICAgID0gQVZGTVRfR0VORVJJQ19JTkRFWCwKKyAgICAuZXh0ZW5zaW9ucyAgICAgPSAicW9hIiwK KyAgICAucmF3X2NvZGVjX2lkICAgPSBBVl9DT0RFQ19JRF9RT0EsCisgICAgLnByaXZfZGF0YV9z aXplID0gc2l6ZW9mKEZGUmF3RGVtdXhlckNvbnRleHQpLAorICAgIC5wcml2X2NsYXNzICAgICA9 ICZmZl9yYXdfZGVtdXhlcl9jbGFzcywKK307Ci0tIAoyLjQyLjAKCg== --000000000000379f1f0606103aed Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avcodec-add-QOA-decoder-and-parser.patch" Content-Disposition: attachment; filename="0001-avcodec-add-QOA-decoder-and-parser.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lmwqsp741 RnJvbSBhNTc4OWJlMjk3ZmFhNDA5YzAwZWI2MmMzMGFmZDA5NjVmNGQ3MGVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjMgU2VwIDIwMjMgMTY6NDk6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gYXZj b2RlYzogYWRkIFFPQSBkZWNvZGVyIGFuZCBwYXJzZXIKClNpZ25lZC1vZmYtYnk6IFBhdWwgQiBN YWhvbCA8b25lbWRhQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmNvZGVjL01ha2VmaWxlICAgICB8ICAg MiArCiBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jICB8ICAgMSArCiBsaWJhdmNvZGVjL2NvZGVjX2Rl c2MuYyB8ICAgNyArKwogbGliYXZjb2RlYy9jb2RlY19pZC5oICAgfCAgIDEgKwogbGliYXZjb2Rl Yy9wYXJzZXJzLmMgICAgfCAgIDEgKwogbGliYXZjb2RlYy9xb2FfcGFyc2VyLmMgfCAgODkgKysr KysrKysrKysrKysrKysrKysKIGxpYmF2Y29kZWMvcW9hZGVjLmMgICAgIHwgMTc1ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjc2IGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3FvYV9wYXJzZXIuYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvcW9hZGVjLmMKCmRpZmYgLS1naXQgYS9saWJh dmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQppbmRleCBhMWViODNmOTJkLi5j NzBkMjdhNWM4IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCisrKyBiL2xpYmF2Y29k ZWMvTWFrZWZpbGUKQEAgLTYyMyw2ICs2MjMsNyBAQCBPQkpTLSQoQ09ORklHX1FDRUxQX0RFQ09E RVIpICAgICAgICAgICArPSBxY2VscGRlYy5vICAgICAgICAgICAgICAgICAgICAgXAogT0JKUy0k KENPTkZJR19RRE0yX0RFQ09ERVIpICAgICAgICAgICAgKz0gcWRtMi5vCiBPQkpTLSQoQ09ORklH X1FETUNfREVDT0RFUikgICAgICAgICAgICArPSBxZG1jLm8KIE9CSlMtJChDT05GSUdfUURSQVdf REVDT0RFUikgICAgICAgICAgICs9IHFkcncubworT0JKUy0kKENPTkZJR19RT0FfREVDT0RFUikg ICAgICAgICAgICAgKz0gcW9hZGVjLm8KIE9CSlMtJChDT05GSUdfUU9JX0RFQ09ERVIpICAgICAg ICAgICAgICs9IHFvaWRlYy5vCiBPQkpTLSQoQ09ORklHX1FPSV9FTkNPREVSKSAgICAgICAgICAg ICArPSBxb2llbmMubwogT0JKUy0kKENPTkZJR19RUEVHX0RFQ09ERVIpICAgICAgICAgICAgKz0g cXBlZy5vCkBAIC0xMjA1LDYgKzEyMDYsNyBAQCBPQkpTLSQoQ09ORklHX09QVVNfUEFSU0VSKSAg ICAgICAgICAgICArPSBvcHVzX3BhcnNlci5vIG9wdXNfcGFyc2UubyBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b3JiaXNfZGF0YS5vCiBPQkpTLSQoQ09ORklH X1BOR19QQVJTRVIpICAgICAgICAgICAgICArPSBwbmdfcGFyc2VyLm8KIE9CSlMtJChDT05GSUdf UE5NX1BBUlNFUikgICAgICAgICAgICAgICs9IHBubV9wYXJzZXIubyBwbm0ubworT0JKUy0kKENP TkZJR19RT0FfUEFSU0VSKSAgICAgICAgICAgICAgKz0gcW9hX3BhcnNlci5vCiBPQkpTLSQoQ09O RklHX1FPSV9QQVJTRVIpICAgICAgICAgICAgICArPSBxb2lfcGFyc2VyLm8KIE9CSlMtJChDT05G SUdfUlYzNF9QQVJTRVIpICAgICAgICAgICAgICs9IHJ2MzRfcGFyc2VyLm8KIE9CSlMtJChDT05G SUdfU0JDX1BBUlNFUikgICAgICAgICAgICAgICs9IHNiY19wYXJzZXIubwpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy9hbGxjb2RlY3MuYyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKaW5kZXggNGVh NjUxNWM2Yy4uODZkMDk3Mjc0MiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwor KysgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCkBAIC01MjMsNiArNTIzLDcgQEAgZXh0ZXJuIGNv bnN0IEZGQ29kZWMgZmZfcGFmX2F1ZGlvX2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBm Zl9xY2VscF9kZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfcWRtMl9kZWNvZGVyOwog ZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfcWRtY19kZWNvZGVyOworZXh0ZXJuIGNvbnN0IEZGQ29k ZWMgZmZfcW9hX2RlY29kZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9yYV8xNDRfZW5jb2Rl cjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3JhXzE0NF9kZWNvZGVyOwogZXh0ZXJuIGNvbnN0 IEZGQ29kZWMgZmZfcmFfMjg4X2RlY29kZXI7CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVj X2Rlc2MuYyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCmluZGV4IDNkZGQyZmQzZWUuLmZlODM4 YjQ5Y2IgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5jCisrKyBiL2xpYmF2Y29k ZWMvY29kZWNfZGVzYy5jCkBAIC0zNDM0LDYgKzM0MzQsMTMgQEAgc3RhdGljIGNvbnN0IEFWQ29k ZWNEZXNjcmlwdG9yIGNvZGVjX2Rlc2NyaXB0b3JzW10gPSB7CiAgICAgICAgIC5sb25nX25hbWUg PSBOVUxMX0lGX0NPTkZJR19TTUFMTCgiU29uYXJjIChTcGVlY2ggQ29tcHJlc3Npb24pIiksCiAg ICAgICAgIC5wcm9wcyAgICAgPSBBVl9DT0RFQ19QUk9QX0lOVFJBX09OTFkgfCBBVl9DT0RFQ19Q Uk9QX0xPU1NMRVNTLAogICAgIH0sCisgICAgeworICAgICAgICAuaWQgICAgICAgID0gQVZfQ09E RUNfSURfUU9BLAorICAgICAgICAudHlwZSAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAorICAg ICAgICAubmFtZSAgICAgID0gInFvYSIsCisgICAgICAgIC5sb25nX25hbWUgPSBOVUxMX0lGX0NP TkZJR19TTUFMTCgiUU9BIChRdWl0ZSBPSyBBdWRpbykiKSwKKyAgICAgICAgLnByb3BzICAgICA9 IEFWX0NPREVDX1BST1BfSU5UUkFfT05MWSB8IEFWX0NPREVDX1BST1BfTE9TU1ksCisgICAgfSwK IAogICAgIC8qIHN1YnRpdGxlIGNvZGVjcyAqLwogICAgIHsKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvY29kZWNfaWQuaCBiL2xpYmF2Y29kZWMvY29kZWNfaWQuaAppbmRleCA3MzM1MmY1NDYxLi5j MzEzNTM2ZjdiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2NvZGVjX2lkLmgKKysrIGIvbGliYXZj b2RlYy9jb2RlY19pZC5oCkBAIC01NDYsNiArNTQ2LDcgQEAgZW51bSBBVkNvZGVjSUQgewogICAg IEFWX0NPREVDX0lEX0FDNCwKICAgICBBVl9DT0RFQ19JRF9PU1EsCiAgICAgQVZfQ09ERUNfSURf U09OQVJDLAorICAgIEFWX0NPREVDX0lEX1FPQSwKIAogICAgIC8qIHN1YnRpdGxlIGNvZGVjcyAq LwogICAgIEFWX0NPREVDX0lEX0ZJUlNUX1NVQlRJVExFID0gMHgxNzAwMCwgICAgICAgICAgLy8v PCBBIGR1bW15IElEIHBvaW50aW5nIGF0IHRoZSBzdGFydCBvZiBzdWJ0aXRsZSBjb2RlY3MuCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3BhcnNlcnMuYyBiL2xpYmF2Y29kZWMvcGFyc2Vycy5jCmlu ZGV4IDUxMjgwMDljZDQuLjJlZDk2MTIwZjEgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvcGFyc2Vy cy5jCisrKyBiL2xpYmF2Y29kZWMvcGFyc2Vycy5jCkBAIC02NSw2ICs2NSw3IEBAIGV4dGVybiBj b25zdCBBVkNvZGVjUGFyc2VyIGZmX21wZWd2aWRlb19wYXJzZXI7CiBleHRlcm4gY29uc3QgQVZD b2RlY1BhcnNlciBmZl9vcHVzX3BhcnNlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVjUGFyc2VyIGZm X3BuZ19wYXJzZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlY1BhcnNlciBmZl9wbm1fcGFyc2VyOwor ZXh0ZXJuIGNvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcW9hX3BhcnNlcjsKIGV4dGVybiBjb25zdCBB VkNvZGVjUGFyc2VyIGZmX3FvaV9wYXJzZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlY1BhcnNlciBm Zl9ydjM0X3BhcnNlcjsKIGV4dGVybiBjb25zdCBBVkNvZGVjUGFyc2VyIGZmX3NiY19wYXJzZXI7 CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3FvYV9wYXJzZXIuYyBiL2xpYmF2Y29kZWMvcW9hX3Bh cnNlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBlNTUzN2EzMjYK LS0tIC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3FvYV9wYXJzZXIuYwpAQCAtMCwwICsxLDg5 IEBACisvKgorICogUU9BIHBhcnNlcgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBl Zy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUx IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EK KyAqLworCisjaW5jbHVkZSAicGFyc2VyLmgiCisKK3R5cGVkZWYgc3RydWN0IFFPQVBhcnNlQ29u dGV4dCB7CisgICAgUGFyc2VDb250ZXh0IHBjOworICAgIGludCBmcmFtZV9zaXplOworICAgIGlu dCByZW1haW5pbmc7CisgICAgaW50IGR1cmF0aW9uOworfSBRT0FQYXJzZUNvbnRleHQ7CisKK3N0 YXRpYyBpbnQgcW9hX3BhcnNlKEFWQ29kZWNQYXJzZXJDb250ZXh0ICpzLCBBVkNvZGVjQ29udGV4 dCAqYXZjdHgsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICoqcG91dGJ1Ziwg aW50ICpwb3V0YnVmX3NpemUsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpi dWYsIGludCBidWZfc2l6ZSkKK3sKKyAgICBRT0FQYXJzZUNvbnRleHQgKnFvYSA9IHMtPnByaXZf ZGF0YTsKKyAgICB1aW50NjRfdCBzdGF0ZSA9IHFvYS0+cGMuc3RhdGU2NDsKKyAgICBpbnQgbmV4 dCA9IEVORF9OT1RfRk9VTkQsIGkgPSAwOworCisgICAgKnBvdXRidWZfc2l6ZSA9IDA7CisgICAg KnBvdXRidWYgPSBOVUxMOworCisgICAgaWYgKHMtPmZsYWdzICYgUEFSU0VSX0ZMQUdfQ09NUExF VEVfRlJBTUVTKSB7CisgICAgICAgIG5leHQgPSBidWZfc2l6ZTsKKyAgICB9IGVsc2UgeworICAg ICAgICBpZiAoIXFvYS0+ZnJhbWVfc2l6ZSkgeworICAgICAgICAgICAgZm9yICg7IGkgPCBidWZf c2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAoc3RhdGUgPDwgOCkgfCBidWZb aV07CisgICAgICAgICAgICAgICAgaWYgKCgoc3RhdGUgJiAweEZGRkYpID4gMCAmJiAoc3RhdGUg Pj4gNTYpKSkgeworICAgICAgICAgICAgICAgICAgICBxb2EtPmZyYW1lX3NpemUgPSBzdGF0ZSAm IDB4RkZGRjsKKyAgICAgICAgICAgICAgICAgICAgcW9hLT5kdXJhdGlvbiA9IChzdGF0ZSA+PiAx NikgJiAweEZGRkY7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChxb2EtPmZyYW1lX3Np emUpIHsKKyAgICAgICAgICAgIGlmICghcW9hLT5yZW1haW5pbmcpCisgICAgICAgICAgICAgICAg cW9hLT5yZW1haW5pbmcgPSBxb2EtPmZyYW1lX3NpemU7CisgICAgICAgICAgICBpZiAocW9hLT5y ZW1haW5pbmcgPD0gYnVmX3NpemUpIHsKKyAgICAgICAgICAgICAgICBuZXh0ID0gcW9hLT5yZW1h aW5pbmc7CisgICAgICAgICAgICAgICAgcW9hLT5yZW1haW5pbmcgPSAwOworICAgICAgICAgICAg ICAgIHFvYS0+ZnJhbWVfc2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAwOworICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBxb2EtPnJlbWFpbmluZyAtPSBidWZf c2l6ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHFvYS0+cGMuc3RhdGU2 NCA9IHN0YXRlOworICAgICAgICBpZiAoZmZfY29tYmluZV9mcmFtZSgmcW9hLT5wYywgbmV4dCwg JmJ1ZiwgJmJ1Zl9zaXplKSA8IDApIHsKKyAgICAgICAgICAgICpwb3V0YnVmID0gTlVMTDsKKyAg ICAgICAgICAgICpwb3V0YnVmX3NpemUgPSAwOworICAgICAgICAgICAgcmV0dXJuIGJ1Zl9zaXpl OworICAgICAgICB9CisKKyAgICAgICAgcy0+ZHVyYXRpb24gPSBxb2EtPmR1cmF0aW9uOworICAg IH0KKworICAgICpwb3V0YnVmICAgICAgPSBidWY7CisgICAgKnBvdXRidWZfc2l6ZSA9IGJ1Zl9z aXplOworCisgICAgcmV0dXJuIG5leHQ7Cit9CisKK2NvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcW9h X3BhcnNlciA9IHsKKyAgICAuY29kZWNfaWRzICAgICAgPSB7IEFWX0NPREVDX0lEX1FPQSB9LAor ICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihRT0FQYXJzZUNvbnRleHQpLAorICAgIC5wYXJz ZXJfcGFyc2UgICA9IHFvYV9wYXJzZSwKKyAgICAucGFyc2VyX2Nsb3NlICAgPSBmZl9wYXJzZV9j bG9zZSwKK307CmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3FvYWRlYy5jIGIvbGliYXZjb2RlYy9x b2FkZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45YjJhYmFlODMz Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9xb2FkZWMuYwpAQCAtMCwwICsxLDE3NSBA QAorLyoKKyAqIFFPQSBkZWNvZGVyCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVn LgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQor ICovCisKKyNpbmNsdWRlICJhdmNvZGVjLmgiCisjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIK KyNpbmNsdWRlICJkZWNvZGUuaCIKKyNpbmNsdWRlICJnZXRfYml0cy5oIgorI2luY2x1ZGUgImJ5 dGVzdHJlYW0uaCIKKyNpbmNsdWRlICJtYXRob3BzLmgiCisKKyNkZWZpbmUgUU9BX1NMSUNFX0xF TiAyMAorI2RlZmluZSBRT0FfTE1TX0xFTiA0CisKK3R5cGVkZWYgc3RydWN0IFFPQUNoYW5uZWwg eworICAgIGludCBoaXN0b3J5W1FPQV9MTVNfTEVOXTsKKyAgICBpbnQgd2VpZ2h0c1tRT0FfTE1T X0xFTl07Cit9IFFPQUNoYW5uZWw7CisKK3R5cGVkZWYgc3RydWN0IFFPQUNvbnRleHQgeworICAg IFFPQUNoYW5uZWwgKmNoOworfSBRT0FDb250ZXh0OworCitzdGF0aWMgY29uc3QgaW50MTZfdCBx b2FfZGVxdWFudF90YWJbMTZdWzhdID0geworICAgIHsgICAxLCAgICAtMSwgICAgMywgICAgLTMs ICAgIDUsICAgIC01LCAgICAgNywgICAgIC03fSwKKyAgICB7ICAgNSwgICAgLTUsICAgMTgsICAg LTE4LCAgIDMyLCAgIC0zMiwgICAgNDksICAgIC00OX0sCisgICAgeyAgMTYsICAgLTE2LCAgIDUz LCAgIC01MywgICA5NSwgICAtOTUsICAgMTQ3LCAgIC0xNDd9LAorICAgIHsgIDM0LCAgIC0zNCwg IDExMywgIC0xMTMsICAyMDMsICAtMjAzLCAgIDMxNSwgICAtMzE1fSwKKyAgICB7ICA2MywgICAt NjMsICAyMTAsICAtMjEwLCAgMzc4LCAgLTM3OCwgICA1ODgsICAgLTU4OH0sCisgICAgeyAxMDQs ICAtMTA0LCAgMzQ1LCAgLTM0NSwgIDYyMSwgIC02MjEsICAgOTY2LCAgIC05NjZ9LAorICAgIHsg MTU4LCAgLTE1OCwgIDUyOCwgIC01MjgsICA5NTAsICAtOTUwLCAgMTQ3NywgIC0xNDc3fSwKKyAg ICB7IDIyOCwgIC0yMjgsICA3NjAsICAtNzYwLCAxMzY4LCAtMTM2OCwgIDIxMjgsICAtMjEyOH0s CisgICAgeyAzMTYsICAtMzE2LCAxMDUzLCAtMTA1MywgMTg5NSwgLTE4OTUsICAyOTQ3LCAgLTI5 NDd9LAorICAgIHsgNDIyLCAgLTQyMiwgMTQwNSwgLTE0MDUsIDI1MjksIC0yNTI5LCAgMzkzNCwg IC0zOTM0fSwKKyAgICB7IDU0OCwgIC01NDgsIDE4MjgsIC0xODI4LCAzMjkwLCAtMzI5MCwgIDUx MTcsICAtNTExN30sCisgICAgeyA2OTYsICAtNjk2LCAyMzIwLCAtMjMyMCwgNDE3NiwgLTQxNzYs ICA2NDk2LCAgLTY0OTZ9LAorICAgIHsgODY4LCAgLTg2OCwgMjg5MywgLTI4OTMsIDUyMDcsIC01 MjA3LCAgODA5OSwgIC04MDk5fSwKKyAgICB7MTA2NCwgLTEwNjQsIDM1NDgsIC0zNTQ4LCA2Mzg2 LCAtNjM4NiwgIDk5MzMsICAtOTkzM30sCisgICAgezEyODYsIC0xMjg2LCA0Mjg4LCAtNDI4OCwg NzcxOCwgLTc3MTgsIDEyMDA1LCAtMTIwMDV9LAorICAgIHsxNTM2LCAtMTUzNiwgNTEyMCwgLTUx MjAsIDkyMTYsIC05MjE2LCAxNDMzNiwgLTE0MzM2fSwKK307CisKK3N0YXRpYyBhdl9jb2xkIGlu dCBxb2FfZGVjb2RlX2luaXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIFFPQUNvbnRl eHQgKnMgPSBhdmN0eC0+cHJpdl9kYXRhOworCisgICAgYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9T QU1QTEVfRk1UX1MxNjsKKworICAgIHMtPmNoID0gYXZfY2FsbG9jKGF2Y3R4LT5jaF9sYXlvdXQu bmJfY2hhbm5lbHMsIHNpemVvZigqcy0+Y2gpKTsKKyAgICBpZiAoIXMtPmNoKQorICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg cW9hX2xtc19wcmVkaWN0KFFPQUNoYW5uZWwgKmxtcykKK3sKKyAgICBpbnQgcHJlZGljdGlvbiA9 IDA7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBRT0FfTE1TX0xFTjsgaSsrKQorICAgICAgICBw cmVkaWN0aW9uICs9IGxtcy0+d2VpZ2h0c1tpXSAqIGxtcy0+aGlzdG9yeVtpXTsKKyAgICByZXR1 cm4gcHJlZGljdGlvbiA+PiAxMzsKK30KKworc3RhdGljIHZvaWQgcW9hX2xtc191cGRhdGUoUU9B Q2hhbm5lbCAqbG1zLCBpbnQgc2FtcGxlLCBpbnQgcmVzaWR1YWwpCit7CisgICAgaW50IGRlbHRh ID0gcmVzaWR1YWwgPj4gNDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IFFPQV9MTVNfTEVOOyBp KyspCisgICAgICAgIGxtcy0+d2VpZ2h0c1tpXSArPSBsbXMtPmhpc3RvcnlbaV0gPCAwID8gLWRl bHRhIDogZGVsdGE7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBRT0FfTE1TX0xFTi0xOyBpKysp CisgICAgICAgIGxtcy0+aGlzdG9yeVtpXSA9IGxtcy0+aGlzdG9yeVtpKzFdOworICAgIGxtcy0+ aGlzdG9yeVtRT0FfTE1TX0xFTi0xXSA9IHNhbXBsZTsKK30KKworc3RhdGljIGludCBxb2FfZGVj b2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50ICpnb3RfZnJhbWVfcHRyLCBBVlBhY2tldCAqYXZwa3Qp Cit7CisgICAgUU9BQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgaW50IHJldCwg ZnJhbWVfc2l6ZSwgbmJfY2hhbm5lbHM7CisgICAgR2V0Qnl0ZUNvbnRleHQgZ2I7CisgICAgaW50 MTZfdCAqc2FtcGxlczsKKworICAgIGJ5dGVzdHJlYW0yX2luaXQoJmdiLCBhdnBrdC0+ZGF0YSwg YXZwa3QtPnNpemUpOworCisgICAgbmJfY2hhbm5lbHMgPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgm Z2IpOworICAgIGlmIChhdmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzICE9IG5iX2NoYW5uZWxz KQorICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIGF2Y3R4LT5zYW1w bGVfcmF0ZSA9IGJ5dGVzdHJlYW0yX2dldF9iZTI0KCZnYik7CisgICAgZnJhbWUtPm5iX3NhbXBs ZXMgPSBieXRlc3RyZWFtMl9nZXRfYmUxNigmZ2IpOworICAgIGZyYW1lX3NpemUgPSBieXRlc3Ry ZWFtMl9nZXRfYmUxNigmZ2IpOworICAgIGlmIChmcmFtZV9zaXplID4gYXZwa3QtPnNpemUpCisg ICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgaWYgKGZyYW1lX3NpemUg PCA4ICsgUU9BX0xNU19MRU4gKiA0ICogbmJfY2hhbm5lbHMgKworICAgICAgICA4TEwgKiBmcmFt ZS0+bmJfc2FtcGxlcyAqIG5iX2NoYW5uZWxzIC8gUU9BX1NMSUNFX0xFTikKKyAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICBpZiAoKHJldCA9IGZmX2dldF9idWZmZXIo YXZjdHgsIGZyYW1lLCAwKSkgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworICAgIHNhbXBsZXMg PSAoaW50MTZfdCAqKWZyYW1lLT5kYXRhWzBdOworCisgICAgZm9yIChpbnQgY2ggPSAwOyBjaCA8 IG5iX2NoYW5uZWxzOyBjaCsrKSB7CisgICAgICAgIFFPQUNoYW5uZWwgKnFjaCA9ICZzLT5jaFtj aF07CisKKyAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBRT0FfTE1TX0xFTjsgbisrKQorICAg ICAgICAgICAgcWNoLT5oaXN0b3J5W25dID0gc2lnbl9leHRlbmQoYnl0ZXN0cmVhbTJfZ2V0X2Jl MTZ1KCZnYiksIDE2KTsKKyAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBRT0FfTE1TX0xFTjsg bisrKQorICAgICAgICAgICAgcWNoLT53ZWlnaHRzW25dID0gc2lnbl9leHRlbmQoYnl0ZXN0cmVh bTJfZ2V0X2JlMTZ1KCZnYiksIDE2KTsKKyAgICB9CisKKyAgICBmb3IgKGludCBzYW1wbGVfaW5k ZXggPSAwOyBzYW1wbGVfaW5kZXggPCBmcmFtZS0+bmJfc2FtcGxlcyAqIG5iX2NoYW5uZWxzOwor ICAgICAgICAgc2FtcGxlX2luZGV4ICs9IFFPQV9TTElDRV9MRU4pIHsKKyAgICAgICAgZm9yIChp bnQgY2ggPSAwOyBjaCA8IG5iX2NoYW5uZWxzOyBjaCsrKSB7CisgICAgICAgICAgICBRT0FDaGFu bmVsICpsbXMgPSAmcy0+Y2hbY2hdOworICAgICAgICAgICAgdWludDY0X3Qgc2xpY2UgPSBieXRl c3RyZWFtMl9nZXRfYmU2NHUoJmdiKTsKKyAgICAgICAgICAgIGludCBzY2FsZWZhY3RvciA9IChz bGljZSA+PiA2MCkgJiAweGY7CisgICAgICAgICAgICBpbnQgc2xpY2Vfc3RhcnQgPSBzYW1wbGVf aW5kZXggKiBuYl9jaGFubmVscyArIGNoOworICAgICAgICAgICAgaW50IHNsaWNlX2VuZCA9IGF2 X2NsaXAoc2FtcGxlX2luZGV4ICsgUU9BX1NMSUNFX0xFTiwgMCwgZnJhbWUtPm5iX3NhbXBsZXMp ICogbmJfY2hhbm5lbHMgKyBjaDsKKworICAgICAgICAgICAgZm9yIChpbnQgc2kgPSBzbGljZV9z dGFydDsgc2kgPCBzbGljZV9lbmQ7IHNpICs9IG5iX2NoYW5uZWxzKSB7CisgICAgICAgICAgICAg ICAgaW50IHByZWRpY3RlZCA9IHFvYV9sbXNfcHJlZGljdChsbXMpOworICAgICAgICAgICAgICAg IGludCBxdWFudGl6ZWQgPSAoc2xpY2UgPj4gNTcpICYgMHg3OworICAgICAgICAgICAgICAgIGlu dCBkZXF1YW50aXplZCA9IHFvYV9kZXF1YW50X3RhYltzY2FsZWZhY3Rvcl1bcXVhbnRpemVkXTsK KyAgICAgICAgICAgICAgICBpbnQgcmVjb25zdHJ1Y3RlZCA9IGF2X2NsaXBfaW50MTYocHJlZGlj dGVkICsgZGVxdWFudGl6ZWQpOworCisgICAgICAgICAgICAgICAgc2FtcGxlc1tzaV0gPSByZWNv bnN0cnVjdGVkOworICAgICAgICAgICAgICAgIHNsaWNlIDw8PSAzOworCisgICAgICAgICAgICAg ICAgcW9hX2xtc191cGRhdGUobG1zLCByZWNvbnN0cnVjdGVkLCBkZXF1YW50aXplZCk7CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqZ290X2ZyYW1lX3B0ciA9IDE7CisK KyAgICByZXR1cm4gYXZwa3QtPnNpemU7Cit9CisKK3N0YXRpYyBhdl9jb2xkIGludCBxb2FfZGVj b2RlX2VuZChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7CisgICAgUU9BQ29udGV4dCAqcyA9IGF2 Y3R4LT5wcml2X2RhdGE7CisgICAgYXZfZnJlZXAoJnMtPmNoKTsKKyAgICByZXR1cm4gMDsKK30K KworY29uc3QgRkZDb2RlYyBmZl9xb2FfZGVjb2RlciA9IHsKKyAgICAucC5uYW1lICAgICAgICAg PSAicW9hIiwKKyAgICBDT0RFQ19MT05HX05BTUUoIlFPQSAoUXVpdGUgT0sgQXVkaW8pIiksCisg ICAgLnAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX0FVRElPLAorICAgIC5wLmlkICAgICAg ICAgICA9IEFWX0NPREVDX0lEX1FPQSwKKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoUU9B Q29udGV4dCksCisgICAgLmluaXQgICAgICAgICAgID0gcW9hX2RlY29kZV9pbml0LAorICAgIEZG X0NPREVDX0RFQ09ERV9DQihxb2FfZGVjb2RlX2ZyYW1lKSwKKyAgICAuY2xvc2UgICAgICAgICAg PSBxb2FfZGVjb2RlX2VuZCwKKyAgICAucC5jYXBhYmlsaXRpZXMgPSBBVl9DT0RFQ19DQVBfQ0hB Tk5FTF9DT05GIHwKKyAgICAgICAgICAgICAgICAgICAgICBBVl9DT0RFQ19DQVBfRFIxLAorICAg IC5wLnNhbXBsZV9mbXRzICA9IChjb25zdCBlbnVtIEFWU2FtcGxlRm9ybWF0W10pIHsgQVZfU0FN UExFX0ZNVF9TMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVl9TQU1QTEVfRk1UX05PTkUgfSwKK307Ci0tIAoyLjQyLjAKCg== --000000000000379f1f0606103aed 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". --000000000000379f1f0606103aed--