Bug 276015

Summary: WMA files interpret Album as Album Artist
Product: [Applications] amarok Reporter: gregsharp.geo
Component: Collections/LocalAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: normal CC: aakashrajdahal, gregsharp.geo, matej, mitchell, ralf-engels
Priority: NOR    
Version: 2.5.0   
Target Milestone: 2.4.2   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In: 2.7

Description gregsharp.geo 2011-06-19 03:27:25 UTC
Version:           2.4.1 (using KDE 4.6.3) 
OS:                Linux

For all WMA files in my collection, the album tag value is used instead of the album artist tag value for display and sorting.  For example, if the album artist is "Jackson Browne", and the album is "The Pretender", the album will appear in the collection as having album artist "The Pretender", and album "The Pretender".

I have tagged the files with Picard 0.14, and verified the album artist tag is correct with kid3 1.6.

Reproducible: Always
Comment 1 Myriam Schweingruber 2011-06-19 15:41:39 UTC
That is not an Amarok problem, but due to the proprietary file format that doesn't use id3 tags, but stores metadata differently. See also http://en.wikipedia.org/wiki/Windows_Media_Audio#Container_format

Nothing we can do about that, sorry.
Comment 2 gregsharp.geo 2011-06-19 18:31:51 UTC
Hi Myriam,

If I'm not mistaken, Amarok uses Taglib which has reasonably good support for ASF.  Since other softwares such as kid3 or picard are able to use this tag, I can't see why it is difficult for Amarok to support it as well.  

Would it be possible to re-open this bug report?  For your reference, below I have pasted a sample code that demonstrates how to enumerate the ASF tags.  The album artist is stored in "WM/AlbumArtist".

Thank you,
-Greg

	TagLib::FileRef f (filename);
	TagLib::ASF::Tag* asfTag = dynamic_cast<TagLib::ASF::Tag*>(f.tag());
	TagLib::ASF::AttributeListMap& attrListMap = asfTag->attributeListMap();
	for (TagLib::ASF::AttributeListMap::Iterator it = attrListMap.begin();
	     it != attrListMap.end();
	     ++it)
	{
	    printf ("x ");
	    std::cout << it->first;
	    TagLib::ASF::AttributeList& attrList = (*it).second;
	    for (TagLib::ASF::AttributeList::Iterator ait = attrList.begin();
		 ait != attrList.end();
		 ++ait)
	    {
		std::cout << ", " << (*ait).toString();
	    }
	    printf ("\n");
	}
Comment 3 Myriam Schweingruber 2011-06-19 21:56:14 UTC
Do you have taglib-extras complied with that support on? Then it should also work in Amarok as Amarok uses taglib as a dependency. See also the requirements here: http://quickgit.kde.org/?p=amarok.git&a=blob_plain&h=4038955cde30747deac667229ff5e382393536f8&f=README
Comment 4 gregsharp.geo 2011-06-20 02:09:45 UTC
On debian testing, it seems that the ASF functionality is included in libtag, rather than libtag-extras.  The code that I posted compiles, runs, and shows the correct album artist, but links only to /usr/lib/libtag.so.1.
Comment 5 Myriam Schweingruber 2011-06-20 09:50:48 UTC
That's not possible , since ASF is in taglib-extras only. But anyway, reopening based on your comment.
What does the tag editor in Amarok show for these tags?
Comment 6 Aakash 2012-01-01 17:31:02 UTC
Hi there,
It would be more helpful if you respond to Comment #5, and help Amarok better.
Also, the latest version of Amarok is version 2.5, please to upgrade and let us know if the problem still exits.
Thanks
Comment 7 Myriam Schweingruber 2012-01-01 23:59:13 UTC
Setting status accordingly.
Comment 8 gregsharp.geo 2012-01-21 04:01:05 UTC
Sorry for the delay.  

(1) Yes, bug still exists in Amarok 2.5.0
(2) Amarok tag editor shows same value for album and album artist.
In contrast, kid3 shows the correct album artist.

-Greg
Comment 9 Myriam Schweingruber 2012-01-21 14:29:42 UTC
Thank you for the feedback.
Comment 10 Matěj Laitl 2013-01-05 12:11:40 UTC
In TagLib 1.8, the support for ASF is inside, taglib-extras aren't needed anymore.

Greg, can you please send me the offending file to my mail? The problem may lie in the fact the we read advanced tags from specialized tag like TagLib::ASF::Tag, but even when it is present, we read basic tags from basic TagLib::Tag, which may read the tags from a different metadata stream.
Comment 11 Ralf Engels 2013-01-05 13:40:32 UTC
I fixed this (and commit hooks didn't work again. But I think I also did fix this problem)
Comment 12 Matěj Laitl 2013-01-05 13:47:37 UTC
Oh, definitely. Ralf, it is really strange, commit hooks apparently don't work for you.

I think I know the cause, your commit e-mail is ralf.engels at nokia.com, which is not listed in identity.kde.org. Please update your ~/.gitconfig!
Comment 13 gregsharp.geo 2013-01-24 04:32:15 UTC
Hi.  Thank you for looking into the problem.  I'm not sure if you still need it, but just in case, I sent to Matej a sample file by private email.  -Greg
Comment 14 Matěj Laitl 2013-01-24 10:29:58 UTC
(In reply to comment #13)
> Hi.  Thank you for looking into the problem.  I'm not sure if you still need
> it, but just in case, I sent to Matej a sample file by private email.  -Greg

Fixed in 2.7.0, confirmed with the song I got via mail.