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 6C1794947B for ; Fri, 12 Apr 2024 09:40:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0365068D222; Fri, 12 Apr 2024 12:40:56 +0300 (EEST) Received: from glom.nmugroup.com (glom.nmugroup.com [193.183.80.6]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 380E668D0A6 for ; Fri, 12 Apr 2024 12:40:49 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by glom.nmugroup.com (Postfix) with ESMTP id B6B2E542A188 for ; Fri, 12 Apr 2024 11:40:48 +0200 (CEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) (Authenticated sender: git01) by glom.nmugroup.com (Postfix) with ESMTPSA id 6BA21542A182 for ; Fri, 12 Apr 2024 11:40:48 +0200 (CEST) Message-ID: <71fccb5a1e28dfd23e3dd710c86c8a3a662bbd61.camel@haerdin.se> From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: ffmpeg-devel Date: Fri, 12 Apr 2024 11:40:47 +0200 Content-Type: multipart/mixed; boundary="=-ln7DlY7SXv8CegcYIlEl" User-Agent: Evolution 3.46.4-2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] ffmpeg: Carry streamid as metadata key 'id' 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: --=-ln7DlY7SXv8CegcYIlEl Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This idea could be extended to other fields not presently considered to be metadata, that would be handy to treat as such. I use the key "id" because ffprobe outputs id=3D for streamid. Another option could be to collect these types of metadata that go into AVStream fields under a namespace like FFMPEG: or AVSTREAM: or something, then delete all of them using AV_DICT_IGNORE_SUFFIX near the end of of_open() since they're for internal ffmpeg use. The FATE change is just because av_dict() changes the order of things when elements are deleted. /Tomas --=-ln7DlY7SXv8CegcYIlEl Content-Disposition: attachment; filename="0001-ffmpeg-Carry-streamid-as-metadata-key-id.patch" Content-Type: text/x-patch; name="0001-ffmpeg-Carry-streamid-as-metadata-key-id.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3Nzk5ZjFiMmViOGFiMDJlNTgxMTg1NjVmM2U4ODlmYmUwZDU2OGE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VG9tYXM9MjBIPUMzPUE0cmRpbj89IDxnaXRA aGFlcmRpbi5zZT4KRGF0ZTogRnJpLCAxMiBBcHIgMjAyNCAxMDozNDoxMiArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIGZmbXBlZzogQ2Fycnkgc3RyZWFtaWQgYXMgbWV0YWRhdGEga2V5ICdpZCcKClRo aXMgYWxsb3dzIHVzaW5nIC1tYXBfbWV0YWRhdGEgYW5kIC1tZXRhZGF0YSB0byBjb3B5L3NldCBz dHJlYW1pZHMgKFBJRHMpLgotLS0KIGZmdG9vbHMvZmZtcGVnX2RlbXV4LmMgICAgICAgICAgICAg IHwgIDUgKysrCiBmZnRvb2xzL2ZmbXBlZ19tdXhfaW5pdC5jICAgICAgICAgICB8IDU2ICsrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tCiB0ZXN0cy9yZWYvZmF0ZS9tYXRyb3NrYS1zdGVyZW9f bW9kZSB8ICA2ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZmZ0b29scy9mZm1wZWdfZGVtdXguYyBiL2ZmdG9vbHMv ZmZtcGVnX2RlbXV4LmMKaW5kZXggY2JhNjNkYWI1Zi4uMWIwZWY5MWFiYiAxMDA2NDQKLS0tIGEv ZmZ0b29scy9mZm1wZWdfZGVtdXguYworKysgYi9mZnRvb2xzL2ZmbXBlZ19kZW11eC5jCkBAIC0x NDU0LDYgKzE0NTQsMTEgQEAgc3RhdGljIGludCBpc3RfYWRkKGNvbnN0IE9wdGlvbnNDb250ZXh0 ICpvLCBEZW11eGVyICpkLCBBVlN0cmVhbSAqc3QpCiAKICAgICBkcy0+Y29kZWNfZGVzYyA9IGF2 Y29kZWNfZGVzY3JpcHRvcl9nZXQoaXN0LT5wYXItPmNvZGVjX2lkKTsKIAorICAgIC8vIGNhcnJ5 IHN0cmVhbWlkIGFzIG1ldGFkYXRhIHNvIHRoYXQgc3RyZWFtaWRzIGNhbiBiZSBiZSBoYW5kbGVk IGxpa2UgYW55IG90aGVyIG1ldGFkYXRhCisgICAgLy8gYmUgY2FyZWZ1bCBub3QgdG8gb3Zlcndy aXRlIGFueSBleGlzdGluZyB2YWx1ZSwganVzdCBpbiBjYXNlCisgICAgaWYgKChyZXQgPSBhdl9k aWN0X3NldF9pbnQoJnN0LT5tZXRhZGF0YSwgImlkIiwgc3QtPmlkLCBBVl9ESUNUX0RPTlRfT1ZF UldSSVRFKSkgPCAwKQorICAgICAgICBhdl9sb2coaXN0LCBBVl9MT0dfRVJST1IsICJlcnJvciAl aSBzZXR0aW5nIFwiaWRcIiB0byAlaS4gaWQgYWxyZWFkeSBzZXQ/XG4iLCByZXQsIHN0LT5pZCk7 CisKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZmZ0b29scy9mZm1wZWdfbXV4X2lu aXQuYyBiL2ZmdG9vbHMvZmZtcGVnX211eF9pbml0LmMKaW5kZXggNmQ4YmQ1YmNkZi4uZGJlMTZl OGQwZiAxMDA2NDQKLS0tIGEvZmZ0b29scy9mZm1wZWdfbXV4X2luaXQuYworKysgYi9mZnRvb2xz L2ZmbXBlZ19tdXhfaW5pdC5jCkBAIC0xMDczLDIxICsxMDczLDYgQEAgc3RhdGljIGludCBvc3Rf YWRkKE11eGVyICptdXgsIGNvbnN0IE9wdGlvbnNDb250ZXh0ICpvLCBlbnVtIEFWTWVkaWFUeXBl IHR5cGUsCiAKICAgICBvc3QgPSAmbXMtPm9zdDsKIAotICAgIGlmIChvLT5zdHJlYW1pZCkgewot ICAgICAgICBBVkRpY3Rpb25hcnlFbnRyeSAqZTsKLSAgICAgICAgY2hhciBpZHhbMTZdLCAqcDsK LSAgICAgICAgc25wcmludGYoaWR4LCBzaXplb2YoaWR4KSwgIiVkIiwgb3N0LT5pbmRleCk7Ci0K LSAgICAgICAgZSA9IGF2X2RpY3RfZ2V0KG8tPnN0cmVhbWlkLCBpZHgsIE5VTEwsIDApOwotICAg ICAgICBpZiAoZSkgewotICAgICAgICAgICAgc3QtPmlkID0gc3RydG9sKGUtPnZhbHVlLCAmcCwg MCk7Ci0gICAgICAgICAgICBpZiAoIWUtPnZhbHVlWzBdIHx8ICpwKSB7Ci0gICAgICAgICAgICAg ICAgYXZfbG9nKG9zdCwgQVZfTE9HX0ZBVEFMLCAiSW52YWxpZCBzdHJlYW0gaWQ6ICVzXG4iLCBl LT52YWx1ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKLSAgICAg ICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQogICAgIG9zdC0+cGFyX2luID0gYXZjb2RlY19w YXJhbWV0ZXJzX2FsbG9jKCk7CiAgICAgaWYgKCFvc3QtPnBhcl9pbikKICAgICAgICAgcmV0dXJu IEFWRVJST1IoRU5PTUVNKTsKQEAgLTMwMTYsNiArMzAwMSw0MyBAQCBzdGF0aWMgTXV4ZXIgKm11 eF9hbGxvYyh2b2lkKQogICAgIHJldHVybiBtdXg7CiB9CiAKK3N0YXRpYyBpbnQgb2Zfc2V0X3N0 cmVhbWlkKE11eGVyICptdXgsIGNvbnN0IE9wdGlvbnNDb250ZXh0ICpvKQoreworICAgIGZvciAo aW50IGkgPSAwOyBpIDwgbXV4LT5mYy0+bmJfc3RyZWFtczsgaSsrKSB7CisgICAgICAgIE91dHB1 dFN0cmVhbSAqb3N0ID0gbXV4LT5vZi5zdHJlYW1zW2ldOworICAgICAgICBBVkRpY3Rpb25hcnlF bnRyeSAqZSA9IE5VTEw7CisKKyAgICAgICAgLy8gdGFrZSAtc3RyZWFtaWQgaWYgZXhwbGljaXRs eSBzZXQKKyAgICAgICAgaWYgKG8tPnN0cmVhbWlkKSB7CisgICAgICAgICAgICBjaGFyIGlkeFsx Nl07CisgICAgICAgICAgICBzbnByaW50ZihpZHgsIHNpemVvZihpZHgpLCAiJWQiLCBvc3QtPmlu ZGV4KTsKKworICAgICAgICAgICAgZSA9IGF2X2RpY3RfZ2V0KG8tPnN0cmVhbWlkLCBpZHgsIE5V TEwsIDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgLXN0cmVhbWlkIG5vdCBzZXQgdGhl biB0cnkgdG8gZ3JhYiBpdCBmcm9tIG1ldGFkYXRhCisgICAgICAgIC8vIHRoaXMgbWFpbnRhaW5z IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgaWYgKCFlKQorICAgICAgICAgICAgZSA9 IGF2X2RpY3RfZ2V0KG9zdC0+c3QtPm1ldGFkYXRhLCAiaWQiLCBOVUxMLCAwKTsKKworICAgICAg ICBpZiAoZSkgeworICAgICAgICAgICAgY2hhciAqcDsKKyAgICAgICAgICAgIG9zdC0+c3QtPmlk ID0gc3RydG9sKGUtPnZhbHVlLCAmcCwgMCk7CisgICAgICAgICAgICBpZiAoIWUtPnZhbHVlWzBd IHx8ICpwKSB7CisgICAgICAgICAgICAgICAgYXZfbG9nKG9zdCwgQVZfTE9HX0ZBVEFMLCAiSW52 YWxpZCBzdHJlYW0gaWQ6ICVzXG4iLCBlLT52YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlOVkFMKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg Ly8gZGVsZXRlIGlkIG5vdyB0aGF0IHdlJ3ZlIHBpY2tlZCBpdCB1cCwKKyAgICAgICAgICAgICAg ICAvLyBzbyB0aGF0IGl0IGRvZXNuJ3QgbWFrZSBpdCBpbnRvIHRoZSBvdXRwdXQKKyAgICAgICAg ICAgICAgICBpbnQgcmV0ID0gYXZfZGljdF9zZXQoJm9zdC0+c3QtPm1ldGFkYXRhLCAiaWQiLCBO VUxMLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1 cm4gMDsKK30KKwogaW50IG9mX29wZW4oY29uc3QgT3B0aW9uc0NvbnRleHQgKm8sIGNvbnN0IGNo YXIgKmZpbGVuYW1lLCBTY2hlZHVsZXIgKnNjaCkKIHsKICAgICBNdXhlciAqbXV4OwpAQCAtMzE0 OSw2ICszMTcxLDEwIEBAIGludCBvZl9vcGVuKGNvbnN0IE9wdGlvbnNDb250ZXh0ICpvLCBjb25z dCBjaGFyICpmaWxlbmFtZSwgU2NoZWR1bGVyICpzY2gpCiAgICAgaWYgKGVyciA8IDApCiAgICAg ICAgIHJldHVybiBlcnI7CiAKKyAgICBlcnIgPSBvZl9zZXRfc3RyZWFtaWQobXV4LCBvKTsKKyAg ICBpZiAoZXJyIDwgMCkKKyAgICAgICAgcmV0dXJuIGVycjsKKwogICAgIGVyciA9IHNldF9kaXNw b3NpdGlvbnMobXV4LCBvKTsKICAgICBpZiAoZXJyIDwgMCkgewogICAgICAgICBhdl9sb2cobXV4 LCBBVl9MT0dfRkFUQUwsICJFcnJvciBzZXR0aW5nIG91dHB1dCBzdHJlYW0gZGlzcG9zaXRpb25z XG4iKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3JlZi9mYXRlL21hdHJvc2thLXN0ZXJlb19tb2RlIGIv dGVzdHMvcmVmL2ZhdGUvbWF0cm9za2Etc3RlcmVvX21vZGUKaW5kZXggNzM5Yjc4OWZlYS4uZTQ2 Zjc1Y2JiNCAxMDA2NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUvbWF0cm9za2Etc3RlcmVvX21vZGUK KysrIGIvdGVzdHMvcmVmL2ZhdGUvbWF0cm9za2Etc3RlcmVvX21vZGUKQEAgLTEsNCArMSw0IEBA Ci1hN2EyMjBhNzcwMDFlODE2ODVlYzgwN2NlNWFjM2JjNiAqdGVzdHMvZGF0YS9mYXRlL21hdHJv c2thLXN0ZXJlb19tb2RlLm1hdHJvc2thCis0MGQyNzcxY2Y3NGQzNzg0NzZjYzQ3NjRiODdhZjE1 NiAqdGVzdHMvZGF0YS9mYXRlL21hdHJvc2thLXN0ZXJlb19tb2RlLm1hdHJvc2thCiAxNDcwNzY0 IHRlc3RzL2RhdGEvZmF0ZS9tYXRyb3NrYS1zdGVyZW9fbW9kZS5tYXRyb3NrYQogI2V4dHJhZGF0 YSAwOiAgICAgMzUxMCwgMHg1NjBjMzkxOQogI2V4dHJhZGF0YSAxOiAgICAgMzUxMCwgMHg1NjBj MzkxOQpAQCAtMTI1LDggKzEyNSw4IEBAIERJU1BPU0lUSU9OOmR1Yj0wCiBESVNQT1NJVElPTjpv cmlnaW5hbD0wCiBUQUc6bGFuZ3VhZ2U9Z2VyLWF0CiBUQUc6c3RlcmVvX21vZGU9bGVmdF9yaWdo dAotVEFHOkRFU0NSSVBUSU9OLWdlcj1EZXV0c2NoCiBUQUc6REVTQ1JJUFRJT04tZnJlPUZyYW5j YWlzCitUQUc6REVTQ1JJUFRJT04tZ2VyPURldXRzY2gKIFRBRzpEVVJBVElPTj0wMDowMDoxMC4w MDAwMDAwMDAKIFtTSURFX0RBVEFdCiBzaWRlX2RhdGFfdHlwZT1TdGVyZW8gM0QKQEAgLTE0MCw4 ICsxNDAsOCBAQCBESVNQT1NJVElPTjpkdWI9MAogRElTUE9TSVRJT046b3JpZ2luYWw9MAogVEFH Omxhbmd1YWdlPWVuZwogVEFHOnN0ZXJlb19tb2RlPWJvdHRvbV90b3AKLVRBRzpERVNDUklQVElP Ti1nZXI9RGV1dHNjaAogVEFHOkRFU0NSSVBUSU9OLWZyZT1GcmFuY2FpcworVEFHOkRFU0NSSVBU SU9OLWdlcj1EZXV0c2NoCiBUQUc6RFVSQVRJT049MDA6MDA6MTAuMDAwMDAwMDAwCiBbU0lERV9E QVRBXQogc2lkZV9kYXRhX3R5cGU9U3RlcmVvIDNECi0tIAoyLjM5LjIKCg== --=-ln7DlY7SXv8CegcYIlEl 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". --=-ln7DlY7SXv8CegcYIlEl--