Bug 218696

Summary: Embedded picture blocks in FLAC files
Product: [Frameworks and Libraries] taglib Reporter: Tim De Baets <info>
Component: generalAssignee: Scott Wheeler <wheeler>
Status: RESOLVED FIXED    
Severity: wishlist CC: lalinsky
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Unspecified   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Tim De Baets 2009-12-14 21:13:15 UTC
Version:            (using Devel)
Installed from:    Compiled sources

Would it be possible to add support for FLAC picture blocks (embedded album art) to TagLib? Obviously not the pictures embedded in Vorbis comments, but in the FLAC metadata itself, according to the FLAC format specifications at http://flac.sourceforge.net/format.html .
Comment 1 Lukáš Lalinský 2010-07-25 13:05:37 UTC
SVN commit 1154376 by lalinsky:

Read-only support for FLAC picture blocks

CCBUG:218696


 M  +1 -0      bindings/c/CMakeLists.txt  
 M  +2 -0      taglib/CMakeLists.txt  
 M  +1 -1      taglib/flac/CMakeLists.txt  
 M  +3 -2      taglib/flac/Makefile.am  
 M  +42 -1     taglib/flac/flacfile.cpp  
 M  +20 -0     taglib/flac/flacfile.h  
 A             taglib/flac/flacpicture.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacpicture.h   [License: LGPL (v2.1) (wrong address)]
 AM            tests/data/silence-44-s.flac  
 M  +21 -0     tests/test_flac.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1154376
Comment 2 Lukáš Lalinský 2010-11-28 13:54:54 UTC
SVN commit 1201717 by lalinsky:

Work-in-progress support for writing FLAC picture

This will enable the possibility to add support for accessing the Seektable
and Cuesheet blocks, but I'm not planning on implementing that right now.

CCBUG:218696


 M  +3 -0      taglib/CMakeLists.txt  
 M  +1 -0      taglib/flac/flacfile.cpp  
 A             taglib/flac/flacmetadatablock.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacmetadatablock.h   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacmetadatablocks.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacmetadatablocks.h   [License: LGPL (v2.1) (wrong address)]
 M  +24 -0     taglib/flac/flacpicture.cpp  
 M  +12 -1     taglib/flac/flacpicture.h  
 A             taglib/flac/flacunknownmetadatablock.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacunknownmetadatablock.h   [License: LGPL (v2.1) (wrong address)]
 U             taglib/toolkit/tbytevector.h  
 M  +3 -0      tests/CMakeLists.txt  
 A             tests/test_flacmetadatablocks.cpp   [License: UNKNOWN]
 A             tests/test_flacpicture.cpp   [License: UNKNOWN]
 A             tests/test_flacunknownmetadatablock.cpp   [License: UNKNOWN]


WebSVN link: http://websvn.kde.org/?view=rev&revision=1201717
Comment 3 Lukáš Lalinský 2011-01-08 11:37:39 UTC
SVN commit 1212863 by lalinsky:

Full read/write support for FLAC pictures

NEEDS MORE TESTING

BUG:218696


 M  +0 -1      taglib/CMakeLists.txt  
 M  +93 -144   taglib/flac/flacfile.cpp  
 D             taglib/flac/flacmetadatablocks.cpp  
 D             taglib/flac/flacmetadatablocks.h  
 M  +2 -2      taglib/flac/flacpicture.cpp  
 M  +53 -3     taglib/flac/flacpicture.h  
 M  +3 -1      taglib/mp4/mp4file.cpp  
 M  +0 -1      tests/CMakeLists.txt  
 A             tests/data/empty_vorbis.oga   tests/data/empty_vorbis.ogg#1212844
 D             tests/data/empty_vorbis.ogg  
 M  +137 -3    tests/test_flac.cpp  
 D             tests/test_flacmetadatablocks.cpp  
 M  +0 -1      tests/test_flacpicture.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1212863
Comment 4 Tim De Baets 2011-08-10 09:43:37 UTC
Thank you for adding FLAC picture support, I'm currently using it to add album art support to my Windows Media Player plug-in. However, I noticed that there isn't any way to remove an individual picture (the removePictures method removes all attached pictures). Am I missing something obvious or hasn't this been added yet? Are there any plans to add this in the near future?
Comment 5 Lukáš Lalinský 2011-08-10 10:21:44 UTC
No, it's just an oversight. What API would like for that?
Comment 6 Tim De Baets 2011-08-10 11:41:06 UTC
Just a simple "removePicture" method would be fine. Possibly something equivalent to TagLib::ID3v2::Tag::removeFrame?