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 2AA4D4A85F for ; Wed, 17 Apr 2024 19:37:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 69A1868D3A7; Wed, 17 Apr 2024 22:37:36 +0300 (EEST) Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E077368CF4C for ; Wed, 17 Apr 2024 22:37:30 +0300 (EEST) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout02.mail.de (Postfix) with ESMTP id 8ABE6240E52 for ; Wed, 17 Apr 2024 21:37:30 +0200 (CEST) Received: from smtp01.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix01.mail.de (Postfix) with ESMTP id 72D6B80292 for ; Wed, 17 Apr 2024 21:37:30 +0200 (CEST) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp01.mail.de (Postfix) with ESMTPSA id 31AD9240A56 for ; Wed, 17 Apr 2024 21:37:22 +0200 (CEST) Content-Type: multipart/mixed; boundary="------------Af8IJBQdWdtoFXE880HdKQkO" Message-ID: <567adcf7-c871-4932-a850-443287961499@mail.de> Date: Wed, 17 Apr 2024 12:37:16 -0700 MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org References: <20240417192012.22436-1-thilo.borgmann@mail.de> <20240417192012.22436-4-thilo.borgmann@mail.de> Content-Language: en-US In-Reply-To: <20240417192012.22436-4-thilo.borgmann@mail.de> X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 19271 X-purgate-ID: 154282::1713382650-BB6331F9-60C75512/0/0 Subject: Re: [FFmpeg-devel] [PATCH v12 3/8] avcodec/bsf: Add awebp2webp bitstream filter 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: Thilo Borgmann via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Thilo Borgmann 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. --------------Af8IJBQdWdtoFXE880HdKQkO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 17.04.24 21:19, Thilo Borgmann via ffmpeg-devel wrote: > From: Thilo Borgmann via ffmpeg-devel > > Splits a packet containing a webp animations into > one non-compliant packet per frame of the animation. > Skips RIFF and WEBP chunks for those packets except > for the first. Copyies ICC, EXIF and XMP chunks first > into each of the packets except for the first. > --- > configure | 1 + > libavcodec/bitstream_filters.c | 1 + > libavcodec/bsf/Makefile | 1 + > libavcodec/bsf/awebp2webp.c | 350 +++++++++++++++++++++++++++++++++ > 4 files changed, 353 insertions(+) > create mode 100644 libavcodec/bsf/awebp2webp.c build failed here. Updated patch attached. Sorry, Thilo --------------Af8IJBQdWdtoFXE880HdKQkO Content-Type: text/plain; charset=UTF-8; name="v12-0003-avcodec-bsf-Add-awebp2webp-bitstream-filter.patch" Content-Disposition: attachment; filename*0="v12-0003-avcodec-bsf-Add-awebp2webp-bitstream-filter.patch" Content-Transfer-Encoding: base64 RnJvbSA1MzZkZmM3NzJhYzI3M2IwZDM2MDc1NDViOGFlYTdhMjZiYTg0YWMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGlsbyBCb3JnbWFubiB2aWEgZmZtcGVnLWRldmVs IDxmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZz4KRGF0ZTogVGh1LCAyOCBNYXIgMjAyNCAxNTow ODo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjEyIDMvOF0gYXZjb2RlYy9ic2Y6IEFkZCBh d2VicDJ3ZWJwIGJpdHN0cmVhbSBmaWx0ZXIKClNwbGl0cyBhIHBhY2tldCBjb250YWluaW5n IGEgd2VicCBhbmltYXRpb25zIGludG8Kb25lIG5vbi1jb21wbGlhbnQgcGFja2V0IHBlciBm cmFtZSBvZiB0aGUgYW5pbWF0aW9uLgpTa2lwcyBSSUZGIGFuZCBXRUJQIGNodW5rcyBmb3Ig dGhvc2UgcGFja2V0cyBleGNlcHQKZm9yIHRoZSBmaXJzdC4gQ29weWllcyBJQ0MsIEVYSUYg YW5kIFhNUCBjaHVua3MgZmlyc3QKaW50byBlYWNoIG9mIHRoZSBwYWNrZXRzIGV4Y2VwdCBm b3IgdGhlIGZpcnN0LgotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiBsaWJhdmNvZGVjL2JpdHN0cmVhbV9maWx0ZXJzLmMgfCAgIDEgKwogbGliYXZjb2Rl Yy9ic2YvTWFrZWZpbGUgICAgICAgIHwgICAxICsKIGxpYmF2Y29kZWMvYnNmL2F3ZWJwMndl YnAuYyAgICB8IDM1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMzU0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJh dmNvZGVjL2JzZi9hd2VicDJ3ZWJwLmMKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25m aWd1cmUKaW5kZXggNTVmMWZjMzU0ZC4uMmQwOGJjMWZkOCAxMDA3NTUKLS0tIGEvY29uZmln dXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMzQyNSw2ICszNDI1LDcgQEAgYWFjX2FkdHN0b2Fz Y19ic2Zfc2VsZWN0PSJhZHRzX2hlYWRlciBtcGVnNGF1ZGlvIgogYXYxX2ZyYW1lX21lcmdl X2JzZl9zZWxlY3Q9ImNic19hdjEiCiBhdjFfZnJhbWVfc3BsaXRfYnNmX3NlbGVjdD0iY2Jz X2F2MSIKIGF2MV9tZXRhZGF0YV9ic2Zfc2VsZWN0PSJjYnNfYXYxIgorYXdlYnAyd2VicF9i c2Zfc2VsZWN0PSIiCiBkdHMycHRzX2JzZl9zZWxlY3Q9ImNic19oMjY0IGgyNjRwYXJzZSIK IGVhYzNfY29yZV9ic2Zfc2VsZWN0PSJhYzNfcGFyc2VyIgogZXZjX2ZyYW1lX21lcmdlX2Jz Zl9zZWxlY3Q9ImV2Y3BhcnNlIgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9iaXRzdHJlYW1f ZmlsdGVycy5jIGIvbGliYXZjb2RlYy9iaXRzdHJlYW1fZmlsdGVycy5jCmluZGV4IDEyODYw YzMzMmIuLmFmODgyODNhOGMgMTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvYml0c3RyZWFtX2Zp bHRlcnMuYworKysgYi9saWJhdmNvZGVjL2JpdHN0cmVhbV9maWx0ZXJzLmMKQEAgLTI4LDYg KzI4LDcgQEAgZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFtRmlsdGVyIGZmX2FhY19hZHRzdG9h c2NfYnNmOwogZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFtRmlsdGVyIGZmX2F2MV9mcmFtZV9t ZXJnZV9ic2Y7CiBleHRlcm4gY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIgZmZfYXYxX2ZyYW1l X3NwbGl0X2JzZjsKIGV4dGVybiBjb25zdCBGRkJpdFN0cmVhbUZpbHRlciBmZl9hdjFfbWV0 YWRhdGFfYnNmOworZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFtRmlsdGVyIGZmX2F3ZWJwMndl YnBfYnNmOwogZXh0ZXJuIGNvbnN0IEZGQml0U3RyZWFtRmlsdGVyIGZmX2Nob21wX2JzZjsK IGV4dGVybiBjb25zdCBGRkJpdFN0cmVhbUZpbHRlciBmZl9kdW1wX2V4dHJhZGF0YV9ic2Y7 CiBleHRlcm4gY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIgZmZfZGNhX2NvcmVfYnNmOwpkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9ic2YvTWFrZWZpbGUgYi9saWJhdmNvZGVjL2JzZi9NYWtl ZmlsZQppbmRleCBmYjcwYWQwYzIxLi40OGM2N2RkMjEwIDEwMDY0NAotLS0gYS9saWJhdmNv ZGVjL2JzZi9NYWtlZmlsZQorKysgYi9saWJhdmNvZGVjL2JzZi9NYWtlZmlsZQpAQCAtNSw2 ICs1LDcgQEAgT0JKUy0kKENPTkZJR19BQUNfQURUU1RPQVNDX0JTRikgICAgICAgICAgKz0g YnNmL2FhY19hZHRzdG9hc2MubwogT0JKUy0kKENPTkZJR19BVjFfRlJBTUVfTUVSR0VfQlNG KSAgICAgICAgKz0gYnNmL2F2MV9mcmFtZV9tZXJnZS5vCiBPQkpTLSQoQ09ORklHX0FWMV9G UkFNRV9TUExJVF9CU0YpICAgICAgICArPSBic2YvYXYxX2ZyYW1lX3NwbGl0Lm8KIE9CSlMt JChDT05GSUdfQVYxX01FVEFEQVRBX0JTRikgICAgICAgICAgICs9IGJzZi9hdjFfbWV0YWRh dGEubworT0JKUy0kKENPTkZJR19BV0VCUDJXRUJQX0JTRikgICAgICAgICAgICAgKz0gYnNm L2F3ZWJwMndlYnAubwogT0JKUy0kKENPTkZJR19DSE9NUF9CU0YpICAgICAgICAgICAgICAg ICAgKz0gYnNmL2Nob21wLm8KIE9CSlMtJChDT05GSUdfRENBX0NPUkVfQlNGKSAgICAgICAg ICAgICAgICs9IGJzZi9kY2FfY29yZS5vCiBPQkpTLSQoQ09ORklHX0RUUzJQVFNfQlNGKSAg ICAgICAgICAgICAgICArPSBic2YvZHRzMnB0cy5vCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L2JzZi9hd2VicDJ3ZWJwLmMgYi9saWJhdmNvZGVjL2JzZi9hd2VicDJ3ZWJwLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2VkYWNlZTQ4ZgotLS0gL2Rldi9u dWxsCisrKyBiL2xpYmF2Y29kZWMvYnNmL2F3ZWJwMndlYnAuYwpAQCAtMCwwICsxLDM1MSBA QAorLyoKKyAqIEFuaW1hdGVkIFdlYlAgaW50byBub24tY29tcGxpYW50IFdlYlAgYml0c3Ry ZWFtIGZpbHRlcgorICogQ29weXJpZ2h0IChjKSAyMDI0IFRoaWxvIEJvcmdtYW5uIDx0aGls by5ib3JnbWFubiBfYXRfIG1haWwuZGU+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg RkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKy8q KgorICogQGZpbGUKKyAqIEFuaW1hdGVkIFdlYlAgaW50byBub24tY29tcGxpYW50IFdlYlAg Yml0c3RyZWFtIGZpbHRlcgorICogU3BsaXRzIGEgcGFja2V0IGNvbnRhaW5pbmcgYSB3ZWJw IGFuaW1hdGlvbnMgaW50bworICogb25lIG5vbi1jb21wbGlhbnQgcGFja2V0IHBlciBmcmFt ZSBvZiB0aGUgYW5pbWF0aW9uLgorICogU2tpcHMgUklGRiBhbmQgV0VCUCBjaHVua3MgZm9y IHRob3NlIHBhY2tldHMgZXhjZXB0CisgKiBmb3IgdGhlIGZpcnN0LiBDb3B5aWVzIElDQywg RVhJRiBhbmQgWE1QIGNodW5rcyBmaXJzdAorICogaW50byBlYWNoIG9mIHRoZSBwYWNrZXRz IGV4Y2VwdCBmb3IgdGhlIGZpcnN0LgorICogQGF1dGhvciBUaGlsbyBCb3JnbWFubiA8dGhp bG8uYm9yZ21hbm4gX2F0XyBtYWlsLmRlPgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgor I2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiY29kZWNfaWQuaCIKKyNpbmNsdWRl ICJieXRlc3RyZWFtLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2Vycm9yLmgiCisjaW5jbHVk ZSAibGliYXZ1dGlsL21lbS5oIgorCisjaW5jbHVkZSAiYnNmLmgiCisjaW5jbHVkZSAiYnNm X2ludGVybmFsLmgiCisjaW5jbHVkZSAicGFja2V0LmgiCisKKyNkZWZpbmUgVlA4WF9GTEFH X0FOSU1BVElPTiAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFZQOFhfRkxBR19YTVBfTUVU QURBVEEgICAgICAgICAgMHgwNAorI2RlZmluZSBWUDhYX0ZMQUdfRVhJRl9NRVRBREFUQSAg ICAgICAgIDB4MDgKKyNkZWZpbmUgVlA4WF9GTEFHX0FMUEhBICAgICAgICAgICAgICAgICAw eDEwCisjZGVmaW5lIFZQOFhfRkxBR19JQ0MgICAgICAgICAgICAgICAgICAgMHgyMAorCit0 eXBlZGVmIHN0cnVjdCBXRUJQQlNGQ29udGV4dCB7CisgICAgY29uc3QgQVZDbGFzcyAqY2xh c3M7CisgICAgR2V0Qnl0ZUNvbnRleHQgZ2I7CisKKyAgICBBVlBhY2tldCAqbGFzdF9wa3Q7 CisgICAgdWludDhfdCAqbGFzdF9pY2NwOworICAgIHVpbnQ4X3QgKmxhc3RfZXhpZjsKKyAg ICB1aW50OF90ICpsYXN0X3htcDsKKworICAgIGludCBpY2NwX3NpemU7CisgICAgaW50IGV4 aWZfc2l6ZTsKKyAgICBpbnQgeG1wX3NpemU7CisKKyAgICBpbnQgYWRkX2ljY3A7CisgICAg aW50IGFkZF9leGlmOworICAgIGludCBhZGRfeG1wOworCisgICAgdWludDY0X3QgbGFzdF9w dHM7Cit9IFdFQlBCU0ZDb250ZXh0OworCitzdGF0aWMgaW50IHNhdmVfY2h1bmsoV0VCUEJT RkNvbnRleHQgKmN0eCwgdWludDhfdCAqKmJ1ZiwgaW50ICpidWZfc2l6ZSwgdWludDMyX3Qg Y2h1bmtfc2l6ZSkKK3sKKyAgICBpZiAoKmJ1ZiB8fCAhYnVmX3NpemUgfHwgIWNodW5rX3Np emUpCisgICAgICAgIHJldHVybiAwOworCisgICAgKmJ1ZiA9IGF2X21hbGxvYyhjaHVua19z aXplICsgOCk7CisgICAgaWYgKCEqYnVmKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9N RU0pOworCisgICAgKmJ1Zl9zaXplID0gY2h1bmtfc2l6ZSArIDg7CisKKyAgICBieXRlc3Ry ZWFtMl9zZWVrKCZjdHgtPmdiLCAtOCwgU0VFS19DVVIpOworICAgIGJ5dGVzdHJlYW0yX2dl dF9idWZmZXIoJmN0eC0+Z2IsICpidWYsIGNodW5rX3NpemUgKyA4KTsKKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW50IGF3ZWJwMndlYnBfZmlsdGVyKEFWQlNGQ29udGV4dCAq Y3R4LCBBVlBhY2tldCAqb3V0KQoreworICAgIFdFQlBCU0ZDb250ZXh0ICpzID0gY3R4LT5w cml2X2RhdGE7CisgICAgQVZQYWNrZXQgKmluOworICAgIHVpbnQzMl90IGNodW5rX3R5cGU7 CisgICAgdWludDMyX3QgY2h1bmtfc2l6ZTsKKyAgICBpbnQ2NF90IHBhY2tldF9zdGFydDsK KyAgICBpbnQ2NF90IHBhY2tldF9lbmQ7CisgICAgaW50NjRfdCBvdXRfb2ZmOworICAgIGlu dCByZXQgICAgICAgPSAwOworICAgIGludCBpc19mcmFtZSAgPSAwOworICAgIGludCBrZXlf ZnJhbWUgPSAwOworICAgIGludCBkZWxheSAgICAgPSAwOworICAgIGludCBvdXRfc2l6ZSAg PSAwOworICAgIGludCBoYXNfYW5pbSAgPSAwOworCisgICAgLy8gaW5pdGlhbGl6ZSBmb3Ig bmV3IHBhY2tldAorICAgIGlmICghYnl0ZXN0cmVhbTJfc2l6ZSgmcy0+Z2IpKSB7CisgICAg ICAgIGlmIChzLT5sYXN0X3BrdCkKKyAgICAgICAgICAgIGF2X3BhY2tldF91bnJlZihzLT5s YXN0X3BrdCk7CisKKyAgICAgICAgcmV0ID0gZmZfYnNmX2dldF9wYWNrZXQoY3R4LCAmcy0+ bGFzdF9wa3QpOworICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgIGdvdG8gZmFp bDsKKworICAgICAgICBieXRlc3RyZWFtMl9pbml0KCZzLT5nYiwgcy0+bGFzdF9wa3QtPmRh dGEsIHMtPmxhc3RfcGt0LT5zaXplKTsKKworICAgICAgICBhdl9mcmVlcCgmcy0+bGFzdF9p Y2NwKTsKKyAgICAgICAgYXZfZnJlZXAoJnMtPmxhc3RfZXhpZik7CisgICAgICAgIGF2X2Zy ZWVwKCZzLT5sYXN0X3htcCk7CisKKyAgICAgICAgLy8gcmVhZCBwYWNrZXQgc2Nhbm5pbmcg Zm9yIG1ldGFkYXRhICYmIGFuaW1hdGlvbgorICAgICAgICB3aGlsZSAoYnl0ZXN0cmVhbTJf Z2V0X2J5dGVzX2xlZnQoJnMtPmdiKSA+IDApIHsKKyAgICAgICAgICAgIGNodW5rX3R5cGUg PSBieXRlc3RyZWFtMl9nZXRfbGUzMigmcy0+Z2IpOworICAgICAgICAgICAgY2h1bmtfc2l6 ZSA9IGJ5dGVzdHJlYW0yX2dldF9sZTMyKCZzLT5nYik7CisKKyAgICAgICAgICAgIGlmIChj aHVua19zaXplID09IFVJTlQzMl9NQVgpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1JfSU5WQUxJRERBVEE7CisgICAgICAgICAgICBjaHVua19zaXplICs9IGNodW5rX3NpemUg JiAxOworCisgICAgICAgICAgICBpZiAoIWJ5dGVzdHJlYW0yX2dldF9ieXRlc19sZWZ0KCZz LT5nYikgfHwKKyAgICAgICAgICAgICAgICAgYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQo JnMtPmdiKSA8IGNodW5rX3NpemUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg ICAgICAgIGlmIChjaHVua190eXBlID09IE1LVEFHKCdSJywgJ0knLCAnRicsICdGJykgJiYg Y2h1bmtfc2l6ZSA+IDQpIHsKKyAgICAgICAgICAgICAgICBjaHVua19zaXplID0gNDsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjaHVua190eXBlKSB7CisgICAg ICAgICAgICBjYXNlIE1LVEFHKCdJJywgJ0MnLCAnQycsICdQJyk6CisgICAgICAgICAgICAg ICAgaWYgKCFzLT5sYXN0X2ljY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2F2 ZV9jaHVuayhzLCAmcy0+bGFzdF9pY2NwLCAmcy0+aWNjcF9zaXplLCBjaHVua19zaXplKTsK KyAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg ICAgICAgICAgYnl0ZXN0cmVhbTJfc2tpcCgmcy0+Z2IsIGNodW5rX3NpemUpOworICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2Fz ZSBNS1RBRygnRScsICdYJywgJ0knLCAnRicpOgorICAgICAgICAgICAgICAgIGlmICghcy0+ bGFzdF9leGlmKSB7CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHNhdmVfY2h1bmsocywg JnMtPmxhc3RfZXhpZiwgJnMtPmV4aWZfc2l6ZSwgY2h1bmtfc2l6ZSk7CisgICAgICAgICAg ICAgICAgICAgIGlmIChyZXQgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBm YWlsOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ5 dGVzdHJlYW0yX3NraXAoJnMtPmdiLCBjaHVua19zaXplKTsKKyAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgTUtUQUcoJ1gn LCAnTScsICdQJywgJyAnKToKKyAgICAgICAgICAgICAgICBpZiAoIXMtPmxhc3RfeG1wKSB7 CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHNhdmVfY2h1bmsocywgJnMtPmxhc3RfeG1w LCAmcy0+eG1wX3NpemUsIGNodW5rX3NpemUpOworICAgICAgICAgICAgICAgICAgICBpZiAo cmV0IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAg ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBieXRlc3RyZWFtMl9za2lw KCZzLT5nYiwgY2h1bmtfc2l6ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIE1LVEFHKCdBJywgJ04nLCAnTScsICdG Jyk6CisgICAgICAgICAgICAgICAgaGFzX2FuaW0gPSAxOworICAgICAgICAgICAgICAgIGJ5 dGVzdHJlYW0yX3NraXAoJnMtPmdiLCBjaHVua19zaXplKTsKKyAgICAgICAgICAgICAgICBi cmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBieXRlc3Ry ZWFtMl9za2lwKCZzLT5nYiwgY2h1bmtfc2l6ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBubyBhbmltYXRp b24gaXMgZm91bmQsIHBhc3MtdGhyb3VnaCB0aGUgcGFja2V0CisgICAgICAgIGlmICghaGFz X2FuaW0pIHsKKyAgICAgICAgICAgIGF2X3BhY2tldF9tb3ZlX3JlZihvdXQsIHMtPmxhc3Rf cGt0KTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8g cmVzZXQgYnl0ZXN0cmVhbSB0byBiZWdpbm5pbmcgb2YgcGFja2V0CisgICAgICAgIGJ5dGVz dHJlYW0yX2luaXQoJnMtPmdiLCBzLT5sYXN0X3BrdC0+ZGF0YSwgcy0+bGFzdF9wa3QtPnNp emUpOworICAgIH0KKworICAgIC8vIHBhY2tldCByZWFkIGNvbXBsZXRlbHksIHJlc2V0IGFu ZCBhc2sgZm9yIG5leHQgcGFja2V0CisgICAgaWYgKCFieXRlc3RyZWFtMl9nZXRfYnl0ZXNf bGVmdCgmcy0+Z2IpKSB7CisgICAgICAgIGlmIChzLT5sYXN0X3BrdCkKKyAgICAgICAgICAg IGF2X3BhY2tldF9mcmVlKCZzLT5sYXN0X3BrdCk7CisgICAgICAgIC8vIHJlc2V0IHRvIGVt cHR5IGJ1ZmZlciBmb3IgcmVpbml0IHdpdGggbmV4dCByZWFsIHBhY2tldAorICAgICAgICBi eXRlc3RyZWFtMl9pbml0KCZzLT5nYiwgTlVMTCwgMCk7CisgICAgICAgIHJldHVybiBBVkVS Uk9SKEVBR0FJTik7CisgICAgfQorCisgICAgLy8gc3RhcnQgcmVhZGluZyBmcm9tIHBhY2tl dCB1bnRpbCBzdWIgcGFja2V0IHJlYWR5CisgICAgcGFja2V0X3N0YXJ0ID0gYnl0ZXN0cmVh bTJfdGVsbCgmcy0+Z2IpOworICAgIHMtPmFkZF9pY2NwICA9IDE7CisgICAgcy0+YWRkX2V4 aWYgID0gMTsKKyAgICBzLT5hZGRfeG1wICAgPSAxOworCisgICAgd2hpbGUgKGJ5dGVzdHJl YW0yX2dldF9ieXRlc19sZWZ0KCZzLT5nYikgPiAwKSB7CisgICAgICAgIGNodW5rX3R5cGUg PSBieXRlc3RyZWFtMl9nZXRfbGUzMigmcy0+Z2IpOworICAgICAgICBjaHVua19zaXplID0g Ynl0ZXN0cmVhbTJfZ2V0X2xlMzIoJnMtPmdiKTsKKworICAgICAgICBpZiAoY2h1bmtfc2l6 ZSA9PSBVSU5UMzJfTUFYKQorICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERB VEE7CisgICAgICAgIGNodW5rX3NpemUgKz0gY2h1bmtfc2l6ZSAmIDE7CisKKyAgICAgICAg aWYgKCFieXRlc3RyZWFtMl9nZXRfYnl0ZXNfbGVmdCgmcy0+Z2IpIHx8CisgICAgICAgICAg ICAgYnl0ZXN0cmVhbTJfZ2V0X2J5dGVzX2xlZnQoJnMtPmdiKSA8IGNodW5rX3NpemUpCisg ICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoY2h1bmtfdHlwZSA9PSBNS1RBRygn UicsICdJJywgJ0YnLCAnRicpICYmIGNodW5rX3NpemUgPiA0KSB7CisgICAgICAgICAgICBj aHVua19zaXplID0gNDsKKyAgICAgICAgICAgIGtleV9mcmFtZSA9IDE7CisgICAgICAgIH0K KworICAgICAgICBzd2l0Y2ggKGNodW5rX3R5cGUpIHsKKyAgICAgICAgY2FzZSBNS1RBRygn SScsICdDJywgJ0MnLCAnUCcpOgorICAgICAgICAgICAgcy0+YWRkX2ljY3AgPSAwOworICAg ICAgICAgICAgYnl0ZXN0cmVhbTJfc2tpcCgmcy0+Z2IsIGNodW5rX3NpemUpOworICAgICAg ICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNS1RBRygnRScsICdYJywgJ0knLCAnRicp OgorICAgICAgICAgICAgcy0+YWRkX2V4aWYgPSAwOworICAgICAgICAgICAgYnl0ZXN0cmVh bTJfc2tpcCgmcy0+Z2IsIGNodW5rX3NpemUpOworICAgICAgICAgICAgYnJlYWs7CisKKyAg ICAgICAgY2FzZSBNS1RBRygnWCcsICdNJywgJ1AnLCAnICcpOgorICAgICAgICAgICAgcy0+ YWRkX3htcCA9IDA7CisgICAgICAgICAgICBieXRlc3RyZWFtMl9za2lwKCZzLT5nYiwgY2h1 bmtfc2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIE1LVEFHKCdW JywgJ1AnLCAnOCcsICcgJyk6CisgICAgICAgICAgICBpZiAoaXNfZnJhbWUpIHsKKyAgICAg ICAgICAgICAgICBieXRlc3RyZWFtMl9zZWVrKCZzLT5nYiwgLTgsIFNFRUtfQ1VSKTsKKyAg ICAgICAgICAgICAgICBnb3RvIGZsdXNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAg Ynl0ZXN0cmVhbTJfc2tpcCgmcy0+Z2IsIGNodW5rX3NpemUpOworICAgICAgICAgICAgaXNf ZnJhbWUgPSAxOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNS1RBRygn VicsICdQJywgJzgnLCAnTCcpOgorICAgICAgICAgICAgaWYgKGlzX2ZyYW1lKSB7CisgICAg ICAgICAgICAgICAgYnl0ZXN0cmVhbTJfc2Vlaygmcy0+Z2IsIC04LCBTRUVLX0NVUik7Cisg ICAgICAgICAgICAgICAgZ290byBmbHVzaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg IGJ5dGVzdHJlYW0yX3NraXAoJnMtPmdiLCBjaHVua19zaXplKTsKKyAgICAgICAgICAgIGlz X2ZyYW1lID0gMTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTUtUQUco J0EnLCAnTicsICdNJywgJ0YnKToKKyAgICAgICAgICAgIGlmIChpc19mcmFtZSkgeworICAg ICAgICAgICAgICAgIGJ5dGVzdHJlYW0yX3NlZWsoJnMtPmdiLCAtOCwgU0VFS19DVVIpOwor ICAgICAgICAgICAgICAgIGdvdG8gZmx1c2g7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBieXRlc3RyZWFtMl9za2lwKCZzLT5nYiwgMTIpOworICAgICAgICAgICAgZGVsYXkgPSBi eXRlc3RyZWFtMl9nZXRfbGUyNCgmcy0+Z2IpOworICAgICAgICAgICAgYnl0ZXN0cmVhbTJf c2tpcCgmcy0+Z2IsIDEpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVs dDoKKyAgICAgICAgICAgIGJ5dGVzdHJlYW0yX3NraXAoJnMtPmdiLCBjaHVua19zaXplKTsK KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcGFja2V0X2VuZCA9 IGJ5dGVzdHJlYW0yX3RlbGwoJnMtPmdiKTsKKyAgICB9CisKK2ZsdXNoOgorICAgIC8vIGdl bmVyYXRlIHBhY2tldCBmcm9tIGRhdGEgcmVhZCBzbyBmYXIKKyAgICBvdXRfc2l6ZSA9IHBh Y2tldF9lbmQgLSBwYWNrZXRfc3RhcnQ7CisgICAgb3V0X29mZiAgPSAwOworCisgICAgaWYg KHMtPmFkZF9pY2NwICYmIHMtPmxhc3RfaWNjcCkKKyAgICAgICAgb3V0X3NpemUgKz0gcy0+ aWNjcF9zaXplOworICAgIGlmIChzLT5hZGRfZXhpZiAmJiBzLT5sYXN0X2V4aWYpCisgICAg ICAgIG91dF9zaXplICs9IHMtPmV4aWZfc2l6ZTsKKyAgICBpZiAocy0+YWRkX3htcCAmJiBz LT5sYXN0X3htcCkKKyAgICAgICAgb3V0X3NpemUgKz0gcy0+eG1wX3NpemU7CisKKyAgICBy ZXQgPSBhdl9uZXdfcGFja2V0KG91dCwgb3V0X3NpemUpOworICAgIGlmIChyZXQgPCAwKQor ICAgICAgICBnb3RvIGZhaWw7CisKKyAgICAvLyBjb3B5IG1ldGFkYXRhCisgICAgaWYgKHMt PmFkZF9pY2NwICYmIHMtPmxhc3RfaWNjcCkgeworICAgICAgICBtZW1jcHkob3V0LT5kYXRh ICsgb3V0X29mZiwgcy0+bGFzdF9pY2NwLCBzLT5pY2NwX3NpemUpOworICAgICAgICBvdXRf b2ZmICs9IHMtPmljY3Bfc2l6ZTsKKyAgICB9CisgICAgaWYgKHMtPmFkZF9leGlmICYmIHMt Pmxhc3RfZXhpZikgeworICAgICAgICBtZW1jcHkob3V0LT5kYXRhICsgb3V0X29mZiwgcy0+ bGFzdF9leGlmLCBzLT5leGlmX3NpemUpOworICAgICAgICBvdXRfb2ZmICs9IHMtPmV4aWZf c2l6ZTsKKyAgICB9CisgICAgaWYgKHMtPmFkZF94bXAgJiYgcy0+bGFzdF94bXApIHsKKyAg ICAgICAgbWVtY3B5KG91dC0+ZGF0YSArIG91dF9vZmYsIHMtPmxhc3RfeG1wLCBzLT54bXBf c2l6ZSk7CisgICAgICAgIG91dF9vZmYgKz0gcy0+eG1wX3NpemU7CisgICAgfQorCisgICAg Ly8gY29weSBmcmFtZSBkYXRhCisgICAgbWVtY3B5KG91dC0+ZGF0YSArIG91dF9vZmYsIHMt Pmxhc3RfcGt0LT5kYXRhICsgcGFja2V0X3N0YXJ0LCBwYWNrZXRfZW5kIC0gcGFja2V0X3N0 YXJ0KTsKKworICAgIGlmIChrZXlfZnJhbWUpCisgICAgICAgIG91dC0+ZmxhZ3MgfD0gQVZf UEtUX0ZMQUdfS0VZOworICAgIGVsc2UKKyAgICAgICAgb3V0LT5mbGFncyAmPSB+QVZfUEtU X0ZMQUdfS0VZOworCisgICAgb3V0LT5wdHMgICAgICAgICAgPSBzLT5sYXN0X3B0czsKKyAg ICBvdXQtPmR0cyAgICAgICAgICA9IG91dC0+cHRzOworICAgIG91dC0+cG9zICAgICAgICAg ID0gcGFja2V0X3N0YXJ0OworICAgIG91dC0+ZHVyYXRpb24gICAgID0gZGVsYXk7CisgICAg b3V0LT5zdHJlYW1faW5kZXggPSBzLT5sYXN0X3BrdC0+c3RyZWFtX2luZGV4OworICAgIG91 dC0+dGltZV9iYXNlICAgID0gcy0+bGFzdF9wa3QtPnRpbWVfYmFzZTsKKworICAgIHMtPmxh c3RfcHRzICs9IChkZWxheSA+IDApID8gZGVsYXkgOiAxOworCisgICAga2V5X2ZyYW1lID0g MDsKKworICAgIHJldHVybiAwOworCitmYWlsOgorICAgIGlmIChyZXQgPCAwKSB7CisgICAg ICAgIGF2X3BhY2tldF91bnJlZihvdXQpOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0K KyAgICBhdl9wYWNrZXRfZnJlZSgmaW4pOworCisgICAgcmV0dXJuIHJldDsKK30KKworc3Rh dGljIHZvaWQgYXdlYnAyd2VicF9jbG9zZShBVkJTRkNvbnRleHQgKmN0eCkKK3sKKyAgICBX RUJQQlNGQ29udGV4dCAqcyA9IGN0eC0+cHJpdl9kYXRhOworICAgIGF2X2ZyZWVwKCZzLT5s YXN0X2ljY3ApOworICAgIGF2X2ZyZWVwKCZzLT5sYXN0X2V4aWYpOworICAgIGF2X2ZyZWVw KCZzLT5sYXN0X3htcCk7Cit9CisKK3N0YXRpYyBjb25zdCBlbnVtIEFWQ29kZWNJRCBjb2Rl Y19pZHNbXSA9IHsKKyAgICBBVl9DT0RFQ19JRF9XRUJQLCBBVl9DT0RFQ19JRF9OT05FLAor fTsKKworY29uc3QgRkZCaXRTdHJlYW1GaWx0ZXIgZmZfYXdlYnAyd2VicF9ic2YgPSB7Cisg ICAgLnAubmFtZSAgICAgICAgID0gImF3ZWJwMndlYnAiLAorICAgIC5wLmNvZGVjX2lkcyAg ICA9IGNvZGVjX2lkcywKKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoV0VCUEJTRkNv bnRleHQpLAorICAgIC5maWx0ZXIgICAgICAgICA9IGF3ZWJwMndlYnBfZmlsdGVyLAorICAg IC5jbG9zZSAgICAgICAgICA9IGF3ZWJwMndlYnBfY2xvc2UsCit9OwotLSAKMi40My4wCgo= --------------Af8IJBQdWdtoFXE880HdKQkO 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". --------------Af8IJBQdWdtoFXE880HdKQkO--