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 52285476E5 for ; Sun, 19 Nov 2023 19:09:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2CD7168CA4C; Sun, 19 Nov 2023 21:09:21 +0200 (EET) Received: from mail-4324.protonmail.ch (mail-4324.protonmail.ch [185.70.43.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1BE4068BE8F for ; Sun, 19 Nov 2023 21:09:14 +0200 (EET) Date: Sun, 19 Nov 2023 19:08:59 +0000 To: FFmpeg development discussions and patches Message-ID: Feedback-ID: 28710920:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_e8uNeY70MpOQWnjyufopJReqhxTZ8XedLaIBtHn44U" Subject: [FFmpeg-devel] [PATCH v6 2/2] avformat/oggenc: Add support for embedding cover art 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: , From: =?utf-8?q?Zsolt_Vad=C3=A1sz_via_ffmpeg-devel?= Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?Q?Zsolt_Vad=C3=A1sz?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --b1_e8uNeY70MpOQWnjyufopJReqhxTZ8XedLaIBtHn44U Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Attached. --b1_e8uNeY70MpOQWnjyufopJReqhxTZ8XedLaIBtHn44U Content-Type: text/x-patch; name=v6-0002-avformat-oggenc-Add-support-for-embedding-cover-a.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0002-avformat-oggenc-Add-support-for-embedding-cover-a.patch RnJvbSAzODcxNmUyMGIyZThiM2E3MTFjYzIyZjdlN2FiYzQ1NzMxYWE3OWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/WnNvbHQ9MjBWYWQ9QzM9QTFzej89IDx6c29s dF92YWRhc3pAcHJvdG9ubWFpbC5jb20+CkRhdGU6IEZyaSwgMTAgTWFyIDIwMjMgMTE6MjY6Mjcg KzAwMDAKU3ViamVjdDogW1BBVENIIHY2IDIvMl0gYXZmb3JtYXQvb2dnZW5jOiBBZGQgc3VwcG9y dCBmb3IgZW1iZWRkaW5nIGNvdmVyIGFydAoKRml4ZXMgIzQ0NDguCgpTaWduZWQtb2ZmLWJ5OiBa c29sdCBWYWRhc3ogPHpzb2x0X3ZhZGFzekBwcm90b25tYWlsLmNvbT4KLS0tCiBsaWJhdmZvcm1h dC9vZ2dlbmMuYyB8IDIxNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTc2IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L29nZ2VuYy5jIGIvbGliYXZmb3JtYXQvb2dnZW5jLmMK aW5kZXggNjlhNjZmNTg2ZC4uODkzZjRjYWMxNCAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvb2dn ZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvb2dnZW5jLmMKQEAgLTIzLDE5ICsyMywyOCBAQAogCiAj aW5jbHVkZSA8c3RkaW50Lmg+CiAKKyNpbmNsdWRlICJsaWJhdmNvZGVjL2NvZGVjX2lkLmgiCisj aW5jbHVkZSAibGliYXZ1dGlsL2F2dXRpbC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9jcmMuaCIK KyNpbmNsdWRlICJsaWJhdnV0aWwvbG9nLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL21hdGhlbWF0 aWNzLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9y YW5kb21fc2VlZC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9waXhkZXNjLmgiCisjaW5jbHVkZSAi bGliYXZ1dGlsL2F2c3RyaW5nLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2Jhc2U2NC5oIgorI2lu Y2x1ZGUgImxpYmF2dXRpbC9ic3dhcC5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMveGlwaC5oIgog I2luY2x1ZGUgImxpYmF2Y29kZWMvYnl0ZXN0cmVhbS5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMv ZmxhYy5oIgogI2luY2x1ZGUgImF2Zm9ybWF0LmgiCisjaW5jbHVkZSAiaWQzdjIuaCIKICNpbmNs dWRlICJhdmlvX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiaW50ZXJuYWwuaCIKICNpbmNsdWRlICJt dXguaCIKICNpbmNsdWRlICJ2ZXJzaW9uLmgiCiAjaW5jbHVkZSAidm9yYmlzY29tbWVudC5oIgor I2luY2x1ZGUgImZsYWNfcGljdHVyZS5oIgogCiAjZGVmaW5lIE1BWF9QQUdFX1NJWkUgNjUwMjUK IApAQCAtNzgsNiArODcsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgT0dHQ29udGV4dCB7CiAgICAgaW50 IHByZWZfc2l6ZTsgLy8vPCBwcmVmZXJyZWQgcGFnZSBzaXplICgwID0+IGZpbGwgYWxsIHNlZ21l bnRzKQogICAgIGludDY0X3QgcHJlZl9kdXJhdGlvbjsgICAgICAvLy88IHByZWZlcnJlZCBwYWdl IGR1cmF0aW9uICgwID0+IGZpbGwgYWxsIHNlZ21lbnRzKQogICAgIGludCBzZXJpYWxfb2Zmc2V0 OworCisgICAgUGFja2V0TGlzdCBxdWV1ZTsKKyAgICBpbnQgYXVkaW9fc3RyZWFtX2lkeDsKKyAg ICBpbnQgd2FpdGluZ19waWNzOworICAgIHVuc2lnbmVkIGF0dGFjaGVkX3R5cGVzOwogfSBPR0dD b250ZXh0OwogCiAjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihPR0dDb250ZXh0LCB4KQpAQCAt NDY5LDEyICs0ODMsMTQgQEAgc3RhdGljIHZvaWQgb2dnX3dyaXRlX3BhZ2VzKEFWRm9ybWF0Q29u dGV4dCAqcywgaW50IGZsdXNoKQogICAgIG9nZy0+cGFnZV9saXN0ID0gcDsKIH0KIAotc3RhdGlj IGludCBvZ2dfaW5pdChBVkZvcm1hdENvbnRleHQgKnMpCitzdGF0aWMgaW50IG9nZ19maW5pc2hf aW5pdChBVkZvcm1hdENvbnRleHQgKnMpCiB7CiAgICAgT0dHQ29udGV4dCAqb2dnID0gcy0+cHJp dl9kYXRhOwogICAgIE9HR1N0cmVhbUNvbnRleHQgKm9nZ3N0cmVhbSA9IE5VTEw7CiAgICAgaW50 IGksIGo7CiAKKyAgICBvZ2ctPndhaXRpbmdfcGljcyA9IDA7CisKICAgICBpZiAob2dnLT5wcmVm X3NpemUpCiAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywgIlRoZSBwYWdlc2l6ZSBv cHRpb24gaXMgZGVwcmVjYXRlZFxuIik7CiAKQEAgLTQ4MiwyOSArNDk4LDEwIEBAIHN0YXRpYyBp bnQgb2dnX2luaXQoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICBBVlN0cmVhbSAqc3QgPSBz LT5zdHJlYW1zW2ldOwogICAgICAgICB1bnNpZ25lZCBzZXJpYWxfbnVtID0gaSArIG9nZy0+c2Vy aWFsX29mZnNldDsKIAotICAgICAgICBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFW TUVESUFfVFlQRV9BVURJTykgewotICAgICAgICAgICAgaWYgKHN0LT5jb2RlY3Bhci0+Y29kZWNf aWQgPT0gQVZfQ09ERUNfSURfT1BVUykKLSAgICAgICAgICAgICAgICAvKiBPcHVzIHJlcXVpcmVz IGEgZml4ZWQgNDhrSHogY2xvY2sgKi8KLSAgICAgICAgICAgICAgICBhdnByaXZfc2V0X3B0c19p bmZvKHN0LCA2NCwgMSwgNDgwMDApOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg IGF2cHJpdl9zZXRfcHRzX2luZm8oc3QsIDY0LCAxLCBzdC0+Y29kZWNwYXItPnNhbXBsZV9yYXRl KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzdC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFW X0NPREVDX0lEX1ZPUkJJUyAmJgotICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAh PSBBVl9DT0RFQ19JRF9USEVPUkEgJiYKLSAgICAgICAgICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNf aWQgIT0gQVZfQ09ERUNfSURfU1BFRVggICYmCi0gICAgICAgICAgICBzdC0+Y29kZWNwYXItPmNv ZGVjX2lkICE9IEFWX0NPREVDX0lEX0ZMQUMgICAmJgotICAgICAgICAgICAgc3QtPmNvZGVjcGFy LT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9PUFVTICAgJiYKLSAgICAgICAgICAgIHN0LT5jb2Rl Y3Bhci0+Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfVlA4KSB7Ci0gICAgICAgICAgICBhdl9sb2co cywgQVZfTE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgY29kZWMgaWQgaW4gc3RyZWFtICVkXG4iLCBp KTsKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Ci0gICAgICAgIH0KKyAgICAg ICAgaWYoc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTyAmJgor ICAgICAgICAgICAoc3QtPmRpc3Bvc2l0aW9uICYgQVZfRElTUE9TSVRJT05fQVRUQUNIRURfUElD KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmICgoIXN0LT5jb2RlY3Bhci0+ ZXh0cmFkYXRhIHx8ICFzdC0+Y29kZWNwYXItPmV4dHJhZGF0YV9zaXplKSAmJgotICAgICAgICAg ICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9WUDgpIHsKLSAgICAgICAg ICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJObyBleHRyYWRhdGEgcHJlc2VudFxuIik7Ci0g ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKLSAgICAgICAgfQogICAgICAg ICBvZ2dzdHJlYW0gPSBhdl9tYWxsb2N6KHNpemVvZigqb2dnc3RyZWFtKSk7CiAgICAgICAgIGlm ICghb2dnc3RyZWFtKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKQEAgLTUx NSw4ICs1MTIsMTEgQEAgc3RhdGljIGludCBvZ2dfaW5pdChBVkZvcm1hdENvbnRleHQgKnMpCiAg ICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgc2VyaWFsX251bSA9IGF2X2dldF9yYW5k b21fc2VlZCgpOwogICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBpOyBqKyspIHsKKyAg ICAgICAgICAgICAgICAgICAgLy8gTlVMTCBmb3IgYXR0YWNoZWRfcGljCiAgICAgICAgICAgICAg ICAgICAgIE9HR1N0cmVhbUNvbnRleHQgKnNjID0gcy0+c3RyZWFtc1tqXS0+cHJpdl9kYXRhOwot ICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWFsX251bSA9PSBzYy0+c2VyaWFsX251bSkKKyAg ICAgICAgICAgICAgICAgICAgaWYoIXNjKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNlcmlhbF9udW0gPT0gc2MtPnNlcmlh bF9udW0pCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICB9IHdoaWxlIChqIDwgaSk7CkBAIC01NjMsOSArNTYzLDkgQEAgc3RhdGlj IGludCBvZ2dfaW5pdChBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgICAgICAgICBpbnQgZnJhbWlu Z19iaXQgPSBzdC0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1ZPUkJJUyA/IDEg OiAwOwogCiAgICAgICAgICAgICBpZiAoYXZwcml2X3NwbGl0X3hpcGhfaGVhZGVycyhzdC0+Y29k ZWNwYXItPmV4dHJhZGF0YSwgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGFfc2l6ZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBB Vl9DT0RFQ19JRF9WT1JCSVMgPyAzMCA6IDQyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3QgdWludDhfdCoqKW9nZ3N0cmVhbS0+aGVhZGVyLCBvZ2dzdHJlYW0t PmhlYWRlcl9sZW4pIDwgMCkgewotICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfRVJS T1IsICJFeHRyYWRhdGEgY29ycnVwdGVkXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVk9S QklTID8gMzAgOiA0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdCB1aW50OF90Kiopb2dnc3RyZWFtLT5oZWFkZXIsIG9nZ3N0cmVhbS0+aGVhZGVyX2xl bikgPCAwKSB7CisgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkV4dHJh ZGF0YSBjb3JydXB0ZWQgZm9yIHN0cmVhbSAjJWRcbiIsIGkpOwogICAgICAgICAgICAgICAgIG9n Z3N0cmVhbS0+aGVhZGVyWzFdID0gTlVMTDsKICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKICAgICAgICAgICAgIH0KQEAgLTYwMiwxMyArNjAyLDY3IEBAIHN0YXRp YyBpbnQgb2dnX2luaXQoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIHJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IG9nZ193cml0ZV9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQorc3RhdGljIGlu dCBvZ2dfaW5pdChBVkZvcm1hdENvbnRleHQgKnMpCit7CisgICAgT0dHQ29udGV4dCAqb2dnID0g cy0+cHJpdl9kYXRhOworICAgIGludCBpOworCisgICAgb2dnLT53YWl0aW5nX3BpY3MgPSAwOwor ICAgIG9nZy0+YXR0YWNoZWRfdHlwZXMgPSAwOworCisgICAgaWYgKG9nZy0+cHJlZl9zaXplKQor ICAgICAgICBhdl9sb2cocywgQVZfTE9HX1dBUk5JTkcsICJUaGUgcGFnZXNpemUgb3B0aW9uIGlz IGRlcHJlY2F0ZWRcbiIpOworCisgICAgZm9yIChpID0gMDsgaSA8IHMtPm5iX3N0cmVhbXM7IGkr KykgeworICAgICAgICBBVlN0cmVhbSAqc3QgPSBzLT5zdHJlYW1zW2ldOworCisgICAgICAgIGlm IChzdC0+Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKSB7CisgICAg ICAgICAgICBvZ2ctPmF1ZGlvX3N0cmVhbV9pZHggPSBpOworICAgICAgICAgICAgaWYgKHN0LT5j b2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfT1BVUykKKyAgICAgICAgICAgICAgICAv KiBPcHVzIHJlcXVpcmVzIGEgZml4ZWQgNDhrSHogY2xvY2sgKi8KKyAgICAgICAgICAgICAgICBh dnByaXZfc2V0X3B0c19pbmZvKHN0LCA2NCwgMSwgNDgwMDApOworICAgICAgICAgICAgZWxzZQor ICAgICAgICAgICAgICAgIGF2cHJpdl9zZXRfcHRzX2luZm8oc3QsIDY0LCAxLCBzdC0+Y29kZWNw YXItPnNhbXBsZV9yYXRlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdC0+Y29kZWNwYXIt PmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX1ZPUkJJUyAmJgorICAgICAgICAgICAgc3QtPmNvZGVj cGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9USEVPUkEgJiYKKyAgICAgICAgICAgIHN0LT5j b2RlY3Bhci0+Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfU1BFRVggICYmCisgICAgICAgICAgICBz dC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX0ZMQUMgICAmJgorICAgICAgICAg ICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9PUFVTICAgJiYKKyAgICAg ICAgICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfVlA4ICAgICYmCisg ICAgICAgICAgICBzdC0+Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX1BORyAgICAm JgorICAgICAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9NSlBF RykgeworICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIlVuc3VwcG9ydGVkIGNv ZGVjIGlkIGluIHN0cmVhbSAlZFxuIiwgaSk7CisgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF SU5WQUwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCghc3QtPmNvZGVjcGFyLT5leHRyYWRh dGEgfHwgIXN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUpICYmCisgICAgICAgICAgICBzdC0+ Y29kZWNwYXItPmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX1ZQOCAmJgorICAgICAgICAgICAgc3Qt PmNvZGVjcGFyLT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9QTkcgJiYKKyAgICAgICAgICAgIHN0 LT5jb2RlY3Bhci0+Y29kZWNfaWQgIT0gQVZfQ09ERUNfSURfTUpQRUcpIHsKKyAgICAgICAgICAg IGF2X2xvZyhzLCBBVl9MT0dfRVJST1IsICJObyBleHRyYWRhdGEgcHJlc2VudFxuIik7CisgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAgICAgfQorICAgICAgICBp ZiAoc3QtPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTyAmJgorICAg ICAgICAgICAgKHN0LT5kaXNwb3NpdGlvbiAmIEFWX0RJU1BPU0lUSU9OX0FUVEFDSEVEX1BJQykp CisgICAgICAgICAgICBvZ2ctPndhaXRpbmdfcGljcysrOworICAgIH0KKworICAgIGlmICghb2dn LT53YWl0aW5nX3BpY3MpCisgICAgICAgIHJldHVybiBvZ2dfZmluaXNoX2luaXQocyk7CisgICAg cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgb2dnX2ZpbmlzaF9oZWFkZXIoQVZGb3JtYXRDb250 ZXh0ICpzKQogewogICAgIE9HR1N0cmVhbUNvbnRleHQgKm9nZ3N0cmVhbSA9IE5VTEw7CiAgICAg aW50IGksIGo7CiAKICAgICBmb3IgKGogPSAwOyBqIDwgcy0+bmJfc3RyZWFtczsgaisrKSB7CiAg ICAgICAgIG9nZ3N0cmVhbSA9IHMtPnN0cmVhbXNbal0tPnByaXZfZGF0YTsKKyAgICAgICAgaWYo IW9nZ3N0cmVhbSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBvZ2dfYnVmZmVyX2Rh dGEocywgcy0+c3RyZWFtc1tqXSwgb2dnc3RyZWFtLT5oZWFkZXJbMF0sCiAgICAgICAgICAgICAg ICAgICAgICAgICBvZ2dzdHJlYW0tPmhlYWRlcl9sZW5bMF0sIDAsIDEpOwogICAgICAgICBvZ2dz dHJlYW0tPnBhZ2UuZmxhZ3MgfD0gMjsgLy8gYm9zCkBAIC02MTcsNiArNjcxLDggQEAgc3RhdGlj IGludCBvZ2dfd3JpdGVfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICBmb3IgKGogPSAw OyBqIDwgcy0+bmJfc3RyZWFtczsgaisrKSB7CiAgICAgICAgIEFWU3RyZWFtICpzdCA9IHMtPnN0 cmVhbXNbal07CiAgICAgICAgIG9nZ3N0cmVhbSA9IHN0LT5wcml2X2RhdGE7CisgICAgICAgIGlm KCFvZ2dzdHJlYW0pCisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgZm9yIChpID0gMTsg aSA8IDM7IGkrKykgewogICAgICAgICAgICAgaWYgKG9nZ3N0cmVhbS0+aGVhZGVyX2xlbltpXSkK ICAgICAgICAgICAgICAgICBvZ2dfYnVmZmVyX2RhdGEocywgc3QsIG9nZ3N0cmVhbS0+aGVhZGVy W2ldLApAQCAtNjMyLDYgKzY4OCwxNCBAQCBzdGF0aWMgaW50IG9nZ193cml0ZV9oZWFkZXIoQVZG b3JtYXRDb250ZXh0ICpzKQogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IG9nZ193cml0 ZV9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQoreworICAgIE9HR0NvbnRleHQgKm9nZyA9IHMt PnByaXZfZGF0YTsKKyAgICBpZiAoIW9nZy0+d2FpdGluZ19waWNzKQorICAgICAgICByZXR1cm4g b2dnX2ZpbmlzaF9oZWFkZXIocyk7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgb2dn X3dyaXRlX3BhY2tldF9pbnRlcm5hbChBVkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3Qp CiB7CiAgICAgQVZTdHJlYW0gKnN0ID0gcy0+c3RyZWFtc1twa3QtPnN0cmVhbV9pbmRleF07CkBA IC02ODQsMjAgKzc0OCw4OSBAQCBzdGF0aWMgaW50IG9nZ193cml0ZV9wYWNrZXRfaW50ZXJuYWwo QVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQogICAgIHJldHVybiAwOwogfQogCitz dGF0aWMgaW50IG9nZ19xdWV1ZV9mbHVzaChBVkZvcm1hdENvbnRleHQgKnMpCit7CisgICAgT0dH Q29udGV4dCAqYyA9IHMtPnByaXZfZGF0YTsKKyAgICBBVlBhY2tldCAqY29uc3QgcGt0ID0gZmZm b3JtYXRjb250ZXh0KHMpLT5wa3Q7CisgICAgaW50IHJldCwgd3JpdGUgPSAxOworICAgIHJldCA9 IG9nZ19maW5pc2hfaW5pdChzKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgd3JpdGUgPSAw OworICAgIHJldCA9IG9nZ19maW5pc2hfaGVhZGVyKHMpOworICAgIGlmIChyZXQgPCAwKQorICAg ICAgICB3cml0ZSA9IDA7CisKKyAgICB3aGlsZSAoYy0+cXVldWUuaGVhZCkgeworICAgICAgICBh dnByaXZfcGFja2V0X2xpc3RfZ2V0KCZjLT5xdWV1ZSwgcGt0KTsKKyAgICAgICAgaWYgKHdyaXRl ICYmIChyZXQgPSBvZ2dfd3JpdGVfcGFja2V0X2ludGVybmFsKHMsIHBrdCkpIDwgMCkKKyAgICAg ICAgICAgIHdyaXRlID0gMDsKKyAgICAgICAgYXZfcGFja2V0X3VucmVmKHBrdCk7CisgICAgfQor ICAgIHJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQgb2dnX3dyaXRlX3BhY2tldChBVkZvcm1h dENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiB7Ci0gICAgaW50IGk7CisgICAgT0dHQ29udGV4 dCAqYyA9IHMtPnByaXZfZGF0YTsKKyAgICBpbnQgaSwgcmV0OworICAgIEFWU3RyZWFtICpzdCA9 IHMtPnN0cmVhbXNbcGt0LT5zdHJlYW1faW5kZXhdOwogCi0gICAgaWYgKHBrdCkKLSAgICAgICAg cmV0dXJuIHBrdC0+c2l6ZSA/IG9nZ193cml0ZV9wYWNrZXRfaW50ZXJuYWwocywgcGt0KSA6IDA7 CisgICAgaWYgKHBrdCkgeworICAgICAgICBpZiAocGt0LT5zdHJlYW1faW5kZXggPT0gYy0+YXVk aW9fc3RyZWFtX2lkeCkgeworICAgICAgICAgICAgaWYgKGMtPndhaXRpbmdfcGljcykgeworICAg ICAgICAgICAgICAgIC8qIGJ1ZmZlciBhdWRpbyBwYWNrZXRzIHVudGlsIHdlIGdldCBhbGwgdGhl IHBpY3R1cmVzICovCisgICAgICAgICAgICAgICAgcmV0ID0gYXZwcml2X3BhY2tldF9saXN0X3B1 dCgmYy0+cXVldWUsIHBrdCwgTlVMTCwgMCk7CisgICAgICAgICAgICAgICAgaWYgKHJldCA8IDAp IHsKKyAgICAgICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIk91dCBvZiBt ZW1vcnkgaW4gcGFja2V0IHF1ZXVlOyBza2lwcGluZyBhdHRhY2hlZCBwaWN0dXJlc1xuIik7Cisg ICAgICAgICAgICAgICAgICAgIGMtPndhaXRpbmdfcGljcyA9IDA7CisgICAgICAgICAgICAgICAg ICAgIHJldCA9IG9nZ19xdWV1ZV9mbHVzaChzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJl dCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcGt0LT5zaXplID8gb2dnX3dyaXRlX3BhY2tldF9pbnRlcm5hbChzLCBw a3QpIDogMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg ICAgICAgICByZXR1cm4gcGt0LT5zaXplID8gb2dnX3dyaXRlX3BhY2tldF9pbnRlcm5hbChzLCBw a3QpIDogMDsKKyAgICAgICAgfSBlbHNlIGlmKGMtPndhaXRpbmdfcGljcyAmJgorICAgICAgICAg ICAgICAgICAgKHN0LT5kaXNwb3NpdGlvbiAmIEFWX0RJU1BPU0lUSU9OX0FUVEFDSEVEX1BJQykp IHsKKyAgICAgICAgICAgIC8qIHdhcm4gb25seSBvbmNlIGZvciBlYWNoIHN0cmVhbSAqLworICAg ICAgICAgICAgaWYgKHN0LT5uYl9mcmFtZXMgPT0gMSkgeworICAgICAgICAgICAgICAgIGF2X2xv ZyhzLCBBVl9MT0dfV0FSTklORywgIkdvdCBtb3JlIHRoYW4gb25lIHBpY3R1cmUgaW4gc3RyZWFt ICVkLCIKKyAgICAgICAgICAgICAgICAgICAgICAgIiBpZ25vcmluZy5cbiIsIHBrdC0+c3RyZWFt X2luZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdC0+bmJfZnJhbWVzID49 IDEpIHsKKyAgICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX1dBUk5JTkcsICJBdHRhY2hl ZCBwaWN0dXJlIG11c3Qgbm90IGhhdmUgbW9yZSB0aGFuIG9uZSBmcmFtZS5cbiIpOworICAgICAg ICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQogCi0gICAgZm9yIChpID0gMDsgaSA8 IHMtPm5iX3N0cmVhbXM7IGkrKykgewotICAgICAgICBPR0dTdHJlYW1Db250ZXh0ICpvZ2dzdHJl YW0gPSBzLT5zdHJlYW1zW2ldLT5wcml2X2RhdGE7Ci0gICAgICAgIGlmIChvZ2dzdHJlYW0tPnBh Z2Uuc2VnbWVudHNfY291bnQpCi0gICAgICAgICAgICBvZ2dfYnVmZmVyX3BhZ2Uocywgb2dnc3Ry ZWFtKTsKLSAgICB9CisgICAgICAgICAgICAvL3N0LT5wcml2X2RhdGEgPSBhdl9wYWNrZXRfY2xv bmUocGt0KTsKKyAgICAgICAgICAgIC8vaWYgKCFzdC0+cHJpdl9kYXRhKQorICAgICAgICAgICAg Ly8gICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIk91dCBvZiBtZW1vcnkgcXVldWVpbmcgYW4g YXR0YWNoZWQgcGljdHVyZTsgc2tpcHBpbmdcbiIpOworICAgICAgICAgICAgcmV0ID0gZmZfZmxh Y193cml0ZV9waWN0dXJlKHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYy0+YXR0YWNo ZWRfdHlwZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+YXVk aW9fc3RyZWFtX2lkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw a3QpOworICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgICAgICBhdl9sb2co cywgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIHByb2Nlc3MgYXR0YWNoZWQgcGljdHVyZS5cbiIp OworICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBjLT53YWl0aW5nX3BpY3MtLTsKKworICAgICAgICAgICAgLyogZmx1c2ggdGhlIGJ1ZmZlcmVk IGF1ZGlvIHBhY2tldHMgKi8KKyAgICAgICAgICAgIGlmICghYy0+d2FpdGluZ19waWNzICYmCisg ICAgICAgICAgICAgICAgKHJldCA9IG9nZ19xdWV1ZV9mbHVzaChzKSkgPCAwKQorICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJuIHBr dC0+c2l6ZSA/IG9nZ193cml0ZV9wYWNrZXRfaW50ZXJuYWwocywgcGt0KSA6IDA7CisgICAgfSBl bHNlIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHMtPm5iX3N0cmVhbXM7IGkrKykgeworICAg ICAgICAgICAgT0dHU3RyZWFtQ29udGV4dCAqb2dnc3RyZWFtID0gcy0+c3RyZWFtc1tpXS0+cHJp dl9kYXRhOworICAgICAgICAgICAgaWYgKG9nZ3N0cmVhbS0+cGFnZS5zZWdtZW50c19jb3VudCkK KyAgICAgICAgICAgICAgICBvZ2dfYnVmZmVyX3BhZ2Uocywgb2dnc3RyZWFtKTsKKyAgICAgICAg fQogCi0gICAgb2dnX3dyaXRlX3BhZ2VzKHMsIDIpOworICAgICAgICBvZ2dfd3JpdGVfcGFnZXMo cywgMik7CisgICAgfQogICAgIHJldHVybiAxOwogfQogCkBAIC03MDgsNiArODQxLDggQEAgc3Rh dGljIGludCBvZ2dfd3JpdGVfdHJhaWxlcihBVkZvcm1hdENvbnRleHQgKnMpCiAgICAgLyogZmx1 c2ggY3VycmVudCBwYWdlIGlmIG5lZWRlZCAqLwogICAgIGZvciAoaSA9IDA7IGkgPCBzLT5uYl9z dHJlYW1zOyBpKyspIHsKICAgICAgICAgT0dHU3RyZWFtQ29udGV4dCAqb2dnc3RyZWFtID0gcy0+ c3RyZWFtc1tpXS0+cHJpdl9kYXRhOworICAgICAgICBpZighb2dnc3RyZWFtKQorICAgICAgICAg ICAgY29udGludWU7CiAKICAgICAgICAgaWYgKG9nZ3N0cmVhbS0+cGFnZS5zaXplID4gMCkKICAg ICAgICAgICAgIG9nZ19idWZmZXJfcGFnZShzLCBvZ2dzdHJlYW0pOwpAQCAtNzM1LDcgKzg3MCw5 IEBAIHN0YXRpYyB2b2lkIG9nZ19mcmVlKEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgICAg IHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA4KSB7CiAgICAgICAgICAg ICBhdl9mcmVlcCgmb2dnc3RyZWFtLT5oZWFkZXJbMF0pOwogICAgICAgICB9Ci0gICAgICAgIGF2 X2ZyZWVwKCZvZ2dzdHJlYW0tPmhlYWRlclsxXSk7CisgICAgICAgIGlmIChzdC0+Y29kZWNwYXIt PmNvZGVjX2lkICE9IEFWX0NPREVDX0lEX1BORyAmJgorICAgICAgICAgICAgc3QtPmNvZGVjcGFy LT5jb2RlY19pZCAhPSBBVl9DT0RFQ19JRF9NSlBFRykKKyAgICAgICAgICAgIGF2X2ZyZWVwKCZv Z2dzdHJlYW0tPmhlYWRlclsxXSk7CiAgICAgfQogCiAgICAgd2hpbGUgKHApIHsKQEAgLTg2MSw2 ICs5OTgsNyBAQCBjb25zdCBGRk91dHB1dEZvcm1hdCBmZl9vcHVzX211eGVyID0gewogICAgIC5w LmV4dGVuc2lvbnMgICAgICA9ICJvcHVzIiwKICAgICAucHJpdl9kYXRhX3NpemUgICAgPSBzaXpl b2YoT0dHQ29udGV4dCksCiAgICAgLnAuYXVkaW9fY29kZWMgICAgID0gQVZfQ09ERUNfSURfT1BV UywKKyAgICAucC52aWRlb19jb2RlYyAgICAgICA9IEFWX0NPREVDX0lEX1BORywKICAgICAuaW5p dCAgICAgICAgICAgICAgPSBvZ2dfaW5pdCwKICAgICAud3JpdGVfaGVhZGVyICAgICAgPSBvZ2df d3JpdGVfaGVhZGVyLAogICAgIC53cml0ZV9wYWNrZXQgICAgICA9IG9nZ193cml0ZV9wYWNrZXQs Ci0tIAoyLjM0LjEKCg== --b1_e8uNeY70MpOQWnjyufopJReqhxTZ8XedLaIBtHn44U 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". --b1_e8uNeY70MpOQWnjyufopJReqhxTZ8XedLaIBtHn44U--