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 2FFCD46C5F for ; Mon, 7 Aug 2023 17:50:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A486568C609; Mon, 7 Aug 2023 20:50:25 +0300 (EEST) Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5D32A68C52B for ; Mon, 7 Aug 2023 20:50:19 +0300 (EEST) Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-2b9bf52cd08so74600411fa.2 for ; Mon, 07 Aug 2023 10:50:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ylo-ph.20221208.gappssmtp.com; s=20221208; t=1691430618; x=1692035418; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=a5doMIxQwcZF+JWd5U4Ot/DE9t1rlqvbJ1HSPxs2OOY=; b=C8tc2ocTkb+tvX714pNrv13YE0AHAg/SJvZEdxbrhUEG+TSB6wMAFTFHZBNEA5f8BR jD3A0yN397Ro7PE0sDLWsJJLax8E4PDOSrRyGF8Q1rny97cDNSRNQhCEa1aBgWxdO8BU UJ74Xz+CMlubGxP77FvbmTExUc1BSOvOXKaoOxc+D+EV/GyrkJNR8ondZhwbG4dVx28n EGMO8NBWQwvpRfZjy4gSioCPflKr6FcMHgRSJZKEybIOlCYmU55cZBUmdQZl8pY+2rJ2 BNTnTsIotAleSPUH8z9Ffl1mBJVB+ShbhDYqq3KNaoR07t1lrlfcfPZiOFaqbuTwS6Sn dKZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691430618; x=1692035418; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=a5doMIxQwcZF+JWd5U4Ot/DE9t1rlqvbJ1HSPxs2OOY=; b=G/f+X02nLKuSeKP+ozKf1w8Izli2qKwlt0x21HX7wpl7tP5WcPASbAIVgxVg+xe3Tm xImb19NYoCs+gs2F7farmnSTz8EqF8czbakS0SEA50fC79kF7RI76GthWDGvXwIaw5Te oJILZKqpQee8tS+62ecUJKTrCj4lywiyeNIKfje9xmNprAhGWeoxAaKNhJUkWxANSTGC g+Hzc0WIIuUtLWj/+6FjDsLfd2B145S2FmMF9sLH/3k4UMT7m+4wVIPv3kmoQIcKQst5 fQJyWnViG7OFTyxTXQWS8Dg76WW8J5oYi+pfaf4Cc+FfkMO9z4vDKjCyzm4PNNzSRO9G LVJA== X-Gm-Message-State: AOJu0YyUs3VMn/880imEQbHPr8ewxWMUNQ0Hx9ZOwaTgBHfvnQuthr0D TkxHARF5XnQhenl/RSDyniCTOZ72pbmrY05OpNCBGHbgIuiuEt18p74= X-Google-Smtp-Source: AGHT+IE2EpFfkSqRhXY6llmf55RdN9rDxC5XWUPP2qWnKufNOF6U/Bosi8SPTuAUpAL1EXoX0oQG2Ujhtq90FrlDiRg= X-Received: by 2002:a05:651c:14c:b0:2b6:fa3f:9230 with SMTP id c12-20020a05651c014c00b002b6fa3f9230mr6890591ljd.46.1691430617729; Mon, 07 Aug 2023 10:50:17 -0700 (PDT) MIME-Version: 1.0 From: Kyle Swanson Date: Mon, 7 Aug 2023 10:50:06 -0700 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000228c9a060258e164" Subject: [FFmpeg-devel] [PATCH] avfilter: add libvmaf_cuda 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: --000000000000228c9a060258e164 Content-Type: text/plain; charset="UTF-8" Hi, Adds the new avfilter `libvmaf_cuda`, integrating the new vmaf_cuda_* apis in libvmaf. Patch attached. Thanks, Kyle --000000000000228c9a060258e164 Content-Type: application/octet-stream; name="0001-avfilter-add-libvmaf_cuda.patch" Content-Disposition: attachment; filename="0001-avfilter-add-libvmaf_cuda.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ll161l3k0 RnJvbSAyNjY1YjdkZGFlZmU2NzM5YmZlZWY0NTczMTgzOTgxNTgyYmRiOTk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLeWxlIFN3YW5zb24gPGtzd2Fuc29uQG5ldGZsaXguY29tPgpE YXRlOiBNb24sIDcgQXVnIDIwMjMgMTA6Mzg6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBhdmZp bHRlcjogYWRkIGxpYnZtYWZfY3VkYQoKLS0tCiBjb25maWd1cmUgICAgICAgICAgICAgICAgfCAg IDQgKwogbGliYXZmaWx0ZXIvTWFrZWZpbGUgICAgIHwgICAxICsKIGxpYmF2ZmlsdGVyL2FsbGZp bHRlcnMuYyB8ICAgMSArCiBsaWJhdmZpbHRlci92Zl9saWJ2bWFmLmMgfCAyMTEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDIxNiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmln dXJlCmluZGV4IGQ5MzcyYzViZTYuLjM4NzIyMWMzMTQgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQor KysgYi9jb25maWd1cmUKQEAgLTI4Niw2ICsyODYsNyBAQCBFeHRlcm5hbCBsaWJyYXJ5IHN1cHBv cnQ6CiAgIC0tZW5hYmxlLWxpYnY0bDIgICAgICAgICBlbmFibGUgbGlidjRsMi92NGwtdXRpbHMg W25vXQogICAtLWVuYWJsZS1saWJ2aWRzdGFiICAgICAgZW5hYmxlIHZpZGVvIHN0YWJpbGl6YXRp b24gdXNpbmcgdmlkLnN0YWIgW25vXQogICAtLWVuYWJsZS1saWJ2bWFmICAgICAgICAgZW5hYmxl IHZtYWYgZmlsdGVyIHZpYSBsaWJ2bWFmIFtub10KKyAgLS1lbmFibGUtbGlidm1hZi1jdWRhICAg IGVuYWJsZSBjdWRhIHZtYWYgZmlsdGVyIHZpYSBsaWJ2bWFmIFtub10KICAgLS1lbmFibGUtbGli dm8tYW1yd2JlbmMgIGVuYWJsZSBBTVItV0IgZW5jb2RpbmcgdmlhIGxpYnZvLWFtcndiZW5jIFtu b10KICAgLS1lbmFibGUtbGlidm9yYmlzICAgICAgIGVuYWJsZSBWb3JiaXMgZW4vZGVjb2Rpbmcg dmlhIGxpYnZvcmJpcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZSBpbXBsZW1l bnRhdGlvbiBleGlzdHMgW25vXQpAQCAtMTkwMiw2ICsxOTAzLDcgQEAgRVhURVJOQUxfTElCUkFS WV9MSVNUPSIKICAgICBsaWJ1YXZzM2QKICAgICBsaWJ2NGwyCiAgICAgbGlidm1hZgorICAgIGxp YnZtYWZfY3VkYQogICAgIGxpYnZvcmJpcwogICAgIGxpYnZweAogICAgIGxpYndlYnAKQEAgLTM4 MzAsNiArMzgzMiw3IEBAIHZmbGlwX3Z1bGthbl9maWx0ZXJfZGVwcz0idnVsa2FuIHNwaXJ2X2Nv bXBpbGVyIgogdmlkc3RhYmRldGVjdF9maWx0ZXJfZGVwcz0ibGlidmlkc3RhYiIKIHZpZHN0YWJ0 cmFuc2Zvcm1fZmlsdGVyX2RlcHM9ImxpYnZpZHN0YWIiCiBsaWJ2bWFmX2ZpbHRlcl9kZXBzPSJs aWJ2bWFmIgorbGlidm1hZl9jdWRhX2ZpbHRlcl9kZXBzPSJsaWJ2bWFmIgogem1xX2ZpbHRlcl9k ZXBzPSJsaWJ6bXEiCiB6b29tcGFuX2ZpbHRlcl9kZXBzPSJzd3NjYWxlIgogenNjYWxlX2ZpbHRl cl9kZXBzPSJsaWJ6aW1nIGNvbnN0X25hbiIKQEAgLTY4MDYsNiArNjgwOSw3IEBAIGVuYWJsZWQg bGlidWF2czNkICAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYnVhdnMzZCAidWF2czNk ID49IDEuMS40MSIgdWF2CiBlbmFibGVkIGxpYnY0bDIgICAgICAgICAgICYmIHJlcXVpcmVfcGtn X2NvbmZpZyBsaWJ2NGwyIGxpYnY0bDIgbGlidjRsMi5oIHY0bDJfaW9jdGwKIGVuYWJsZWQgbGli dmlkc3RhYiAgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYnZpZHN0YWIgInZpZHN0YWIg Pj0gMC45OCIgdmlkLnN0YWIvbGlidmlkc3RhYi5oIHZzTW90aW9uRGV0ZWN0SW5pdAogZW5hYmxl ZCBsaWJ2bWFmICAgICAgICAgICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlidm1hZiAibGlidm1h ZiA+PSAyLjAuMCIgbGlidm1hZi5oIHZtYWZfaW5pdAorZW5hYmxlZCBsaWJ2bWFmX2N1ZGEgICAg ICAmJiByZXF1aXJlX3BrZ19jb25maWcgbGlidm1hZiAibGlidm1hZiA+PSAyLjAuMCIgbGlidm1h Zi5oIHZtYWZfaW5pdAogZW5hYmxlZCBsaWJ2b19hbXJ3YmVuYyAgICAmJiByZXF1aXJlIGxpYnZv X2FtcndiZW5jIHZvLWFtcndiZW5jL2VuY19pZi5oIEVfSUZfaW5pdCAtbHZvLWFtcndiZW5jCiBl bmFibGVkIGxpYnZvcmJpcyAgICAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBsaWJ2b3JiaXMg dm9yYmlzIHZvcmJpcy9jb2RlYy5oIHZvcmJpc19pbmZvX2luaXQgJiYKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVxdWlyZV9wa2dfY29uZmlnIGxpYnZvcmJpc2VuYyB2b3JiaXNlbmMg dm9yYmlzL3ZvcmJpc2VuYy5oIHZvcmJpc19lbmNvZGVfaW5pdApkaWZmIC0tZ2l0IGEvbGliYXZm aWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZpbHRlci9NYWtlZmlsZQppbmRleCAzMGEwZTIyZWY4Li5j MTQwNWFlOTI0IDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci9NYWtlZmlsZQorKysgYi9saWJhdmZp bHRlci9NYWtlZmlsZQpAQCAtMzYxLDYgKzM2MSw3IEBAIE9CSlMtJChDT05GSUdfTEVOU0NPUlJF Q1RJT05fRklMVEVSKSAgICAgICAgICs9IHZmX2xlbnNjb3JyZWN0aW9uLm8KIE9CSlMtJChDT05G SUdfTEVOU0ZVTl9GSUxURVIpICAgICAgICAgICAgICAgICs9IHZmX2xlbnNmdW4ubwogT0JKUy0k KENPTkZJR19MSUJQTEFDRUJPX0ZJTFRFUikgICAgICAgICAgICAgKz0gdmZfbGlicGxhY2Viby5v IHZ1bGthbi5vIHZ1bGthbl9maWx0ZXIubwogT0JKUy0kKENPTkZJR19MSUJWTUFGX0ZJTFRFUikg ICAgICAgICAgICAgICAgKz0gdmZfbGlidm1hZi5vIGZyYW1lc3luYy5vCitPQkpTLSQoQ09ORklH X0xJQlZNQUZfQ1VEQV9GSUxURVIpICAgICAgICAgICArPSB2Zl9saWJ2bWFmLm8gZnJhbWVzeW5j Lm8KIE9CSlMtJChDT05GSUdfTElNSVRESUZGX0ZJTFRFUikgICAgICAgICAgICAgICs9IHZmX2xp bWl0ZGlmZi5vIGZyYW1lc3luYy5vCiBPQkpTLSQoQ09ORklHX0xJTUlURVJfRklMVEVSKSAgICAg ICAgICAgICAgICArPSB2Zl9saW1pdGVyLm8KIE9CSlMtJChDT05GSUdfTE9PUF9GSUxURVIpICAg ICAgICAgICAgICAgICAgICs9IGZfbG9vcC5vCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9hbGxm aWx0ZXJzLmMgYi9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMKaW5kZXggMDg5YWQzYTBlZC4uODM0 OWJhOTQ2OSAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCisrKyBiL2xpYmF2 ZmlsdGVyL2FsbGZpbHRlcnMuYwpAQCAtMzM3LDYgKzMzNyw3IEBAIGV4dGVybiBjb25zdCBBVkZp bHRlciBmZl92Zl9sZW5zY29ycmVjdGlvbjsKIGV4dGVybiBjb25zdCBBVkZpbHRlciBmZl92Zl9s ZW5zZnVuOwogZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2xpYnBsYWNlYm87CiBleHRlcm4g Y29uc3QgQVZGaWx0ZXIgZmZfdmZfbGlidm1hZjsKK2V4dGVybiBjb25zdCBBVkZpbHRlciBmZl92 Zl9saWJ2bWFmX2N1ZGE7CiBleHRlcm4gY29uc3QgQVZGaWx0ZXIgZmZfdmZfbGltaXRkaWZmOwog ZXh0ZXJuIGNvbnN0IEFWRmlsdGVyIGZmX3ZmX2xpbWl0ZXI7CiBleHRlcm4gY29uc3QgQVZGaWx0 ZXIgZmZfdmZfbG9vcDsKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2xpYnZtYWYuYyBiL2xp YmF2ZmlsdGVyL3ZmX2xpYnZtYWYuYwppbmRleCAyNTg2ZjM3ZDk5Li4zM2ZjYmNiNGFlIDEwMDY0 NAotLS0gYS9saWJhdmZpbHRlci92Zl9saWJ2bWFmLmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfbGli dm1hZi5jCkBAIC0yNCw2ICsyNCw4IEBACiAgKiBDYWxjdWxhdGUgdGhlIFZNQUYgYmV0d2VlbiB0 d28gaW5wdXQgdmlkZW9zLgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKwogI2luY2x1ZGUg PGxpYnZtYWYuaD4KIAogI2luY2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgpAQCAtMzYsNiAr MzgsMTMgQEAKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgInZpZGVvLmgiCiAKKyNp ZmRlZiBDT05GSUdfTElCVk1BRl9DVURBCisjaW5jbHVkZSA8bGlidm1hZl9jdWRhLmg+CisKKyNp bmNsdWRlICJsaWJhdnV0aWwvaHdjb250ZXh0LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2h3Y29u dGV4dF9jdWRhX2ludGVybmFsLmgiCisjZW5kaWYKKwogdHlwZWRlZiBzdHJ1Y3QgTElCVk1BRkNv bnRleHQgewogICAgIGNvbnN0IEFWQ2xhc3MgKmNsYXNzOwogICAgIEZGRnJhbWVTeW5jIGZzOwpA QCAtNTgsNiArNjcsNyBAQCB0eXBlZGVmIHN0cnVjdCBMSUJWTUFGQ29udGV4dCB7CiAgICAgdW5z aWduZWQgbW9kZWxfY250OwogICAgIHVuc2lnbmVkIGZyYW1lX2NudDsKICAgICB1bnNpZ25lZCBi cGM7CisgICAgVm1hZkN1ZGFTdGF0ZSAqY3Vfc3RhdGU7CiB9IExJQlZNQUZDb250ZXh0OwogCiAj ZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihMSUJWTUFGQ29udGV4dCwgeCkKQEAgLTY4Miw3ICs2 OTIsOCBAQCBzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgbGlidm1hZl9pbnB1dHNbXSA9IHsKICAg ICB7CiAgICAgICAgIC5uYW1lICAgICAgICAgPSAibWFpbiIsCiAgICAgICAgIC50eXBlICAgICAg ICAgPSBBVk1FRElBX1RZUEVfVklERU8sCi0gICAgfSx7CisgICAgfSwKKyAgICB7CiAgICAgICAg IC5uYW1lICAgICAgICAgPSAicmVmZXJlbmNlIiwKICAgICAgICAgLnR5cGUgICAgICAgICA9IEFW TUVESUFfVFlQRV9WSURFTywKICAgICAgICAgLmNvbmZpZ19wcm9wcyA9IGNvbmZpZ19pbnB1dF9y ZWYsCkBAIC03MTAsMyArNzIxLDIwMSBAQCBjb25zdCBBVkZpbHRlciBmZl92Zl9saWJ2bWFmID0g ewogICAgIEZJTFRFUl9PVVRQVVRTKGxpYnZtYWZfb3V0cHV0cyksCiAgICAgRklMVEVSX1BJWEZN VFNfQVJSQVkocGl4X2ZtdHMpLAogfTsKKworI2lmZGVmIENPTkZJR19MSUJWTUFGX0NVREEKK3N0 YXRpYyBjb25zdCBlbnVtIEFWUGl4ZWxGb3JtYXQgc3VwcG9ydGVkX2Zvcm1hdHNbXSA9IHsKKyAg ICBBVl9QSVhfRk1UX1lVVjQyMFAsCisgICAgQVZfUElYX0ZNVF9ZVVY0NDRQMTYsCit9OworCitz dGF0aWMgaW50IGZvcm1hdF9pc19zdXBwb3J0ZWQoZW51bSBBVlBpeGVsRm9ybWF0IGZtdCkKK3sK KyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhzdXBwb3J0 ZWRfZm9ybWF0cyk7IGkrKykKKyAgICAgICAgaWYgKHN1cHBvcnRlZF9mb3JtYXRzW2ldID09IGZt dCkKKyAgICAgICAgICAgIHJldHVybiAxOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGNvbmZpZ19wcm9wc19jdWRhKEFWRmlsdGVyTGluayAqb3V0bGluaykKK3sKKyAgICBpbnQgZXJy OworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gb3V0bGluay0+c3JjOworICAgIExJQlZNQUZD b250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIEFWRmlsdGVyTGluayAqaW5saW5rID0gY3R4LT5p bnB1dHNbMF07CisgICAgQVZIV0ZyYW1lc0NvbnRleHQgKmZyYW1lc19jdHggPSAoQVZIV0ZyYW1l c0NvbnRleHQqKSBpbmxpbmstPmh3X2ZyYW1lc19jdHgtPmRhdGE7CisgICAgQVZDVURBRGV2aWNl Q29udGV4dCAqZGV2aWNlX2h3Y3R4ID0gZnJhbWVzX2N0eC0+ZGV2aWNlX2N0eC0+aHdjdHg7Cisg ICAgQ1Vjb250ZXh0IGN1X2N0eCA9IGRldmljZV9od2N0eC0+Y3VkYV9jdHg7CisgICAgY29uc3Qg QVZQaXhGbXREZXNjcmlwdG9yICpkZXNjID0gYXZfcGl4X2ZtdF9kZXNjX2dldChmcmFtZXNfY3R4 LT5zd19mb3JtYXQpOworCisgICAgVm1hZkNvbmZpZ3VyYXRpb24gY2ZnID0geworICAgICAgICAu bG9nX2xldmVsID0gbG9nX2xldmVsX21hcChhdl9sb2dfZ2V0X2xldmVsKCkpLAorICAgICAgICAu bl9zdWJzYW1wbGUgPSBzLT5uX3N1YnNhbXBsZSwKKyAgICAgICAgLm5fdGhyZWFkcyA9IHMtPm5f dGhyZWFkcywKKyAgICB9OworCisgICAgVm1hZkN1ZGFQaWN0dXJlQ29uZmlndXJhdGlvbiBjdWRh X3BpY19jZmcgPSB7CisgICAgICAgIC5waWNfcGFyYW1zID0geworICAgICAgICAgICAgLmJwYyA9 IGRlc2MtPmNvbXBbMF0uZGVwdGgsCisgICAgICAgICAgICAudyA9IGlubGluay0+dywKKyAgICAg ICAgICAgIC5oID0gaW5saW5rLT5oLAorICAgICAgICAgICAgLnBpeF9mbXQgPSBwaXhfZm10X21h cChmcmFtZXNfY3R4LT5zd19mb3JtYXQpLAorICAgICAgICB9LAorICAgICAgICAucGljX3ByZWFs bG9jX21ldGhvZCA9IFZNQUZfQ1VEQV9QSUNUVVJFX1BSRUFMTE9DQVRJT05fTUVUSE9EX0RFVklD RSwKKyAgICB9OworCisgICAgVm1hZkN1ZGFDb25maWd1cmF0aW9uIGN1ZGFfY2ZnID0geworICAg ICAgICAuY3VfY3R4ID0gY3VfY3R4LAorICAgIH07CisKKyAgICBpZiAoIWZvcm1hdF9pc19zdXBw b3J0ZWQoZnJhbWVzX2N0eC0+c3dfZm9ybWF0KSkgeworICAgICAgICBhdl9sb2cocywgQVZfTE9H X0VSUk9SLAorICAgICAgICAgICAgICAgIlVuc3VwcG9ydGVkIGlucHV0IGZvcm1hdDogJXNcbiIs IGRlc2MtPm5hbWUpOworICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOworICAgIH0KKwor ICAgIGVyciA9IHZtYWZfaW5pdCgmcy0+dm1hZiwgY2ZnKTsKKyAgICBpZiAoZXJyKQorICAgICAg ICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOworCisgICAgZXJyID0gdm1hZl9jdWRhX3N0YXRlX2lu aXQoJnMtPmN1X3N0YXRlLCBjdWRhX2NmZyk7CisgICAgaWYgKGVycikKKyAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlOVkFMKTsKKworICAgIGVyciA9IHZtYWZfY3VkYV9pbXBvcnRfc3RhdGUocy0+ dm1hZiwgcy0+Y3Vfc3RhdGUpOworICAgIGlmIChlcnIpCisgICAgICAgIHJldHVybiBBVkVSUk9S KEVJTlZBTCk7CisKKyAgICBlcnIgPSB2bWFmX2N1ZGFfcHJlYWxsb2NhdGVfcGljdHVyZXMocy0+ dm1hZiwgY3VkYV9waWNfY2ZnKTsKKyAgICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJuIGVy cjsKKworICAgIGVyciA9IHBhcnNlX2RlcHJlY2F0ZWRfb3B0aW9ucyhjdHgpOworICAgIGlmIChl cnIpCisgICAgICAgIHJldHVybiBlcnI7CisKKyAgICBlcnIgPSBwYXJzZV9tb2RlbHMoY3R4KTsK KyAgICBpZiAoZXJyKQorICAgICAgICByZXR1cm4gZXJyOworCisgICAgZXJyID0gcGFyc2VfZmVh dHVyZXMoY3R4KTsKKyAgICBpZiAoZXJyKQorICAgICAgICByZXR1cm4gZXJyOworCisgICAgcmV0 dXJuIGNvbmZpZ19vdXRwdXQob3V0bGluayk7Cit9CisKK3N0YXRpYyBpbnQgY29weV9waWN0dXJl X2RhdGFfY3VkYShWbWFmQ29udGV4dCogdm1hZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBVkNVREFEZXZpY2VDb250ZXh0KiBkZXZpY2VfaHdjdHgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQVZGcmFtZSogc3JjLCBWbWFmUGljdHVyZSogZHN0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQaXhlbEZvcm1hdCBwaXhfZm10 KQoreworICAgIGNvbnN0IEFWUGl4Rm10RGVzY3JpcHRvciAqcGl4X2Rlc2MgPSBhdl9waXhfZm10 X2Rlc2NfZ2V0KHBpeF9mbXQpOworICAgIEN1ZGFGdW5jdGlvbnMgKmN1ID0gZGV2aWNlX2h3Y3R4 LT5pbnRlcm5hbC0+Y3VkYV9kbDsKKworICAgIENVREFfTUVNQ1BZMkQgbSA9IHsKKyAgICAgICAg LnNyY01lbW9yeVR5cGUgPSBDVV9NRU1PUllUWVBFX0RFVklDRSwKKyAgICAgICAgLmRzdE1lbW9y eVR5cGUgPSBDVV9NRU1PUllUWVBFX0RFVklDRSwKKyAgICB9OworCisgICAgaW50IGVyciA9IHZt YWZfY3VkYV9mZXRjaF9wcmVhbGxvY2F0ZWRfcGljdHVyZSh2bWFmLCBkc3QpOworICAgIGlmIChl cnIpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICBlcnIgPSBjdS0+Y3VD dHhQdXNoQ3VycmVudChkZXZpY2VfaHdjdHgtPmN1ZGFfY3R4KTsKKyAgICBpZiAoZXJyKQorICAg ICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg aSA8IHBpeF9kZXNjLT5uYl9jb21wb25lbnRzOyBpKyspIHsKKyAgICAgICAgbS5zcmNEZXZpY2Ug PSAoQ1VkZXZpY2VwdHIpIHNyYy0+ZGF0YVtpXTsKKyAgICAgICAgbS5zcmNQaXRjaCA9IHNyYy0+ bGluZXNpemVbaV07CisgICAgICAgIG0uZHN0RGV2aWNlID0gKENVZGV2aWNlcHRyKSBkc3QtPmRh dGFbaV07CisgICAgICAgIG0uZHN0UGl0Y2ggPSBkc3QtPnN0cmlkZVtpXTsKKyAgICAgICAgbS5X aWR0aEluQnl0ZXMgPSBkc3QtPndbaV0gKiAoKGRzdC0+YnBjICsgNykgLyA4KTsKKyAgICAgICAg bS5IZWlnaHQgPSBkc3QtPmhbaV07CisKKyAgICAgICAgZXJyID0gY3UtPmN1TWVtY3B5MkQoJm0p OworICAgICAgICBpZiAoZXJyKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsK KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZXJyID0gY3UtPmN1Q3R4UG9wQ3VycmVudChO VUxMKTsKKyAgICBpZiAoZXJyKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisg ICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZG9fdm1hZl9jdWRhKEZGRnJhbWVTeW5jKiBm cykKK3sKKyAgICBBVkZpbHRlckNvbnRleHQqIGN0eCA9IGZzLT5wYXJlbnQ7CisgICAgTElCVk1B RkNvbnRleHQqIHMgPSBjdHgtPnByaXY7CisgICAgQVZGaWx0ZXJMaW5rICppbmxpbmsgPSBjdHgt PmlucHV0c1swXTsKKyAgICBBVkhXRnJhbWVzQ29udGV4dCAqZnJhbWVzX2N0eCA9IChBVkhXRnJh bWVzQ29udGV4dCopIGlubGluay0+aHdfZnJhbWVzX2N0eC0+ZGF0YTsKKyAgICBBVkNVREFEZXZp Y2VDb250ZXh0ICpkZXZpY2VfaHdjdHggPSBmcmFtZXNfY3R4LT5kZXZpY2VfY3R4LT5od2N0eDsK KyAgICBWbWFmUGljdHVyZSBwaWNfcmVmLCBwaWNfZGlzdDsKKyAgICBBVkZyYW1lICpyZWYsICpk aXN0OworCisgICAgaW50IGVyciA9IDA7CisKKyAgICBlcnIgPSBmZl9mcmFtZXN5bmNfZHVhbGlu cHV0X2dldChmcywgJmRpc3QsICZyZWYpOworICAgIGlmIChlcnIgPCAwKQorICAgICAgICByZXR1 cm4gZXJyOworICAgIGlmIChjdHgtPmlzX2Rpc2FibGVkIHx8ICFyZWYpCisgICAgICAgIHJldHVy biBmZl9maWx0ZXJfZnJhbWUoY3R4LT5vdXRwdXRzWzBdLCBkaXN0KTsKKworICAgIGVyciA9IGNv cHlfcGljdHVyZV9kYXRhX2N1ZGEocy0+dm1hZiwgZGV2aWNlX2h3Y3R4LCByZWYsICZwaWNfcmVm LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVzX2N0eC0+c3dfZm9ybWF0 KTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJwcm9i bGVtIGR1cmluZyBjb3B5X3BpY3R1cmVfZGF0YV9jdWRhLlxuIik7CisgICAgICAgIHJldHVybiBB VkVSUk9SKEVOT01FTSk7CisgICAgfQorCisgICAgZXJyID0gY29weV9waWN0dXJlX2RhdGFfY3Vk YShzLT52bWFmLCBkZXZpY2VfaHdjdHgsIGRpc3QsICZwaWNfZGlzdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZyYW1lc19jdHgtPnN3X2Zvcm1hdCk7CisgICAgaWYgKGVycikg eworICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAicHJvYmxlbSBkdXJpbmcgY29weV9w aWN0dXJlX2RhdGFfY3VkYS5cbiIpOworICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwor ICAgIH0KKworICAgIGVyciA9IHZtYWZfcmVhZF9waWN0dXJlcyhzLT52bWFmLCAmcGljX3JlZiwg JnBpY19kaXN0LCBzLT5mcmFtZV9jbnQrKyk7CisgICAgaWYgKGVycikgeworICAgICAgICBhdl9s b2cocywgQVZfTE9HX0VSUk9SLCAicHJvYmxlbSBkdXJpbmcgdm1hZl9yZWFkX3BpY3R1cmVzLlxu Iik7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgfQorCisgICAgcmV0dXJu IGZmX2ZpbHRlcl9mcmFtZShjdHgtPm91dHB1dHNbMF0sIGRpc3QpOworfQorCitzdGF0aWMgYXZf Y29sZCBpbnQgaW5pdF9jdWRhKEFWRmlsdGVyQ29udGV4dCAqY3R4KQoreworICAgIExJQlZNQUZD b250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIHMtPmZzLm9uX2V2ZW50ID0gZG9fdm1hZl9jdWRh OworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgbGlidm1hZl9v dXRwdXRzX2N1ZGFbXSA9IHsKKyAgICB7CisgICAgICAgIC5uYW1lICAgICAgICAgPSAiZGVmYXVs dCIsCisgICAgICAgIC50eXBlICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCisgICAgICAg IC5jb25maWdfcHJvcHMgPSBjb25maWdfcHJvcHNfY3VkYSwKKyAgICB9LAorfTsKKworY29uc3Qg QVZGaWx0ZXIgZmZfdmZfbGlidm1hZl9jdWRhID0geworICAgIC5uYW1lICAgICAgICAgICA9ICJs aWJ2bWFmX2N1ZGEiLAorICAgIC5kZXNjcmlwdGlvbiAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxM KCJDYWxjdWxhdGUgdGhlIFZNQUYgYmV0d2VlbiB0d28gdmlkZW8gc3RyZWFtcy4iKSwKKyAgICAu cHJlaW5pdCAgICAgICAgPSBsaWJ2bWFmX2ZyYW1lc3luY19wcmVpbml0LAorICAgIC5pbml0ICAg ICAgICAgICA9IGluaXRfY3VkYSwKKyAgICAudW5pbml0ICAgICAgICAgPSB1bmluaXQsCisgICAg LmFjdGl2YXRlICAgICAgID0gYWN0aXZhdGUsCisgICAgLnByaXZfc2l6ZSAgICAgID0gc2l6ZW9m KExJQlZNQUZDb250ZXh0KSwKKyAgICAucHJpdl9jbGFzcyAgICAgPSAmbGlidm1hZl9jbGFzcywK KyAgICBGSUxURVJfSU5QVVRTKGxpYnZtYWZfaW5wdXRzKSwKKyAgICBGSUxURVJfT1VUUFVUUyhs aWJ2bWFmX291dHB1dHNfY3VkYSksCisgICAgRklMVEVSX1NJTkdMRV9QSVhGTVQoQVZfUElYX0ZN VF9DVURBKSwKKyAgICAuZmxhZ3NfaW50ZXJuYWwgPSBGRl9GSUxURVJfRkxBR19IV0ZSQU1FX0FX QVJFLAorfTsKKyNlbmRpZgotLSAKMi4yNC4zIChBcHBsZSBHaXQtMTI4KQoK --000000000000228c9a060258e164 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". --000000000000228c9a060258e164--