IPB

Welcome Guest ( Log In | Register )

16 Pages V   1 2 3 > »   
Reply to this topicStart new topic
WMPTSE, WMP plug-in allows extended tag support
MaB_fr
post Oct 30 2005, 20:18
Post #1





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



Hello,

I've done a WMP plug in to support APE Tag (right now !) & other (ID3 in v1.0) inside Media Library.

http://wmptagext.sourceforge.net/

Welcome to the joy of viewing, editing your MPC, OGG, Flac & more files with WMP.

Give feedback about it & comments.

MaB_fr
Go to the top of the page
+Quote Post
skelly831
post Oct 30 2005, 21:49
Post #2





Group: Members (Donating)
Posts: 782
Joined: 11-April 05
From: México
Member No.: 21361



I've tried it with some MPC files and it works nicely!


--------------------
we was young an' full of beans
Go to the top of the page
+Quote Post
MaB_fr
post Oct 30 2005, 23:19
Post #3





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



OK.

BEWARE, with 0.6 if you add lots of file in a row, the memory usage may boost...

I'm working on it, but you must be warned... wink.gif rolleyes.gif

MaB_fr
Go to the top of the page
+Quote Post
MaB_fr
post Nov 1 2005, 02:44
Post #4





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



0.7 Released !

In essence, architectural changes needed to allow third-party tag support...

MaB_fr
Go to the top of the page
+Quote Post
LANjackal
post Nov 1 2005, 02:49
Post #5





Group: Members
Posts: 731
Joined: 26-October 05
From: Various networks
Member No.: 25371



Great tool, thanks a lot. smile.gif smile.gif.


--------------------
EAC>1)fb2k>LAME3.99 -V 0 --vbr-new>WMP12 2)MAC-Extra High
Go to the top of the page
+Quote Post
MaB_fr
post Nov 5 2005, 18:03
Post #6





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



You're welcome...[thank for your support]

And another release...

Say hello to 0.8 :

http://prdownloads.sourceforge.net/wmptage....8.msi?download

or

http://wmptagext.sourceforge.net/


UI changes (property dialog), complete tag support independence (you could code your own and plug it in easily), customisable with registry.

Enjoy, & don't hesitate to report ANY problem.

MaB_fr
Go to the top of the page
+Quote Post
kjoonlee
post Nov 5 2005, 18:58
Post #7





Group: Members
Posts: 2526
Joined: 25-July 02
From: South Korea
Member No.: 2782



It doesn't support native Vorbis comments for Ogg Vorbis files. Adding APEv2 is against the specs. Saying WMPTSE supports Vorbis is not very nice. This is a serious problem IMHO.

http://www.xiph.org/vorbis/doc/v-comment.html
http://www.xiph.org/vorbis/doc/Vorbis_I_sp...is-spec-comment


--------------------
http://blacksun.ivyro.net/vorbis/vorbisfaq.htm
Go to the top of the page
+Quote Post
kjoonlee
post Nov 5 2005, 19:19
Post #8





Group: Members
Posts: 2526
Joined: 25-July 02
From: South Korea
Member No.: 2782



PS. If native Vorbis comment support gets added, I might start recommending it to people. smile.gif


--------------------
http://blacksun.ivyro.net/vorbis/vorbisfaq.htm
Go to the top of the page
+Quote Post
MaB_fr
post Nov 5 2005, 19:27
Post #9





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



First, for the record (;-), I never said that WMPTSE support vorbis in any way (for now)...

It supports ogg files if APEv2 tagged...
It may be against the specs, but it is sometimes (often ?) used as such....
So i added it, in a spirit of enabling more user to enjoy the benefits of my work.
If you insists, i can supress the ogg support (personnaly i don't use it).

It would be better to actually WRITE the vorbis tag support.

I've done the work to permit developers to simply do this !
I guess it is time to use it ....smile.gif

You just have to :

1) make a Win32 dll with TWO exported functions :
- one named Read<your tag type name>Tag [in your case it will be "ReadVorbisTag"]
- one named Write<your tag type name>Tag [in your case it will be "WriteVorbisTag"]

...The TagSupport wizard can do that for you...with all include and so...


2) make WMPTSE load it :
add a registry key named <your tag type name> [in your case "Vorbis"] in HKEY_LOCAL_MACHINE\Soft\Pipool\WMPTSE and just add a string with the file type [in your case "ogg"] with your dll path as value..


3) Code your vorbis tag support :
Your "ReadVorbisTag" function will have 2 parameters
- one is a LPTSTR string to the path of the file to extract the tags from
- one is a structure you'll have to fill with extracted results (see WMPTSE.h - METATAG)
It should return TRUE if it succesfully handled the file or FALSE otherwise (if the file is not Vorbis tagged, for example)

Your "WriteVorbisTag" function will have 2 parameters :
- one is a LPTSTR string to the path of the file to add the tags into
- one is a structure you'll have to fill the vorbis metatag with (see WMPTSE.h - TAGITEM)
It should return TRUE if it succesfully handled the file or FALSE otherwise (if the file is not Vorbis tagged, for example)


I am here to help you in every step it should take.
And i deeply welcome any comments regarding extended tag support.

So, it is up to you now.

MaB_fr

This post has been edited by MaB_fr: Nov 5 2005, 21:50
Go to the top of the page
+Quote Post
spoon
post Nov 5 2005, 22:17
Post #10


dBpowerAMP developer


Group: Developer (Donating)
Posts: 2725
Joined: 24-March 02
Member No.: 1615



>It may be against the specs, but it is sometimes (often ?) used as such

Nope, ape2 tags are not used for ogg files by anything I know.


--------------------
Spoon http://www.dbpoweramp.com
Go to the top of the page
+Quote Post
MaB_fr
post Nov 5 2005, 22:51
Post #11





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



ok, removed in the next release

MaB_fr
Go to the top of the page
+Quote Post
grommet
post Nov 5 2005, 23:09
Post #12





Group: Members
Posts: 377
Joined: 1-April 05
From: California
Member No.: 21106



Have you considered adding (unprotected) AAC/.M4A support for the library? So far there are plenty solutions to play AAC in WMP, just nothing to make the library directly work with the tags/metadata.
Go to the top of the page
+Quote Post
MaB_fr
post Nov 5 2005, 23:32
Post #13





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



[...in this post i suppose that by library you mean "Media Library"...;-)]

You CAN do it yourself if it's APEv2 tagged right now...(i should've said "you MUST" ;))

(i'm not much documented about AAC & M4A tagging, because i simply don't use it [yes it IS the developper bias...sorry])

For adding any file type (or extensions, as in "*.aac"), just add a registry string with the path of the tag support dll in the tag type key...

Translated =>
In your case, if your AAC's files are APEv2 tagged, simply put a string named "AAC" in
[HKEY_LOCAL_MACHINE\SOFTWARE\piPOol\WMPTSE\APE] and just set the same value than the "ape" key.

For example, if you have installed the plug in in "C:\Program Files\WMPTSE", you should set the value to "C:\Program Files\WMPTSE\APETagSupport.dll"

If you are successfull, please let me know...i'll modify the install script to add AAC & M4A support.


If AAC & M4A files are not APEv2 tagged, i guess you'll have to wait for somebody to code the tag support dll, or pray that i urgently need to use AAC or M4A as file format...:-)

OR

Do it yourself....:-) As i said before, i MADE a wizard to pre-create the source code squeletton. Then, it is just some file format parsing and data struct filling. Basic C course ;)


Comments, suggestions, reports ...ARE welcomed ;)

MaB_fr
Go to the top of the page
+Quote Post
grommet
post Nov 6 2005, 02:42
Post #14





Group: Members
Posts: 377
Joined: 1-April 05
From: California
Member No.: 21106



No, AAC/M4A doesn't use APEv2 tagging. The tagging/metadata is in the standard MPEG-4 container format.

Thanks for your efforts with APEv2 so far, though. Very nice. I'll pray you urgently want to read MPEG-4 container tags. biggrin.gif

This post has been edited by grommet: Nov 6 2005, 02:48
Go to the top of the page
+Quote Post
MaB_fr
post Nov 7 2005, 13:31
Post #15





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



hum...

Sorry, but as for today, i'm continuing my "mpeg 4 free" life ;)....

On the positive side, i've search a bit around the file format supporting APE tagging (resulting first in deleting my OGG mess ;)) and i come with OptimFROG and WavePack, which are now supported (yeah, i know it's just a regsitry add...i coded it ;))

So, good news for kjoonlee, i've decided to take the responsability of coding vorbis support....

See you on the next release...(0.9)

MaB_fr
Go to the top of the page
+Quote Post
MaB_fr
post Nov 9 2005, 19:08
Post #16





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



Wow, ogg is a mess concerning tagging....

As anyone come with a lib abstracting Ogg/Vorbis, Ogg/Theora, Ogg/Flac, etc differencing regarding comments ?

Why tagging isn't considered a generic stream types...(as opposed as embedding it in a codec stream definition "???").

Has someone as a good logic explanation (except of ogg guys don't wanting to handle it....) ? It seems i missing a point there or something...

Thanks...

MaB_fr
Go to the top of the page
+Quote Post
jcoalson
post Nov 9 2005, 19:18
Post #17


FLAC Developer


Group: Developer
Posts: 1526
Joined: 27-February 02
Member No.: 1408



I think the idea with vorbis comments was that it was a stopgap until a "real" metadata format emerged that could be muxed in to ogg. the problem is that it never emerged, and might never emerge. people's requirements are too varied. my hunch is that the only thing more complicated and useful than id3v1 that could catch on is a keyword based system ala flickr. see also

http://forums.slimdevices.com/showthread.php?t=16452

if you have any questions about the metadata interfaces in libFLAC though feel free to ask.

Josh
Go to the top of the page
+Quote Post
MaB_fr
post Nov 9 2005, 19:25
Post #18





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



Thanks for the answer....

Sorry but i must be sure, if i understand correctly :

we ends up with a kind of substream "do it as you like" politic.

And there's no way to guarantee my users than i can handle every ogg file comments correctly ?

Am i wrong ?

And if i'm not, isn't it the time to actually get the Vorbis/Theora/Flac guys get some draft for the ogg team to consider ?

Yeah, i know, i'm a bit of a dreamer wink.gif

MaB_fr

This post has been edited by MaB_fr: Nov 9 2005, 19:31
Go to the top of the page
+Quote Post
ChristianHJW
post Nov 9 2005, 21:50
Post #19


Matroska developer


Group: Members
Posts: 922
Joined: 29-September 01
Member No.: 74



http://www.matroska.org/technical/specs/tagging/index.html

Please, have a look here and tell me what you think.

Christian
matroska project admin
http://www.matroska.org


--------------------
Support matroska - the bestest vapourware project ! http://www.matroska.org
Go to the top of the page
+Quote Post
jcoalson
post Nov 9 2005, 22:41
Post #20


FLAC Developer


Group: Developer
Posts: 1526
Joined: 27-February 02
Member No.: 1408



QUOTE (MaB_fr @ Nov 9 2005, 01:25 PM)
And there's no way to guarantee my users than i can handle every ogg file comments correctly ?

ogg is just the container, so far all the comment specs are in the codec layers, so they have to be done individually for each codec according to their APIs. some file types contained in ogg may not even have a comment spec, I don't know.

the part that can be reused is the representation of comments, since vorbis/flac/speex all use the same vorbis comment spec. so you could create a generic vorbis comment API that knew how to read/write comments for the different codecs and hide the implementation details. there is probably something already like that out there.

Josh
Go to the top of the page
+Quote Post
MaB_fr
post Nov 9 2005, 23:52
Post #21





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



ChristianHJW > if i understand correctly, we have some kind of :

(very sorry, but i usually think in C..:-/)

struct Tag
{
u_int Class-ID;
void * tag;
};

struct SimpleTag
{
UTF8Str TagName; <= is this an UTF8 ? if so, wouldn't it be simple to make it a C string (as i doesn't see any type with non roman char...)?
UTF8Str TagString;
};

struct TargetsTag
{
u_int TargetTypeValue; <= in the examples, there's always ONE targets tag per "tag", why not merging them ?
UTF8Str TargetType;
u_int UID[ nbofUID ]; <= i must admit i doesn't understand their use...why aren't they a SimpleTag (or maybe a UIDTag...)?
u_int nbofUID;
};

struct MatroskaTags
{
Tag * TagsTable[ nbTags ];
u_int nbTags;
};

i can't see the reason for the ORIGINAL/SAMPLE/COUNTRY tags.....

if i've not miss the most important part, your tag name list is definitelly good, i think.
For the rest, the structure is good, and seems to be kept as simple as possible (which is always good). I can think of some simplification (see comments before), but in general i think it's pretty strong.

I guess your a bit "russian localization" oriented, but it's fine with me for i do think it's the best for date stamping (the logic in "MM-DD-YYYY" is obscure for me...:-)).

MaB_fr

This post has been edited by MaB_fr: Nov 10 2005, 00:18
Go to the top of the page
+Quote Post
MaB_fr
post Nov 10 2005, 00:08
Post #22





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



QUOTE (jcoalson @ Nov 9 2005, 10:41 PM)
QUOTE (MaB_fr @ Nov 9 2005, 01:25 PM)
And there's no way to guarantee my users than i can handle every ogg file comments correctly ?

ogg is just the container, so far all the comment specs are in the codec layers, so they have to be done individually for each codec according to their APIs. some file types contained in ogg may not even have a comment spec, I don't know.

the part that can be reused is the representation of comments, since vorbis/flac/speex all use the same vorbis comment spec. so you could create a generic vorbis comment API that knew how to read/write comments for the different codecs and hide the implementation details. there is probably something already like that out there.

Josh
*



hum...isn't it the role of a supposed "container format" ?

I'm sorry but i doesn't understand the logic of forcing it into the codec (which for me is the coding/decoding handler of the actual data....).
Is it accepted that a vorbis stream contains speex data ? I'm very confused about the logic here....
When i read the ogg specs, i've seen lot's of "stream" philosophy....Isn't metadata a specific stream ? Not to be melted with audio data stream ?

As for searching an API to do it, i did...And found nothing "generic".
There's libvorbis for vorbis, libflac for flac, and libtheora for theora. They use the same logic, but seems not to be linked in the source level...

As long as i can't not guarantee to handle metadata correctly in ogg (and without having to support three or more different sourcebase and the logic with it) i'm not taking the risk to do it partially.

I let it to others...:-)
Sorry, kjoonlee...you may never recommends it :-(

Thanks for the answers...

MaB_fr

This post has been edited by MaB_fr: Nov 10 2005, 00:31
Go to the top of the page
+Quote Post
jcoalson
post Nov 10 2005, 01:23
Post #23


FLAC Developer


Group: Developer
Posts: 1526
Joined: 27-February 02
Member No.: 1408



QUOTE (MaB_fr @ Nov 9 2005, 06:08 PM)
I'm sorry but i doesn't understand the logic of forcing it into the codec (which for me is the coding/decoding handler of the actual data....).
Is it accepted that a vorbis stream contains speex data ? I'm very confused about the logic here....
When i read the ogg specs, i've seen lot's of "stream" philosophy....Isn't metadata a specific stream ? Not to be melted with audio data stream ?

yes. but like I said, vorbis comments are the codec-specific stopgap until such a metadata stream spec comes along. it may never come along.

QUOTE (MaB_fr @ Nov 9 2005, 06:08 PM)
As long as i can't not guarantee to handle metadata correctly in ogg (and without having to support three or more different sourcebase and the logic with it) i'm not taking the risk to do it partially.

I let it to others...:-)

ogg doesn't have any metadata, so there is no risk of doing it partially. maybe the problem is that the API on the WMP side cannot support the idea of a .ogg containing different codecs? but FLACs native container is not even ogg, even though it can be put in ogg or matroska.

as an example of how I would guess it would work:

CODE
1. wmp asks wmptse for the performer
2. wmptse maps that request to the PERFORMER field
3. wmptse calls its (or someone else's) vorbiscomment layer to get the PERFORMER field
4. inside vorbiscomment layer:
  switch(codec_type)
    case native-flac: use libFLAC to retrieve PERFORMER tag
    case ogg-vorbis: use libvorbis to retrieve PERFORMER tag
    cass ogg-speex: use libspeex to retrieve PERFORMER tag?
    ...


I don't know about libvorbis, but the FLAC metadata api should make this simple enough and I'd be glad to help out with how to write step 4 for different operations.

Josh
Go to the top of the page
+Quote Post
MaB_fr
post Nov 10 2005, 03:47
Post #24





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



Great doc, thanks !

CODE
1. wmp asks wmptse for the performer
2. wmptse maps that request to the PERFORMER field
3. wmptse calls its (or someone else's) vorbiscomment layer to get the PERFORMER field
4. inside vorbiscomment layer:
  switch(codec_type)
    case native-flac: use libFLAC to retrieve PERFORMER tag
    case ogg-vorbis: use libvorbis to retrieve PERFORMER tag
    cass ogg-speex: use libspeex to retrieve PERFORMER tag?
    ...


Sorry but you guessed wrong wink.gif

WMP doesn't ask for anything, that's the whole problem...and that's what wmptse resolves.

I have not documented it already, but in the spirit, wmptse is a workaround...
Optimised, customisable, but ....it is.

For that, i must get ALL the metadata in one raw. Simply because WMP doesn't specify which data has been added/modified/deleted (in fact, i even doesn't know the file name added for 'add' in the medialibrary...i must SEARCH IT with a "just added" trick...[no comments wink.gif i found no other way]).

Then i can parse all these metadata and add it in WMP (which in a pretty "create your own stack overflow", sends it to the medialibrary as a change [yes, my changes because of WMP notifying me of some change are considered changes and are notified to ME even before i've finished doing them !!! again i had to trick it a bit (Critical sections are my friends), but it's safe now]).

On the other side, i can read metadata and write it "per changes" on the tagged file.

That's why the plug in api (or tagsupport API) in WMPTSE is unbalanced between read and write...

For now, i think i will code a native Flac support. It seems released and well documented...

MaB_fr

This post has been edited by MaB_fr: Nov 10 2005, 03:56
Go to the top of the page
+Quote Post
MaB_fr
post Nov 14 2005, 12:14
Post #25





Group: Members
Posts: 196
Joined: 30-October 05
Member No.: 25458



So, just released 0.9...

Good news for kjoonlee, Vorbis is "read" supported (you can view Ogg Vorbis comments in WMP, but you can't edit/change them)

Sorry grommet, no news of MP4/AAC support...

WavPack and OptimFROG supported right through the setup...

And always APE and MPC support.

http://wmptagext.sourceforge.net/

or direct download link :

http://prdownloads.sourceforge.net/wmptage....9.msi?download

Enjoy...Comments always welcome...And bug report needed !!!

For now on, no more functionnality add.
It's just code cleaning (LOTS) and debugging (only one reported...by me :-() ! until 1.0 release.

Thanks for jcoalson (great lib !!) for the FLAC help.
Thanks SebastianG, Lear and kode54 for the libVorbis help.

[i always thinked we doesn't thank enough people who gives....;-)]

MaB_fr

This post has been edited by MaB_fr: Nov 14 2005, 12:15
Go to the top of the page
+Quote Post

16 Pages V   1 2 3 > » 
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 21st April 2014 - 09:02