View Full Version : CoreVorbis DirectShow Audio Decoder (was: is CV coming!?)
Hi Core/Matroska team!
i found this (http://www.xiph.org/archives/vorbis-dev/200305/0059.html) on the xiph vorbis maillists! any plans to write a new vorbis directshow filter? hows the situation?
it looks like robux4 is already having specific plans: :D
Originally posted by robUx4
This is a known problem or the Vorbis DSF... We have informed Xiph about this problem in case they are willing to help :sly: as Tobias is unreachable. Otherwise there may be a CoreVorbis codec soon. :rolleyes:
EDIT: just changed the subject-title...
[Toff]
4th June 2003, 00:12
As you ask! Here is a test version :)
mkxds vorbis test (http://christophe.paris.free.fr/temp/matroska/mkxds_vorbis_test_20030604.zip)
This filter is not compatible with OggDS so i have used different GUID to not interfere with it. You must also used the matroska filter that come in thz zip and that output the right media subtype and format.
I hope that it will be possible to integrate it with the "official" one.
Atamido
4th June 2003, 00:17
I have a clip that I made that has always had jerky playback. Using these two filters, it played back fine for the first time ever. (XviD+Vorbis)
Animaniac
4th June 2003, 01:32
Not to belittle your work, but Vorbis plays fine in Gabest's awesome splitter... Options are always good though. Thanks!
robUx4
4th June 2003, 08:47
One of the many advantages of this new filter is that it can fill the audio renderer to more than 40% (which is always good). It also does a better job on handling the timestamps. Otherwise it's equivalent to Tobias' one.
[Toff]
4th June 2003, 10:25
Not to belittle your work, but Vorbis plays fine in Gabest's awesome splitter... Options are always good though. Thanks!
Then you are lucky :)
But in some cases even with Gabest's splitter there is jerky problem.
For example this file is good to illustrate the problem :
http://christophe.paris.free.fr/temp/matroska/testc2.mkv
It's a little computer generated animation, and it's really easy to see any jerk.
CaptainCarrot
4th June 2003, 11:05
Great work, with this filter combination the jerkyness has disappeared from all my mkv-files. :D
Edit: Okay, not all my mkv-files. I just tried one of my XCD, and it's still jerky. But that's a *.dat file, not an mkv, eh, so that don't really count, don't you think :D . I'll try to convert that specific movie back to mkv and check wether it really is an XCD issue.
Edit2: Yep, it's an XCD-only-issue, when i extracted the file back to hd it played smooth.
nice filter :)
but now that the sources of the original ogg decoder from tobias' are going to be released (hopefully somewhere in the near future ;) ), it would be great if you (toff) or anybody else can concentrate on improving the existing filter!?
btw: it would be really nice if the downsample function can be integrated into coreaac, that would make it perfect! i guess you can use sources from valex' ac3filter for that!?
ChristianHJW
4th June 2003, 15:27
Originally posted by bond nice filter :)
Its an alpha :P. Project was founded today, but there is no code still :
http://corecodec.org/projects/corevorbis
but now that the sources of the original ogg decoder from tobias' are going to be released (hopefully somewhere in the near future ;) ), it would be great if you (toff) or anybody else can concentrate on improving the existing filter!?
Thats not as easy as it may seem to be for a non-coder. Every program/code has a certain basic structure. Tobias' filter structure is obviously targeted for Vorbis playback from the Ogg container, where he doesnt get timestamps but a granulepos is used instead. So, it may be very very hard to convert it to accept timestamps, we dont know yet.
It may be possible, but for now we decided to make CoreVorbis and give it another wFormat tag, to differentiate between CoreVorbis and OggDS.
btw: it would be really nice if the downsample function can be integrated into coreaac, that would make it perfect! i guess you can use sources from valex' ac3filter for that!?
Not a good idea, sorry, just think of
CoreVorbis
CoreAAC
CoreFLAC
CoreMPC etc. .....
should we pack the downmixer code into every single filter ? Dont think so, in fact the flexibility of DirectShow in this respect should be used to have an external downmixer filter, allowing to connect to all of them .... and that's Gabriele's downmixer filter ;)
Originally posted by CaptainCarrot
Great work, with this filter combination the jerkyness has disappeared from all my mkv-files. :D
Edit: Okay, not all my mkv-files. I just tried one of my XCD, and it's still jerky. But that's a *.dat file, not an mkv, eh, so that don't really count, don't you think :D . I'll try to convert that specific movie back to mkv and check wether it really is an XCD issue.
Edit2: Yep, it's an XCD-only-issue, when i extracted the file back to hd it played smooth.
yes, the XCD filter doesn't use bufferring at all! i might find some time to work a bit on the filter, and add bufferring and backup support. don't hold your breath though.
but, OTOH, when i play clips, i always copy them to my HD first, since it's more quiet, keeps the cd drive, prevents reading speed related problems, etc. and it only takes 2-5 mins to copy the file from the cd to the hd.
Originally posted by ChristianHJW
Not a good idea, sorry, just think of CoreVorbis, CoreAAC, CoreFLAC, CoreMPC etc. .....
should we pack the downmixer code into every single filter ?No, just into the most important ones (Vorbis and AAC) :p
[Toff]
4th June 2003, 17:00
Originally posted by bond
but now that the sources of the original ogg decoder from tobias' are going to be released (hopefully somewhere in the near future ), it would be great if you (toff) or anybody else can concentrate on improving the existing filter!?
Yeah i hope we will be able to merge the CoreVorbis filter functionality to Tobias one.
Originally posted by bond
No, just into the most important ones (Vorbis and AAC) :p
hehe :D
Maybe i will add 2 channels downmix only but nothing advanced.
Btw if you like ac3filter's downmixer you can get it separetely here :
http://matrix-mixer.sourceforge.net/
Maybe we could package it with Core* because users seems a bit lazy ;)
And i recall the url of the Trombettworks one also :
http://www.trombettworks.com/directshow.php
Mr_Khyron
4th June 2003, 17:40
Originally posted by ChristianHJW
Not a good idea, sorry, just think of
CoreVorbis
CoreAAC
CoreFLAC
CoreMPC etc. .....
should we pack the downmixer code into every single filter ? Dont think so, in fact the flexibility of DirectShow in this respect should be used to have an external downmixer filter, allowing to connect to all of them .... and that's Gabriele's downmixer filter ;)
Cant you make CoreMAD (Multi Audio Decoder)with
CoreVorbis
CoreAAC
CoreFLAC
CoreMPC etc. ..... :D
Animaniac
4th June 2003, 18:01
Originally posted by Mr_Khyron
Cant you make CoreMAD (Multi Audio Decoder)with
CoreVorbis
CoreAAC
CoreFLAC
CoreMPC etc. ..... :D
MADCore!
I think the filters should remain decoders and downmixing should be handled by a separate filter. It's more elegant that way.
Originally posted by [Toff]
Maybe we could package it with Core* because users seems a bit lazy ;)yeah we really are (and dont forget our dullness) ;)
but it comes even better:
Cant you make CoreMAD (Multi Audio Decoder)great idea! :D "one to rule them all" :eek:
[Toff]
4th June 2003, 22:57
A small update, some people seems to have problem with <=2 channels playing (big shhhhhhhhh).
CoreVorbis_20030604-3.zip (http://christophe.paris.free.fr/temp/matroska/CoreVorbis_20030604-3.zip)
The problem should be the same in CoreAAC and the fix is in CVS now.
For the technical things it's :
now <=2 channels output use a WAVEFORMATEX struct
and >2 channels output use a WAVEFORMATEXTENSIBLE struct
EDIT: @bond: maybe it was the original problem you had, as trombettworks downmixer do the same tricks to correct the problem.
Atamido
5th June 2003, 00:02
Originally posted by Mr_Khyron
Cant you make CoreMAD (Multi Audio Decoder)with
CoreVorbis
CoreAAC
CoreFLAC
CoreMPC etc. ..... :D We sure can. We just need to beat the rest of the code out of Toff. ;)
The Belgain
5th June 2003, 10:31
Yeah, it would be really good to have one single audio decompressor for all codecs (an equivalent of ffdshow). And it would be nicer if it also had the downmixer (and possibly even EQ, gain, etc...) integrated like ac3filter.
Basially something that was pretty much exactly the saem layout as ac3filter, but supported aac, vorbis, etc too.
Originally posted by Pamel
We sure can. We just need to beat the rest of the code out of Toff. ;) :D
Originally posted by The Belgain
Yeah, it would be really good to have one single audio decompressor for all codecs (an equivalent of ffdshow). And it would be nicer if it also had the downmixer (and possibly even EQ, gain, etc...) integrated like ac3filter.
Basially something that was pretty much exactly the saem layout as ac3filter, but supported aac, vorbis, etc too. of course this would be great, but this would need a lot of development power (like for a whole standalone project), which the matroska team doesnt really have (i think), although by looking at what we have got until now i dont think they can be stopped ;)
Sigmatador
5th June 2003, 15:47
@christophe
what about ogg 5.1 decoding ? is it ok ?
[Toff]
5th June 2003, 16:12
Originally posted by Sigmatador
@christophe
what about ogg 5.1 decoding ? is it ok ?
Yes it should be ok.
If it doesn't works then it's a bug :o
But vorbis is still not as efficient as it could be in 5.1
@Mr_Khyron : I have looked at the libvorbis optimization, but unfortunately the asm code is for gcc so it's a too big task to convert it VC6.
So i now had time to "heavily" test it, and it seems to work very fine (i didnt have trombett downmixer installed)! but i only tested stereo not 5.1 (also look here (http://forum.doom9.org/showthread.php?s=&postid=324249#post324249))
Originally posted by [Toff]
You must also used the matroska filter that come in thz zip and that output the right media subtype and format.
as i have winme this version (mkxds.dll - any chance to get a win98 version?) didnt work for me (no sound) but with gabest's splitter it works fine...
like in coreaac it would be really nice to have some sort of stream information tab (ok i stop my wishing list now ;) )
HughMagoo
6th June 2003, 14:46
I just thought I would extend thanks to the author(s) of CoreVorbis, the Matroska Team, and Gabest. even if all of these contributions are just in their infancy.
I'm successfully playing back a MKV I made with VdubMod.
XVID@1200kbps
AC3@448kbps - 48khz (DD 5.1 out to S/PDIF)
Ogg@45kbps - 48khz stereo (commentary)
Ogg@45kbps - 48khz stereo (commentary)
filters being used are Nic's XVID dshowfilter, ffdshow raw video mode, intervideo AC3 decoder, corevorbis, matroskasplitter, and output in VMR9 mode.
using Gabest's latest MatroskaSplitter switching between the the three audio streams using ZoomPlayer and randomly seeking brings on no ill stuttering or jerky playback on my system. The only thing I noticed was a 1 or more second pause when switching to a vorbis audio stream, but everything else looks and sounds great. and the "fullness" reading in the directsound panel is 90% which is much better than the Vorbis Decoder.
Thanks!
Assault
6th June 2003, 15:56
This is a "me too" post. ;)
I tested Matroska with:
XviD: 560 kbps
OGG: 96 kbps
OGG: 96 kbps
I used CoreVorbis and MatroskaSplitter for playback. With MPC I could easily switch between the two streams and it didn't play jerky at all. :)
Great work and thanks to all developers!!!
Assault
Defiler
6th June 2003, 20:30
Are any of these general-purpose downmixers able to be configured via a shortcut in Windows?
i.e. I'm looking for one that doesn't require you to head to the Properties section of your media player to reach the configuration panel.
[Toff]
8th June 2003, 11:00
A new version is out with a property page to give information about the stream and to tweak the settings.
CoreVorbis 1.0b3 (http://corevorbis.corecodec.org/CoreVorbis_1.0b3.exe)
If you guys could check if 5.1 works well also it would be great :)
thanks a lot!!!
Originally posted by [Toff]
If you guys could check if 5.1 works well also it would be great :) i dont have a 5.1 .ogg but perhaps someone can upload one for testing purpose? i am too lazy now to encode one by myself ;)
nikthebak
8th June 2003, 11:46
I seem to be the only one that has slight problems with CoreVorbis decoder. I use Gabest's Matroska splitter 1.0.0.4. When opening a XviD + Vorbis Matroska file with MPC, I get this error message:
Stream 1
Media Type 0:
--------------------------
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {CDDCA2D5-6D75-4F98-840E-737BEDD5C63B}
formattype: Unknown GUID Name {6BDDFA7E-9F22-46A9-AB5E-884EFF294D9F}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 384000
cbFormat: 24
The Matroska stream contains XviD video and 128 kbps 2ch 48 kHz Vorbis audio. The mkv file was muxed in VirtualDubMod 1.5.1.1a.
If I insert the filters manually in Graphedit (Matroska source - CoreVorbis - ReClock for audio and ffdshow - Video Renderer for video), it works perfectly.
It is possible to fix the file (to use the right Vorbis decoder) or something?
[Toff]
8th June 2003, 13:21
Originally posted by nikthebak
I seem to be the only one that has slight problems with CoreVorbis decoder. I use Gabest's Matroska splitter 1.0.0.4. When opening a XviD + Vorbis Matroska file with MPC, I get this error message...
I think that MPC use its internal Matroska splitter which is probably older that v1.0.0.4
Wait a bit for a newer version of MPC and it should fix the problem.
Pasqui
8th June 2003, 14:25
You can use the newest Gabest's matroska demuxer with MPC 6.4.5.3 by unchecking Matroska Splitter in Options -> Filters -> Source. This way you will use the installed DS filter instead of the built one. I do personnaly use CoreVorbis decoder with Gabest's matroska demuxer in MPC without any problem.
Animaniac
8th June 2003, 17:28
Could the next release(s) come without an installer, I like putting my filters in a "special" place That, or just add a path option to the installer. Thanks.
Edit: Would Toff be so kind as to make CoreMPC soon, since you're pretty damn good with these audio decoders? ^_^
MoonWalker
9th June 2003, 15:50
Just encoded a 5.1 Vorbis (using Besweet), tried playback with MPC(could not render), bsplay(unknow format), winamp(played as 2 channel)...
MoonWalker
@moonwalker
did you play it out of matroska?
Just encoded a 5.1 Vorbis (using Besweet), tried playback with MPC(could not render), bsplay(unknow format), winamp(played as 2 channel)...
CoreVorbis can't play pure audio files. You have to create matroska file.
Gooop
9th June 2003, 17:48
Thanks for your work [Toff]
I can't see any jerkyness in my mkv files anymore. But I have a question : something appears strange to me : I see many people here getting it to work with many different matroska demuxers / splitters (hope I understood well) but it was quite difficult for me to make it work : with MPC 6454, if I switch the built-in matroska splitter off to use another one (any version I think even the most recent one) the movie plays with the oggds decoder. And with mkxds the player loads the right vorbis filter (yours) but I can't switch between my two vorbis streams, and the video freezes. It's not very important because it's just working perfectly with MPC 6454 and it's built-in splitter, but do you have an idea why it doesn't work in any other way ?
I hope you understand my poor english. If not, let me know, I think I could explain it better in french on IRC :)
MoonWalker
9th June 2003, 20:35
OK..Just re-registered all the filters and made a mkv+vorbis 5.1.The filter decodes it as an 2 channel sound file...I have encoded with the default profile with besweet...I haven't tampered yet with the channel order..Shall I try?
MoonWalker
does corevorbis downsample the 5.1 to stereo? how many channels are shown in the info tab? did you install trombettworks filter?
btw can you plz send me a link (perhaps via pm) where i can download the clip with vorbis 5.1 (i always wanted to have one :D )
thanks!
[Toff]
10th June 2003, 10:18
Originally posted by Animaniac
Could the next release(s) come without an installer.
Would Toff be so kind as to make CoreMPC soon, since you're pretty damn good with these audio decoders?
Yes i will put a zip also in the future.
For CoreMPC you will have to wait for the new stream version (SV8), probably not before several month :(.
Originally posted by Gooop
do you have an idea why it doesn't work in any other way ?
There is still a bug with audio switching in the Matroska Demuxer.
And for the others problem it's probably caused by a too old version of Matroska Demuxer / Matroska Splitter.
Originally posted by MoonWalker
OK..Just re-registered all the filters and made a mkv+vorbis 5.1.The filter decodes it as an 2 channel sound file...I have encoded with the default profile with besweet...I haven't tampered yet with the channel order..Shall I try?
Could you try the last version (1.0b4) available here :
http://corevorbis.corecodec.org/
There is a little modification in 5.1 channels handling.
Originally posted by bond
does corevorbis downsample the 5.1 to stereo?
No still no downmixer ATM.
MoonWalker
10th June 2003, 11:20
I just download the new corevorbis filter and muxed an 5.1 vorbis into mkv. This time I used all three channel mappings besweet has (at the GUI)..The filter recognize it as a 6 channel stream, but it outputs garbage(crackling sounds, noise and at at the backround some talking)..I muxed with with VDubMod 1.5.1.1a...
Just to make sure. I suppose that I should hear 5.1 sound and the Dolby Digital led on my decoder should turn on (as at AC3 streams)..Correct??
MoonWalker
ChristianHJW
10th June 2003, 13:15
Originally posted by MoonWalker Just to make sure. I suppose that I should hear 5.1 sound and the Dolby Digital led on my decoder should turn on (as at AC3 streams)..Correct?? MoonWalker
Wow !!! You have a surround receiver that has a built in Vorbis 5.1 decoder ?? Incredible ! What model is it ? I buy it at once :D ....
Jokes apart, did you really think through what you are trying to do here ? Your external Dolby Surround receiver will understand Dolby AC3, and nothing else. If you want to use it, you will either have to
- buy a 5.1 capable soundcard, and use 6 RCA lines to connect the soundcard with the analog 5.1 input of your receiver
- bug somebody to make a real time 5.1 Vorbis ---> 5.1 AC3 encoder filter for you, so you can read the 5.1 Vorbis from the MKV and transcode it to AC3 in real time, so your receiver will understand the digital stream on its SPDIF
- buy an external receiver that will accept 5.1 PCM WAV via SPDIF, some SONY models apparently support this IIRC. Then again, i am not sure if they will really read WAV PCM, maybe somebody had to code a conversion filter to strip the WAV headers or change the headers, so that PCM over SPDIF would work.
Atamido
10th June 2003, 14:43
I can output 5.1 sound to my reciever because my motherboard has the nForce2 chipset with the Dolby Digital encoder on it. So, it basicaly makes an AC3 stream on the fly to output to the reciever. And the reciever plays it back as 5.1 sound.
Almost no sound card out there will do this though. For instance, I have played around with a SoundBlaster Audigy Platinum. Its a 5.1 surround card, but the digital out will only output a 5.1 AC3 stream if that is what you feed it. Otherwise it outputs as a 2 channel PCM stream no matter what you do. In this case the only way to get the full 5.1 is to use the analog outs as ChristianHJW suggested.
MoonWalker
10th June 2003, 23:17
@ChristianHJW,Pamel
I understand now...I have a dolby digital receiver connected with S-Audio to my SoundBlaste Live! Platinum sound card..As far as I understand it can only decode AC3(now that I am thinking it again it's more clear to me :) )...So I can't hear properly a 5.1 vorbis..
Is a vorbis 5.1->AC3 5.1 dshow filter easy?..I guess not..I couldn't make even thought I know how to progamm :p
Thanks,
MoonWalker
cweb
11th June 2003, 19:17
Hi,
I installed Corevorbis to fix a problem with matroska playback on my win98 pc - the video would simply get 'stuck' at a certain frame.
I did have to uninstall Tobias' oggds filter however to get this to be used.
Then I couldn't playback ogm files as before, so I found a solution - simply reinstall tobias' oggds filter and everything works fine. OGM files playback with tobias' oggds filter while matroska files playback with the Corevorbis filter (properly). I'm using Zoom Player 3 BTW.
Aboo
11th June 2003, 23:05
Try to use Media Player Classic, which can be found on Gabest's SourceForge page.
If your Vorbis plays jerky, enable "Use 16 bpp" in coreVorbis properties.
PS (Offtopic): Xenogears Rocks!
HughMagoo
12th June 2003, 02:15
cweb, you could also just configure zoom's customized media mode so that CoreVorbis is the preferred Vorbis decoder. Then it will try to build the graph with CoreVorbis and if that doesn't work (everything except MKV I would assume) Vorbis Decoder will be used.
this could also be done by changing the filter's merit so that corevorbis is higher than tobias' filter.
[Toff]
12th June 2003, 09:16
Originally posted by Aboo
Try to use Media Player Classic, which can be found on Gabest's SourceForge page. If your Vorbis plays jerky, enable "Use 16 bpp" in coreVorbis properties.
Does your video has several audio stream of different type ?
Could you check if CoreVorbis is used in case of jerkiness, please ?
Originally posted by HughMagoo
this could also be done by changing the filter's merit so that corevorbis is higher than tobias' filter.
The last version of CoreVorbis already use a higher priority.
Aboo
12th June 2003, 10:15
Originally posted by [Toff]
Does your video has several audio stream of different type ?
Could you check if CoreVorbis is used in case of jerkiness, please ?
Yes to both questions. I uninstalled Tobias'es filter and my file has one ogg and one mp3 track.
Jerkiness is heavy noise. It occurs because your sound card is 16 bit, so you must turn 16 bit decoding in CoreVorbis props. And use MPC and "Channel downmix filter by Trombettworks". They are imperative for playback.
[Toff]
12th June 2003, 13:33
Originally posted by Aboo
Jerkiness is heavy noise.
Oh for me it was video or audio stuttering.
Originally posted by Aboo
It occurs because your sound card is 16 bit, so you must turn 16 bit decoding in CoreVorbis props. And use MPC and "Channel downmix filter by Trombettworks". They are imperative for playback.
Does your vorbis track has more than 2 audio channels ?
If it's not the case then there is something wrong. You should not need any downmixer for 2 channels playback.
Thanks for your tests
Aboo
12th June 2003, 16:27
Originally posted by [Toff]
Oh for me it was video or audio stuttering.
Does your vorbis track has more than 2 audio channels ?
Thanks for your tests
Then i don't know, what's going on. Today i created XVID+5.1Vorbis+2.0Vorbis+2 subtiter tracks. And everything plays fine. I use latest ORIGINAL matrosta splitter (not gabest's) + CoreVorbis+ Trombettworks downmixer + latest MPC.
bond
12th June 2003, 16:34
@aboo
why do you use a 5.1 vorbis together with trombett's downmixer?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.