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 10509452B5 for ; Wed, 16 Aug 2023 10:48:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 142B068C62D; Wed, 16 Aug 2023 13:48:01 +0300 (EEST) Received: from mail-vk1-f182.google.com (mail-vk1-f182.google.com [209.85.221.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A4DC2680436 for ; Wed, 16 Aug 2023 13:47:54 +0300 (EEST) Received: by mail-vk1-f182.google.com with SMTP id 71dfb90a1353d-4881c30b1b3so567748e0c.1 for ; Wed, 16 Aug 2023 03:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692182873; x=1692787673; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=8a3j2LkV1SUlGPt6A+EIcV2frZPjzwlPyR2R1sxlcIQ=; b=Fig5YvMMOZ52n3mEqTvE4+DyIAtGKLplawifpzdZMeEspIlRdSn4wh53N7QNEXGeUV pndJNmhSvmOQoYsXMXl4s/STHaDHkSPmrN5CKjDH8a4Ag3R50h04oKKhpLg5kRRiUmCr fDTVgYF+MRvBzED7e77tdnnZvQaoxB3xGcm4z7LGUKLnvFpeBdvRLKzI2zjHhhDj+jC3 inb02YxOSMdYSlrdXhkdqFeYfilNNBTsk5l3vp+I/YLs0D0o0EVRnWBkrOxoWUlneitw cqQwRBfa9C9RJAJTNvj8Y5Suyjr6ZJS9Jm/V9GZ8a3QFg8R1Vo5zMZ9LhfvrgXS7BzkW H4YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692182873; x=1692787673; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=8a3j2LkV1SUlGPt6A+EIcV2frZPjzwlPyR2R1sxlcIQ=; b=ac8RuUXgD75nTaoHYRd8c2RnR3wldRLu7AtbWMRVgOLcvcr3eS03IgqZw4NniY/Qkd Y8+IWH/yRKH9DtboWAaY6NKfggNf6ESHFf3s/hno3eB1uUk8jKQ5/hmZCbwm/B/N2WZk 5DheXB2k/USapEJIEvmEq3Xg+P2imIRJA5Gjekbl82VwnQWpgZIIPQgfKkzymffaP6Hq eETOO8ba8jLeyHj5BW53ZFEQWiviQEvtNAnOpHJ4vTkOc4choEjAzfasqUxZxzGatwzJ 6ywDNGGEJnT2woaxtjQKkFOd/N7gtmc+XvUkzAgYCdItrFBPuO7Uw/IMckwN5cc/Q+s9 7nWA== X-Gm-Message-State: AOJu0YwBaY8dirpyHqAaqRx9aiiNtyaV5xG21LPKyXZvLhHITP6Cer4z PR0jLdtUtCrac7yAByRGcWodkuwT/XP5tMv1APResrwL X-Google-Smtp-Source: AGHT+IFqI8LwlL2qrkJmRfojduiLZo6Afpc2mZ5cJF41VbTh/LmpOjEileY3qD1eTY2Ej/JydAelO7DraagapnLAWWA= X-Received: by 2002:a67:e312:0:b0:443:7935:6eb5 with SMTP id j18-20020a67e312000000b0044379356eb5mr1244907vsf.15.1692182872595; Wed, 16 Aug 2023 03:47:52 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Wed, 16 Aug 2023 12:47:36 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000004395a0603080743" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] tta decoder improvements 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: --00000000000004395a0603080743 Content-Type: text/plain; charset="UTF-8" Patch attached. --00000000000004395a0603080743 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avcodec-tta-switch-to-planar-sample-formats.patch" Content-Disposition: attachment; filename="0001-avcodec-tta-switch-to-planar-sample-formats.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lldlz2l00 RnJvbSAyYjZhYzRmNzA5MzE1NzUzM2I3ZjI3OWE3OGE3M2JmYWJlYjk4Y2YwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMTUgQXVnIDIwMjMgMjE6MTM6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBhdmNvZGVj L3R0YTogc3dpdGNoIHRvIHBsYW5hciBzYW1wbGUgZm9ybWF0cwoKTWFrZXMgZGVjb2RpbmcgZmV3 IHBlcmNlbnQgZmFzdGVyLgpBbHNvIGZpeCBjb2RlIHN0eWxlIHdoaWxlIGhlcmUuCgpTaWduZWQt b2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogbGliYXZjb2RlYy90 dGEuYyB8IDE2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL3R0YS5jIGIvbGliYXZjb2RlYy90dGEuYwppbmRleCAzZTg5 NTcxZjE2Li42YWRkNDEwNmQzIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3R0YS5jCisrKyBiL2xp YmF2Y29kZWMvdHRhLmMKQEAgLTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVFRBQ29udGV4 dCB7CiAgICAgdW5zaWduZWQgZGF0YV9sZW5ndGg7CiAgICAgaW50IGZyYW1lX2xlbmd0aCwgbGFz dF9mcmFtZV9sZW5ndGg7CiAKLSAgICBpbnQzMl90ICpkZWNvZGVfYnVmZmVyOworICAgIGludDMy X3QgKipkZWNvZGVfYnVmZmVyOwogCiAgICAgdWludDhfdCBjcmNfcGFzc1s4XTsKICAgICB1aW50 OF90ICpwYXNzOwpAQCAtMTA3LDEwICsxMDcsMTYgQEAgc3RhdGljIGludCBhbGxvY2F0ZV9idWZm ZXJzKEFWQ29kZWNDb250ZXh0ICphdmN0eCkKICAgICBUVEFDb250ZXh0ICpzID0gYXZjdHgtPnBy aXZfZGF0YTsKIAogICAgIGlmIChzLT5icHMgPCAzKSB7Ci0gICAgICAgIHMtPmRlY29kZV9idWZm ZXIgPSBhdl9jYWxsb2Mocy0+ZnJhbWVfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpemVvZigqcy0+ZGVjb2RlX2J1ZmZlcikgKiBzLT5jaGFubmVscyk7Cisg ICAgICAgIHMtPmRlY29kZV9idWZmZXIgPSBhdl9jYWxsb2Mocy0+Y2hhbm5lbHMsIHNpemVvZigq cy0+ZGVjb2RlX2J1ZmZlcikpOwogICAgICAgICBpZiAoIXMtPmRlY29kZV9idWZmZXIpCiAgICAg ICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgICAgIGZvciAoaW50IGNoID0g MDsgY2ggPCBzLT5jaGFubmVsczsgY2grKykgeworICAgICAgICAgICAgcy0+ZGVjb2RlX2J1ZmZl cltjaF0gPSBhdl9jYWxsb2Mocy0+ZnJhbWVfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpzLT5kZWNvZGVfYnVmZmVyW2NoXSkpOwor ICAgICAgICAgICAgaWYgKCFzLT5kZWNvZGVfYnVmZmVyW2NoXSkKKyAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOworICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIHMt PmRlY29kZV9idWZmZXIgPSBOVUxMOwogICAgIHMtPmNoX2N0eCA9IGF2X21hbGxvY19hcnJheShh dmN0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzLCBzaXplb2YoKnMtPmNoX2N0eCkpOwpAQCAtMTgx LDE0ICsxODcsMTQgQEAgc3RhdGljIGF2X2NvbGQgaW50IHR0YV9kZWNvZGVfaW5pdChBVkNvZGVj Q29udGV4dCAqIGF2Y3R4KQogICAgICAgICB9CiAKICAgICAgICAgc3dpdGNoKHMtPmJwcykgewot ICAgICAgICBjYXNlIDE6IGF2Y3R4LT5zYW1wbGVfZm10ID0gQVZfU0FNUExFX0ZNVF9VODsgYnJl YWs7CisgICAgICAgIGNhc2UgMTogYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9TQU1QTEVfRk1UX1U4 UDsgYnJlYWs7CiAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGF2Y3R4LT5zYW1wbGVfZm10 ID0gQVZfU0FNUExFX0ZNVF9TMTY7CisgICAgICAgICAgICBhdmN0eC0+c2FtcGxlX2ZtdCA9IEFW X1NBTVBMRV9GTVRfUzE2UDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDM6Ci0g ICAgICAgICAgICBhdmN0eC0+c2FtcGxlX2ZtdCA9IEFWX1NBTVBMRV9GTVRfUzMyOworICAgICAg ICAgICAgYXZjdHgtPnNhbXBsZV9mbXQgPSBBVl9TQU1QTEVfRk1UX1MzMlA7CiAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgLy9jYXNlIDQ6IGF2Y3R4LT5zYW1wbGVfZm10ID0gQVZfU0FNUExF X0ZNVF9TMzI7IGJyZWFrOworICAgICAgICAvL2Nhc2UgNDogYXZjdHgtPnNhbXBsZV9mbXQgPSBB Vl9TQU1QTEVfRk1UX1MzMlA7IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg YXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJJbnZhbGlkL3Vuc3VwcG9ydGVkIHNhbXBsZSBm b3JtYXQuXG4iKTsKICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwpAQCAt MjMxLDEwICsyMzcsMTAgQEAgc3RhdGljIGludCB0dGFfZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250 ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCiAgICAgY29uc3QgdWludDhfdCAqYnVmID0gYXZw a3QtPmRhdGE7CiAgICAgaW50IGJ1Zl9zaXplID0gYXZwa3QtPnNpemU7CiAgICAgVFRBQ29udGV4 dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7CisgICAgY29uc3QgaW50IGJwcyA9IHMtPmJwczsKICAg ICBHZXRCaXRDb250ZXh0IGdiOwogICAgIGludCBpLCByZXQ7CiAgICAgaW50IGN1cl9jaGFuID0g MCwgZnJhbWVsZW4gPSBzLT5mcmFtZV9sZW5ndGg7Ci0gICAgdWludDMyX3QgKnA7CiAKICAgICBp ZiAoYXZjdHgtPmVycl9yZWNvZ25pdGlvbiAmIEFWX0VGX0NSQ0NIRUNLKSB7CiAgICAgICAgIGlm IChidWZfc2l6ZSA8IDQgfHwKQEAgLTI1MSwxNCArMjU3LDEzIEBAIHN0YXRpYyBpbnQgdHRhX2Rl Y29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAogICAgICAg ICByZXR1cm4gcmV0OwogCiAgICAgLy8gZGVjb2RlIGRpcmVjdGx5IHRvIG91dHB1dCBidWZmZXIg Zm9yIDI0LWJpdCBzYW1wbGUgZm9ybWF0Ci0gICAgaWYgKHMtPmJwcyA9PSAzKQotICAgICAgICBz LT5kZWNvZGVfYnVmZmVyID0gKGludDMyX3QgKilmcmFtZS0+ZGF0YVswXTsKKyAgICBpZiAoYnBz ID09IDMpCisgICAgICAgIHMtPmRlY29kZV9idWZmZXIgPSAoaW50MzJfdCAqKilmcmFtZS0+ZXh0 ZW5kZWRfZGF0YTsKIAogICAgIC8vIGluaXQgcGVyIGNoYW5uZWwgc3RhdGVzCiAgICAgZm9yIChp ID0gMDsgaSA8IHMtPmNoYW5uZWxzOyBpKyspIHsKICAgICAgICAgVFRBRmlsdGVyICpmaWx0ZXIg PSAmcy0+Y2hfY3R4W2ldLmZpbHRlcjsKLSAgICAgICAgcy0+Y2hfY3R4W2ldLnByZWRpY3RvciA9 IDA7Ci0gICAgICAgIGZmX3R0YV9maWx0ZXJfaW5pdChmaWx0ZXIsIGZmX3R0YV9maWx0ZXJfY29u Zmlnc1tzLT5icHMtMV0pOworICAgICAgICBmZl90dGFfZmlsdGVyX2luaXQoZmlsdGVyLCBmZl90 dGFfZmlsdGVyX2NvbmZpZ3NbYnBzLTFdKTsKICAgICAgICAgaWYgKHMtPmZvcm1hdCA9PSBGT1JN QVRfRU5DUllQVEVEKSB7CiAgICAgICAgICAgICBpbnQgaTsKICAgICAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCA4OyBpKyspCkBAIC0yNjgsOSArMjczLDggQEAgc3RhdGljIGludCB0dGFfZGVjb2Rl X2ZyYW1lKEFWQ29kZWNDb250ZXh0ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCiAgICAgfQogCiAg ICAgaSA9IDA7Ci0gICAgZm9yIChwID0gcy0+ZGVjb2RlX2J1ZmZlcjsgKGludDMyX3QqKXAgPCBz LT5kZWNvZGVfYnVmZmVyICsgKGZyYW1lbGVuICogcy0+Y2hhbm5lbHMpOyBwKyspIHsKLSAgICAg ICAgaW50MzJfdCAqcHJlZGljdG9yID0gJnMtPmNoX2N0eFtjdXJfY2hhbl0ucHJlZGljdG9yOwot ICAgICAgICBUVEFGaWx0ZXIgKmZpbHRlciA9ICZzLT5jaF9jdHhbY3VyX2NoYW5dLmZpbHRlcjsK KyAgICBmb3IgKGludCBqID0gMDsgaiA8IGZyYW1lbGVuICogcy0+Y2hhbm5lbHM7IGorKykgewor ICAgICAgICBpbnQzMl90ICpwID0gcy0+ZGVjb2RlX2J1ZmZlcltjdXJfY2hhbl0gKyBpOwogICAg ICAgICBUVEFSaWNlICpyaWNlID0gJnMtPmNoX2N0eFtjdXJfY2hhbl0ucmljZTsKICAgICAgICAg dWludDMyX3QgdW5hcnksIGRlcHRoLCBrOwogICAgICAgICBpbnQzMl90IHZhbHVlOwpAQCAtMzA2 LDQ0ICszMTAsMjQgQEAgc3RhdGljIGludCB0dGFfZGVjb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwgQVZGcmFtZSAqZnJhbWUsCiAgICAgICAgICAgICByaWNlLT5zdW0xICs9IHZhbHVl IC0gKHJpY2UtPnN1bTEgPj4gNCk7CiAgICAgICAgICAgICBpZiAocmljZS0+azEgPiAwICYmIHJp Y2UtPnN1bTEgPCBmZl90dGFfc2hpZnRfMTZbcmljZS0+azFdKQogICAgICAgICAgICAgICAgIHJp Y2UtPmsxLS07Ci0gICAgICAgICAgICBlbHNlIGlmKHJpY2UtPnN1bTEgPiBmZl90dGFfc2hpZnRf MTZbcmljZS0+azEgKyAxXSkKKyAgICAgICAgICAgIGVsc2UgaWYgKHJpY2UtPnN1bTEgPiBmZl90 dGFfc2hpZnRfMTZbcmljZS0+azEgKyAxXSkKICAgICAgICAgICAgICAgICByaWNlLT5rMSsrOwog ICAgICAgICAgICAgdmFsdWUgKz0gZmZfdHRhX3NoaWZ0XzFbcmljZS0+azBdOwogICAgICAgICBk ZWZhdWx0OgogICAgICAgICAgICAgcmljZS0+c3VtMCArPSB2YWx1ZSAtIChyaWNlLT5zdW0wID4+ IDQpOwogICAgICAgICAgICAgaWYgKHJpY2UtPmswID4gMCAmJiByaWNlLT5zdW0wIDwgZmZfdHRh X3NoaWZ0XzE2W3JpY2UtPmswXSkKICAgICAgICAgICAgICAgICByaWNlLT5rMC0tOwotICAgICAg ICAgICAgZWxzZSBpZihyaWNlLT5zdW0wID4gZmZfdHRhX3NoaWZ0XzE2W3JpY2UtPmswICsgMV0p CisgICAgICAgICAgICBlbHNlIGlmIChyaWNlLT5zdW0wID4gZmZfdHRhX3NoaWZ0XzE2W3JpY2Ut PmswICsgMV0pCiAgICAgICAgICAgICAgICAgcmljZS0+azArKzsKICAgICAgICAgfQogCiAgICAg ICAgIC8vIGV4dHJhY3QgY29kZWQgdmFsdWUKICAgICAgICAgKnAgPSAxICsgKCh2YWx1ZSA+PiAx KSBeICgodmFsdWUgJiAxKSAtIDEpKTsKIAotICAgICAgICAvLyBydW4gaHlicmlkIGZpbHRlcgot ICAgICAgICBzLT5kc3AuZmlsdGVyX3Byb2Nlc3MoZmlsdGVyLT5xbSwgZmlsdGVyLT5keCwgZmls dGVyLT5kbCwgJmZpbHRlci0+ZXJyb3IsIHAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmaWx0ZXItPnNoaWZ0LCBmaWx0ZXItPnJvdW5kKTsKLQotICAgICAgICAvLyBmaXhlZCBvcmRl ciBwcmVkaWN0aW9uCi0jZGVmaW5lIFBSRUQoeCwgaykgKGludDMyX3QpKCgoKHVpbnQ2NF90KSh4 KSA8PCAoaykpIC0gKHgpKSA+PiAoaykpCi0gICAgICAgIHN3aXRjaCAocy0+YnBzKSB7Ci0gICAg ICAgIGNhc2UgMTogKnAgKz0gUFJFRCgqcHJlZGljdG9yLCA0KTsgYnJlYWs7Ci0gICAgICAgIGNh c2UgMjoKLSAgICAgICAgY2FzZSAzOiAqcCArPSBQUkVEKCpwcmVkaWN0b3IsIDUpOyBicmVhazsK LSAgICAgICAgY2FzZSA0OiAqcCArPSAgICAgICpwcmVkaWN0b3I7ICAgICBicmVhazsKLSAgICAg ICAgfQotICAgICAgICAqcHJlZGljdG9yID0gKnA7Ci0KICAgICAgICAgLy8gZmxpcCBjaGFubmVs cwogICAgICAgICBpZiAoY3VyX2NoYW4gPCAocy0+Y2hhbm5lbHMtMSkpCiAgICAgICAgICAgICBj dXJfY2hhbisrOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIGRlY29ycmVsYXRlIGlu IGNhc2Ugb2YgbXVsdGlwbGUgY2hhbm5lbHMKLSAgICAgICAgICAgIGlmIChzLT5jaGFubmVscyA+ IDEpIHsKLSAgICAgICAgICAgICAgICBpbnQzMl90ICpyID0gcCAtIDE7Ci0gICAgICAgICAgICAg ICAgZm9yICgqcCArPSAqciAvIDI7IHIgPiAoaW50MzJfdCopcCAtIHMtPmNoYW5uZWxzOyByLS0p Ci0gICAgICAgICAgICAgICAgICAgICpyID0gKihyICsgMSkgLSAqcjsKLSAgICAgICAgICAgIH0K ICAgICAgICAgICAgIGN1cl9jaGFuID0gMDsKICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAg IC8vIGNoZWNrIGZvciBsYXN0IGZyYW1lCkBAIC0zNTQsNiArMzM4LDY0IEBAIHN0YXRpYyBpbnQg dHRhX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFWRnJhbWUgKmZyYW1lLAog ICAgICAgICB9CiAgICAgfQogCisgICAgLy8gcnVuIGh5YnJpZCBmaWx0ZXIKKyAgICBmb3IgKGlu dCBjaCA9IDA7IGNoIDwgcy0+Y2hhbm5lbHM7IGNoKyspIHsKKyAgICAgICAgVFRBRmlsdGVyICpm aWx0ZXIgPSAmcy0+Y2hfY3R4W2NoXS5maWx0ZXI7CisgICAgICAgIGNvbnN0IGludDMyX3Qgc2hp ZnQgPSBmaWx0ZXItPnNoaWZ0OworICAgICAgICBjb25zdCBpbnQzMl90IHJvdW5kID0gZmlsdGVy LT5yb3VuZDsKKyAgICAgICAgaW50MzJfdCAqcCA9IHMtPmRlY29kZV9idWZmZXJbY2hdOworICAg ICAgICBpbnQzMl90IGVycm9yID0gZmlsdGVyLT5lcnJvcjsKKyAgICAgICAgaW50MzJfdCAqcW0g PSBmaWx0ZXItPnFtOworICAgICAgICBpbnQzMl90ICpkeCA9IGZpbHRlci0+ZHg7CisgICAgICAg IGludDMyX3QgKmRsID0gZmlsdGVyLT5kbDsKKworICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8 IGZyYW1lbGVuOyBuKyspIHsKKyAgICAgICAgICAgIHMtPmRzcC5maWx0ZXJfcHJvY2VzcyhxbSwg ZHgsIGRsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvciwgJnBbbl0s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQsIHJvdW5kKTsKKyAgICAg ICAgfQorICAgIH0KKworICAgIC8vIGZpeGVkIG9yZGVyIHByZWRpY3Rpb24KKyNkZWZpbmUgUFJF RCh4LCBrKSAoaW50MzJfdCkoKCgodWludDY0X3QpKHgpIDw8IChrKSkgLSAoeCkpID4+IChrKSkK KyAgICBmb3IgKGludCBjaCA9IDA7IGNoIDwgcy0+Y2hhbm5lbHM7IGNoKyspIHsKKyAgICAgICAg aW50MzJfdCAqcCA9IHMtPmRlY29kZV9idWZmZXJbY2hdOworICAgICAgICBpbnQzMl90IHByZWRp Y3RvciA9IDA7CisKKyAgICAgICAgc3dpdGNoIChicHMpIHsKKyAgICAgICAgY2FzZSAxOgorICAg ICAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBmcmFtZWxlbjsgbisrKSB7CisgICAgICAgICAg ICAgICAgcFtuXSArPSBQUkVEKHByZWRpY3RvciwgNCk7CisgICAgICAgICAgICAgICAgcHJlZGlj dG9yID0gcFtuXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj YXNlIDI6CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwg ZnJhbWVsZW47IG4rKykgeworICAgICAgICAgICAgICAgIHBbbl0gKz0gUFJFRChwcmVkaWN0b3Is IDUpOworICAgICAgICAgICAgICAgIHByZWRpY3RvciA9IHBbbl07CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGRlY29ycmVsYXRl IGluIGNhc2Ugb2YgbXVsdGlwbGUgY2hhbm5lbHMKKyAgICBpZiAocy0+Y2hhbm5lbHMgPiAxKSB7 CisgICAgICAgIGludDMyX3QgKmEgPSBzLT5kZWNvZGVfYnVmZmVyW3MtPmNoYW5uZWxzLTFdOwor ICAgICAgICBpbnQzMl90ICpiID0gcy0+ZGVjb2RlX2J1ZmZlcltzLT5jaGFubmVscy0yXTsKKwor ICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8IGZyYW1lbGVuOyBuKyspCisgICAgICAgICAgICBh W25dICs9IGJbbl0gLyAyOworCisgICAgICAgIGZvciAoaW50IGNoID0gcy0+Y2hhbm5lbHMgLSAx OyBjaCA+PSAxOyBjaC0tKSB7CisgICAgICAgICAgICBpbnQzMl90ICpiID0gcy0+ZGVjb2RlX2J1 ZmZlcltjaC0xXTsKKyAgICAgICAgICAgIGludDMyX3QgKmMgPSBzLT5kZWNvZGVfYnVmZmVyW2No ICBdOworCisgICAgICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8IGZyYW1lbGVuOyBuKyspCisg ICAgICAgICAgICAgICAgYltuXSA9IGNbbl0gLSBiW25dOworICAgICAgICB9CisgICAgfQorCiAg ICAgYWxpZ25fZ2V0X2JpdHMoJmdiKTsKICAgICBpZiAoZ2V0X2JpdHNfbGVmdCgmZ2IpIDwgMzIp IHsKICAgICAgICAgcmV0ID0gQVZFUlJPUl9JTlZBTElEREFUQTsKQEAgLTM2MiwzMSArNDA0LDM0 IEBAIHN0YXRpYyBpbnQgdHRhX2RlY29kZV9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsIEFW RnJhbWUgKmZyYW1lLAogICAgIHNraXBfYml0c19sb25nKCZnYiwgMzIpOyAvLyBmcmFtZSBjcmMK IAogICAgIC8vIGNvbnZlcnQgdG8gb3V0cHV0IGJ1ZmZlcgotICAgIHN3aXRjaCAocy0+YnBzKSB7 Ci0gICAgY2FzZSAxOiB7Ci0gICAgICAgIHVpbnQ4X3QgKnNhbXBsZXMgPSAodWludDhfdCAqKWZy YW1lLT5kYXRhWzBdOwotICAgICAgICBwID0gcy0+ZGVjb2RlX2J1ZmZlcjsKLSAgICAgICAgZm9y IChpID0gMDsgaSA8IGZyYW1lbGVuICogcy0+Y2hhbm5lbHM7IGkrKykKLSAgICAgICAgICAgIHNh bXBsZXNbaV0gPSBwW2ldICsgMHg4MDsKLSAgICAgICAgYnJlYWs7CisgICAgc3dpdGNoIChicHMp IHsKKyAgICBjYXNlIDE6CisgICAgICAgIGZvciAoaW50IGNoID0gMDsgY2ggPCBzLT5jaGFubmVs czsgY2grKykgeworICAgICAgICAgICAgdWludDhfdCAqc2FtcGxlcyA9ICh1aW50OF90ICopZnJh bWUtPmV4dGVuZGVkX2RhdGFbY2hdOworICAgICAgICAgICAgaW50MzJfdCAqcCA9IHMtPmRlY29k ZV9idWZmZXJbY2hdOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGZyYW1lbGVuOyBpKysp CisgICAgICAgICAgICAgICAgc2FtcGxlc1tpXSA9IHBbaV0gKyAweDgwOwogICAgICAgICB9Ci0g ICAgY2FzZSAyOiB7Ci0gICAgICAgIGludDE2X3QgKnNhbXBsZXMgPSAoaW50MTZfdCAqKWZyYW1l LT5kYXRhWzBdOwotICAgICAgICBwID0gcy0+ZGVjb2RlX2J1ZmZlcjsKLSAgICAgICAgZm9yIChp ID0gMDsgaSA8IGZyYW1lbGVuICogcy0+Y2hhbm5lbHM7IGkrKykKLSAgICAgICAgICAgIHNhbXBs ZXNbaV0gPSBwW2ldOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIDI6CisgICAgICAgIGZvciAo aW50IGNoID0gMDsgY2ggPCBzLT5jaGFubmVsczsgY2grKykgeworICAgICAgICAgICAgaW50MTZf dCAqc2FtcGxlcyA9IChpbnQxNl90ICopZnJhbWUtPmV4dGVuZGVkX2RhdGFbY2hdOworICAgICAg ICAgICAgaW50MzJfdCAqcCA9IHMtPmRlY29kZV9idWZmZXJbY2hdOworICAgICAgICAgICAgZm9y IChpID0gMDsgaSA8IGZyYW1lbGVuOyBpKyspCisgICAgICAgICAgICAgICAgc2FtcGxlc1tpXSA9 IHBbaV07CiAgICAgICAgIH0KLSAgICBjYXNlIDM6IHsKLSAgICAgICAgLy8gc2hpZnQgc2FtcGxl cyBmb3IgMjQtYml0IHNhbXBsZSBmb3JtYXQKLSAgICAgICAgaW50MzJfdCAqc2FtcGxlcyA9IChp bnQzMl90ICopZnJhbWUtPmRhdGFbMF07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMzoKKyAg ICAgICAgZm9yIChpbnQgY2ggPSAwOyBjaCA8IHMtPmNoYW5uZWxzOyBjaCsrKSB7CisgICAgICAg ICAgICAvLyBzaGlmdCBzYW1wbGVzIGZvciAyNC1iaXQgc2FtcGxlIGZvcm1hdAorICAgICAgICAg ICAgaW50MzJfdCAqc2FtcGxlcyA9IChpbnQzMl90ICopZnJhbWUtPmV4dGVuZGVkX2RhdGFbY2hd OwogCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZWxlbiAqIHMtPmNoYW5uZWxzOyBpKysp Ci0gICAgICAgICAgICBzYW1wbGVzW2ldID0gc2FtcGxlc1tpXSAqIDI1NlU7CisgICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgZnJhbWVsZW47IGkrKykKKyAgICAgICAgICAgICAgICBzYW1wbGVz W2ldID0gc2FtcGxlc1tpXSAqIDI1NlU7CisgICAgICAgIH0KICAgICAgICAgLy8gcmVzZXQgZGVj b2RlIGJ1ZmZlcgogICAgICAgICBzLT5kZWNvZGVfYnVmZmVyID0gTlVMTDsKICAgICAgICAgYnJl YWs7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICAqZ290X2ZyYW1lX3B0ciA9IDE7CkBAIC0zOTQs MTYgKzQzOSwyMiBAQCBzdGF0aWMgaW50IHR0YV9kZWNvZGVfZnJhbWUoQVZDb2RlY0NvbnRleHQg KmF2Y3R4LCBBVkZyYW1lICpmcmFtZSwKICAgICByZXR1cm4gYnVmX3NpemU7CiBlcnJvcjoKICAg ICAvLyByZXNldCBkZWNvZGUgYnVmZmVyCi0gICAgaWYgKHMtPmJwcyA9PSAzKQorICAgIGlmIChi cHMgPT0gMykKICAgICAgICAgcy0+ZGVjb2RlX2J1ZmZlciA9IE5VTEw7CiAgICAgcmV0dXJuIHJl dDsKIH0KIAotc3RhdGljIGF2X2NvbGQgaW50IHR0YV9kZWNvZGVfY2xvc2UoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KSB7CitzdGF0aWMgYXZfY29sZCBpbnQgdHRhX2RlY29kZV9jbG9zZShBVkNvZGVj Q29udGV4dCAqYXZjdHgpCit7CiAgICAgVFRBQ29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7 CiAKLSAgICBpZiAocy0+YnBzIDwgMykKKyAgICBpZiAocy0+YnBzIDwgMykgeworICAgICAgICBp ZiAocy0+ZGVjb2RlX2J1ZmZlcikgeworICAgICAgICAgICAgZm9yIChpbnQgY2ggPSAwOyBjaCA8 IHMtPmNoYW5uZWxzOyBjaCsrKQorICAgICAgICAgICAgICAgIGF2X2ZyZWVwKCZzLT5kZWNvZGVf YnVmZmVyW2NoXSk7CisgICAgICAgIH0KICAgICAgICAgYXZfZnJlZXAoJnMtPmRlY29kZV9idWZm ZXIpOworICAgIH0KICAgICBzLT5kZWNvZGVfYnVmZmVyID0gTlVMTDsKICAgICBhdl9mcmVlcCgm cy0+Y2hfY3R4KTsKIAotLSAKMi4zOS4xCgo= --00000000000004395a0603080743 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". --00000000000004395a0603080743--