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 A1F4B47352 for ; Tue, 5 Sep 2023 21:29:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1577D68C7D6; Wed, 6 Sep 2023 00:29:51 +0300 (EEST) Received: from mail-vs1-f53.google.com (mail-vs1-f53.google.com [209.85.217.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2671168C470 for ; Wed, 6 Sep 2023 00:29:44 +0300 (EEST) Received: by mail-vs1-f53.google.com with SMTP id ada2fe7eead31-44d4c3fa5beso1325481137.3 for ; Tue, 05 Sep 2023 14:29:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693949382; x=1694554182; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ud1iumWfZ4xLZD8DrBEyEHQqPlx88RmM2P1ZTrbTjrs=; b=SiAZhg2Xt8tyK9coUOqTUjsLMPxbZY5NT+oy98WuA50CmU+u80cJNdJi97/OU/RUcf 0ctxuwOD899bxGZ5ISjNJ69zoniZOyIdjdaG+vLOGe2bPdVbLCtyMUMuV6YvmH0Jn/aR cPA3ZqOwk0RBC0pawnFhlh6K1fBUbtkhl8EHHScNAmxw50SNSSvBvy/x5oCW8ORDrTqV YEftU06HXSHZHaO39P8R8BZdz7MlvBIkMWTr9OFFQJrKac8YnvtYVP76mTu4U0yy8S32 IUlHn420sqRahpoO0Hnp5dwQoNbSblRukYkAoyWAoNq8rUkugCDJLyAGh0SxNg5RWcyU MLOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693949382; x=1694554182; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ud1iumWfZ4xLZD8DrBEyEHQqPlx88RmM2P1ZTrbTjrs=; b=JwNYSgFz2TUqLeM/MX3putJBOnP13QVbVqIc4GC0vo48YhwOTxbBxjIfnnpcbaaNBI VeuTNgxsXkKm/cTSt2wKzl/n+O4qSPiISwkrwRMFdmA8RmM1c7r22Ltm1kSEXkgyMKPP YB+5V9Gqof06TaeUEFMqMDU5oeuWwElJBwHv0Z15yvK5oNoxNRpqcyJMXzR9rxPQJ/VN 9VcYRFXyToDggfgNzskGYtEywyzL43XazWN8/wRdTjNVo4UNx5TB25Pmjq7Dpo1c77p1 A/hH+74sIdN3EeJfh0T2/0GD4PTTY5Yu2nsN/Sbiz1WntqxQc2pMIKdKXq5Prx0Da9xd RJfA== X-Gm-Message-State: AOJu0YxgfWWs3vNILSNwa0yevlmgU5BKb6AyaCx1Zy1+Srh5jTqwMpMH CnmoeRK+r3Unm/Vsifbs2AbsdUgArReiXYe6MGfCSyK1p5Y= X-Google-Smtp-Source: AGHT+IHNmIi023kBp/n3kGGujiYyhNXGxboiuhSRmSH9JkbQWomh9O2U0MLGqRaehySh+nBowjxZ5VtFV7lpqyBkj7k= X-Received: by 2002:a67:e3d7:0:b0:44d:4385:1620 with SMTP id k23-20020a67e3d7000000b0044d43851620mr1092868vsm.12.1693949382412; Tue, 05 Sep 2023 14:29:42 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Tue, 5 Sep 2023 23:37:02 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000034fe9b0604a35394" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avformat: add CRI USM demuxer 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: --00000000000034fe9b0604a35394 Content-Type: text/plain; charset="UTF-8" Attached. --00000000000034fe9b0604a35394 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avformat-add-CRI-USM-demuxer.patch" Content-Disposition: attachment; filename="0001-avformat-add-CRI-USM-demuxer.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lm6tzbmm0 RnJvbSBmYzBmNTkyYTA0ZmZhOTliOTRiMTQwMjkwNWQwYmNmYjJiMTUyNzBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgNSBTZXAgMjAyMyAxNjo1MzozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGF2Zm9ybWF0 OiBhZGQgQ1JJIFVTTSBkZW11eGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1k YUBnbWFpbC5jb20+Ci0tLQogbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgIHwgICAxICsKIGxpYmF2 Zm9ybWF0L2FsbGZvcm1hdHMuYyB8ICAgMSArCiBsaWJhdmZvcm1hdC91c21kZWMuYyAgICAgfCAz MjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDMyOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmb3JtYXQvdXNt ZGVjLmMKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9NYWtlZmlsZSBiL2xpYmF2Zm9ybWF0L01h a2VmaWxlCmluZGV4IGNjMWIxMjM2MGEuLjMyOTA1NWNjZmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9y bWF0L01ha2VmaWxlCisrKyBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCkBAIC01ODgsNiArNTg4LDcg QEAgT0JKUy0kKENPTkZJR19UVFlfREVNVVhFUikgICAgICAgICAgICAgICArPSB0dHkubyBzYXVj ZS5vCiBPQkpTLSQoQ09ORklHX1RZX0RFTVVYRVIpICAgICAgICAgICAgICAgICs9IHR5Lm8KIE9C SlMtJChDT05GSUdfVFhEX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gdHhkLm8KIE9CSlMtJChD T05GSUdfVU5DT0RFREZSQU1FQ1JDX01VWEVSKSAgICAgKz0gdW5jb2RlZGZyYW1lY3JjZW5jLm8g ZnJhbWVoYXNoLm8KK09CSlMtJChDT05GSUdfVVNNX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0g dXNtZGVjLm8KIE9CSlMtJChDT05GSUdfVjIxMF9ERU1VWEVSKSAgICAgICAgICAgICAgKz0gcmF3 dmlkZW9kZWMubwogT0JKUy0kKENPTkZJR19WMjEwWF9ERU1VWEVSKSAgICAgICAgICAgICArPSBy YXd2aWRlb2RlYy5vCiBPQkpTLSQoQ09ORklHX1ZBR19ERU1VWEVSKSAgICAgICAgICAgICAgICs9 IHZhZy5vCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgYi9saWJhdmZvcm1h dC9hbGxmb3JtYXRzLmMKaW5kZXggZjQyMTBlNDkzMi4uZDRiNTA1YTVhMyAxMDA2NDQKLS0tIGEv bGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCisrKyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwpA QCAtNDcxLDYgKzQ3MSw3IEBAIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl90eGRfZGVt dXhlcjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl90dHlfZGVtdXhlcjsKIGV4dGVy biBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl90eV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEZGT3V0 cHV0Rm9ybWF0IGZmX3VuY29kZWRmcmFtZWNyY19tdXhlcjsKK2V4dGVybiBjb25zdCBBVklucHV0 Rm9ybWF0ICBmZl91c21fZGVtdXhlcjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl92 MjEwX2RlbXV4ZXI7CiBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfdjIxMHhfZGVtdXhl cjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl92YWdfZGVtdXhlcjsKZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L3VzbWRlYy5jIGIvbGliYXZmb3JtYXQvdXNtZGVjLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjNiNTgwYjllYQotLS0gL2Rldi9udWxsCisr KyBiL2xpYmF2Zm9ybWF0L3VzbWRlYy5jCkBAIC0wLDAgKzEsMzI3IEBACisvKgorICogVVNNIGRl bXV4ZXIKKyAqIENvcHlyaWdodCAoYykgMjAyMyBQYXVsIEIgTWFob2wKKyAqCisgKiBUaGlzIGZp bGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFs b25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3Jp dGUuaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL2J5dGVzdHJlYW0uaCIKKworI2luY2x1ZGUgImF2 Zm9ybWF0LmgiCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworI2RlZmluZSBWSURFT0kgMAorI2Rl ZmluZSBBVURJT0kgMQorCit0eXBlZGVmIHN0cnVjdCBVU01DaGFubmVsIHsKKyAgICBpbnQgaW5k ZXg7CisgICAgaW50IHVzZWQ7Cit9IFVTTUNoYW5uZWw7CisKK3R5cGVkZWYgc3RydWN0IFVTTURl bXV4Q29udGV4dCB7CisgICAgVVNNQ2hhbm5lbCBjaFsyXVsyNTZdOworICAgIGludCBuYl9jaGFu bmVsc1syXTsKKyAgICB1aW50OF90ICpoZWFkZXI7CisgICAgdW5zaWduZWQgaGVhZGVyX3NpemU7 Cit9IFVTTURlbXV4Q29udGV4dDsKKworc3RhdGljIGludCB1c21fcHJvYmUoY29uc3QgQVZQcm9i ZURhdGEgKnApCit7CisgICAgaWYgKEFWX1JMMzIocC0+YnVmKSAhPSBNS1RBRygnQycsJ1InLCdJ JywnRCcpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChBVl9STDMyKHAtPmJ1ZiArIDQp ID09IDApCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIEFWUFJPQkVfU0NPUkVfTUFY IC8gMzsKK30KKworc3RhdGljIGludCB1c21fcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpz KQoreworICAgIHMtPmN0eF9mbGFncyB8PSBBVkZNVENUWF9OT0hFQURFUjsKKyAgICByZXR1cm4g MDsKK30KKworc3RhdGljIGludCBwYXJzZV91dGYoQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29u dGV4dCAqcGIsCisgICAgICAgICAgICAgICAgICAgICBBVlN0cmVhbSAqc3QsIEFWQ29kZWNQYXJh bWV0ZXJzICpwYXIsIGludCBpc19hdWRpbykKK3sKKyAgICBVU01EZW11eENvbnRleHQgKnVzbSA9 IHMtPnByaXZfZGF0YTsKKyAgICBHZXRCeXRlQ29udGV4dCBnYiwgdWdiLCBzZ2I7CisgICAgdWlu dDMyX3QgY2h1bmtfdHlwZSwgY2h1bmtfc2l6ZSwgb2Zmc2V0OworICAgIHVpbnQzMl90IHVuaXF1 ZV9vZmZzZXQsIHN0cmluZ19vZmZzZXQ7CisgICAgdWludDMyX3QgYnl0ZV9vZmZzZXQsIHBheWxv YWRfbmFtZV9vZmZzZXQ7CisgICAgaW50IG5iX2l0ZW1zLCB1bmlxdWVfc2l6ZSwgbmJfZGljdGlv bmFyaWVzOworICAgIEFWUmF0aW9uYWwgZnBzID0geyAwIH07CisgICAgaW50IHR5cGU7CisKKyAg ICBjaHVua190eXBlID0gYXZpb19yYjMyKHBiKTsKKyAgICBjaHVua19zaXplID0gYXZpb19yYjMy KHBiKTsKKworICAgIGlmIChjaHVua190eXBlICE9IE1LQkVUQUcoJ0AnLCdVJywnVCcsJ0YnKSkK KyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICBhdl9mYXN0X21hbGxv YygmdXNtLT5oZWFkZXIsICZ1c20tPmhlYWRlcl9zaXplLAorICAgICAgICAgICAgICAgICAgIGNo dW5rX3NpemUgKyBBVl9JTlBVVF9CVUZGRVJfUEFERElOR19TSVpFKTsKKyAgICBpZiAoIXVzbS0+ aGVhZGVyKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgaWYgKGF2aW9f cmVhZChwYiwgdXNtLT5oZWFkZXIsIGNodW5rX3NpemUpICE9IGNodW5rX3NpemUpCisgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgYnl0ZXN0cmVhbTJfaW5pdCgmZ2Is IHVzbS0+aGVhZGVyLCBjaHVua19zaXplKTsKKyAgICB1Z2IgPSBnYjsKKyAgICBzZ2IgPSBnYjsK KyAgICB1bmlxdWVfb2Zmc2V0ID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMzIoJmdiKTsKKyAgICBzdHJp bmdfb2Zmc2V0ID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMzIoJmdiKTsKKyAgICBieXRlX29mZnNldCA9 IGJ5dGVzdHJlYW0yX2dldF9iZTMyKCZnYik7CisgICAgcGF5bG9hZF9uYW1lX29mZnNldCA9IGJ5 dGVzdHJlYW0yX2dldF9iZTMyKCZnYik7CisgICAgbmJfaXRlbXMgPSBieXRlc3RyZWFtMl9nZXRf YmUxNigmZ2IpOworICAgIHVuaXF1ZV9zaXplID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTYoJmdiKTsK KyAgICBuYl9kaWN0aW9uYXJpZXMgPSBieXRlc3RyZWFtMl9nZXRfYmUzMigmZ2IpOworICAgIGlm IChuYl9kaWN0aW9uYXJpZXMgPT0gMCkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERB VEE7CisKKyAgICBieXRlc3RyZWFtMl9za2lwKCZ1Z2IsIHVuaXF1ZV9vZmZzZXQpOworICAgIGJ5 dGVzdHJlYW0yX3NraXAoJnNnYiwgc3RyaW5nX29mZnNldCk7CisKKyAgICBmb3IgKGludCBpID0g MDsgaSA8IG5iX2l0ZW1zOyBpKyspIHsKKyAgICAgICAgR2V0Qnl0ZUNvbnRleHQgKnhnYjsKKyAg ICAgICAgdWludDhfdCBrZXlbMjU2XTsKKyAgICAgICAgaW50NjRfdCB2YWx1ZTsKKyAgICAgICAg aW50IG4gPSAwOworCisgICAgICAgIHR5cGUgPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgmZ2IpOwor ICAgICAgICBvZmZzZXQgPSBieXRlc3RyZWFtMl9nZXRfYmUzMigmZ2IpOworCisgICAgICAgIGJ5 dGVzdHJlYW0yX3NlZWsoJnNnYiwgc3RyaW5nX29mZnNldCArIG9mZnNldCwgU0VFS19TRVQpOwor ICAgICAgICB3aGlsZSAoYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQoJnNnYikgPiAwKSB7Cisg ICAgICAgICAgICBrZXlbbl0gPSBieXRlc3RyZWFtMl9nZXRfYnl0ZSgmc2diKTsKKyAgICAgICAg ICAgIGlmICgha2V5W25dKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYg KG4gPj0gc2l6ZW9mKGtleSkgLSAxKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgbisrOworICAgICAgICB9CisgICAgICAgIGtleVtuXSA9ICdcMCc7CisKKyAgICAgICAgaWYg KCh0eXBlID4+IDUpID09IDEpCisgICAgICAgICAgICB4Z2IgPSAmZ2I7CisgICAgICAgIGVsc2UK KyAgICAgICAgICAgIHhnYiA9ICZ1Z2I7CisKKyAgICAgICAgc3dpdGNoICh0eXBlICYgMHgxRikg eworICAgICAgICBjYXNlIDB4MTA6CisgICAgICAgIGNhc2UgMHgxMToKKyAgICAgICAgICAgIHZh bHVlID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoeGdiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg ICAgICBjYXNlIDB4MTI6CisgICAgICAgIGNhc2UgMHgxMzoKKyAgICAgICAgICAgIHZhbHVlID0g Ynl0ZXN0cmVhbTJfZ2V0X2JlMTYoeGdiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj YXNlIDB4MTQ6CisgICAgICAgIGNhc2UgMHgxNToKKyAgICAgICAgICAgIHZhbHVlID0gYnl0ZXN0 cmVhbTJfZ2V0X2JlMzIoeGdiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4 MTY6CisgICAgICAgIGNhc2UgMHgxNzoKKyAgICAgICAgICAgIHZhbHVlID0gYnl0ZXN0cmVhbTJf Z2V0X2JlNjQoeGdiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4MTg6Cisg ICAgICAgICAgICB2YWx1ZSA9IGF2X2ludDJmbG9hdChieXRlc3RyZWFtMl9nZXRfYmUzMih4Z2Ip KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4MTk6CisgICAgICAgICAgICB2 YWx1ZSA9IGF2X2ludDJkb3VibGUoYnl0ZXN0cmVhbTJfZ2V0X2JlNjQoeGdiKSk7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAweDFBOgorICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIH0KKworICAgICAgICBpZiAoaXNfYXVkaW8pIHsKKyAgICAgICAgICAgIGlmICghc3RyY21w KGtleSwgInNhbXBsaW5nX3JhdGUiKSkgeworICAgICAgICAgICAgICAgIHBhci0+c2FtcGxlX3Jh dGUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBhdnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwg MSwgdmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIm51bV9jaGFu bmVscyIpKSB7CisgICAgICAgICAgICAgICAgcGFyLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMgPSB2 YWx1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJ0b3RhbF9zYW1wbGVz IikpIHsKKyAgICAgICAgICAgICAgICBzdC0+ZHVyYXRpb24gPSB2YWx1ZTsKKyAgICAgICAgICAg IH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJhdWRpb19jb2RlYyIpKSB7CisgICAgICAgICAgICAg ICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg ICAgICAgICAgcGFyLT5jb2RlY19pZCA9IEFWX0NPREVDX0lEX0FEUENNX0FEWDsKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAg ICAgICAgICBwYXItPmNvZGVjX2lkID0gQVZfQ09ERUNfSURfSENBOworICAgICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg ICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAidW5zdXBwb3J0ZWQgYXVkaW86ICVkXG4iLCAoaW50 KXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFzdHJjbXAo a2V5LCAid2lkdGgiKSkgeworICAgICAgICAgICAgICAgIHBhci0+d2lkdGggPSB2YWx1ZTsKKyAg ICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJoZWlnaHQiKSkgeworICAgICAgICAg ICAgICAgIHBhci0+aGVpZ2h0ID0gdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJj bXAoa2V5LCAidG90YWxfZnJhbWVzIikpIHsKKyAgICAgICAgICAgICAgICBzdC0+bmJfZnJhbWVz ID0gdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiZnJhbWVyYXRl X24iKSkgeworICAgICAgICAgICAgICAgIGZwcy5udW0gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChrZXksICJmcmFtZXJhdGVfZCIpKSB7CisgICAgICAgICAgICAgICAg ZnBzLmRlbiA9IHZhbHVlOworICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIm1w ZWdfY29kZWMiKSkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAg ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9D T0RFQ19JRF9NUEVHMVZJREVPOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9D T0RFQ19JRF9IMjY0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICBjYXNlIDk6CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9DT0RFQ19J RF9WUDk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1 bHQ6CisgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJ1bnN1cHBv cnRlZCB2aWRlbzogJWRcbiIsIChpbnQpdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK KyAgICBpZiAoIWlzX2F1ZGlvICYmIGZwcy5udW0gJiYgZnBzLmRlbikKKyAgICAgICAgYXZwcml2 X3NldF9wdHNfaW5mbyhzdCwgNjQsIGZwcy5kZW4sIGZwcy5udW0pOworCisgICAgcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VfY2h1bmsoQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29u dGV4dCAqcGIsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNodW5rX3R5cGUsIHVp bnQzMl90IGNodW5rX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgIEFWUGFja2V0ICpwa3Qp Cit7CisgICAgVVNNRGVtdXhDb250ZXh0ICp1c20gPSBzLT5wcml2X2RhdGE7CisgICAgaW50NjRf dCBjaHVua19zdGFydDsKKyAgICBpbnQgc3RyZWFtX2luZGV4LCBwYXlsb2FkX3R5cGU7CisgICAg aW50IHBheWxvYWRfb2Zmc2V0LCBmcmFtZV90aW1lOworICAgIGludCBmcmFtZV9yYXRlLCBwYWRk aW5nX3NpemUsIHJldDsKKyAgICBpbnQgaXNfYXVkaW8gPSBjaHVua190eXBlID09IE1LQkVUQUco J0AnLCdTJywnRicsJ0EnKTsKKworICAgIGNodW5rX3N0YXJ0ID0gYXZpb190ZWxsKHBiKTsKKyAg ICBhdmlvX3NraXAocGIsIDEpOworICAgIHBheWxvYWRfb2Zmc2V0ID0gYXZpb19yOChwYik7Cisg ICAgcGFkZGluZ19zaXplID0gYXZpb19yYjE2KHBiKTsKKyAgICBzdHJlYW1faW5kZXggPSBhdmlv X3I4KHBiKTsKKyAgICBhdmlvX3NraXAocGIsIDIpOworICAgIHBheWxvYWRfdHlwZSA9IGF2aW9f cjgocGIpOworICAgIGZyYW1lX3RpbWUgPSBhdmlvX3JiMzIocGIpOworICAgIGZyYW1lX3JhdGUg PSBhdmlvX3JiMzIocGIpOworICAgIGF2aW9fc2tpcChwYiwgOCk7CisKKyAgICBpZiAocGF5bG9h ZF90eXBlID09IDEpIHsKKyAgICAgICAgaWYgKHVzbS0+Y2hbaXNfYXVkaW9dW3N0cmVhbV9pbmRl eF0udXNlZCA9PSAwKSB7CisgICAgICAgICAgICBBVlN0cmVhbSAqc3QgPSBhdmZvcm1hdF9uZXdf c3RyZWFtKHMsIE5VTEwpOworICAgICAgICAgICAgQVZDb2RlY1BhcmFtZXRlcnMgKnBhcjsKKyAg ICAgICAgICAgIGlmICghc3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVN KTsKKworICAgICAgICAgICAgcGFyID0gc3QtPmNvZGVjcGFyOworICAgICAgICAgICAgcGFyLT5j b2RlY190eXBlID0gaXNfYXVkaW8gPyBBVk1FRElBX1RZUEVfQVVESU8gOiBBVk1FRElBX1RZUEVf VklERU87CisKKyAgICAgICAgICAgIHVzbS0+Y2hbaXNfYXVkaW9dW3N0cmVhbV9pbmRleF0uaW5k ZXggPSBzdC0+aW5kZXg7CisgICAgICAgICAgICB1c20tPmNoW2lzX2F1ZGlvXVtzdHJlYW1faW5k ZXhdLnVzZWQgPSAxOworICAgICAgICAgICAgdXNtLT5uYl9jaGFubmVsc1tpc19hdWRpb10rKzsK KworICAgICAgICAgICAgcmV0ID0gcGFyc2VfdXRmKHMsIHBiLCBzdCwgcGFyLCBpc19hdWRpbyk7 CisgICAgICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owor CisgICAgICAgICAgICBpZiAoIXN0LT50aW1lX2Jhc2UubnVtIHx8ICFzdC0+dGltZV9iYXNlLmRl bikKKyAgICAgICAgICAgICAgICBhdnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwgMTAwLCBmcmFt ZV9yYXRlKTsKKyAgICAgICAgICAgIGZmc3RyZWFtKHN0KS0+bmVlZF9wYXJzaW5nID0gQVZTVFJF QU1fUEFSU0VfRlVMTF9SQVc7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHBheWxvYWRfdHlw ZSA9PSAwKSB7CisgICAgICAgIGlmICh1c20tPmNoW2lzX2F1ZGlvXVtzdHJlYW1faW5kZXhdLnVz ZWQgPT0gMSkgeworICAgICAgICAgICAgdWludDMyX3QgcGt0X3NpemUgPSBjaHVua19zaXplIC0g KGF2aW9fdGVsbChwYikgLSBjaHVua19zdGFydCk7CisKKyAgICAgICAgICAgIHJldCA9IGF2X2dl dF9wYWNrZXQocGIsIHBrdCwgcGt0X3NpemUpOworICAgICAgICAgICAgaWYgKHJldCA8IDApCisg ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKworICAgICAgICAgICAgcGt0LT5zdHJlYW1faW5k ZXggPSB1c20tPmNoW2lzX2F1ZGlvXVtzdHJlYW1faW5kZXhdLmluZGV4OworCisgICAgICAgICAg ICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF2aW9fc2tpcChwYiwgcGFkZGlu Z19zaXplKTsKKyAgICBhdmlvX3NraXAocGIsIGNodW5rX3NpemUgLSAoYXZpb190ZWxsKHBiKSAt IGNodW5rX3N0YXJ0KSk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1c21fcmVh ZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQoreworICAgIEFWSU9D b250ZXh0ICpwYiA9IHMtPnBiOworICAgIGludDY0X3QgcmV0ID0gQVZFUlJPUl9FT0Y7CisKKyAg ICB3aGlsZSAoIWF2aW9fZmVvZihwYikpIHsKKyAgICAgICAgdWludDMyX3QgY2h1bmtfdHlwZSwg Y2h1bmtfc2l6ZTsKKyAgICAgICAgaW50IGdvdF9wYWNrZXQgPSAwOworCisgICAgICAgIGNodW5r X3R5cGUgPSBhdmlvX3JiMzIocGIpOworICAgICAgICBjaHVua19zaXplID0gYXZpb19yYjMyKHBi KTsKKworICAgICAgICBzd2l0Y2ggKGNodW5rX3R5cGUpIHsKKyAgICAgICAgY2FzZSBNS0JFVEFH KCdDJywnUicsJ0knLCdEJyk6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBh dmlvX3NraXAocGIsIGNodW5rX3NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh c2UgTUtCRVRBRygnQCcsJ1MnLCdGJywnQScpOgorICAgICAgICBjYXNlIE1LQkVUQUcoJ0AnLCdT JywnRicsJ1YnKToKKyAgICAgICAgICAgIHJldCA9IHBhcnNlX2NodW5rKHMsIHBiLCBjaHVua190 eXBlLCBjaHVua19zaXplLCBwa3QpOworICAgICAgICAgICAgZ290X3BhY2tldCA9IHJldCA9PSAx OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ290X3BhY2tl dCkKKyAgICAgICAgICAgIHJldCA9IDA7CisKKyAgICAgICAgaWYgKGdvdF9wYWNrZXQgfHwgcmV0 IDwgMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisK K3N0YXRpYyBpbnQgdXNtX3JlYWRfY2xvc2UoQVZGb3JtYXRDb250ZXh0ICpzKQoreworICAgIFVT TURlbXV4Q29udGV4dCAqdXNtID0gcy0+cHJpdl9kYXRhOworICAgIGF2X2ZyZWVwKCZ1c20tPmhl YWRlcik7CisgICAgdXNtLT5oZWFkZXJfc2l6ZSA9IDA7CisgICAgcmV0dXJuIDA7Cit9CisKK2Nv bnN0IEFWSW5wdXRGb3JtYXQgZmZfdXNtX2RlbXV4ZXIgPSB7CisgICAgLm5hbWUgICAgICAgICAg ID0gInVzbSIsCisgICAgLmxvbmdfbmFtZSAgICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkNS SSBVU00iKSwKKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoVVNNRGVtdXhDb250ZXh0KSwK KyAgICAucmVhZF9wcm9iZSAgICAgPSB1c21fcHJvYmUsCisgICAgLnJlYWRfaGVhZGVyICAgID0g dXNtX3JlYWRfaGVhZGVyLAorICAgIC5yZWFkX3BhY2tldCAgICA9IHVzbV9yZWFkX3BhY2tldCwK KyAgICAucmVhZF9jbG9zZSAgICAgPSB1c21fcmVhZF9jbG9zZSwKKyAgICAuZXh0ZW5zaW9ucyAg ICAgPSAidXNtIiwKKyAgICAuZmxhZ3MgICAgICAgICAgPSBBVkZNVF9HRU5FUklDX0lOREVYLAor fTsKLS0gCjIuMzkuMQoK --00000000000034fe9b0604a35394 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". --00000000000034fe9b0604a35394--