Version: (using Devel) OS: MS Windows Installed from: Compiled sources Taglib is at the moment unable to split a packet into several ogg pages. When the size of the comment packet exceeds about 64KB (maximum size of an ogg page), the data is not written, resulting in an unplayable ogg file (method Ogg::Page::paginate in taglib/ogg/oggpage.cpp).
Created attachment 27633 [details] new implementation of Ogg::Page::paginate The patch goes into directory kde-utils/taglib/taglib I'm afraid I didn't follow all naming and indentation conventions. Please correct me or point me to code style specs. Thanks
Created attachment 27641 [details] new implementation of Ogg::Page::paginate (fixed) if method is Repaginate or the size of the packets exceeds the maximum size of an ogg page, the data is broken into pages of approximately 8KB size
*** Bug 172402 has been marked as a duplicate of this bug. ***
Created attachment 29363 [details] cumulative patch for several bugs There was another problem when the ogg patch holding the tag data contained an unfinished vorbis packet, too. I've compiled a cumulative patch, this one fixes: Bug 167786: ID3 v2.2 album art not being displayed Bug 171957: taglib corrupts ogg files Bug 175781: riff file tagging interprets trailing garbage Bug 176159: aiff files with uneven chunk sizes are crashed Bug 176373: invalid id3v2.2 frames are copied to id3v2.4
SVN commit 1003745 by lalinsky: Handle RIFF chunk padding and ignore trailing garbage This is based on patches by Marc Halbruegge, but those only deal with read-only cases. The code now also correctly adds padding to RIFF chunks, and calculates offsets in chunkData taking the padding into account. BUG:171957 BUG:175781 M +34 -4 taglib/riff/rifffile.cpp M +4 -0 tests/CMakeLists.txt AM tests/data/empty.aiff AM tests/test_aiff.cpp [License: UNKNOWN] AM tests/test_riff.cpp [License: UNKNOWN] WebSVN link: http://websvn.kde.org/?view=rev&revision=1003745
Sorry, copy&paste error. This is not fixed yet.
SVN commit 1019459 by lalinsky: Split Ogg packets larger than 64kb into multiple pages The implementation is not very efficient, but the current Ogg code makes it hard to write it properly. :( Patch by Marc Halbruegge BUG:171957 M +1 -0 NEWS M +95 -4 taglib/ogg/oggfile.cpp M +98 -14 taglib/ogg/oggpage.cpp M +8 -0 taglib/ogg/oggpage.h M +2 -0 tests/CMakeLists.txt M +3 -1 tests/Makefile.am AM tests/test_ogg.cpp [License: UNKNOWN] WebSVN link: http://websvn.kde.org/?view=rev&revision=1019459