<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hello,<div class=""><br class=""></div><div class="">I’ve changed my code for removing tags to</div><div class=""><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: Menlo; color: rgb(63, 110, 116); background-color: rgb(255, 255, 255);" class=""><span class="Apple-tab-span" style="white-space:pre">  </span>PropertyMap<span style="color: #000000" class=""> map</span></div><div style="margin: 0px; font-stretch: normal; line-height: normal; font-family: Menlo; color: rgb(63, 110, 116); background-color: rgb(255, 255, 255);" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>map.<span style="color: rgb(38, 71, 75);" class="">erase</span>(name_space);</div><div>And removing tags is working fine now.</div><div><br class=""></div><div>thank you</div><div><br class=""></div><div><br class=""></div><div><blockquote type="cite" class=""><div class="">On 27 Mar 2022, at 6:05 PM, Urs Fleisch <<a href="mailto:urs.fleisch@gmail.com" class="">urs.fleisch@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">I am not sure if I fully understand the problem. In an attempt to<br class="">reproduce the issue for MP4 files, I modified<br class="">`testPropertiesAllSupported()` in *test_mp4.cpp* so that after setting<br class="">all the properties (including those BMP, DISCNUMBER, TRACKNUMBER,<br class="">COMPILATiON mentioned in your message) all properties are cleared by<br class="">setting an empty map, and then checking if everything is really<br class="">cleared.<br class=""><br class="">```<br class="">diff --git a/tests/test_mp4.cpp b/tests/test_mp4.cpp<br class="">index 14b23e1f..c57ac4b5 100644<br class="">--- a/tests/test_mp4.cpp<br class="">+++ b/tests/test_mp4.cpp<br class="">@@ -511,12 +511,23 @@ public:<br class="">      f.save();<br class="">    }<br class="">    {<br class="">-      const MP4::File f(copy.fileName().c_str());<br class="">+      MP4::File f(copy.fileName().c_str());<br class="">      PropertyMap properties = f.properties();<br class="">      if (tags != properties) {<br class="">        CPPUNIT_ASSERT_EQUAL(tags.toString(), properties.toString());<br class="">      }<br class="">      CPPUNIT_ASSERT(tags == properties);<br class="">+      f.setProperties(PropertyMap());<br class="">+      f.save();<br class="">+    }<br class="">+    {<br class="">+      const MP4::File f(copy.fileName().c_str());<br class="">+      PropertyMap properties = f.properties();<br class="">+      CPPUNIT_ASSERT(properties.isEmpty());<br class="">+      MP4::Tag *tag = f.tag();<br class="">+      CPPUNIT_ASSERT(tag->isEmpty());<br class="">+      const MP4::ItemMap &map = tag->itemMap();<br class="">+      CPPUNIT_ASSERT(map.isEmpty());<br class="">    }<br class="">  }<br class="">```<br class=""><br class="">This test passes, so I do not see the problem. Where exactly are you<br class="">calling `map.clear()`? Could you provide some sample code to reproduce<br class="">the problem?<br class=""></div></div></blockquote></div><br class=""></div></body></html>