<div dir="ltr">Hi there,<div><br></div><div>I have the following code to write to the Grouping field in an MP4 file:</div><div><br></div><div>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">TagLib</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">StringList</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">sl</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">TagLib</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">String</span><span style="color:rgb(0,0,0)">("data"</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">TagLib</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">String</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">UTF8</span><span style="color:rgb(0,0,0)">));</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,0)">mp4File</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">tag</span><span style="color:rgb(0,0,0)">()-></span><span style="color:rgb(0,0,0)">itemListMap</span><span style="color:rgb(0,0,0)">().</span><span style="color:rgb(0,0,0)">insert</span><span style="color:rgb(0,0,0)">(</span>"\251grp"<span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">sl</span><span style="color:rgb(0,0,0)">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,0)">mp4File</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">save</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><br></pre>Where mp4file is a TagLib::MP4::File. This code was working fine but now crashes with a segfault; I've narrowed the change down to when I switched my project to C++11 to rid myself of Boost.</div><div><br></div><div>The top of the crashed thread's stack (in OSX) reads as follows:</div><div><div><font face="monospace, monospace">0 ... std::__1::__tree<std::__1::__value_type<TagLib::String, TagLib::MP4::Item>, std::__1::__map_value_compare<TagLib::String, std::__1::__value_type<TagLib::String, TagLib::MP4::Item>, std::__1::less<TagLib::String>, true>, std::__1::allocator<std::__1::__value_type<TagLib::String, TagLib::MP4::Item> > >::__insert_node_at(std::__1::__tree_node_base<void*>*, std::__1::__tree_node_base<void*>*&, std::__1::__tree_node_base<void*>*) + 88</font></div><div><font face="monospace, monospace">1 ... std::__1::map<TagLib::String, TagLib::MP4::Item, std::__1::less<TagLib::String>, std::__1::allocator<std::__1::pair<TagLib::String const, TagLib::MP4::Item> > >::operator[](TagLib::String const&) + 205</font></div><div><font face="monospace, monospace">2 ... TagLib::Map<TagLib::String, TagLib::MP4::Item>::insert(TagLib::String const&, TagLib::MP4::Item const&) + 71</font></div><div><font face="monospace, monospace">3   ...</font></div></div><br>Has anyone had a similar experience? Is this expected with C++11, or is there some way around it?<div><br></div><div>Any help appreciated.</div><div>Regards</div><div>Ibrahim</div></div>