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 E048B474D4 for ; Sun, 10 Sep 2023 11:55:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 63F3F68C8CB; Sun, 10 Sep 2023 14:55:33 +0300 (EEST) Received: from mail-vk1-f169.google.com (mail-vk1-f169.google.com [209.85.221.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 930BA68C706 for ; Sun, 10 Sep 2023 14:55:26 +0300 (EEST) Received: by mail-vk1-f169.google.com with SMTP id 71dfb90a1353d-493542a25dfso1268727e0c.0 for ; Sun, 10 Sep 2023 04:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694346925; x=1694951725; 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=GXJMefH5YovmOrCTOFzYfU3GvAdvoIHEZ8KerxabcdY=; b=lR14+FHFvV3+bgIxfV/EytU0xqPk0tjSaSEmXmktK5F+RLWv5YfluL5Wti4m//iOOX YP+BcCwixHULHwfW8CGOrXbQK4S98/p7Fh0JNKvyee7P5UdGmoNaAPA0bqaL0QOFEgBz LPGQbFBf8GFbM+u5tDKM06uwZVGF5zsEzlWgiQPJ6wPgYlIY+zyUK2esisG5DC9Aq82Q KlpkghJXBzYoxcN1Pmext8zs9qp98cTo07EEzOpHkXrETKJzd+fnnqPbN5LKr/MRCzhd MxQqyE8aDaQBEZSdym5NRlzipZMOaHRMr1wLaKLEO4US9iJunPLoWxLxvrPLr6prgprT 5CLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694346925; x=1694951725; 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=GXJMefH5YovmOrCTOFzYfU3GvAdvoIHEZ8KerxabcdY=; b=vBTXkD1oM+QuMnamWVggbsQy8iHqh8khYCj9HINqLoySwhtmyhkYgxY3eiLyPKEZI8 zdBnqm+scnGsKgm5T8qIPhKvWuyP7SK6TUFUMwNsFQ/c4u9lgQ9B/MWzcp84eZ+hKTgh gOlQfwkhgKutxja3878qbZJBe1SrEvseyuEdZR8VLFFK4VvgLTf3pemDghKrRSJb4mWR aHxWJZkYm/qgRixNCETmYW3O1sWwaJiYy/H0QYrtbA8zOfSzDYa7aqnL6jOHZ3Sm6jQp 4Yi/WCdQEG6pyxJWtiCNGUu3W+vUH4lUJLVS1KhuMO4lH6S7vzFp7sTc+Jdgc86m1/Oe YS/Q== X-Gm-Message-State: AOJu0YziFE2Jhq9sC40rKhev/zGma7w3hQJJpMPI2bH+rUrgPzWso+lX jukRQ8kE3wgH6fUAqoEF4xIQ55B8/cZsmjoq0YYVyjWm/3k= X-Google-Smtp-Source: AGHT+IF0MKhHm7zkrANJpRZmwiKVcgcDPkdnTwisuRXqajDUVc2H7XmiZSr6hSEebH3smhXwU7TEf48zfQqUmimYZr0= X-Received: by 2002:a1f:db01:0:b0:48f:a5db:2cd4 with SMTP id s1-20020a1fdb01000000b0048fa5db2cd4mr5356982vkg.4.1694346924770; Sun, 10 Sep 2023 04:55:24 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Paul B Mahol Date: Sun, 10 Sep 2023 14:02:49 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000093ec820604ffe22e" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [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: --00000000000093ec820604ffe22e Content-Type: text/plain; charset="UTF-8" New version attached: - fixed VP9 demuxing - added support for alpha streams - added support for subtitle streams - numerous fixes and improvements Can't get seeking to behave correctly with ADPCM_ADX audio streams. Once one seek to start of file audio is no longer demuxed and video packets are filling all queue. --00000000000093ec820604ffe22e 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_lmdek3610 RnJvbSA1YzMyZDRhOWVkYjRmODdhYzI5MDk5MDljNzMyODQxYmI2ODcxZTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgNSBTZXAgMjAyMyAxNjo1MzozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGF2Zm9ybWF0 OiBhZGQgQ1JJIFVTTSBkZW11eGVyCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1k YUBnbWFpbC5jb20+Ci0tLQogbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgIHwgICAxICsKIGxpYmF2 Zm9ybWF0L2FsbGZvcm1hdHMuYyB8ICAgMSArCiBsaWJhdmZvcm1hdC91c21kZWMuYyAgICAgfCAz NzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDM4MSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmb3JtYXQvdXNt ZGVjLmMKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9NYWtlZmlsZSBiL2xpYmF2Zm9ybWF0L01h a2VmaWxlCmluZGV4IGNjMWIxMjM2MGEuLjMyOTA1NWNjZmQgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9y bWF0L01ha2VmaWxlCisrKyBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCkBAIC01ODgsNiArNTg4LDcg QEAgT0JKUy0kKENPTkZJR19UVFlfREVNVVhFUikgICAgICAgICAgICAgICArPSB0dHkubyBzYXVj ZS5vCiBPQkpTLSQoQ09ORklHX1RZX0RFTVVYRVIpICAgICAgICAgICAgICAgICs9IHR5Lm8KIE9C SlMtJChDT05GSUdfVFhEX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gdHhkLm8KIE9CSlMtJChD T05GSUdfVU5DT0RFREZSQU1FQ1JDX01VWEVSKSAgICAgKz0gdW5jb2RlZGZyYW1lY3JjZW5jLm8g ZnJhbWVoYXNoLm8KK09CSlMtJChDT05GSUdfVVNNX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0g dXNtZGVjLm8KIE9CSlMtJChDT05GSUdfVjIxMF9ERU1VWEVSKSAgICAgICAgICAgICAgKz0gcmF3 dmlkZW9kZWMubwogT0JKUy0kKENPTkZJR19WMjEwWF9ERU1VWEVSKSAgICAgICAgICAgICArPSBy YXd2aWRlb2RlYy5vCiBPQkpTLSQoQ09ORklHX1ZBR19ERU1VWEVSKSAgICAgICAgICAgICAgICs9 IHZhZy5vCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgYi9saWJhdmZvcm1h dC9hbGxmb3JtYXRzLmMKaW5kZXggZjQyMTBlNDkzMi4uZDRiNTA1YTVhMyAxMDA2NDQKLS0tIGEv bGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCisrKyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwpA QCAtNDcxLDYgKzQ3MSw3IEBAIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl90eGRfZGVt dXhlcjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl90dHlfZGVtdXhlcjsKIGV4dGVy biBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl90eV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEZGT3V0 cHV0Rm9ybWF0IGZmX3VuY29kZWRmcmFtZWNyY19tdXhlcjsKK2V4dGVybiBjb25zdCBBVklucHV0 Rm9ybWF0ICBmZl91c21fZGVtdXhlcjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl92 MjEwX2RlbXV4ZXI7CiBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfdjIxMHhfZGVtdXhl cjsKIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl92YWdfZGVtdXhlcjsKZGlmZiAtLWdp dCBhL2xpYmF2Zm9ybWF0L3VzbWRlYy5jIGIvbGliYXZmb3JtYXQvdXNtZGVjLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjhiZmUxYTEyMwotLS0gL2Rldi9udWxsCisr KyBiL2xpYmF2Zm9ybWF0L3VzbWRlYy5jCkBAIC0wLDAgKzEsMzc5IEBACisvKgorICogVVNNIGRl bXV4ZXIKKyAqIENvcHlyaWdodCAoYykgMjAyMyBQYXVsIEIgTWFob2wKKyAqCisgKiBUaGlzIGZp bGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFs b25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3Jp dGUuaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVjL2J5dGVzdHJlYW0uaCIKKworI2luY2x1ZGUgImF2 Zm9ybWF0LmgiCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworI2RlZmluZSBWSURFT0kgMAorI2Rl ZmluZSBBVURJT0kgMQorI2RlZmluZSBBTFBIQUkgMgorI2RlZmluZSBTVUJUVEkgMworCit0eXBl ZGVmIHN0cnVjdCBVU01DaGFubmVsIHsKKyAgICBpbnQgaW5kZXg7CisgICAgaW50IHVzZWQ7Cit9 IFVTTUNoYW5uZWw7CisKK3R5cGVkZWYgc3RydWN0IFVTTURlbXV4Q29udGV4dCB7CisgICAgVVNN Q2hhbm5lbCBjaFs0XVsyNTZdOworICAgIGludCBuYl9jaGFubmVsc1s0XTsKKyAgICB1aW50OF90 ICpoZWFkZXI7CisgICAgdW5zaWduZWQgaGVhZGVyX3NpemU7Cit9IFVTTURlbXV4Q29udGV4dDsK Kworc3RhdGljIGludCB1c21fcHJvYmUoY29uc3QgQVZQcm9iZURhdGEgKnApCit7CisgICAgaWYg KEFWX1JMMzIocC0+YnVmKSAhPSBNS1RBRygnQycsJ1InLCdJJywnRCcpKQorICAgICAgICByZXR1 cm4gMDsKKworICAgIGlmIChBVl9STjMyKHAtPmJ1ZiArIDQpID09IDApCisgICAgICAgIHJldHVy biAwOworCisgICAgcmV0dXJuIEFWUFJPQkVfU0NPUkVfTUFYIC8gMzsKK30KKworc3RhdGljIGlu dCB1c21fcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQoreworICAgIHMtPmN0eF9mbGFn cyB8PSBBVkZNVENUWF9OT0hFQURFUjsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBw YXJzZV91dGYoQVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29udGV4dCAqcGIsCisgICAgICAgICAg ICAgICAgICAgICBBVlN0cmVhbSAqc3QsIEFWQ29kZWNQYXJhbWV0ZXJzICpwYXIsIGludCBjaF90 eXBlLAorICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcGFyZW50X2NodW5rX3NpemUpCit7 CisgICAgVVNNRGVtdXhDb250ZXh0ICp1c20gPSBzLT5wcml2X2RhdGE7CisgICAgR2V0Qnl0ZUNv bnRleHQgZ2IsIHVnYiwgc2diOworICAgIHVpbnQzMl90IGNodW5rX3R5cGUsIGNodW5rX3NpemUs IG9mZnNldDsKKyAgICB1aW50MzJfdCB1bmlxdWVfb2Zmc2V0LCBzdHJpbmdfb2Zmc2V0OworICAg IGludCBuYl9pdGVtcywgdW5pcXVlX3NpemUsIG5iX2RpY3Rpb25hcmllczsKKyAgICBBVlJhdGlv bmFsIGZwcyA9IHsgMCB9OworICAgIGludCB0eXBlOworCisgICAgY2h1bmtfdHlwZSA9IGF2aW9f cmIzMihwYik7CisgICAgY2h1bmtfc2l6ZSA9IGF2aW9fcmIzMihwYik7CisKKyAgICBpZiAoY2h1 bmtfdHlwZSAhPSBNS0JFVEFHKCdAJywnVScsJ1QnLCdGJykpCisgICAgICAgIHJldHVybiBBVkVS Uk9SX0lOVkFMSUREQVRBOworCisgICAgaWYgKCFjaHVua19zaXplIHx8IGNodW5rX3NpemUgPj0g cGFyZW50X2NodW5rX3NpemUpCisgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwor CisgICAgYXZfZmFzdF9tYWxsb2MoJnVzbS0+aGVhZGVyLCAmdXNtLT5oZWFkZXJfc2l6ZSwgY2h1 bmtfc2l6ZSk7CisgICAgaWYgKCF1c20tPmhlYWRlcikKKyAgICAgICAgcmV0dXJuIEFWRVJST1Io RU5PTUVNKTsKKworICAgIGlmIChhdmlvX3JlYWQocGIsIHVzbS0+aGVhZGVyLCBjaHVua19zaXpl KSAhPSBjaHVua19zaXplKQorICAgICAgICByZXR1cm4gQVZFUlJPUl9FT0Y7CisKKyAgICBieXRl c3RyZWFtMl9pbml0KCZnYiwgdXNtLT5oZWFkZXIsIGNodW5rX3NpemUpOworICAgIHVnYiA9IGdi OworICAgIHNnYiA9IGdiOworICAgIHVuaXF1ZV9vZmZzZXQgPSBieXRlc3RyZWFtMl9nZXRfYmUz MigmZ2IpOworICAgIHN0cmluZ19vZmZzZXQgPSBieXRlc3RyZWFtMl9nZXRfYmUzMigmZ2IpOwor ICAgIC8qYnl0ZV9vZmZzZXQgPSovIGJ5dGVzdHJlYW0yX2dldF9iZTMyKCZnYik7CisgICAgLypw YXlsb2FkX25hbWVfb2Zmc2V0ID0qLyBieXRlc3RyZWFtMl9nZXRfYmUzMigmZ2IpOworICAgIG5i X2l0ZW1zID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMTYoJmdiKTsKKyAgICB1bmlxdWVfc2l6ZSA9IGJ5 dGVzdHJlYW0yX2dldF9iZTE2KCZnYik7CisgICAgbmJfZGljdGlvbmFyaWVzID0gYnl0ZXN0cmVh bTJfZ2V0X2JlMzIoJmdiKTsKKyAgICBpZiAobmJfZGljdGlvbmFyaWVzID09IDApCisgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOworCisgICAgYnl0ZXN0cmVhbTJfc2tpcCgmdWdi LCB1bmlxdWVfb2Zmc2V0KTsKKyAgICBpZiAoYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQoJnVn YikgPCB1bmlxdWVfc2l6ZSkKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Cisg ICAgYnl0ZXN0cmVhbTJfaW5pdCgmdWdiLCB1Z2IuYnVmZmVyLCB1bmlxdWVfc2l6ZSk7CisKKyAg ICBieXRlc3RyZWFtMl9za2lwKCZzZ2IsIHN0cmluZ19vZmZzZXQpOworCisgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBuYl9pdGVtczsgaSsrKSB7CisgICAgICAgIEdldEJ5dGVDb250ZXh0ICp4Z2I7 CisgICAgICAgIHVpbnQ4X3Qga2V5WzI1Nl07CisgICAgICAgIGludDY0X3QgdmFsdWU7CisgICAg ICAgIGludCBuID0gMDsKKworICAgICAgICB0eXBlID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoJmdi KTsKKyAgICAgICAgb2Zmc2V0ID0gYnl0ZXN0cmVhbTJfZ2V0X2JlMzIoJmdiKTsKKworICAgICAg ICBieXRlc3RyZWFtMl9zZWVrKCZzZ2IsIHN0cmluZ19vZmZzZXQgKyBvZmZzZXQsIFNFRUtfU0VU KTsKKyAgICAgICAgd2hpbGUgKGJ5dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KCZzZ2IpID4gMCkg eworICAgICAgICAgICAga2V5W25dID0gYnl0ZXN0cmVhbTJfZ2V0X2J5dGUoJnNnYik7CisgICAg ICAgICAgICBpZiAoIWtleVtuXSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg IGlmIChuID49IHNpemVvZihrZXkpIC0gMSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgIG4rKzsKKyAgICAgICAgfQorICAgICAgICBrZXlbbl0gPSAnXDAnOworCisgICAgICAg IGlmICgodHlwZSA+PiA1KSA9PSAxKQorICAgICAgICAgICAgeGdiID0gJmdiOworICAgICAgICBl bHNlCisgICAgICAgICAgICB4Z2IgPSAmdWdiOworCisgICAgICAgIHN3aXRjaCAodHlwZSAmIDB4 MUYpIHsKKyAgICAgICAgY2FzZSAweDEwOgorICAgICAgICBjYXNlIDB4MTE6CisgICAgICAgICAg ICB2YWx1ZSA9IGJ5dGVzdHJlYW0yX2dldF9ieXRlKHhnYik7CisgICAgICAgICAgICBicmVhazsK KyAgICAgICAgY2FzZSAweDEyOgorICAgICAgICBjYXNlIDB4MTM6CisgICAgICAgICAgICB2YWx1 ZSA9IGJ5dGVzdHJlYW0yX2dldF9iZTE2KHhnYik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgY2FzZSAweDE0OgorICAgICAgICBjYXNlIDB4MTU6CisgICAgICAgICAgICB2YWx1ZSA9IGJ5 dGVzdHJlYW0yX2dldF9iZTMyKHhnYik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz ZSAweDE2OgorICAgICAgICBjYXNlIDB4MTc6CisgICAgICAgICAgICB2YWx1ZSA9IGJ5dGVzdHJl YW0yX2dldF9iZTY0KHhnYik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAweDE4 OgorICAgICAgICAgICAgdmFsdWUgPSBhdl9pbnQyZmxvYXQoYnl0ZXN0cmVhbTJfZ2V0X2JlMzIo eGdiKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAweDE5OgorICAgICAgICAg ICAgdmFsdWUgPSBhdl9pbnQyZG91YmxlKGJ5dGVzdHJlYW0yX2dldF9iZTY0KHhnYikpOworICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHgxQToKKyAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoX3R5cGUgPT0gQVVESU9JKSB7CisgICAgICAgICAg ICBpZiAoIXN0cmNtcChrZXksICJzYW1wbGluZ19yYXRlIikpIHsKKyAgICAgICAgICAgICAgICBw YXItPnNhbXBsZV9yYXRlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgYXZwcml2X3NldF9wdHNf aW5mbyhzdCwgNjQsIDEsIHZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJudW1fY2hhbm5lbHMiKSkgeworICAgICAgICAgICAgICAgIHBhci0+Y2hfbGF5b3V0Lm5i X2NoYW5uZWxzID0gdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAi dG90YWxfc2FtcGxlcyIpKSB7CisgICAgICAgICAgICAgICAgc3QtPmR1cmF0aW9uID0gdmFsdWU7 CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiYXVkaW9fY29kZWMiKSkgewor ICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDI6 CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9DT0RFQ19JRF9BRFBDTV9B RFg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgNDoK KyAgICAgICAgICAgICAgICAgICAgcGFyLT5jb2RlY19pZCA9IEFWX0NPREVDX0lEX0hDQTsKKyAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg ICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgInVuc3VwcG9ydGVkIGF1ZGlv OiAlZFxuIiwgKGludCl2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjaF90eXBlID09 IFZJREVPSSB8fCBjaF90eXBlID09IEFMUEhBSSkgeworICAgICAgICAgICAgaWYgKCFzdHJjbXAo a2V5LCAid2lkdGgiKSkgeworICAgICAgICAgICAgICAgIHBhci0+d2lkdGggPSB2YWx1ZTsKKyAg ICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJoZWlnaHQiKSkgeworICAgICAgICAg ICAgICAgIHBhci0+aGVpZ2h0ID0gdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJj bXAoa2V5LCAidG90YWxfZnJhbWVzIikpIHsKKyAgICAgICAgICAgICAgICBzdC0+bmJfZnJhbWVz ID0gdmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiZnJhbWVyYXRl X24iKSkgeworICAgICAgICAgICAgICAgIGZwcy5udW0gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChrZXksICJmcmFtZXJhdGVfZCIpKSB7CisgICAgICAgICAgICAgICAg ZnBzLmRlbiA9IHZhbHVlOworICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIm1w ZWdfY29kZWMiKSkgeworICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAg ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9D T0RFQ19JRF9NUEVHMVZJREVPOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9D T0RFQ19JRF9IMjY0OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICBjYXNlIDk6CisgICAgICAgICAgICAgICAgICAgIHBhci0+Y29kZWNfaWQgPSBBVl9DT0RFQ19J RF9WUDk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1 bHQ6CisgICAgICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJ1bnN1cHBv cnRlZCB2aWRlbzogJWRcbiIsIChpbnQpdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK KyAgICBpZiAoY2hfdHlwZSA9PSBWSURFT0kgJiYgZnBzLm51bSAmJiBmcHMuZGVuKQorICAgICAg ICBhdnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwgZnBzLmRlbiwgZnBzLm51bSk7CisKKyAgICBy ZXR1cm4gMDsKK30KKworc3RhdGljIGludDY0X3QgcGFyc2VfY2h1bmsoQVZGb3JtYXRDb250ZXh0 ICpzLCBBVklPQ29udGV4dCAqcGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCBjaHVua190eXBlLCB1aW50MzJfdCBjaHVua19zaXplLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgQVZQYWNrZXQgKnBrdCkKK3sKKyAgICBjb25zdCBpbnQgaXNfYXVkaW8gPSBjaHVua190 eXBlID09IE1LQkVUQUcoJ0AnLCdTJywnRicsJ0EnKTsKKyAgICBjb25zdCBpbnQgaXNfYWxwaGEg PSBjaHVua190eXBlID09IE1LQkVUQUcoJ0AnLCdBJywnTCcsJ1AnKTsKKyAgICBjb25zdCBpbnQg aXNfc3VidHQgPSBjaHVua190eXBlID09IE1LQkVUQUcoJ0AnLCdTJywnQicsJ1QnKTsKKyAgICBV U01EZW11eENvbnRleHQgKnVzbSA9IHMtPnByaXZfZGF0YTsKKyAgICBpbnQ2NF90IGNodW5rX3N0 YXJ0LCByZXQ7CisgICAgaW50IHN0cmVhbV9pbmRleCwgcGF5bG9hZF90eXBlOworICAgIGludCBw YXlsb2FkX29mZnNldDsKKyAgICBpbnQgZnJhbWVfcmF0ZSwgcGFkZGluZ19zaXplOworICAgIGNv bnN0IGludCBjaF90eXBlID0gaXNfc3VidHQgPyBTVUJUVEkgOiBpc19hdWRpbyA/IEFVRElPSSA6 IGlzX2FscGhhID8gQUxQSEFJIDogVklERU9JOworCisgICAgcmV0ID0gYXZpb190ZWxsKHBiKTsK KyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICBjaHVua19zdGFydCA9 IHJldDsKKyAgICBhdmlvX3NraXAocGIsIDEpOworICAgIHBheWxvYWRfb2Zmc2V0ID0gYXZpb19y OChwYik7CisgICAgcGFkZGluZ19zaXplID0gYXZpb19yYjE2KHBiKTsKKyAgICBzdHJlYW1faW5k ZXggPSBhdmlvX3I4KHBiKTsKKyAgICBhdmlvX3NraXAocGIsIDIpOworICAgIHBheWxvYWRfdHlw ZSA9IGF2aW9fcjgocGIpOworICAgIC8qZnJhbWVfdGltZSA9Ki8gYXZpb19yYjMyKHBiKTsKKyAg ICBmcmFtZV9yYXRlID0gYXZpb19yYjMyKHBiKTsKKyAgICBhdmlvX3NraXAocGIsIDgpOworICAg IHJldCA9IGF2aW9fdGVsbChwYik7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIHJldHVybiBy ZXQ7CisgICAgcmV0ID0gYXZpb19za2lwKHBiLCBGRk1BWCgwLCAocmV0IC0gY2h1bmtfc3RhcnQp IC0gcGF5bG9hZF9vZmZzZXQpKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJl dDsKKworICAgIGlmIChwYXlsb2FkX3R5cGUgPT0gMSkgeworICAgICAgICBpZiAodXNtLT5jaFtj aF90eXBlXVtzdHJlYW1faW5kZXhdLnVzZWQgPT0gMCkgeworICAgICAgICAgICAgQVZTdHJlYW0g KnN0ID0gYXZmb3JtYXRfbmV3X3N0cmVhbShzLCBOVUxMKTsKKyAgICAgICAgICAgIEFWQ29kZWNQ YXJhbWV0ZXJzICpwYXI7CisgICAgICAgICAgICBpZiAoIXN0KQorICAgICAgICAgICAgICAgIHJl dHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyAgICAgICAgICAgIHBhciA9IHN0LT5jb2RlY3BhcjsK KyAgICAgICAgICAgIHN3aXRjaCAoY2hfdHlwZSkgeworICAgICAgICAgICAgY2FzZSBBTFBIQUk6 CisgICAgICAgICAgICBjYXNlIFZJREVPSToKKyAgICAgICAgICAgICAgICBwYXItPmNvZGVjX3R5 cGUgPSBBVk1FRElBX1RZUEVfVklERU87CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICBjYXNlIEFVRElPSToKKyAgICAgICAgICAgICAgICBwYXItPmNvZGVjX3R5cGUgPSBBVk1F RElBX1RZUEVfQVVESU87CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl IFNVQlRUSToKKyAgICAgICAgICAgICAgICBwYXItPmNvZGVjX3R5cGUgPSBBVk1FRElBX1RZUEVf U1VCVElUTEU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg ICAgICBzdC0+c3RhcnRfdGltZSA9IDA7CisKKyAgICAgICAgICAgIHVzbS0+Y2hbY2hfdHlwZV1b c3RyZWFtX2luZGV4XS5pbmRleCA9IHN0LT5pbmRleDsKKyAgICAgICAgICAgIHVzbS0+Y2hbY2hf dHlwZV1bc3RyZWFtX2luZGV4XS51c2VkID0gMTsKKyAgICAgICAgICAgIHVzbS0+bmJfY2hhbm5l bHNbY2hfdHlwZV0rKzsKKworICAgICAgICAgICAgcmV0ID0gcGFyc2VfdXRmKHMsIHBiLCBzdCwg cGFyLCBjaF90eXBlLCBjaHVua19zaXplKTsKKyAgICAgICAgICAgIGlmIChyZXQgPCAwKQorICAg ICAgICAgICAgICAgIHJldHVybiByZXQ7CisKKyAgICAgICAgICAgIGlmICghc3QtPnRpbWVfYmFz ZS5udW0gfHwgIXN0LT50aW1lX2Jhc2UuZGVuKQorICAgICAgICAgICAgICAgIGF2cHJpdl9zZXRf cHRzX2luZm8oc3QsIDY0LCAxMDAsIGZyYW1lX3JhdGUpOworICAgICAgICAgICAgZmZzdHJlYW0o c3QpLT5uZWVkX3BhcnNpbmcgPSBBVlNUUkVBTV9QQVJTRV9USU1FU1RBTVBTOworICAgICAgICB9 CisgICAgfSBlbHNlIGlmIChwYXlsb2FkX3R5cGUgPT0gMCkgeworICAgICAgICBpZiAodXNtLT5j aFtjaF90eXBlXVtzdHJlYW1faW5kZXhdLnVzZWQgPT0gMSkgeworICAgICAgICAgICAgdWludDMy X3QgcGt0X3NpemU7CisKKyAgICAgICAgICAgIHJldCA9IGF2aW9fdGVsbChwYik7CisgICAgICAg ICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAg ICAgICBwa3Rfc2l6ZSA9IGNodW5rX3NpemUgLSAocmV0IC0gY2h1bmtfc3RhcnQpIC0gcGFkZGlu Z19zaXplOworICAgICAgICAgICAgcmV0ID0gYXZfZ2V0X3BhY2tldChwYiwgcGt0LCBwa3Rfc2l6 ZSk7CisgICAgICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0 OworCisgICAgICAgICAgICBwa3QtPnN0cmVhbV9pbmRleCA9IHVzbS0+Y2hbY2hfdHlwZV1bc3Ry ZWFtX2luZGV4XS5pbmRleDsKKworICAgICAgICAgICAgYXZpb19za2lwKHBiLCBwYWRkaW5nX3Np emUpOworCisgICAgICAgICAgICBpZiAocmV0ICE9IHBrdF9zaXplKQorICAgICAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX0VPRjsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0K KyAgICB9CisKKyAgICByZXQgPSBhdmlvX3RlbGwocGIpOworICAgIGlmIChyZXQgPCAwKQorICAg ICAgICByZXR1cm4gcmV0OworICAgIHJldCA9IGF2aW9fc2tpcChwYiwgRkZNQVgoMCwgY2h1bmtf c2l6ZSAtIChyZXQgLSBjaHVua19zdGFydCkpKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAg cmV0dXJuIHJldDsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1c21fcmVhZF9wYWNr ZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQoreworICAgIEFWSU9Db250ZXh0 ICpwYiA9IHMtPnBiOworICAgIGludDY0X3QgcmV0ID0gQVZFUlJPUl9FT0Y7CisKKyAgICB3aGls ZSAoIWF2aW9fZmVvZihwYikpIHsKKyAgICAgICAgdWludDMyX3QgY2h1bmtfdHlwZSwgY2h1bmtf c2l6ZTsKKyAgICAgICAgaW50IGdvdF9wYWNrZXQgPSAwOworICAgICAgICBpbnQ2NF90IHBvczsK KworICAgICAgICBwb3MgPSBhdmlvX3RlbGwocGIpOworICAgICAgICBpZiAocG9zIDwgMCkKKyAg ICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIGNodW5rX3R5cGUgPSBhdmlvX3JiMzIocGIp OworICAgICAgICBjaHVua19zaXplID0gYXZpb19yYjMyKHBiKTsKKyAgICAgICAgaWYgKCFjaHVu a19zaXplKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICAg ICAgc3dpdGNoIChjaHVua190eXBlKSB7CisgICAgICAgIGNhc2UgTUtCRVRBRygnQycsJ1InLCdJ JywnRCcpOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gYXZpb19za2lwKHBi LCBjaHVua19zaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1LQkVUQUco J0AnLCdBJywnTCcsJ1AnKToKKyAgICAgICAgY2FzZSBNS0JFVEFHKCdAJywnUycsJ0InLCdUJyk6 CisgICAgICAgIGNhc2UgTUtCRVRBRygnQCcsJ1MnLCdGJywnQScpOgorICAgICAgICBjYXNlIE1L QkVUQUcoJ0AnLCdTJywnRicsJ1YnKToKKyAgICAgICAgICAgIHJldCA9IHBhcnNlX2NodW5rKHMs IHBiLCBjaHVua190eXBlLCBjaHVua19zaXplLCBwa3QpOworICAgICAgICAgICAgZ290X3BhY2tl dCA9IHJldCA+IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlm IChnb3RfcGFja2V0KQorICAgICAgICAgICAgcGt0LT5wb3MgPSBwb3M7CisKKyAgICAgICAgaWYg KGdvdF9wYWNrZXQgfHwgcmV0IDwgMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAg IHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdXNtX3JlYWRfY2xvc2UoQVZGb3JtYXRDb250 ZXh0ICpzKQoreworICAgIFVTTURlbXV4Q29udGV4dCAqdXNtID0gcy0+cHJpdl9kYXRhOworICAg IGF2X2ZyZWVwKCZ1c20tPmhlYWRlcik7CisgICAgdXNtLT5oZWFkZXJfc2l6ZSA9IDA7CisgICAg cmV0dXJuIDA7Cit9CisKK2NvbnN0IEFWSW5wdXRGb3JtYXQgZmZfdXNtX2RlbXV4ZXIgPSB7Cisg ICAgLm5hbWUgICAgICAgICAgID0gInVzbSIsCisgICAgLmxvbmdfbmFtZSAgICAgID0gTlVMTF9J Rl9DT05GSUdfU01BTEwoIkNSSSBVU00iKSwKKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2Yo VVNNRGVtdXhDb250ZXh0KSwKKyAgICAucmVhZF9wcm9iZSAgICAgPSB1c21fcHJvYmUsCisgICAg LnJlYWRfaGVhZGVyICAgID0gdXNtX3JlYWRfaGVhZGVyLAorICAgIC5yZWFkX3BhY2tldCAgICA9 IHVzbV9yZWFkX3BhY2tldCwKKyAgICAucmVhZF9jbG9zZSAgICAgPSB1c21fcmVhZF9jbG9zZSwK KyAgICAuZXh0ZW5zaW9ucyAgICAgPSAidXNtIiwKKyAgICAuZmxhZ3MgICAgICAgICAgPSBBVkZN VF9HRU5FUklDX0lOREVYIHwgQVZGTVRfTk9fQllURV9TRUVLIHwgQVZGTVRfTk9CSU5TRUFSQ0gs Cit9OwotLSAKMi4zOS4xCgo= --00000000000093ec820604ffe22e 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". --00000000000093ec820604ffe22e--