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 A305A465D6 for ; Mon, 22 May 2023 15:49:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2260468B157; Mon, 22 May 2023 18:49:17 +0300 (EEST) Received: from mail-vk1-f170.google.com (mail-vk1-f170.google.com [209.85.221.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E919E68BB04 for ; Mon, 22 May 2023 18:49:09 +0300 (EEST) Received: by mail-vk1-f170.google.com with SMTP id 71dfb90a1353d-4572a528cefso1924694e0c.0 for ; Mon, 22 May 2023 08:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684770548; x=1687362548; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=utFdbFNZ0RLhMhI9gNJhjyd1CSVX4UZuYv2Ayob2x8U=; b=nCWH545jxZNkGobSWeQHMbtNNMU4l8D+yOWDUTo8dX/jgt8FdoudrxElmfVs4TUN3T o/2gZZtQXSTU+t2A6z+US8qUALqUtvRkla+Y8ynyBe2ObgJ7ythYaf94o95i0ralTFup PXDKUKEXcl6oYpxhgam36V4hcjSK9+4lkJmzhs/ta4jPi2ImAsVBmujqM9tFx5o83RaB gkJAeXDkEfGJKixVK/a0ind0luStdRY10ySoGywazxImqn7uOmbq/mePG5w2HvyrTCvX G0mRkne3hsy9igNyTOJEtxgeFEd9fdqRAs1wM8OXiKh5aAq8sIq75qkLaxE3jQIzjPbA veDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684770548; x=1687362548; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=utFdbFNZ0RLhMhI9gNJhjyd1CSVX4UZuYv2Ayob2x8U=; b=ALswKntwTp7wJD2xe3bQogoaV2u4GfV3VmpiNiE0tLNyBQrgse9J2EKq60txZmTltb n3PJFKiJ8J4pTf1MYff0DnvTPVdZRfjr3xCnhRmw8XobHYLF67agsfgUzACRJ+6vvOgC ppun/0CAvMxjenbTUnF2W79Z7h/u6750gxgOHJyg7aUUtH2txKwxsCbfMbr2l5h/qtGy DQDC5bA/6D1RO+ZEVZNnfU0MddkNLqBirozFrgM1DhWZHH8QnTO5U7wcwyokdYjU8WdE fNWySYQK4cbyiy+5mBtMFfihP3L1qI9RJzPkgjk6Ps5zY76fjbg/twxwM0VvopIeh2kT jx1Q== X-Gm-Message-State: AC+VfDw28krNxQKOA5TwiizGxc9RHtCdgz1kD0zv+ygJj5ZHrnbJ9zYY sYZbFNNLq+EZFrl1+7QOWwjJewTAyF9CcDPMt78+nKBw X-Google-Smtp-Source: ACHHUZ4JZfb6lBgQH4HS/D0ffq9sSHCJnd7F4vuzp9iOGmck7JJVgkuLsZAFOfPFyhWR/6AJhM0bDorno/0wdHVSafc= X-Received: by 2002:a1f:df42:0:b0:44f:d211:2df3 with SMTP id w63-20020a1fdf42000000b0044fd2112df3mr4261714vkg.13.1684770548410; Mon, 22 May 2023 08:49:08 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a59:cd03:0:b0:3b6:f9a0:5488 with HTTP; Mon, 22 May 2023 08:49:07 -0700 (PDT) In-Reply-To: References: From: Paul B Mahol Date: Mon, 22 May 2023 17:49:07 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000011079105fc4a36ff" Subject: Re: [FFmpeg-devel] [PATCH] avformat/gifdec: cleanup 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: --00000000000011079105fc4a36ff Content-Type: text/plain; charset="UTF-8" On 5/21/23, Paul B Mahol wrote: > Attached patches. > > This finally removes giant hacks in gif demuxer and allows using gif > files via pipe reliably. > Now with smaller diff. --00000000000011079105fc4a36ff Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avformat-demux-add-support-to-derive-timestamps-from.patch" Content-Disposition: attachment; filename="0001-avformat-demux-add-support-to-derive-timestamps-from.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file1 RnJvbSBmM2Q2ZWVhNDNkZjY4NmI0MjExNjAxYjE5NGZhYzgxZjAzMmViMjczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFN1biwgMjEgTWF5IDIwMjMgMDI6MTU6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvMl0gYXZm b3JtYXQvZGVtdXg6IGFkZCBzdXBwb3J0IHRvIGRlcml2ZSB0aW1lc3RhbXBzIGZyb20KIHBhY2tl dCBkdXJhdGlvbnMgZm9yIHZpZGVvCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1k YUBnbWFpbC5jb20+Ci0tLQogbGliYXZmb3JtYXQvZGVtdXguYyB8IDUgKysrKysKIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9kZW11eC5j IGIvbGliYXZmb3JtYXQvZGVtdXguYwppbmRleCBkZWMwMmExYTZiLi5iM2Y1NjNjY2M3IDEwMDY0 NAotLS0gYS9saWJhdmZvcm1hdC9kZW11eC5jCisrKyBiL2xpYmF2Zm9ybWF0L2RlbXV4LmMKQEAg LTExOTUsNiArMTE5NSwxMSBAQCBzdGF0aWMgaW50IHBhcnNlX3BhY2tldChBVkZvcm1hdENvbnRl eHQgKnMsIEFWUGFja2V0ICpwa3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3QtPnRpbWVfYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB Vl9ST1VORF9ET1dOKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICgocy0+aWZv cm1hdC0+ZmxhZ3MgJiBBVkZNVF9OT1RJTUVTVEFNUFMpICYmIHN0LT5jb2RlY3Bhci0+Y29kZWNf dHlwZSA9PSBBVk1FRElBX1RZUEVfVklERU8pIHsKKyAgICAgICAgICAgIGlmIChzdC0+dGltZV9i YXNlLm51bSA+IDAgJiYgc3QtPnRpbWVfYmFzZS5kZW4gPiAwICYmCisgICAgICAgICAgICAgICAg c3RpLT5wYXJzZXItPmR1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgb3V0X3BrdC0+ZHVyYXRp b24gPSBzdGktPnBhcnNlci0+ZHVyYXRpb247CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAog ICAgICAgICBvdXRfcGt0LT5zdHJlYW1faW5kZXggPSBzdC0+aW5kZXg7Ci0tIAoyLjM5LjEKCg== --00000000000011079105fc4a36ff Content-Type: text/x-patch; charset="US-ASCII"; name="0002-avformat-gifdec-switch-to-using-gif-parser.patch" Content-Disposition: attachment; filename="0002-avformat-gifdec-switch-to-using-gif-parser.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file2 RnJvbSAyMDhkMWU4M2FlOWFlZjhlOWIzNzAwN2RmMTY1NjljZGQ0Y2YyNWQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjAgTWF5IDIwMjMgMTQ6MTM6MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvMl0gYXZm b3JtYXQvZ2lmZGVjOiBzd2l0Y2ggdG8gdXNpbmcgZ2lmIHBhcnNlcgoKVXBkYXRlIGZhdGUgdGVz dHMsIG1vcmUgY29ycmVjdCBhcyB0aW1lYmFzZSBpcyBubyBtb3JlIHJlZHVjZWQuCgpTaWduZWQt b2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy9n aWZkZWMuYyAgfCAgMTEgKy0KIGxpYmF2Zm9ybWF0L2dpZmRlYy5jIHwgMjQ0ICsrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRlc3RzL3JlZi9sYXZmL2dpZiAgIHwg ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDE4NyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2dpZmRlYy5jIGIvbGliYXZjb2RlYy9naWZkZWMu YwppbmRleCAwODM1YzViZGQwLi5mMmFiNzgzZWYwIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2dp ZmRlYy5jCisrKyBiL2xpYmF2Y29kZWMvZ2lmZGVjLmMKQEAgLTQ3MiwxMCArNDcyLDYgQEAgc3Rh dGljIGludCBnaWZfZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAq cmZyYW1lLAogCiAgICAgYnl0ZXN0cmVhbTJfaW5pdCgmcy0+Z2IsIGF2cGt0LT5kYXRhLCBhdnBr dC0+c2l6ZSk7CiAKLSAgICBzLT5mcmFtZS0+cHRzICAgICA9IGF2cGt0LT5wdHM7Ci0gICAgcy0+ ZnJhbWUtPnBrdF9kdHMgPSBhdnBrdC0+ZHRzOwotICAgIHMtPmZyYW1lLT5kdXJhdGlvbiA9IGF2 cGt0LT5kdXJhdGlvbjsKLQogICAgIGlmIChhdnBrdC0+c2l6ZSA+PSA2KSB7CiAgICAgICAgIHMt PmtleWZyYW1lID0gbWVtY21wKGF2cGt0LT5kYXRhLCBnaWY4N2Ffc2lnLCA2KSA9PSAwIHx8CiAg ICAgICAgICAgICAgICAgICAgICAgbWVtY21wKGF2cGt0LT5kYXRhLCBnaWY4OWFfc2lnLCA2KSA9 PSAwOwpAQCAtNTIyLDYgKzUxOCwxMyBAQCBzdGF0aWMgaW50IGdpZl9kZWNvZGVfZnJhbWUoQVZD b2RlY0NvbnRleHQgKmF2Y3R4LCBBVkZyYW1lICpyZnJhbWUsCiAKICAgICBpZiAoKHJldCA9IGF2 X2ZyYW1lX3JlZihyZnJhbWUsIHMtPmZyYW1lKSkgPCAwKQogICAgICAgICByZXR1cm4gcmV0Owor ICAgIGlmIChzLT5rZXlmcmFtZSkgeworICAgICAgICByZnJhbWUtPnBpY3RfdHlwZSA9IEFWX1BJ Q1RVUkVfVFlQRV9JOworICAgICAgICByZnJhbWUtPmZsYWdzIHw9IEFWX0ZSQU1FX0ZMQUdfS0VZ OworICAgIH0gZWxzZSB7CisgICAgICAgIHJmcmFtZS0+cGljdF90eXBlID0gQVZfUElDVFVSRV9U WVBFX1A7CisgICAgICAgIHJmcmFtZS0+ZmxhZ3MgJj0gfkFWX0ZSQU1FX0ZMQUdfS0VZOworICAg IH0KICAgICAqZ290X2ZyYW1lID0gMTsKIAogICAgIHJldHVybiBieXRlc3RyZWFtMl90ZWxsKCZz LT5nYik7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9naWZkZWMuYyBiL2xpYmF2Zm9ybWF0L2dp ZmRlYy5jCmluZGV4IDE5NzdmNDZlM2EuLjExZmNkZTM2YjcgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9y bWF0L2dpZmRlYy5jCisrKyBiL2xpYmF2Zm9ybWF0L2dpZmRlYy5jCkBAIC0yOCw5ICsyOCwxMiBA QAogI2luY2x1ZGUgImxpYmF2dXRpbC9icHJpbnQuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvaW50 cmVhZHdyaXRlLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL29wdC5oIgorI2luY2x1ZGUgImF2aW9f aW50ZXJuYWwuaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMv Z2lmLmgiCiAKKyNkZWZpbmUgR0lGX1BBQ0tFVF9TSVpFIDEwMjQKKwogdHlwZWRlZiBzdHJ1Y3Qg R0lGRGVtdXhDb250ZXh0IHsKICAgICBjb25zdCBBVkNsYXNzICpjbGFzczsKICAgICAvKioKQEAg LTUzLDkgKzU2LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgR0lGRGVtdXhDb250ZXh0IHsKICAgICBpbnQg dG90YWxfaXRlcjsKICAgICBpbnQgaXRlcl9jb3VudDsKICAgICBpbnQgaWdub3JlX2xvb3A7Ci0K LSAgICBpbnQgbmJfZnJhbWVzOwotICAgIGludCBsYXN0X2R1cmF0aW9uOwogfSBHSUZEZW11eENv bnRleHQ7CiAKIC8qKgpAQCAtODQsOCArODQsOCBAQCBzdGF0aWMgaW50IGdpZl9wcm9iZShjb25z dCBBVlByb2JlRGF0YSAqcCkKIAogc3RhdGljIGludCByZXN5bmMoQVZJT0NvbnRleHQgKnBiKQog ewotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKKyAgICBmZmlvX2Vu c3VyZV9zZWVrYmFjayhwYiwgMTMpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjsgaSsrKSB7 CiAgICAgICAgIGludCBiID0gYXZpb19yOChwYik7CiAgICAgICAgIGlmIChiICE9IGdpZjg3YV9z aWdbaV0gJiYgYiAhPSBnaWY4OWFfc2lnW2ldKQogICAgICAgICAgICAgaSA9IC0oYiAhPSAnRycp OwpAQCAtMTMyLDYgKzEzMiw5IEBAIHN0YXRpYyBpbnQgZ2lmX3JlYWRfaGVhZGVyKEFWRm9ybWF0 Q29udGV4dCAqcykKICAgICBpZiAoIXN0KQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p OwogCisgICAgaWYgKCEocGItPnNlZWthYmxlICYgQVZJT19TRUVLQUJMRV9OT1JNQUwpKQorICAg ICAgICBnb3RvIHNraXA7CisKICAgICBpZiAoZmxhZ3MgJiAweDgwKQogICAgICAgICBhdmlvX3Nr aXAocGIsIDMgKiAoMSA8PCAoKGZsYWdzICYgMHgwNykgKyAxKSkpOwogCkBAIC0xNTgsMTUgKzE2 MSwzNyBAQCBzdGF0aWMgaW50IGdpZl9yZWFkX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCiAK ICAgICAgICAgICAgICAgICAgICAgYXZpb19za2lwKHBiLCAxKTsKICAgICAgICAgICAgICAgICAg ICAgZGVsYXkgPSBhdmlvX3JsMTYocGIpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXkg PCBnZGMtPm1pbl9kZWxheSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5ID0gZ2RjLT5k ZWZhdWx0X2RlbGF5OwotICAgICAgICAgICAgICAgICAgICBkZWxheSA9IEZGTUlOKGRlbGF5LCBn ZGMtPm1heF9kZWxheSk7CisgICAgICAgICAgICAgICAgICAgIGRlbGF5ID0gZGVsYXkgPyBkZWxh eSA6IGdkYy0+ZGVmYXVsdF9kZWxheTsKICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24gKz0g ZGVsYXk7CiAgICAgICAgICAgICAgICAgICAgIGF2aW9fc2tpcChwYiwgMSk7CiAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXZpb19za2lwKHBiLCBibG9ja19z aXplKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZ2lmX3NraXBfc3ViYmxv Y2tzKHBiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3VidHlwZSA9PSBHSUZfQVBQX0VYVF9M QUJFTCkgeworICAgICAgICAgICAgICAgIHVpbnQ4X3QgZGF0YVsyNTZdOworICAgICAgICAgICAg ICAgIGludCBzYl9zaXplOworCisgICAgICAgICAgICAgICAgc2Jfc2l6ZSA9IGF2aW9fcjgocGIp OworICAgICAgICAgICAgICAgIHJldCA9IGF2aW9fcmVhZChwYiwgZGF0YSwgc2Jfc2l6ZSk7Cisg ICAgICAgICAgICAgICAgaWYgKHJldCA8IDAgfHwgIXNiX3NpemUpCisgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgaWYgKHNiX3NpemUgPT0gc3RybGVuKE5FVFND QVBFX0VYVF9TVFIpKSB7CisgICAgICAgICAgICAgICAgICAgIHNiX3NpemUgPSBhdmlvX3I4KHBi KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gYXZpb19yZWFkKHBiLCBkYXRhLCBzYl9zaXpl KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA8IDAgfHwgIXNiX3NpemUpCisgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc2Jfc2l6 ZSA9PSAzICYmIGRhdGFbMF0gPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZ2RjLT50 b3RhbF9pdGVyID0gQVZfUkwxNihkYXRhKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgYXZf bG9nKHMsIEFWX0xPR19ERUJVRywgIkxvb3AgY291bnQgaXMgJWRcbiIsIGdkYy0+dG90YWxfaXRl cik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZGMtPnRvdGFsX2l0ZXIgPT0gMCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGMtPnRvdGFsX2l0ZXIgPSAtMTsKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnaWZf c2tpcF9zdWJibG9ja3MocGIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg ICBnaWZfc2tpcF9zdWJibG9ja3MocGIpOwogICAgICAgICAgICAgfQpAQCAtMTgzLDIwMyArMjA4 LDU3IEBAIHN0YXRpYyBpbnQgZ2lmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKICAg ICAgICAgfQogICAgIH0KIAorc2tpcDoKKyAgICAvKiBqdW1wIHRvIHN0YXJ0IGJlY2F1c2UgZ2lm IGRlY29kZXIgbmVlZHMgaGVhZGVyIGRhdGEgdG9vICovCisgICAgaWYgKGF2aW9fc2VlayhwYiwg MCwgU0VFS19TRVQpICE9IDApCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisKICAgICAv KiBHSUYgZm9ybWF0IG9wZXJhdGVzIHdpdGggdGltZSBpbiAiaHVuZHJlZHRocyBvZiBzZWNvbmQi LAogICAgICAqIHRoZXJlZm9yZSB0aW1lYmFzZSBpcyAxLzEwMCAqLwogICAgIGF2cHJpdl9zZXRf cHRzX2luZm8oc3QsIDY0LCAxLCAxMDApOworICAgIGZmc3RyZWFtKHN0KS0+bmVlZF9wYXJzaW5n ID0gQVZTVFJFQU1fUEFSU0VfRlVMTF9SQVc7CiAgICAgc3QtPmNvZGVjcGFyLT5jb2RlY190eXBl ID0gQVZNRURJQV9UWVBFX1ZJREVPOwogICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgICA9IEFW X0NPREVDX0lEX0dJRjsKICAgICBzdC0+Y29kZWNwYXItPndpZHRoICAgICAgPSB3aWR0aDsKICAg ICBzdC0+Y29kZWNwYXItPmhlaWdodCAgICAgPSBoZWlnaHQ7CisgICAgaWYgKG5iX2ZyYW1lcyA+ IDEpIHsKKyAgICAgICAgYXZfcmVkdWNlKCZzdC0+YXZnX2ZyYW1lX3JhdGUubnVtLCAmc3QtPmF2 Z19mcmFtZV9yYXRlLmRlbiwKKyAgICAgICAgICAgICAgICAgIDEwMCwgZHVyYXRpb24gLyBuYl9m cmFtZXMsIElOVF9NQVgpOworICAgIH0gZWxzZSBpZiAoZHVyYXRpb24pIHsKKyAgICAgICAgc3Qt PmF2Z19mcmFtZV9yYXRlICAgPSAoQVZSYXRpb25hbCkgeyAxMDAsIGR1cmF0aW9uIH07CisgICAg fQogICAgIHN0LT5zdGFydF90aW1lICAgICAgICAgICA9IDA7CiAgICAgc3QtPmR1cmF0aW9uICAg ICAgICAgICAgID0gZHVyYXRpb247CiAgICAgc3QtPm5iX2ZyYW1lcyAgICAgICAgICAgID0gbmJf ZnJhbWVzOwotICAgIGlmIChuKSB7Ci0gICAgICAgIHN0LT5jb2RlY3Bhci0+c2FtcGxlX2FzcGVj dF9yYXRpby5udW0gPSBuICsgMTU7Ci0gICAgICAgIHN0LT5jb2RlY3Bhci0+c2FtcGxlX2FzcGVj dF9yYXRpby5kZW4gPSA2NDsKLSAgICB9Ci0KLSAgICAvKiBqdW1wIHRvIHN0YXJ0IGJlY2F1c2Ug Z2lmIGRlY29kZXIgbmVlZHMgaGVhZGVyIGRhdGEgdG9vICovCi0gICAgaWYgKGF2aW9fc2Vlayhw YiwgMCwgU0VFS19TRVQpICE9IDApCi0gICAgICAgIHJldHVybiBBVkVSUk9SKEVJTyk7CisgICAg aWYgKG4pCisgICAgICAgIHN0LT5jb2RlY3Bhci0+c2FtcGxlX2FzcGVjdF9yYXRpbyA9IGF2X21h a2VfcShuICsgMTUsIDY0KTsKIAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGdpZl9y ZWFkX2V4dChBVkZvcm1hdENvbnRleHQgKnMpCitzdGF0aWMgaW50IGdpZl9yZWFkX3BhY2tldChB VkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCiB7CiAgICAgR0lGRGVtdXhDb250ZXh0 ICpnZGMgPSBzLT5wcml2X2RhdGE7CiAgICAgQVZJT0NvbnRleHQgKnBiID0gcy0+cGI7Ci0gICAg aW50IHNiX3NpemUsIGV4dF9sYWJlbCA9IGF2aW9fcjgocGIpOwogICAgIGludCByZXQ7CiAKLSAg ICBpZiAoZXh0X2xhYmVsID09IEdJRl9HQ0VfRVhUX0xBQkVMKSB7Ci0gICAgICAgIGlmICgoc2Jf c2l6ZSA9IGF2aW9fcjgocGIpKSA8IDQpIHsKLSAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0df RkFUQUwsICJHcmFwaGljIENvbnRyb2wgRXh0ZW5zaW9uIGJsb2NrJ3Mgc2l6ZSBsZXNzIHRoYW4g NC5cbiIpOwotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7Ci0gICAgICAg IH0KLQotICAgICAgICAvKiBza2lwIHBhY2tlZCBmaWVsZHMgKi8KLSAgICAgICAgaWYgKChyZXQg PSBhdmlvX3NraXAocGIsIDEpKSA8IDApCi0gICAgICAgICAgICByZXR1cm4gcmV0OwotCi0gICAg ICAgIGdkYy0+ZGVsYXkgPSBhdmlvX3JsMTYocGIpOwotCi0gICAgICAgIGlmIChnZGMtPmRlbGF5 IDwgZ2RjLT5taW5fZGVsYXkpCi0gICAgICAgICAgICBnZGMtPmRlbGF5ID0gZ2RjLT5kZWZhdWx0 X2RlbGF5OwotICAgICAgICBnZGMtPmRlbGF5ID0gRkZNSU4oZ2RjLT5kZWxheSwgZ2RjLT5tYXhf ZGVsYXkpOwotCi0gICAgICAgIC8qIHNraXAgdGhlIHJlc3Qgb2YgdGhlIEdyYXBoaWMgQ29udHJv bCBFeHRlbnNpb24gYmxvY2sgKi8KLSAgICAgICAgaWYgKChyZXQgPSBhdmlvX3NraXAocGIsIHNi X3NpemUgLSAzKSkgPCAwICkKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIGlm IChleHRfbGFiZWwgPT0gR0lGX0FQUF9FWFRfTEFCRUwpIHsKLSAgICAgICAgdWludDhfdCBkYXRh WzI1Nl07Ci0KLSAgICAgICAgc2Jfc2l6ZSA9IGF2aW9fcjgocGIpOwotICAgICAgICByZXQgPSBh dmlvX3JlYWQocGIsIGRhdGEsIHNiX3NpemUpOwotICAgICAgICBpZiAocmV0IDwgMCB8fCAhc2Jf c2l6ZSkKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0KLSAgICAgICAgaWYgKHNiX3NpemUgPT0g c3RybGVuKE5FVFNDQVBFX0VYVF9TVFIpKSB7Ci0gICAgICAgICAgICBzYl9zaXplID0gYXZpb19y OChwYik7Ci0gICAgICAgICAgICByZXQgPSBhdmlvX3JlYWQocGIsIGRhdGEsIHNiX3NpemUpOwot ICAgICAgICAgICAgaWYgKHJldCA8IDAgfHwgIXNiX3NpemUpCi0gICAgICAgICAgICAgICAgcmV0 dXJuIHJldDsKLQotICAgICAgICAgICAgaWYgKHNiX3NpemUgPT0gMyAmJiBkYXRhWzBdID09IDEp IHsKLSAgICAgICAgICAgICAgICBnZGMtPnRvdGFsX2l0ZXIgPSBBVl9STDE2KGRhdGErMSk7Ci0g ICAgICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19ERUJVRywgIkxvb3AgY291bnQgaXMgJWRc biIsIGdkYy0+dG90YWxfaXRlcik7Ci0KLSAgICAgICAgICAgICAgICBpZiAoZ2RjLT50b3RhbF9p dGVyID09IDApCi0gICAgICAgICAgICAgICAgICAgIGdkYy0+dG90YWxfaXRlciA9IC0xOwotICAg ICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYgKChwYi0+c2Vla2FibGUgJiBBVklPX1NFRUtB QkxFX05PUk1BTCkgJiYKKyAgICAgICAgIWdkYy0+aWdub3JlX2xvb3AgJiYgYXZpb19mZW9mKHBi KSAmJgorICAgICAgICAoZ2RjLT50b3RhbF9pdGVyIDwgMCB8fCAoKytnZGMtPml0ZXJfY291bnQg PCBnZGMtPnRvdGFsX2l0ZXIpKSkgeworICAgICAgICBhdmlvX3NlZWsocGIsIDAsIFNFRUtfU0VU KTsKICAgICB9Ci0KLSAgICBpZiAoKHJldCA9IGdpZl9za2lwX3N1YmJsb2NrcyhwYikpIDwgMCkK KyAgICBpZiAoKHJldCA9IGF2X25ld19wYWNrZXQocGt0LCBHSUZfUEFDS0VUX1NJWkUpKSA8IDAp CiAgICAgICAgIHJldHVybiByZXQ7CiAKLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBn aWZfcmVhZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQotewotICAg IEdJRkRlbXV4Q29udGV4dCAqZ2RjID0gcy0+cHJpdl9kYXRhOwotICAgIEFWSU9Db250ZXh0ICpw YiA9IHMtPnBiOwotICAgIGludCBwYWNrZWRfZmllbGRzLCBibG9ja19sYWJlbCwgY3Rfc2l6ZSwK LSAgICAgICAga2V5ZnJhbWUsIGZyYW1lX3BhcnNlZCA9IDAsIHJldDsKLSAgICBpbnQ2NF90IGZy YW1lX3N0YXJ0ID0gYXZpb190ZWxsKHBiKSwgZnJhbWVfZW5kOwotICAgIHVuc2lnbmVkIGNoYXIg YnVmWzZdOwotCi0gICAgaWYgKChyZXQgPSBhdmlvX3JlYWQocGIsIGJ1ZiwgNikpID09IDYpIHsK LSAgICAgICAga2V5ZnJhbWUgPSBtZW1jbXAoYnVmLCBnaWY4N2Ffc2lnLCA2KSA9PSAwIHx8Ci0g ICAgICAgICAgICAgICAgICAgbWVtY21wKGJ1ZiwgZ2lmODlhX3NpZywgNikgPT0gMDsKLSAgICB9 IGVsc2UgaWYgKHJldCA8IDApIHsKKyAgICBwa3QtPnBvcyA9IGF2aW9fdGVsbChwYik7CisgICAg cGt0LT5zdHJlYW1faW5kZXggPSAwOworICAgIHJldCA9IGF2aW9fcmVhZF9wYXJ0aWFsKHBiLCBw a3QtPmRhdGEsIEdJRl9QQUNLRVRfU0laRSk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAg YXZfcGFja2V0X3VucmVmKHBrdCk7CiAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgfSBlbHNlIHsK LSAgICAgICAga2V5ZnJhbWUgPSAwOwotICAgIH0KLQotICAgIGlmIChrZXlmcmFtZSkgewotcGFy c2Vfa2V5ZnJhbWU6Ci0gICAgICAgIC8qIHNraXAgMiBieXRlcyBvZiB3aWR0aCBhbmQgMiBvZiBo ZWlnaHQgKi8KLSAgICAgICAgaWYgKChyZXQgPSBhdmlvX3NraXAocGIsIDQpKSA8IDApCi0gICAg ICAgICAgICByZXR1cm4gcmV0OwotCi0gICAgICAgIHBhY2tlZF9maWVsZHMgPSBhdmlvX3I4KHBi KTsKLQotICAgICAgICAvKiBza2lwIDEgYnl0ZSBvZiBCYWNrZ3JvdW5kIENvbG9yIEluZGV4IGFu ZCAxIGJ5dGUgb2YgUGl4ZWwgQXNwZWN0IFJhdGlvICovCi0gICAgICAgIGlmICgocmV0ID0gYXZp b19za2lwKHBiLCAyKSkgPCAwKQotICAgICAgICAgICAgcmV0dXJuIHJldDsKLQotICAgICAgICAv KiBnbG9iYWwgY29sb3IgdGFibGUgcHJlc2VuY2UgKi8KLSAgICAgICAgaWYgKHBhY2tlZF9maWVs ZHMgJiAweDgwKSB7Ci0gICAgICAgICAgICBjdF9zaXplID0gMyAqICgxIDw8ICgocGFja2VkX2Zp ZWxkcyAmIDB4MDcpICsgMSkpOwotCi0gICAgICAgICAgICBpZiAoKHJldCA9IGF2aW9fc2tpcChw YiwgY3Rfc2l6ZSkpIDwgMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9 Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYXZpb19zZWVrKHBiLCAtcmV0LCBTRUVLX0NVUik7Ci0g ICAgICAgIHJldCA9IEFWRVJST1JfRU9GOwogICAgIH0KLQotICAgIHdoaWxlIChHSUZfVFJBSUxF UiAhPSAoYmxvY2tfbGFiZWwgPSBhdmlvX3I4KHBiKSkgJiYgIWF2aW9fZmVvZihwYikpIHsKLSAg ICAgICAgaWYgKGJsb2NrX2xhYmVsID09IEdJRl9FWFRFTlNJT05fSU5UUk9EVUNFUikgewotICAg ICAgICAgICAgaWYgKChyZXQgPSBnaWZfcmVhZF9leHQgKHMpKSA8IDAgKQotICAgICAgICAgICAg ICAgIGdvdG8gcmVzeW5jOwotICAgICAgICB9IGVsc2UgaWYgKGJsb2NrX2xhYmVsID09IEdJRl9J TUFHRV9TRVBBUkFUT1IpIHsKLSAgICAgICAgICAgIC8qIHNraXAgdG8gbGFzdCBieXRlIG9mIElt YWdlIERlc2NyaXB0b3IgaGVhZGVyICovCi0gICAgICAgICAgICBpZiAoKHJldCA9IGF2aW9fc2tp cChwYiwgOCkpIDwgMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwotCi0gICAgICAgICAg ICBwYWNrZWRfZmllbGRzID0gYXZpb19yOChwYik7Ci0KLSAgICAgICAgICAgIC8qIGxvY2FsIGNv bG9yIHRhYmxlIHByZXNlbmNlICovCi0gICAgICAgICAgICBpZiAocGFja2VkX2ZpZWxkcyAmIDB4 ODApIHsKLSAgICAgICAgICAgICAgICBjdF9zaXplID0gMyAqICgxIDw8ICgocGFja2VkX2ZpZWxk cyAmIDB4MDcpICsgMSkpOwotCi0gICAgICAgICAgICAgICAgaWYgKChyZXQgPSBhdmlvX3NraXAo cGIsIGN0X3NpemUpKSA8IDApCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAg ICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIHJlYWQgTFpXIE1pbmltdW0gQ29kZSBTaXplICov Ci0gICAgICAgICAgICBpZiAoYXZpb19yOChwYikgPCAxKSB7Ci0gICAgICAgICAgICAgICAgYXZf bG9nKHMsIEFWX0xPR19FUlJPUiwgImx6dyBtaW5pbXVtIGNvZGUgc2l6ZSBtdXN0IGJlID49IDFc biIpOwotICAgICAgICAgICAgICAgIGdvdG8gcmVzeW5jOwotICAgICAgICAgICAgfQotCi0gICAg ICAgICAgICBpZiAoKHJldCA9IGdpZl9za2lwX3N1YmJsb2NrcyhwYikpIDwgMCkKLSAgICAgICAg ICAgICAgICBnb3RvIHJlc3luYzsKLQotICAgICAgICAgICAgZnJhbWVfZW5kID0gYXZpb190ZWxs KHBiKTsKLQotICAgICAgICAgICAgaWYgKGF2aW9fc2VlayhwYiwgZnJhbWVfc3RhcnQsIFNFRUtf U0VUKSAhPSBmcmFtZV9zdGFydCkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFSU8p OwotCi0gICAgICAgICAgICByZXQgPSBhdl9nZXRfcGFja2V0KHBiLCBwa3QsIGZyYW1lX2VuZCAt IGZyYW1lX3N0YXJ0KTsKLSAgICAgICAgICAgIGlmIChyZXQgPCAwKQotICAgICAgICAgICAgICAg IHJldHVybiByZXQ7Ci0KLSAgICAgICAgICAgIGlmIChrZXlmcmFtZSkKLSAgICAgICAgICAgICAg ICBwa3QtPmZsYWdzIHw9IEFWX1BLVF9GTEFHX0tFWTsKLQotICAgICAgICAgICAgcGt0LT5zdHJl YW1faW5kZXggPSAwOwotICAgICAgICAgICAgcGt0LT5kdXJhdGlvbiA9IGdkYy0+ZGVsYXk7Ci0K LSAgICAgICAgICAgIGdkYy0+bmJfZnJhbWVzICsrOwotICAgICAgICAgICAgZ2RjLT5sYXN0X2R1 cmF0aW9uID0gcGt0LT5kdXJhdGlvbjsKLQotICAgICAgICAgICAgLyogR3JhcGhpYyBDb250cm9s IEV4dGVuc2lvbidzIHNjb3BlIGlzIHNpbmdsZSBmcmFtZS4KLSAgICAgICAgICAgICAqIFJlbW92 ZSBpdHMgaW5mbHVlbmNlLiAqLwotICAgICAgICAgICAgZ2RjLT5kZWxheSA9IGdkYy0+ZGVmYXVs dF9kZWxheTsKLSAgICAgICAgICAgIGZyYW1lX3BhcnNlZCA9IDE7Ci0KLSAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJP UiwgImludmFsaWQgYmxvY2sgbGFiZWxcbiIpOwotcmVzeW5jOgotICAgICAgICAgICAgaWYgKCFr ZXlmcmFtZSkKLSAgICAgICAgICAgICAgICBhdmlvX3NlZWsocGIsIGZyYW1lX3N0YXJ0LCBTRUVL X1NFVCk7Ci0gICAgICAgICAgICBpZiAoKHJldCA9IHJlc3luYyhwYikpIDwgMCkKLSAgICAgICAg ICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICAgICAgZnJhbWVfc3RhcnQgPSBhdmlvX3RlbGwo cGIpIC0gNjsKLSAgICAgICAgICAgIGtleWZyYW1lID0gMTsKLSAgICAgICAgICAgIGdvdG8gcGFy c2Vfa2V5ZnJhbWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKHJldCA+PSAwICYmICFm cmFtZV9wYXJzZWQpIHx8IHJldCA9PSBBVkVSUk9SX0VPRikgewotICAgICAgICBpZiAoZ2RjLT5u Yl9mcmFtZXMgPT0gMSkgewotICAgICAgICAgICAgcy0+c3RyZWFtc1swXS0+cl9mcmFtZV9yYXRl ID0gKEFWUmF0aW9uYWwpIHsxMDAsIGdkYy0+bGFzdF9kdXJhdGlvbn07Ci0gICAgICAgIH0KLSAg ICAgICAgLyogVGhpcyBtaWdodCBoYXBwZW4gd2hlbiB0aGVyZSBpcyBubyBpbWFnZSBibG9jawot ICAgICAgICAgKiBiZXR3ZWVuIGV4dGVuc2lvbiBibG9ja3MgYW5kIEdJRl9UUkFJTEVSIG9yIEVP RiAqLwotICAgICAgICBpZiAoIWdkYy0+aWdub3JlX2xvb3AgJiYgKGJsb2NrX2xhYmVsID09IEdJ Rl9UUkFJTEVSIHx8IGF2aW9fZmVvZihwYikpCi0gICAgICAgICAgICAmJiAoZ2RjLT50b3RhbF9p dGVyIDwgMCB8fCArK2dkYy0+aXRlcl9jb3VudCA8IGdkYy0+dG90YWxfaXRlcikpCi0gICAgICAg ICAgICByZXR1cm4gYXZpb19zZWVrKHBiLCAwLCBTRUVLX1NFVCk7Ci0gICAgICAgIHJldHVybiBB VkVSUk9SX0VPRjsKLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIHJldDsKKyAgICBhdl9zaHJp bmtfcGFja2V0KHBrdCwgcmV0KTsKKyAgICByZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgY29uc3Qg QVZPcHRpb24gb3B0aW9uc1tdID0gewpAQCAtNDA1LDYgKzI4NCw3IEBAIGNvbnN0IEFWSW5wdXRG b3JtYXQgZmZfZ2lmX2RlbXV4ZXIgPSB7CiAgICAgLnJlYWRfcHJvYmUgICAgID0gZ2lmX3Byb2Jl LAogICAgIC5yZWFkX2hlYWRlciAgICA9IGdpZl9yZWFkX2hlYWRlciwKICAgICAucmVhZF9wYWNr ZXQgICAgPSBnaWZfcmVhZF9wYWNrZXQsCi0gICAgLmZsYWdzICAgICAgICAgID0gQVZGTVRfR0VO RVJJQ19JTkRFWCwKKyAgICAuZmxhZ3MgICAgICAgICAgPSBBVkZNVF9HRU5FUklDX0lOREVYIHwg QVZGTVRfTk9USU1FU1RBTVBTLAorICAgIC5leHRlbnNpb25zICAgICA9ICJnaWYiLAogICAgIC5w cml2X2NsYXNzICAgICA9ICZkZW11eGVyX2NsYXNzLAogfTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3Jl Zi9sYXZmL2dpZiBiL3Rlc3RzL3JlZi9sYXZmL2dpZgppbmRleCBmYzk0YjlkZjNkLi4zMGViODUz MjVhIDEwMDY0NAotLS0gYS90ZXN0cy9yZWYvbGF2Zi9naWYKKysrIGIvdGVzdHMvcmVmL2xhdmYv Z2lmCkBAIC0xLDMgKzEsMyBAQAogZTM1ZjVlYTI4M2JiY2IyNDk4MThlMDA3OGVjNzI2NjQgKnRl c3RzL2RhdGEvbGF2Zi9sYXZmLmdpZgogMjAxMTc2NiB0ZXN0cy9kYXRhL2xhdmYvbGF2Zi5naWYK LXRlc3RzL2RhdGEvbGF2Zi9sYXZmLmdpZiBDUkM9MHgyNDI5ZmFmZgordGVzdHMvZGF0YS9sYXZm L2xhdmYuZ2lmIENSQz0weDU2M2NlYzI2Ci0tIAoyLjM5LjEKCg== --00000000000011079105fc4a36ff 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". --00000000000011079105fc4a36ff--