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 212814691F for ; Sat, 23 Sep 2023 21:40:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 791FD68C8D1; Sun, 24 Sep 2023 00:40:09 +0300 (EEST) Received: from mail-vs1-f54.google.com (mail-vs1-f54.google.com [209.85.217.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D33868C808 for ; Sun, 24 Sep 2023 00:40:02 +0300 (EEST) Received: by mail-vs1-f54.google.com with SMTP id ada2fe7eead31-452832dbb5dso1830746137.0 for ; Sat, 23 Sep 2023 14:40:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695505201; x=1696110001; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=PK/DgVmkcw/1eQR4ymdEKOk1/v/V9L5RoRHfCRW5NIk=; b=llhMOxfm7Ot4htq1pzq5fywx7usgsVh4YqKWA6v99ySPODfvK53d6Tx0/0+DxsvD0C Rd+m+9mQ97Ses+lzvMrEiuXmwFW8BPW97TVFOfagx5nDyKSXd7xCFbpUoJuPxeJd5XHl BSlYBf7pdZxmW2ZHS45XOyMEL5p9xMwnSmmp3A2Jkh0jkhWgSwri8Z18b6KRjqlMxkh+ k+cTn6Xc172j0WpclhTp4biQYBD1iQ6lQMjoxe6IfXbcMxEK1J//TuEKQP+YRO2cmRTh RtwC1C/lD9NSBKyyapjC4VlDua4jEtpR7gW19bPAyvMw8Yg+GVIacKhswOStRiFy9TLC IdJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695505201; x=1696110001; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=PK/DgVmkcw/1eQR4ymdEKOk1/v/V9L5RoRHfCRW5NIk=; b=A8Oh0HCzoderelLg0LRzKlek/Xp4+bzlkuargzhI9tnoKqvYz2WDobyaIJeq59aLua f1+7ahS2bVnYUbwZFqSv+hKjtN/X8gHlPQXatXHUvSkbC2FX/Z4VZavb93RK7Ua48YpY a0c48c6/FApjWO8Uf1o1ePs6ucy7pYGCXJfPRthB5gdlTO7wLUdnc02hvxGGMO8wzeK2 SnlsgdSMHSx7YVbTy30ESsw3Dj2NChnJ35izi9k+fRjyZQMY325b6OV3K2682FwAWTdN v4rSroTbVXjOhA7+yhk6iIpzkJ8PQ86J0HnhzhfYidMeKJ8oZ/hKU4p69IUv/7skkkaX BG9A== X-Gm-Message-State: AOJu0YwPxQ0f3G0vB2NzRHP1EfhAzNxXS5K+JWX5QJJuuXDyNC07QKxZ /WHt2TloOHEPS8CBa9Jkmeli16dkwBR4+mKnLFBQNOYV2B4= X-Google-Smtp-Source: AGHT+IGHwOeaIFFYQh9cXWgcCLii3Kdk8IsxYDEu9qN0CnQGIzXHQ152s07qV5lL1MKcd70+gAjp6eR8Ifn6G5Mm1Ec= X-Received: by 2002:a67:f818:0:b0:44d:476b:3bbd with SMTP id l24-20020a67f818000000b0044d476b3bbdmr2001891vso.0.1695505200787; Sat, 23 Sep 2023 14:40:00 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Sat, 23 Sep 2023 23:39:45 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000354ca206060d91c5" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [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: --000000000000354ca206060d91c5 Content-Type: text/plain; charset="UTF-8" Patches attached. --000000000000354ca206060d91c5 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-avcodec-add-QOA-decoder-and-parser.patch" Content-Disposition: attachment; filename="0002-avcodec-add-QOA-decoder-and-parser.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lmwjzkp80 RnJvbSA1ZDU3YTA0ZDNiNGFhOWI0ODczMDJhYjg5YjJhM2JjYTRjY2I5MzMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjMgU2VwIDIwMjMgMTY6NDk6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gYXZj b2RlYzogYWRkIFFPQSBkZWNvZGVyIGFuZCBwYXJzZXIKClNpZ25lZC1vZmYtYnk6IFBhdWwgQiBN YWhvbCA8b25lbWRhQGdtYWlsLmNvbT4KLS0tCiBsaWJhdmNvZGVjL01ha2VmaWxlICAgICB8ICAg MiArCiBsaWJhdmNvZGVjL2FsbGNvZGVjcy5jICB8ICAgMSArCiBsaWJhdmNvZGVjL2NvZGVjX2Rl c2MuYyB8ICAgNyArKwogbGliYXZjb2RlYy9jb2RlY19pZC5oICAgfCAgIDEgKwogbGliYXZjb2Rl Yy9wYXJzZXJzLmMgICAgfCAgIDEgKwogbGliYXZjb2RlYy9xb2FfcGFyc2VyLmMgfCAgODkgKysr KysrKysrKysrKysrKysrKysrCiBsaWJhdmNvZGVjL3FvYWRlYy5jICAgICB8IDE3MCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDI3MSBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9xb2FfcGFyc2VyLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3FvYWRlYy5jCgpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKaW5kZXggYTFlYjgzZjkyZC4u YzcwZDI3YTVjOCAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9NYWtlZmlsZQorKysgYi9saWJhdmNv ZGVjL01ha2VmaWxlCkBAIC02MjMsNiArNjIzLDcgQEAgT0JKUy0kKENPTkZJR19RQ0VMUF9ERUNP REVSKSAgICAgICAgICAgKz0gcWNlbHBkZWMubyAgICAgICAgICAgICAgICAgICAgIFwKIE9CSlMt JChDT05GSUdfUURNMl9ERUNPREVSKSAgICAgICAgICAgICs9IHFkbTIubwogT0JKUy0kKENPTkZJ R19RRE1DX0RFQ09ERVIpICAgICAgICAgICAgKz0gcWRtYy5vCiBPQkpTLSQoQ09ORklHX1FEUkFX X0RFQ09ERVIpICAgICAgICAgICArPSBxZHJ3Lm8KK09CSlMtJChDT05GSUdfUU9BX0RFQ09ERVIp ICAgICAgICAgICAgICs9IHFvYWRlYy5vCiBPQkpTLSQoQ09ORklHX1FPSV9ERUNPREVSKSAgICAg ICAgICAgICArPSBxb2lkZWMubwogT0JKUy0kKENPTkZJR19RT0lfRU5DT0RFUikgICAgICAgICAg ICAgKz0gcW9pZW5jLm8KIE9CSlMtJChDT05GSUdfUVBFR19ERUNPREVSKSAgICAgICAgICAgICs9 IHFwZWcubwpAQCAtMTIwNSw2ICsxMjA2LDcgQEAgT0JKUy0kKENPTkZJR19PUFVTX1BBUlNFUikg ICAgICAgICAgICAgKz0gb3B1c19wYXJzZXIubyBvcHVzX3BhcnNlLm8gXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9yYmlzX2RhdGEubwogT0JKUy0kKENPTkZJ R19QTkdfUEFSU0VSKSAgICAgICAgICAgICAgKz0gcG5nX3BhcnNlci5vCiBPQkpTLSQoQ09ORklH X1BOTV9QQVJTRVIpICAgICAgICAgICAgICArPSBwbm1fcGFyc2VyLm8gcG5tLm8KK09CSlMtJChD T05GSUdfUU9BX1BBUlNFUikgICAgICAgICAgICAgICs9IHFvYV9wYXJzZXIubwogT0JKUy0kKENP TkZJR19RT0lfUEFSU0VSKSAgICAgICAgICAgICAgKz0gcW9pX3BhcnNlci5vCiBPQkpTLSQoQ09O RklHX1JWMzRfUEFSU0VSKSAgICAgICAgICAgICArPSBydjM0X3BhcnNlci5vCiBPQkpTLSQoQ09O RklHX1NCQ19QQVJTRVIpICAgICAgICAgICAgICArPSBzYmNfcGFyc2VyLm8KZGlmZiAtLWdpdCBh L2xpYmF2Y29kZWMvYWxsY29kZWNzLmMgYi9saWJhdmNvZGVjL2FsbGNvZGVjcy5jCmluZGV4IDRl YTY1MTVjNmMuLjg2ZDA5NzI3NDIgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMK KysrIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwpAQCAtNTIzLDYgKzUyMyw3IEBAIGV4dGVybiBj b25zdCBGRkNvZGVjIGZmX3BhZl9hdWRpb19kZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMg ZmZfcWNlbHBfZGVjb2RlcjsKIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3FkbTJfZGVjb2RlcjsK IGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX3FkbWNfZGVjb2RlcjsKK2V4dGVybiBjb25zdCBGRkNv ZGVjIGZmX3FvYV9kZWNvZGVyOwogZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfcmFfMTQ0X2VuY29k ZXI7CiBleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9yYV8xNDRfZGVjb2RlcjsKIGV4dGVybiBjb25z dCBGRkNvZGVjIGZmX3JhXzI4OF9kZWNvZGVyOwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jb2Rl Y19kZXNjLmMgYi9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYwppbmRleCAzZGRkMmZkM2VlLi5mZTgz OGI0OWNiIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYworKysgYi9saWJhdmNv ZGVjL2NvZGVjX2Rlc2MuYwpAQCAtMzQzNCw2ICszNDM0LDEzIEBAIHN0YXRpYyBjb25zdCBBVkNv ZGVjRGVzY3JpcHRvciBjb2RlY19kZXNjcmlwdG9yc1tdID0gewogICAgICAgICAubG9uZ19uYW1l ID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIlNvbmFyYyAoU3BlZWNoIENvbXByZXNzaW9uKSIpLAog ICAgICAgICAucHJvcHMgICAgID0gQVZfQ09ERUNfUFJPUF9JTlRSQV9PTkxZIHwgQVZfQ09ERUNf UFJPUF9MT1NTTEVTUywKICAgICB9LAorICAgIHsKKyAgICAgICAgLmlkICAgICAgICA9IEFWX0NP REVDX0lEX1FPQSwKKyAgICAgICAgLnR5cGUgICAgICA9IEFWTUVESUFfVFlQRV9BVURJTywKKyAg ICAgICAgLm5hbWUgICAgICA9ICJxb2EiLAorICAgICAgICAubG9uZ19uYW1lID0gTlVMTF9JRl9D T05GSUdfU01BTEwoIlFPQSAoUXVpdGUgT0sgQXVkaW8pIiksCisgICAgICAgIC5wcm9wcyAgICAg PSBBVl9DT0RFQ19QUk9QX0lOVFJBX09OTFkgfCBBVl9DT0RFQ19QUk9QX0xPU1NZLAorICAgIH0s CiAKICAgICAvKiBzdWJ0aXRsZSBjb2RlY3MgKi8KICAgICB7CmRpZmYgLS1naXQgYS9saWJhdmNv ZGVjL2NvZGVjX2lkLmggYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgKaW5kZXggNzMzNTJmNTQ2MS4u YzMxMzUzNmY3YiAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9jb2RlY19pZC5oCisrKyBiL2xpYmF2 Y29kZWMvY29kZWNfaWQuaApAQCAtNTQ2LDYgKzU0Niw3IEBAIGVudW0gQVZDb2RlY0lEIHsKICAg ICBBVl9DT0RFQ19JRF9BQzQsCiAgICAgQVZfQ09ERUNfSURfT1NRLAogICAgIEFWX0NPREVDX0lE X1NPTkFSQywKKyAgICBBVl9DT0RFQ19JRF9RT0EsCiAKICAgICAvKiBzdWJ0aXRsZSBjb2RlY3Mg Ki8KICAgICBBVl9DT0RFQ19JRF9GSVJTVF9TVUJUSVRMRSA9IDB4MTcwMDAsICAgICAgICAgIC8v LzwgQSBkdW1teSBJRCBwb2ludGluZyBhdCB0aGUgc3RhcnQgb2Ygc3VidGl0bGUgY29kZWNzLgpk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9wYXJzZXJzLmMgYi9saWJhdmNvZGVjL3BhcnNlcnMuYwpp bmRleCA1MTI4MDA5Y2Q0Li4yZWQ5NjEyMGYxIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3BhcnNl cnMuYworKysgYi9saWJhdmNvZGVjL3BhcnNlcnMuYwpAQCAtNjUsNiArNjUsNyBAQCBleHRlcm4g Y29uc3QgQVZDb2RlY1BhcnNlciBmZl9tcGVndmlkZW9fcGFyc2VyOwogZXh0ZXJuIGNvbnN0IEFW Q29kZWNQYXJzZXIgZmZfb3B1c19wYXJzZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlY1BhcnNlciBm Zl9wbmdfcGFyc2VyOwogZXh0ZXJuIGNvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcG5tX3BhcnNlcjsK K2V4dGVybiBjb25zdCBBVkNvZGVjUGFyc2VyIGZmX3FvYV9wYXJzZXI7CiBleHRlcm4gY29uc3Qg QVZDb2RlY1BhcnNlciBmZl9xb2lfcGFyc2VyOwogZXh0ZXJuIGNvbnN0IEFWQ29kZWNQYXJzZXIg ZmZfcnYzNF9wYXJzZXI7CiBleHRlcm4gY29uc3QgQVZDb2RlY1BhcnNlciBmZl9zYmNfcGFyc2Vy OwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9xb2FfcGFyc2VyLmMgYi9saWJhdmNvZGVjL3FvYV9w YXJzZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wZTU1MzdhMzI2 Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYXZjb2RlYy9xb2FfcGFyc2VyLmMKQEAgLTAsMCArMSw4 OSBAQAorLyoKKyAqIFFPQSBwYXJzZXIKKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1w ZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB CisgKi8KKworI2luY2x1ZGUgInBhcnNlci5oIgorCit0eXBlZGVmIHN0cnVjdCBRT0FQYXJzZUNv bnRleHQgeworICAgIFBhcnNlQ29udGV4dCBwYzsKKyAgICBpbnQgZnJhbWVfc2l6ZTsKKyAgICBp bnQgcmVtYWluaW5nOworICAgIGludCBkdXJhdGlvbjsKK30gUU9BUGFyc2VDb250ZXh0OworCitz dGF0aWMgaW50IHFvYV9wYXJzZShBVkNvZGVjUGFyc2VyQ29udGV4dCAqcywgQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqKnBvdXRidWYs IGludCAqcG91dGJ1Zl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAq YnVmLCBpbnQgYnVmX3NpemUpCit7CisgICAgUU9BUGFyc2VDb250ZXh0ICpxb2EgPSBzLT5wcml2 X2RhdGE7CisgICAgdWludDY0X3Qgc3RhdGUgPSBxb2EtPnBjLnN0YXRlNjQ7CisgICAgaW50IG5l eHQgPSBFTkRfTk9UX0ZPVU5ELCBpID0gMDsKKworICAgICpwb3V0YnVmX3NpemUgPSAwOworICAg ICpwb3V0YnVmID0gTlVMTDsKKworICAgIGlmIChzLT5mbGFncyAmIFBBUlNFUl9GTEFHX0NPTVBM RVRFX0ZSQU1FUykgeworICAgICAgICBuZXh0ID0gYnVmX3NpemU7CisgICAgfSBlbHNlIHsKKyAg ICAgICAgaWYgKCFxb2EtPmZyYW1lX3NpemUpIHsKKyAgICAgICAgICAgIGZvciAoOyBpIDwgYnVm X3NpemU7IGkrKykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gKHN0YXRlIDw8IDgpIHwgYnVm W2ldOworICAgICAgICAgICAgICAgIGlmICgoKHN0YXRlICYgMHhGRkZGKSA+IDAgJiYgKHN0YXRl ID4+IDU2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcW9hLT5mcmFtZV9zaXplID0gc3RhdGUg JiAweEZGRkY7CisgICAgICAgICAgICAgICAgICAgIHFvYS0+ZHVyYXRpb24gPSAoc3RhdGUgPj4g MTYpICYgMHhGRkZGOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAocW9hLT5mcmFtZV9z aXplKSB7CisgICAgICAgICAgICBpZiAoIXFvYS0+cmVtYWluaW5nKQorICAgICAgICAgICAgICAg IHFvYS0+cmVtYWluaW5nID0gcW9hLT5mcmFtZV9zaXplOworICAgICAgICAgICAgaWYgKHFvYS0+ cmVtYWluaW5nIDw9IGJ1Zl9zaXplKSB7CisgICAgICAgICAgICAgICAgbmV4dCA9IHFvYS0+cmVt YWluaW5nOworICAgICAgICAgICAgICAgIHFvYS0+cmVtYWluaW5nID0gMDsKKyAgICAgICAgICAg ICAgICBxb2EtPmZyYW1lX3NpemUgPSAwOworICAgICAgICAgICAgICAgIHN0YXRlID0gMDsKKyAg ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcW9hLT5yZW1haW5pbmcgLT0gYnVm X3NpemU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBxb2EtPnBjLnN0YXRl NjQgPSBzdGF0ZTsKKyAgICAgICAgaWYgKGZmX2NvbWJpbmVfZnJhbWUoJnFvYS0+cGMsIG5leHQs ICZidWYsICZidWZfc2l6ZSkgPCAwKSB7CisgICAgICAgICAgICAqcG91dGJ1ZiA9IE5VTEw7Cisg ICAgICAgICAgICAqcG91dGJ1Zl9zaXplID0gMDsKKyAgICAgICAgICAgIHJldHVybiBidWZfc2l6 ZTsKKyAgICAgICAgfQorCisgICAgICAgIHMtPmR1cmF0aW9uID0gcW9hLT5kdXJhdGlvbjsKKyAg ICB9CisKKyAgICAqcG91dGJ1ZiAgICAgID0gYnVmOworICAgICpwb3V0YnVmX3NpemUgPSBidWZf c2l6ZTsKKworICAgIHJldHVybiBuZXh0OworfQorCitjb25zdCBBVkNvZGVjUGFyc2VyIGZmX3Fv YV9wYXJzZXIgPSB7CisgICAgLmNvZGVjX2lkcyAgICAgID0geyBBVl9DT0RFQ19JRF9RT0EgfSwK KyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoUU9BUGFyc2VDb250ZXh0KSwKKyAgICAucGFy c2VyX3BhcnNlICAgPSBxb2FfcGFyc2UsCisgICAgLnBhcnNlcl9jbG9zZSAgID0gZmZfcGFyc2Vf Y2xvc2UsCit9OwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9xb2FkZWMuYyBiL2xpYmF2Y29kZWMv cW9hZGVjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzEwNzI3NTRj OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2Y29kZWMvcW9hZGVjLmMKQEAgLTAsMCArMSwxNzAg QEAKKy8qCisgKiBRT0EgZGVjb2RlcgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBl Zy4KKyAqCisgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUx IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EK KyAqLworCisjaW5jbHVkZSAiYXZjb2RlYy5oIgorI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgi CisjaW5jbHVkZSAiZGVjb2RlLmgiCisjaW5jbHVkZSAiZ2V0X2JpdHMuaCIKKyNpbmNsdWRlICJi eXRlc3RyZWFtLmgiCisKKyNkZWZpbmUgUU9BX1NMSUNFX0xFTiAyMAorI2RlZmluZSBRT0FfTE1T X0xFTiA0CisKK3R5cGVkZWYgc3RydWN0IFFPQUNoYW5uZWwgeworICAgIGludCBoaXN0b3J5W1FP QV9MTVNfTEVOXTsKKyAgICBpbnQgd2VpZ2h0c1tRT0FfTE1TX0xFTl07Cit9IFFPQUNoYW5uZWw7 CisKK3R5cGVkZWYgc3RydWN0IFFPQUNvbnRleHQgeworICAgIFFPQUNoYW5uZWwgKmNoOworfSBR T0FDb250ZXh0OworCitzdGF0aWMgY29uc3QgaW50MTZfdCBxb2FfZGVxdWFudF90YWJbMTZdWzhd ID0geworICAgIHsgICAxLCAgICAtMSwgICAgMywgICAgLTMsICAgIDUsICAgIC01LCAgICAgNywg ICAgIC03fSwKKyAgICB7ICAgNSwgICAgLTUsICAgMTgsICAgLTE4LCAgIDMyLCAgIC0zMiwgICAg NDksICAgIC00OX0sCisgICAgeyAgMTYsICAgLTE2LCAgIDUzLCAgIC01MywgICA5NSwgICAtOTUs ICAgMTQ3LCAgIC0xNDd9LAorICAgIHsgIDM0LCAgIC0zNCwgIDExMywgIC0xMTMsICAyMDMsICAt MjAzLCAgIDMxNSwgICAtMzE1fSwKKyAgICB7ICA2MywgICAtNjMsICAyMTAsICAtMjEwLCAgMzc4 LCAgLTM3OCwgICA1ODgsICAgLTU4OH0sCisgICAgeyAxMDQsICAtMTA0LCAgMzQ1LCAgLTM0NSwg IDYyMSwgIC02MjEsICAgOTY2LCAgIC05NjZ9LAorICAgIHsgMTU4LCAgLTE1OCwgIDUyOCwgIC01 MjgsICA5NTAsICAtOTUwLCAgMTQ3NywgIC0xNDc3fSwKKyAgICB7IDIyOCwgIC0yMjgsICA3NjAs ICAtNzYwLCAxMzY4LCAtMTM2OCwgIDIxMjgsICAtMjEyOH0sCisgICAgeyAzMTYsICAtMzE2LCAx MDUzLCAtMTA1MywgMTg5NSwgLTE4OTUsICAyOTQ3LCAgLTI5NDd9LAorICAgIHsgNDIyLCAgLTQy MiwgMTQwNSwgLTE0MDUsIDI1MjksIC0yNTI5LCAgMzkzNCwgIC0zOTM0fSwKKyAgICB7IDU0OCwg IC01NDgsIDE4MjgsIC0xODI4LCAzMjkwLCAtMzI5MCwgIDUxMTcsICAtNTExN30sCisgICAgeyA2 OTYsICAtNjk2LCAyMzIwLCAtMjMyMCwgNDE3NiwgLTQxNzYsICA2NDk2LCAgLTY0OTZ9LAorICAg IHsgODY4LCAgLTg2OCwgMjg5MywgLTI4OTMsIDUyMDcsIC01MjA3LCAgODA5OSwgIC04MDk5fSwK KyAgICB7MTA2NCwgLTEwNjQsIDM1NDgsIC0zNTQ4LCA2Mzg2LCAtNjM4NiwgIDk5MzMsICAtOTkz M30sCisgICAgezEyODYsIC0xMjg2LCA0Mjg4LCAtNDI4OCwgNzcxOCwgLTc3MTgsIDEyMDA1LCAt MTIwMDV9LAorICAgIHsxNTM2LCAtMTUzNiwgNTEyMCwgLTUxMjAsIDkyMTYsIC05MjE2LCAxNDMz NiwgLTE0MzM2fSwKK307CisKK3N0YXRpYyBhdl9jb2xkIGludCBxb2FfZGVjb2RlX2luaXQoQVZD b2RlY0NvbnRleHQgKmF2Y3R4KQoreworICAgIFFPQUNvbnRleHQgKnMgPSBhdmN0eC0+cHJpdl9k YXRhOworCisgICAgYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9TQU1QTEVfRk1UX1MxNjsKKworICAg IHMtPmNoID0gYXZfY2FsbG9jKGF2Y3R4LT5jaF9sYXlvdXQubmJfY2hhbm5lbHMsIHNpemVvZigq cy0+Y2gpKTsKKyAgICBpZiAoIXMtPmNoKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p OworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcW9hX2xtc19wcmVkaWN0KFFPQUNo YW5uZWwgKmxtcykKK3sKKyAgICBpbnQgcHJlZGljdGlvbiA9IDA7CisgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBRT0FfTE1TX0xFTjsgaSsrKQorICAgICAgICBwcmVkaWN0aW9uICs9IGxtcy0+d2Vp Z2h0c1tpXSAqIGxtcy0+aGlzdG9yeVtpXTsKKyAgICByZXR1cm4gcHJlZGljdGlvbiA+PiAxMzsK K30KKworc3RhdGljIHZvaWQgcW9hX2xtc191cGRhdGUoUU9BQ2hhbm5lbCAqbG1zLCBpbnQgc2Ft cGxlLCBpbnQgcmVzaWR1YWwpCit7CisgICAgaW50IGRlbHRhID0gcmVzaWR1YWwgPj4gNDsKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IFFPQV9MTVNfTEVOOyBpKyspCisgICAgICAgIGxtcy0+d2Vp Z2h0c1tpXSArPSBsbXMtPmhpc3RvcnlbaV0gPCAwID8gLWRlbHRhIDogZGVsdGE7CisgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBRT0FfTE1TX0xFTi0xOyBpKyspCisgICAgICAgIGxtcy0+aGlzdG9y eVtpXSA9IGxtcy0+aGlzdG9yeVtpKzFdOworICAgIGxtcy0+aGlzdG9yeVtRT0FfTE1TX0xFTi0x XSA9IHNhbXBsZTsKK30KKworc3RhdGljIGludCBxb2FfZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50ICpnb3RfZnJhbWVfcHRyLCBBVlBhY2tldCAqYXZwa3QpCit7CisgICAgUU9BQ29udGV4dCAq cyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgaW50IHJldCwgZnJhbWVfc2l6ZSwgbmJfY2hhbm5l bHM7CisgICAgR2V0Qnl0ZUNvbnRleHQgZ2I7CisgICAgaW50MTZfdCAqc2FtcGxlczsKKworICAg IGJ5dGVzdHJlYW0yX2luaXQoJmdiLCBhdnBrdC0+ZGF0YSwgYXZwa3QtPnNpemUpOworCisgICAg YXZjdHgtPmNoX2xheW91dC5uYl9jaGFubmVscyA9IG5iX2NoYW5uZWxzID0gYnl0ZXN0cmVhbTJf Z2V0X2J5dGUoJmdiKTsKKyAgICBhdmN0eC0+c2FtcGxlX3JhdGUgPSBieXRlc3RyZWFtMl9nZXRf YmUyNCgmZ2IpOworICAgIGZyYW1lLT5uYl9zYW1wbGVzID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTYo JmdiKTsKKyAgICBmcmFtZV9zaXplID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTYoJmdiKTsKKyAgICBp ZiAoZnJhbWVfc2l6ZSA+IGF2cGt0LT5zaXplKQorICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKKworICAgIGlmIChmcmFtZV9zaXplIDwgOCArIFFPQV9MTVNfTEVOICogNCAqIG5i X2NoYW5uZWxzKQorICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIGlm ICgocmV0ID0gZmZfZ2V0X2J1ZmZlcihhdmN0eCwgZnJhbWUsIDApKSA8IDApCisgICAgICAgIHJl dHVybiByZXQ7CisgICAgc2FtcGxlcyA9IChpbnQxNl90ICopZnJhbWUtPmRhdGFbMF07CisKKyAg ICBmb3IgKGludCBjaCA9IDA7IGNoIDwgbmJfY2hhbm5lbHM7IGNoKyspIHsKKyAgICAgICAgUU9B Q2hhbm5lbCAqcWNoID0gJnMtPmNoW2NoXTsKKworICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8 IFFPQV9MTVNfTEVOOyBuKyspCisgICAgICAgICAgICBxY2gtPmhpc3Rvcnlbbl0gPSBzaWduX2V4 dGVuZChieXRlc3RyZWFtMl9nZXRfYmUxNigmZ2IpLCAxNik7CisgICAgICAgIGZvciAoaW50IG4g PSAwOyBuIDwgUU9BX0xNU19MRU47IG4rKykKKyAgICAgICAgICAgIHFjaC0+d2VpZ2h0c1tuXSA9 IHNpZ25fZXh0ZW5kKGJ5dGVzdHJlYW0yX2dldF9iZTE2KCZnYiksIDE2KTsKKyAgICB9CisKKyAg ICBmb3IgKGludCBzYW1wbGVfaW5kZXggPSAwOyBzYW1wbGVfaW5kZXggPCBmcmFtZS0+bmJfc2Ft cGxlcyAqIG5iX2NoYW5uZWxzOworICAgICAgICAgc2FtcGxlX2luZGV4ICs9IFFPQV9TTElDRV9M RU4pIHsKKyAgICAgICAgZm9yIChpbnQgY2ggPSAwOyBjaCA8IG5iX2NoYW5uZWxzOyBjaCsrKSB7 CisgICAgICAgICAgICBRT0FDaGFubmVsICpsbXMgPSAmcy0+Y2hbY2hdOworICAgICAgICAgICAg dWludDY0X3Qgc2xpY2UgPSBieXRlc3RyZWFtMl9nZXRfYmU2NHUoJmdiKTsKKyAgICAgICAgICAg IGludCBzY2FsZWZhY3RvciA9IChzbGljZSA+PiA2MCkgJiAweGY7CisgICAgICAgICAgICBpbnQg c2xpY2Vfc3RhcnQgPSBzYW1wbGVfaW5kZXggKiBuYl9jaGFubmVscyArIGNoOworICAgICAgICAg ICAgaW50IHNsaWNlX2VuZCA9IGF2X2NsaXAoc2FtcGxlX2luZGV4ICsgUU9BX1NMSUNFX0xFTiwg MCwgZnJhbWUtPm5iX3NhbXBsZXMpICogbmJfY2hhbm5lbHMgKyBjaDsKKworICAgICAgICAgICAg Zm9yIChpbnQgc2kgPSBzbGljZV9zdGFydDsgc2kgPCBzbGljZV9lbmQ7IHNpICs9IG5iX2NoYW5u ZWxzKSB7CisgICAgICAgICAgICAgICAgaW50IHByZWRpY3RlZCA9IHFvYV9sbXNfcHJlZGljdChs bXMpOworICAgICAgICAgICAgICAgIGludCBxdWFudGl6ZWQgPSAoc2xpY2UgPj4gNTcpICYgMHg3 OworICAgICAgICAgICAgICAgIGludCBkZXF1YW50aXplZCA9IHFvYV9kZXF1YW50X3RhYltzY2Fs ZWZhY3Rvcl1bcXVhbnRpemVkXTsKKyAgICAgICAgICAgICAgICBpbnQgcmVjb25zdHJ1Y3RlZCA9 IGF2X2NsaXBfaW50MTYocHJlZGljdGVkICsgZGVxdWFudGl6ZWQpOworCisgICAgICAgICAgICAg ICAgc2FtcGxlc1tzaV0gPSByZWNvbnN0cnVjdGVkOworICAgICAgICAgICAgICAgIHNsaWNlIDw8 PSAzOworCisgICAgICAgICAgICAgICAgcW9hX2xtc191cGRhdGUobG1zLCByZWNvbnN0cnVjdGVk LCBkZXF1YW50aXplZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAq Z290X2ZyYW1lX3B0ciA9IDE7CisKKyAgICByZXR1cm4gYXZwa3QtPnNpemU7Cit9CisKK3N0YXRp YyBhdl9jb2xkIGludCBxb2FfZGVjb2RlX2VuZChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCit7Cisg ICAgUU9BQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgYXZfZnJlZXAoJnMtPmNo KTsKKyAgICByZXR1cm4gMDsKK30KKworY29uc3QgRkZDb2RlYyBmZl9xb2FfZGVjb2RlciA9IHsK KyAgICAucC5uYW1lICAgICAgICAgPSAicW9hIiwKKyAgICBDT0RFQ19MT05HX05BTUUoIlFPQSAo UXVpdGUgT0sgQXVkaW8pIiksCisgICAgLnAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX0FV RElPLAorICAgIC5wLmlkICAgICAgICAgICA9IEFWX0NPREVDX0lEX1FPQSwKKyAgICAucHJpdl9k YXRhX3NpemUgPSBzaXplb2YoUU9BQ29udGV4dCksCisgICAgLmluaXQgICAgICAgICAgID0gcW9h X2RlY29kZV9pbml0LAorICAgIEZGX0NPREVDX0RFQ09ERV9DQihxb2FfZGVjb2RlX2ZyYW1lKSwK KyAgICAuY2xvc2UgICAgICAgICAgPSBxb2FfZGVjb2RlX2VuZCwKKyAgICAucC5jYXBhYmlsaXRp ZXMgPSBBVl9DT0RFQ19DQVBfQ0hBTk5FTF9DT05GIHwKKyAgICAgICAgICAgICAgICAgICAgICBB Vl9DT0RFQ19DQVBfRFIxLAorICAgIC5wLnNhbXBsZV9mbXRzICA9IChjb25zdCBlbnVtIEFWU2Ft cGxlRm9ybWF0W10pIHsgQVZfU0FNUExFX0ZNVF9TMTYsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVl9TQU1QTEVfRk1UX05PTkUgfSwKK307 Ci0tIAoyLjQyLjAKCg== --000000000000354ca206060d91c5 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avformat-add-QOA-demuxer.patch" Content-Disposition: attachment; filename="0001-avformat-add-QOA-demuxer.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lmwjzku21 RnJvbSAxYmY1YTkxNzA3NDVjZGNmMjVkZjllMTQ0ZmQzMWJiMTcyYWZkYmQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjMgU2VwIDIwMjMgMTY6Mzg6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gYXZm 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== --000000000000354ca206060d91c5 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". --000000000000354ca206060d91c5--