From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id DA85E4C6B6 for ; Wed, 22 Oct 2025 10:46:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1761129992; h=message-id : to : date : in-reply-to : references : content-type : mime-version : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : from; bh=RyZz+Q1x2+S84lzh6fHuOHlpKoM+opO8lChljRChCoU=; b=Yw/XLrtYLii4KNNdkIr4S6+f5q+PTZLSMeYWaHKQhYGyQb8Aj/Ru0eFUx06cUslnT4qV/ PrhNI0CJ4JRUYT2z+jEx7IS+v0EhaiPtgoMp1u0TrijWMh3uGcr0Fh8lNK30fnHl+eaAvlY EI/ta/LJoZIPAVOtvX5F6BnFKxCvjRX4BroSu24A8P4/WC2peP0w3QUVVEKlnTuMFL/nhuf yJPG6xvXW0BVfp/4pxPM/f8iJpOjHF4sYHKBCBGfC/2r6nVNqfB/0W8zBBBdL+KX0CciKQd 0xqw/XVSib9WcwHJEkeOW/TOrhR9h7iu0pwbj9g7wGSiooLnOjc2PdSggmRg== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 05F1E68F554; Wed, 22 Oct 2025 13:46:32 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1761129990; b=nQTH3LPME+3LaUkErdYt4p2jQcQDNYPE7TNHdYTRHPwihjkJ8K3jkPIWN8e2u14/iwe2E vMIQrRo27qqoOLzZHcz24TwMZZzmSb3JVz0eP/kvxqRQpOllSLP7wGpm6ylQkze50flax5T GtAe0RfoI1uu7t/H1QCzz8IhJouZ20F19Q/5OYj8Fm1aMBM+alQjAWqUR9ZN0xGtrPkKKaI vHvktdKJ8rnOQFvAp7hGqsoaGXAsEmfJ+Y+4BYO8I7GMkOEZQiljB3FL6Zj7LZNuXwTY2ml F4fnQbZlbOHhlc/2trNHnqVolyxy0BP+2Uo4zLeU2d7adxL2H3pwUc/mDEcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1761129990; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=l+O8clhM1+PQSjvL5l2uwgczROvRH7deKiOpXbQnoCk=; b=OCpxWlxmxAdisKOn9icAfM5IGiC5HtDJTFbwPCLQCmG3aAbWZqQVo47XG3ALDaGepFF8x lhlkZLB9UtX9ZqJTSu+VEnPlgC17b18eud8J8rFVpkS8cIR5dq0JXvQ+yS646kctc7CJTmo Xh02aKAtxyeh3oTvd0v5gR5lbLWpl9Co0nzZ9iBEZaZbugXRyp8cbYi/ZkKW21z6cmLjdkU i2l0qSpOhI9bqnZK50Hki1zOhjQMdUwTXPwpmKorKlQ2qhQM9nxIebc6YgsN4tw0SkeEwkW WS1DTAMXBg8Nt+R3m0/wF6DkXxTYxZOThye/ZsDXorp7YhLxClYBbLi93Xvw== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=fail; arc=none; dmarc=none Authentication-Results: ffmpeg.org; dkim=fail; arc=none (Message is not ARC signed); dmarc=none Received: from glom.nmugroup.com (glom.nmugroup.com [193.183.80.6]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id CD3B068F53C for ; Wed, 22 Oct 2025 13:46:18 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by glom.nmugroup.com (Postfix) with ESMTP id 602E45428AEB for ; Wed, 22 Oct 2025 12:46:18 +0200 (CEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) (Authenticated sender: git01) by glom.nmugroup.com (Postfix) with ESMTPSA id 1E6A45428856 for ; Wed, 22 Oct 2025 12:46:18 +0200 (CEST) Message-ID: To: FFmpeg development discussions and patches Date: Wed, 22 Oct 2025 12:46:17 +0200 In-Reply-To: <2fc0b0d1-b45c-4d3f-96ca-776b5d462374@lynne.ee> References: <23234a7ec4715e7df0c9c4e5b2ad9556a98d6823.camel@haerdin.se> <2fc0b0d1-b45c-4d3f-96ca-776b5d462374@lynne.ee> Content-Type: multipart/mixed; boundary="=-kvXjs1wKpbCLvcHimddn" User-Agent: Evolution 3.56.1-1 MIME-Version: 1.0 Message-ID-Hash: 3OVOCEFKTBSZPCIFWSGHNJOLTXJBME5V X-Message-ID-Hash: 3OVOCEFKTBSZPCIFWSGHNJOLTXJBME5V X-MailFrom: SRS1=p5D/=nmugroup.com==sKwe=47=haerdin.se=git@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] Re: [RFC] C++ List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: =?utf-8?q?Tomas_H=C3=A4rdin_via_ffmpeg-devel?= Cc: Tomas =?ISO-8859-1?Q?H=E4rdin?= Archived-At: List-Archive: List-Post: --=-kvXjs1wKpbCLvcHimddn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable tis 2025-10-21 klockan 04:24 +0200 skrev Lynne via ffmpeg-devel: > On 20/10/2025 19:50, Tomas H=C3=A4rdin via ffmpeg-devel wrote: > > Hi > >=20 > > I'm writing this email to get a feel for how everyone feels about > > making more use of C++ in the codebase. I am only proposing using > > C++ > > *internally*, and only where it makes sense. I am not suggesting a > > "move" to C++, merely using features already present in the > > compilers > > we target: gcc, clang and cl. The impedance mismatch should > > therefore > > be small, and any missing compiler features should be caught by > > FATE. >=20 > Definitely not. > The patch you posted hardly changes anything. Here's a more illustrative example. What it means for a given offset to be contained "within" a partition is made explicit. This also allows us to reject files where partitions are overlapping, which wasn't obvious with the previous code The codebase is actually littered with binary searches like the one the attached patchset removes. That's a major code stink imo KLV keys could be given a similar treatment. Most importantly, the entire index code could be made far more readable and robust. That's a rather large task however, which I'm not going to undertake unless I know I won't face major opposition A continuation of the partition stuff attached is to remove MXFContext::partitions and instead use an std::map in MXFCppContext for the partitions themselves, not just their offsets. This would address some performance issues with the present code for files with a large number of partitions, such as mxfenc.c /Tomas --=-kvXjs1wKpbCLvcHimddn Content-Disposition: attachment; filename="0001-lavf-mxfdec-Add-C-context.patch" Content-Type: text/x-patch; name="0001-lavf-mxfdec-Add-C-context.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiZGE1NmU3ZDEyNTkwNDdlNjVjMDJjYzQwYWI1MzcyOGVlZGJmYzZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogV2VkLCAyMiBPY3QgMjAyNSAxMTowMToyMSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBsYXZmL214ZmRlYzogQWRkIEMrKyBjb250ZXh0CgotLS0KIGxpYmF2Zm9y bWF0L214ZmRlYy5jcHAgfCA1ICsrKysrCiBsaWJhdmZvcm1hdC9teGZkZWMuaCAgIHwgMiArKwog MiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1h dC9teGZkZWMuY3BwIGIvbGliYXZmb3JtYXQvbXhmZGVjLmNwcAppbmRleCAxYjNjMDBjMDdjLi41 MjJkODcwOTgxIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9teGZkZWMuY3BwCisrKyBiL2xpYmF2 Zm9ybWF0L214ZmRlYy5jcHAKQEAgLTMzMyw2ICszMzMsOSBAQCB0eXBlZGVmIHN0cnVjdCBNWEZJ bmRleFRhYmxlIHsKICAgICBpbnQ4X3QgKm9mZnNldHM7ICAgICAgICAgICAgLyogdGVtcG9yYWwg b2Zmc2V0cyBmb3IgZGlzcGxheSBvcmRlciB0byBzdG9yZWQgb3JkZXIgY29udmVyc2lvbiAqLwog fSBNWEZJbmRleFRhYmxlOwogCitzdHJ1Y3QgTVhGQ3BwQ29udGV4dCB7Cit9OworCiAvKiBOT1RF OiBrbHZfb2Zmc2V0IGlzIG5vdCBzZXQgKC0xKSBmb3IgbG9jYWwga2V5cyAqLwogdHlwZWRlZiBp bnQgTVhGTWV0YWRhdGFSZWFkRnVuYyh2b2lkICphcmcsIEFWSU9Db250ZXh0ICpwYiwgaW50IHRh ZywgaW50IHNpemUsIFVJRCB1aWQsIGludDY0X3Qga2x2X29mZnNldCk7CiAKQEAgLTM3ODYsNiAr Mzc4OSw3IEBAIGludCBteGZfcmVhZF9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogICAgIGlu dCByZXQ7CiAgICAgaW50NjRfdCBydW5faW47CiAKKyAgICBteGYtPmNwcF9jb250ZXh0ID0gbmV3 IE1YRkNwcENvbnRleHQoKTsKICAgICBteGYtPmxhc3RfZm9yd2FyZF90ZWxsID0gSU5UNjRfTUFY OwogCiAgICAgaWYgKCFteGZfcmVhZF9zeW5jKHMtPnBiLCBteGZfaGVhZGVyX3BhcnRpdGlvbl9w YWNrX2tleSwgMTQpKSB7CkBAIC00MjA2LDYgKzQyMTAsNyBAQCBpbnQgbXhmX3JlYWRfY2xvc2Uo QVZGb3JtYXRDb250ZXh0ICpzKQogICAgICAgICB9CiAgICAgfQogICAgIGF2X2ZyZWVwKCZteGYt PmluZGV4X3RhYmxlcyk7CisgICAgZGVsZXRlIG14Zi0+Y3BwX2NvbnRleHQ7CiAKICAgICByZXR1 cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L214ZmRlYy5oIGIvbGliYXZmb3JtYXQv bXhmZGVjLmgKaW5kZXggMzY4MGUwYThhYy4uZjRhZDg1ZmI0NiAxMDA2NDQKLS0tIGEvbGliYXZm b3JtYXQvbXhmZGVjLmgKKysrIGIvbGliYXZmb3JtYXQvbXhmZGVjLmgKQEAgLTQxLDYgKzQxLDcg QEAgdHlwZWRlZiBlbnVtIHsKIHN0cnVjdCBNWEZJbmRleFRhYmxlOwogc3RydWN0IE1YRk1ldGFk YXRhU2V0Owogc3RydWN0IE1YRlBhcnRpdGlvbjsKK3N0cnVjdCBNWEZDcHBDb250ZXh0OwogCiB0 eXBlZGVmIHN0cnVjdCBNWEZNZXRhZGF0YVNldEdyb3VwIHsKICAgICBzdHJ1Y3QgTVhGTWV0YWRh dGFTZXQgKiptZXRhZGF0YV9zZXRzOwpAQCAtNzEsNiArNzIsNyBAQCB0eXBlZGVmIHN0cnVjdCBN WEZDb250ZXh0IHsKICAgICBpbnQgbmJfaW5kZXhfdGFibGVzOwogICAgIHN0cnVjdCBNWEZJbmRl eFRhYmxlICppbmRleF90YWJsZXM7CiAgICAgaW50IGVpYTYwOF9leHRyYWN0OworICAgIHN0cnVj dCBNWEZDcHBDb250ZXh0ICpjcHBfY29udGV4dDsgLy88IEMrKyBjb250ZXh0CiB9IE1YRkNvbnRl eHQ7CiAKIGludCBteGZfcHJvYmUoY29uc3QgQVZQcm9iZURhdGEgKnApOwotLSAKMi40Ny4yCgo= --=-kvXjs1wKpbCLvcHimddn Content-Disposition: attachment; filename*0=0002-lavf-mxfdec-Switch-mxf_absolute_bodysid_offset-to-st.pat; filename*1=ch Content-Type: text/x-patch; name="0002-lavf-mxfdec-Switch-mxf_absolute_bodysid_offset-to-st.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2ODJhNjQ3ZGYwYWYxNjlhNjczMTc1ZWFiMTNmOTljN2I1OGZmZmJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogV2VkLCAyMiBPY3QgMjAyNSAxMjoyODozMiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBsYXZmL214ZmRlYzogU3dpdGNoIG14Zl9hYnNvbHV0ZV9ib2R5c2lkX29m ZnNldCgpIHRvCiBzdGQ6Om1hcAoKVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZWN0IGFuZCByZWplY3Qg ZXZpbCBmaWxlcyB3aGljaCBoYXZlIGJlZW4gY29uc3RydWN0ZWQgdG8gaGF2ZSBvdmVybGFwcGlu ZyBwYXJ0aXRpb25zCi0tLQogbGliYXZmb3JtYXQvbXhmZGVjLmNwcCB8IDkwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYyIGluc2Vy dGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L214ZmRl Yy5jcHAgYi9saWJhdmZvcm1hdC9teGZkZWMuY3BwCmluZGV4IDUyMmQ4NzA5ODEuLjdhN2I4MjRl MjYgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L214ZmRlYy5jcHAKKysrIGIvbGliYXZmb3JtYXQv bXhmZGVjLmNwcApAQCAtNDcsNiArNDcsOSBAQAogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5j bHVkZSA8dGltZS5oPgogCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPG1hcD4KKwog ZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSAibGliYXZ1dGlsL2Flcy5oIgogI2luY2x1ZGUgImxpYmF2 dXRpbC9hdnN0cmluZy5oIgpAQCAtMzM0LDYgKzMzNywyNiBAQCB0eXBlZGVmIHN0cnVjdCBNWEZJ bmRleFRhYmxlIHsKIH0gTVhGSW5kZXhUYWJsZTsKIAogc3RydWN0IE1YRkNwcENvbnRleHQgewor ICAgIHR5cGVkZWYgc3RkOjptYXA8aW50NjRfdCwgTVhGUGFydGl0aW9uKj4gT2Zmc2V0TWFwOyAg ICAgIC8vPCBtYXBzIEJvZHlPZmZzZXQgLT4gTVhGUGFydGl0aW9uKgorICAgIHN0ZDo6bWFwPGlu dCwgT2Zmc2V0TWFwPiBib2R5c2lkX29mZnNldF9wYXJ0aXRpb25fbWFwOyAgIC8vPCBtYXBzIChC b2R5U0lELCBCb2R5T2Zmc2V0KSAtPiBNWEZQYXJ0aXRpb24qCisKKyAgICAvLyBjb21wYXJhdG9y IGZvciB3aGV0aGVyIGEgZ2l2ZW4gb2Zmc2V0IGlzIGNvbnRhaW5lZCB3aXRoaW4gW2JvZHlfb2Zm c2V0LCBib2R5X29mZnNldCArIGVzc2VuY2VfbGVuZ3RoKQorICAgIHN0cnVjdCBPZmZzZXRJblBh cnRpdGlvbkNvbXAgeworICAgICAgICBib29sIG9wZXJhdG9yKCkgKGNvbnN0IHN0ZDo6cGFpcjxp bnQ2NF90LCBNWEZQYXJ0aXRpb24qPiAmYSwgaW50NjRfdCBiKSBjb25zdCB7CisgICAgICAgICAg ICBpZiAoYS5zZWNvbmQtPmVzc2VuY2VfbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgLy8gPD0g YmVjYXVzZSB0aGUgZW5kIG9mIHRoZSByYW5nZSBpcyBleGNsdXNpdmUKKyAgICAgICAgICAgICAg ICByZXR1cm4gYS5zZWNvbmQtPmJvZHlfb2Zmc2V0ICsgYS5zZWNvbmQtPmVzc2VuY2VfbGVuZ3Ro IDw9IGI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlmIGVzc2Vu Y2VfbGVuZ3RoID09IDAgdGhlbiB0aGlzIHBhcnRpdGlvbiBzcGFucyB0aGUgcmVzdCBvZiB0aGUg ZmlsZQorICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGZvciB0aGUg bGFzdCBwYXJ0aXRpb24KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIHdlIGNhbiBu ZXZlciBiZSAibGVzcyB0aGFuIiBhbnkgZ2l2ZW4gb2Zmc2V0CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yKCkgKGludDY0X3QgYSwgY29uc3Qgc3RkOjpw YWlyPGludDY0X3QsIE1YRlBhcnRpdGlvbio+ICZiKSBjb25zdCB7CisgICAgICAgICAgICByZXR1 cm4gYSA8IGIuc2Vjb25kLT5ib2R5X29mZnNldDsKKyAgICAgICAgfQorICAgIH07CiB9OwogCiAv KiBOT1RFOiBrbHZfb2Zmc2V0IGlzIG5vdCBzZXQgKC0xKSBmb3IgbG9jYWwga2V5cyAqLwpAQCAt MTg4MCwzNSArMTkwMyw0MCBAQCBzdGF0aWMgaW50IG14Zl9nZXRfc29ydGVkX3RhYmxlX3NlZ21l bnRzKE1YRkNvbnRleHQgKm14ZiwgaW50ICpuYl9zb3J0ZWRfc2VnbWVudAogICovCiBzdGF0aWMg aW50IG14Zl9hYnNvbHV0ZV9ib2R5c2lkX29mZnNldChNWEZDb250ZXh0ICpteGYsIGludCBib2R5 X3NpZCwgaW50NjRfdCBvZmZzZXQsIGludDY0X3QgKm9mZnNldF9vdXQsIE1YRlBhcnRpdGlvbiAq KnBhcnRpdGlvbl9vdXQpCiB7Ci0gICAgTVhGUGFydGl0aW9uICpsYXN0X3AgPSBOVUxMOwotICAg IGludCBhLCBiLCBtLCBtMDsKLQotICAgIGlmIChvZmZzZXQgPCAwKQotICAgICAgICByZXR1cm4g QVZFUlJPUihFSU5WQUwpOwotCi0gICAgYSA9IC0xOwotICAgIGIgPSBteGYtPnBhcnRpdGlvbnNf Y291bnQ7Ci0KLSAgICB3aGlsZSAoYiAtIGEgPiAxKSB7Ci0gICAgICAgIG0wID0gbSA9IChhICsg YikgPj4gMTsKLQotICAgICAgICB3aGlsZSAobSA8IGIgJiYgbXhmLT5wYXJ0aXRpb25zW21dLmJv ZHlfc2lkICE9IGJvZHlfc2lkKQotICAgICAgICAgICAgbSsrOwotCi0gICAgICAgIGlmIChtIDwg YiAmJiBteGYtPnBhcnRpdGlvbnNbbV0uYm9keV9vZmZzZXQgPD0gb2Zmc2V0KQotICAgICAgICAg ICAgYSA9IG07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGIgPSBtMDsKLSAgICB9Ci0KLSAg ICBpZiAoYSA+PSAwKQotICAgICAgICBsYXN0X3AgPSAmbXhmLT5wYXJ0aXRpb25zW2FdOworICAg IGF1dG8gJnBhcnRpdGlvbl9tYXAgPSBteGYtPmNwcF9jb250ZXh0LT5ib2R5c2lkX29mZnNldF9w YXJ0aXRpb25fbWFwOworICAgIGF1dG8gaXQgPSBwYXJ0aXRpb25fbWFwLmZpbmQoYm9keV9zaWQp OworCisgICAgaWYgKGl0ICE9IHBhcnRpdGlvbl9tYXAuZW5kKCkpIHsKKyAgICAgICAgLy8gZmlu ZCByYW5nZSBvZiBwYXJ0aXRpb25zIHdpdGhpbiB3aGljaCBvZmZzZXQgaXMgY29udGFpbmVkCisg ICAgICAgIC8vIHRoZXJlIHNob3VsZCBiZSBleGFjdGx5IG9uZQorICAgICAgICBhdXRvIFtzdGFy dCwgZW5kXSA9IHN0ZDo6ZXF1YWxfcmFuZ2UoCisgICAgICAgICAgICBpdC0+c2Vjb25kLmJlZ2lu KCksCisgICAgICAgICAgICBpdC0+c2Vjb25kLmVuZCgpLAorICAgICAgICAgICAgb2Zmc2V0LAor ICAgICAgICAgICAgTVhGQ3BwQ29udGV4dDo6T2Zmc2V0SW5QYXJ0aXRpb25Db21wKCkKKyAgICAg ICAgKTsKKyAgICAgICAgYXV0byBkID0gc3RkOjpkaXN0YW5jZShzdGFydCwgZW5kKTsKKworICAg ICAgICBpZiAoZCA+IDEpIHsKKyAgICAgICAgICAgIC8vIHRoaXMgY291bGQgaGFwcGVuIGZvciBl dmlsIGZpbGVzIC0gcmVqZWN0IHRoZW0KKyAgICAgICAgICAgIGF2X2xvZyhteGYtPmZjLCBBVl9M T0dfRVJST1IsICJhYnNvbHV0ZSBvZmZzZXQgJSIgUFJJWDY0ICIgY29udGFpbmVkIGluIG1vcmUg dGhhbiBvbmUgcGFydGl0aW9uXG4iLCBvZmZzZXQpOworCisgICAgICAgICAgICAvLyBsb2cgb2Zm ZW5kaW5nIHBhcnRpdGlvbnMKKyAgICAgICAgICAgIGZvciAoOyBzdGFydCAhPSBlbmQ7IHN0YXJ0 KyspIHsKKyAgICAgICAgICAgICAgICBNWEZQYXJ0aXRpb24gKnAgPSBzdGFydC0+c2Vjb25kOwor ICAgICAgICAgICAgICAgIGF2X2xvZyhteGYtPmZjLCBBVl9MT0dfRVJST1IsICJCb2R5T2Zmc2V0 ICUiIFBSSVg2NCAiIEJvZHlPZmZzZXQrZXNzZW5jZV9sZW5ndGggJSIgUFJJWDY0ICJcbiIsIHAt PmJvZHlfb2Zmc2V0LCBwLT5ib2R5X29mZnNldCArIHAtPmVzc2VuY2VfbGVuZ3RoKTsKKyAgICAg ICAgICAgIH0KIAotICAgIGlmIChsYXN0X3AgJiYgKCFsYXN0X3AtPmVzc2VuY2VfbGVuZ3RoIHx8 IGxhc3RfcC0+ZXNzZW5jZV9sZW5ndGggPiAob2Zmc2V0IC0gbGFzdF9wLT5ib2R5X29mZnNldCkp KSB7Ci0gICAgICAgICpvZmZzZXRfb3V0ID0gbGFzdF9wLT5lc3NlbmNlX29mZnNldCArIChvZmZz ZXQgLSBsYXN0X3AtPmJvZHlfb2Zmc2V0KTsKLSAgICAgICAgaWYgKHBhcnRpdGlvbl9vdXQpCi0g ICAgICAgICAgICAqcGFydGl0aW9uX291dCA9IGxhc3RfcDsKLSAgICAgICAgcmV0dXJuIDA7Cisg ICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKyAgICAgICAgfSBlbHNlIGlm IChkID09IDEpIHsKKyAgICAgICAgICAgIE1YRlBhcnRpdGlvbiAqbGFzdF9wID0gc3RhcnQtPnNl Y29uZDsKKyAgICAgICAgICAgIGlmICgoIWxhc3RfcC0+ZXNzZW5jZV9sZW5ndGggfHwgbGFzdF9w LT5lc3NlbmNlX2xlbmd0aCA+IChvZmZzZXQgLSBsYXN0X3AtPmJvZHlfb2Zmc2V0KSkpIHsKKyAg ICAgICAgICAgICAgICAqb2Zmc2V0X291dCA9IGxhc3RfcC0+ZXNzZW5jZV9vZmZzZXQgKyAob2Zm c2V0IC0gbGFzdF9wLT5ib2R5X29mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnRpdGlv bl9vdXQpCisgICAgICAgICAgICAgICAgICAgICpwYXJ0aXRpb25fb3V0ID0gbGFzdF9wOworICAg ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQog CiAgICAgYXZfbG9nKG14Zi0+ZmMsIEFWX0xPR19FUlJPUiwKQEAgLTM4OTksNiArMzkyNywxMiBA QCBpbnQgbXhmX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKIAogICAgIG14Zl9jb21w dXRlX2Vzc2VuY2VfY29udGFpbmVycyhzKTsKIAorICAgIC8vIHNldCB1cCBib2R5c2lkX29mZnNl dF9wYXJ0aXRpb25fbWFwCisgICAgZm9yIChpbnQgeCA9IDA7IHggPCBteGYtPnBhcnRpdGlvbnNf Y291bnQ7IHgrKykgeworICAgICAgICBNWEZQYXJ0aXRpb24gKnBhcnRpdGlvbiA9ICZteGYtPnBh cnRpdGlvbnNbeF07CisgICAgICAgIG14Zi0+Y3BwX2NvbnRleHQtPmJvZHlzaWRfb2Zmc2V0X3Bh cnRpdGlvbl9tYXBbcGFydGl0aW9uLT5ib2R5X3NpZF1bcGFydGl0aW9uLT5ib2R5X29mZnNldF0g PSBwYXJ0aXRpb247CisgICAgfQorCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5uYl9zdHJl YW1zOyBpKyspCiAgICAgICAgIG14Zl9jb21wdXRlX2VkaXRfdW5pdHNfcGVyX3BhY2tldChteGYs IHMtPnN0cmVhbXNbaV0pOwogCi0tIAoyLjQ3LjIKCg== --=-kvXjs1wKpbCLvcHimddn 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 To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org --=-kvXjs1wKpbCLvcHimddn--