Go to Google Groups Home    microsoft.public.windowsmedia.player
Re: Metadata from OGG, FLAC and zero duration

John Lockwood <john.lockw...@amtec.co.uk>

I can't answer your questions, only tell you what I have seen and read.

1. All the third-party directshow filters I have seen result in WMP showing
a duration of zero seconds until you start playing the track
2. Articles I have seen suggest Microsoft's position is that it is the
directshow filter at fault for not providing the correct information to WMP
3. The only music format I have tried and seen correctly work was MP3 using
the built-in MP3 directshow filter provided by Microsoft (I have never used
WMA but would expect that to work as well for the same reason)

My conclusions would be

1. Microsoft have designed a crappy API for directshow filters to make this
so troublesome
2. Microsoft have failed to document how to do this properly or provide
examples showing how to do it properly, they could have done this by
providing a fully documented copy of their MP3 (or WMA) directshow filter
with freely available source code

While I find this annoying from a cosmetic point of view, it has not
impacted on my use since I don't seek through tracks other than by dragging
the timebar in WMP which works for me.

Note: I exclusively use Apple Lossless format tracks in WMP, Apple Lossless
is stored in MPEG4 .m4a file format and uses MPEG4 meta-tags for which I use
the wmptagext plugin you refer to. This does result in the zero duration
problem you describe but they otherwise work for me.

On 20/2/09 01:11, in article
fe8eea80-cf30-46e4-a5a5-c046cce8d...@b16g2000yqb.googlegroups.com, "Cristian

Adam" <cristian.a...@gmail.com> wrote:
> Hi,

> I'm the current maintainer of Directshow Filters for Ogg Vorbis,
> Speex, Theora and FLAC, and I would like to improve the Windows Media
> Player user experience when it comes to these file formats.

> Alex Zambelly wrote back in 2003 (http://tinyurl.com/bama4j)
> "I believe getting the metadata promotion to work correctly might
> require
> a more WMP-friendly plugin, as opposed to just a DirectShow filter.
> I'm
> actually surprised no one in the Ogg development community has looked
> into that yet."

> I have dumped all the interfaces that Windows Media Player 11 queries
> for the FLAC source filter:

> INFO: NonDelegatingQueryInterface: {56A86895-0AD4-11CE-
> B03A-0020AF0BA770}, [IBaseFilter]
> INFO: NonDelegatingQueryInterface: {56A868A6-0AD4-11CE-
> B03A-0020AF0BA770}, [IFileSourceFilter]
> INFO: NonDelegatingQueryInterface: {8E1C39A1-DE53-11CF-
> AA63-0080C744528D}, [IAMOpenProgress]
> INFO: NonDelegatingQueryInterface: {F90A6130-B658-11D2-
> AE49-0000F8754B99}, [IAMDeviceRemoval]
> INFO: NonDelegatingQueryInterface: {0000010C-0000-0000-
> C000-000000000046}, [IPersist]
> INFO: NonDelegatingQueryInterface: {FA2AA8F5-8B62-11D0-
> A520-000000000000}, [IAMNetShowExProps]
> INFO: NonDelegatingQueryInterface: {3C43D14F-25B3-4E34-A36C-
> F575DEEA29C0}, [Unknown GUID Name]
> INFO: NonDelegatingQueryInterface: {56A868FE-0AD4-11CE-
> B0A3-0020AF0BA770}, [IAMPlayList]
> INFO: NonDelegatingQueryInterface: {DFDFD197-A9CA-43D8-
> B341-6AF3503792CD}, [IMFVideoRenderer]
> INFO: NonDelegatingQueryInterface: {56A868B5-0AD4-11CE-
> B03A-0020AF0BA770}, [IBasicVideo]
> INFO: NonDelegatingQueryInterface: {81A3BD32-
> DEE1-11D1-8508-00A0C91F9CA0}, [IMixerOCX]
> INFO: NonDelegatingQueryInterface:
> {095CAB33-2B11-46F7-8107-6B67D4065CD6}, [IWMPVideoNodeInternal]
> INFO: NonDelegatingQueryInterface: {36B73880-
> C2C8-11CF-8B46-00805F6CEF60}, [IMediaSeeking]
> INFO: NonDelegatingQueryInterface: {56A868B2-0AD4-11CE-
> B03A-0020AF0BA770}, [IMediaPosition]
> INFO: NonDelegatingQueryInterface: {2DD74950-A890-11D1-
> ABE8-00A0C905F375}, [IAMFilterMiscFlags]
> INFO: NonDelegatingQueryInterface: {56A868B4-0AD4-11CE-
> B03A-0020AF0BA770}, [IVideoWindow]
> INFO: NonDelegatingQueryInterface: {56A868B3-0AD4-11CE-
> B03A-0020AF0BA770}, [IBasicAudio]
> INFO: NonDelegatingQueryInterface: {B8E8BD60-0BFE-11D0-
> AF91-00AA00B67A42}, [IIPDVDec]
> INFO: NonDelegatingQueryInterface: {C1960960-17F5-11D1-
> ABE1-00A0C905F375}, [IAMStreamSelect]
> INFO: NonDelegatingQueryInterface: {B45DD570-3C77-11D1-
> ABE1-00A0C905F375}, [IID_IMpegAudioDecoder]
> INFO: NonDelegatingQueryInterface: {5738E040-B67F-11D0-
> BD4D-00A0C911CE86}, [IPersistMediaPropertyBag]
> INFO: NonDelegatingQueryInterface: {0BB53976-978F-41F9-A66B-
> A29CC318A817}, [Unknown GUID Name]
> INFO: NonDelegatingQueryInterface:
> {55272A00-42CB-11CE-8135-00AA004BB851}, [IPropertyBag]

> There are two unknown interfaces {3C43D14F-25B3-4E34-A36C-
> F575DEEA29C0} and {0BB53976-978F-41F9-A66B-A29CC318A817}, are they
> responsible for querying metadata? maybe, maybe not.

> This metadata should be added by somebody in the database, like Jim
> Travis suggested on this
> thread http://tinyurl.com/c3aqur by using IWMPMedia::setItemInfo. Is
> there a possibility that Windows Media Player would ask somebody about
> the metadata?

> WMP Tag Support Extender (http://wmptagext.sourceforge.net/) project
> has created a Windows Media Player plugin which spies on events and
> adds the metadata, is this the only way to add metadata for 3rd
> parties? by creating an Windows Media Player plugin?

> Windows Media Player 10 Mobile uses information acquired from
> IAMMediaContent interface - http://tinyurl.com/abpvhe is this an
> accident?

> Another problem I'm facing is that if I try to play a FLAC file
> directly from the Library the duration is set to 00:00 and seeking is
> not possible.

> If I play the file directly by invoking "%programfiles%\windows media
> player\wmplayer.exe" file duration is determined correctly, seeking
> works.

> If I have made a playlist and play the file from there the duration is
> set correctly and seeking works.
> How can I overcome this problem?

> Many thanks,
> Cristian.