View Full Version : OGM is not dead - oggds now in xiph CVS
outlyer
17th July 2003, 13:28
Originally posted by RadicalEd
Jasc has .mng labeled as "Animation Shop Animation". It would make sense if they were really just using animated png, but I wonder if they're the same format or not :\It's "officially" Multiple-image Network Graphics, and is developed around PNG, although probably it's way different now.
http://libpng.org/pub/mng/
P.S.: I'm going too off-topic with this post and will stop going farther ;)
Suiryc
17th July 2003, 15:18
Originally posted by Nic
@cyrius: cheers! It works well, I had to make some minor changes (you couldn't add anything after the stream_header passed to the packetizer constructor, etc). Ill release the source probably tomorrow or over the weekend and you can see what Ive done :)
Yeah I didn't know that Tobias was adding the extra bytes of WAVEFORMATEX after the stream_header at that time.
I will change that in VirtualDubMod as well.
Good, Its needed for CoreAAC (those two initialisation bytes). Also when writing to the fourcc in stream_header, you may not want to do a strcpy as its only 4 bytes big and it will append a 0. Better to use strncpy(...,...,4); But apart from those very minor things its great :) Works really well... :)
Cheers,
-Nic
Animaniac
17th July 2003, 20:21
Originally posted by bond
i know i am no programmer but i think it would be really a good idea to open a "ogm" project on sourceforge (like gabest' guliverkli project) and then release 4 (or 5) different sub-project-files (which then can also be updated independently from the others)
Great idea! I second it! :D
bond
17th July 2003, 20:58
i hope we two are not the only one who like the idea :D
Liisachan
17th July 2003, 21:59
I like that idea too :)
Especailly if xiph ppl are not going to work on OGM...
and my concern is, what's going on about SubTitDS ?
isn't it still open-source?
Improving OggDS would be nice, but it would be great if SubTitDS is also in the OGM project.
As a side note, I suppose more than 90% of the end-users in CJK areas are unhappy with Today's OGM because they can not use their languages in SRT correctly. At least in Japan, almost all users are just ignoring today's OGM's softsub feature, because it doesn't work anyway. From what I gathered, some ppl from Central Europe are feeling the same way.
Altho today's OGM may be already cool for ppl in the "Western Europe and US" locale, I hope OGM will be unicode-based so we can use various languages in subs stably and seamlessly (without manually switching Code Pages) and all the users in the world will be happy :)
Hmmm, I have a thing where I think as soon as a project gets on SourceSafe, it becomes such a hassle to update and dies (SAVE_OE anyone? ;)). People just stop bothering, so im going to do that after sometime and when there's real interest and we actually need a CVS. For now ill build something on mine or koepi's site that will work in a similar way.....still not sure about splitting the filters into their component parts. Might keep it as it is, but not add anything more to it (?) The less change for now the better.
As for the unicode support. I see this is a big issue for Ogg, that will be on my list soon. But ill need you guys help, because I know nothing about subtitles (nor the problems involved in non-western alphabets).
Cheers,
-Nic
ps
Thru the power of wireless networking, I can finally do this from my bedroom ;)
Koepi
18th July 2003, 08:46
@Nic:
Do you have any clue what to do about the cases where the first soundtrack is vorbis@44.1khz stereo and the 2nd is i.e. 22.050hz mono? In that case, if you switch audio, the filtergraph starts running faster. I don't see how to prevent this, except for making the filtergraph stop, switch the stream, search to the position again, and restart the graph. This will look a bit jerky but might work.
What do you think?
Regards
Koepi
Didn't know it did that...Ill look at that this weekend. It can't be too difficult to fix. Does it happen with all audio tracks or just vorbis?
-Nic
Koepi
18th July 2003, 09:40
IIRC it happens always if sample rate/channel cofiguration (5.1, stereo, mono) changes between the soundtracks.
Ah, and while you're on it, can you also look into the situation, where AC3 is muxed into OGM with vorbis sound as well? it seems that the ac3-stream always gets delivered, and you switch between the vorbis tracks (or something like that, I'll search for the bug reports again and will edit this post accordingly).
I'm still a bit clueless looking at the sources... ;)
Regards
Koepi
Ohhh, BTW the vc6 sources I posted are missing a .def file (the standard type one you get with DirectShow fitlers, use one from another directshow project for now and just include it otherwise you wont be able to register the filter)
There are a few memory leaks as well that need to be patched.
-Nic
Koepi
18th July 2003, 10:11
LIBRARY OggDS.ax
EXPORTS
DllMain PRIVATE
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
Will that suffice? I'm still searching for the file needed here
E:\data\progtemp\OggDSsrc_VC6\main.cpp(43): catastrophic error: could not open source file "ShObjIdl.h"
which seems not to be part of DXSDK. I think I need to d/l a new platform SDK and install it :-/
Regards
Koepi
Yup you need the platform SDK. Actually I think im cheating and using the include and lib folders from MSVC .net 2003 ;)
And that .def file is all you need :)
-Nic
Koepi
18th July 2003, 10:24
Ok, thanks :)
Currently i'm at file 4 from 15 of the PlatformSDK 3790.0/February 2003. Looking forward to be able to compile current OggMux as well again ;) Damn these 340MB d/l...
Later,
Regards
Koepi
HughMagoo
18th July 2003, 11:46
the common behavior I have seen with OGM and AC3&Ogg muxed together is that regardless of the number of each type of audio streams one of each will always be enabled.
I have encoded files with one or two AC3 tracks and one or two Ogg tracks, and they work fine for me, but A) I use zoomplayer to switch between which "directsound device" (renderer) is being used, and B) even if I didn't I think it would work for me because I send AC3 out through S/PDIF and I decode Ogg which are two different outputs on my sound card and system.
There is also the problem of Ogg streams of different channel number and frequency, mono or stereo etc... I have seen reports that this doesn't work very well, so I always use 48k, stereo Oggs, even for commentary which I could make smaller without this limitation.
I might have missed it, but is there anyway to have OGM properly report video bitrate, for instance for file-spec checking software like MediaInfo.. seems like a OGM bug that you can't externally check the video bitrate because you have muxedinto OGM.
hope I haven't been too simplistic here. I might mention that even though I am new here, I have been reading for a while, but I have already gone into the forum control panel and turned off viewing others' signatures.. man its like watching a good movie on network TV, all the commercials and fodder interrupting a nice experience.. and many of them longer than the actual posts themselves.
oh well, thanks for listening.
Koepi
18th July 2003, 12:22
The bitrate? Will be complicated since OGG is designed for streaming, where you theoretically can't know the real bitrate because a stream doesn't really end (that's a little simplistic as well).
But I think it should be possible to add that info.
Regards
Koepi
P.S.: finaly i got OggDS to compile now. Let's see what I can do.
Koepi
18th July 2003, 12:58
The original OggDS.def is this one:
LIBRARY OggDS.DLL
EXPORTS
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
Just cut that out and paste it in a textfile which you rename to OggDS.def.
For the nsis-installer script:
I still can't figure out which license.txt got used in OggDS ;) I'll try to re-assemble it as it is missing in the sources.
You have to create a "release"-folder in your source tree in which you send tree files from the OggVorbis-SDK, namely ogg.DLL, vorbis.DLL, vorbisenc.DLL and finally the OggDS.dll which you created during the build process.
I just assemble this info in case someone wnats to help out but isn't getting things to work :)
Regards
Koepi
Koepi
18th July 2003, 13:06
Find attached the adopted NSIS script and license.txt to create an installer for OggDS (I set the OggDS version to 0.9.9.6 for now as we're working on it. we can make names like 0.9.9.6-1...X as well to show the progress (if we make some...)).
Put both files into your base-dir of the oggds.-sources and create an release folder where you put the files into like described in the post above.
Regards
Koepi
bond
18th July 2003, 13:38
wouldnt it be better to call the whole thing something like 0.9.9.3.1 or so and only after all 0.9.9.5 changes from tobias have been implemeted -> 0.9.9.6?
Suiryc
18th July 2003, 14:13
Originally posted by Nic
Good, Its needed for CoreAAC (those two initialisation bytes). Also when writing to the fourcc in stream_header, you may not want to do a strcpy as its only 4 bytes big and it will append a 0. Better to use strncpy(...,...,4); But apart from those very minor things its great :) Works really well... :)
Cheers,
-Nic
Yup but that wouldn't matter at that time since the ending 0x00 would be written in the size field, which I would set later to sizeof(stream_header) ;)
(I also found this little problem when updating VirtualDubMod sources ;))
Koepi
18th July 2003, 14:39
Originally posted by bond
wouldnt it be better to call the whole thing something like 0.9.9.3.1 or so and only after all 0.9.9.5 changes from tobias have been implemeted -> 0.9.9.6?
I decided against that as the first available builds will have already some different features than 0.9.9.3.
We should add a "-1" or something in any case to show that this isn't the "old OggDS branch" anymore though.
Maybe we should start a poll for that (even if I don't like polls ;) ).
Regards
Koepi
DAvenger
18th July 2003, 14:47
I like 0.9.9.6 better ;) Anyway, important is that it works and not how it is called :rolleyes:
bond
18th July 2003, 14:49
imho 0.9.9.6 would mean that all 0.9.9.5 features are implemented...
hm, i think it depends whether you and nic plan/have time to implement all of tobias' 0.9.9.5 changes
if yes, i would wait calling it 0.9.9.6 (and start with 0.9.9.3.1 or 0.9.9.3-1 or so (adding .1 looks more proper imo))
if no (and the 0.9.9.5 changes arent really necessary), than i would start with 0.9.9.6 (no need to add -1)
btw. i still think that a sourceforge project and the splitting of the filter is a great idea ;)
"Maybe we should start a poll"?!
When did you change your name to Christian ;) lol (just kidding! :D )
"Anyway, important is that it works and not how it is called".
Thats my thoughts too. Ill keep you posted with progress over the weekend. Hopefully Koepi will have the PlatformSDK and then we can really move forward :)
-Nic
Koepi
18th July 2003, 15:36
Nic,
I have the SDK installed and successfully compiled the filters - that's why I wrote a bit about "how to get the thing started", just in case someone is willing to give you/us a hand :)
Unfortunately I don't even know where to start. It looks alright everywhere in my eyes ;)
Regards
Koepi
Koepi
18th July 2003, 15:48
Ok, I searched a little and found something about Unicode.
Would it suffice to add
_tcscpy(target.string, (LPCTSTR)source.str);
around each string to make the filters unicode aware (...are they still capable to work on win9x after that?)?
That'd be a start for properly supporting "utf-8" and stuff i think.
Regards
Koepi
Ok, here's a good place to start. Get it compiled, then go Tools->Register Control (which is the same as doing regsvr32).
Then goto Project->Settings->Debug Tab. And set the "exectuable for debug session" to wherever you have graphedit.
Hit F5 to debug and graphedit will load. Load an OGM file up. then quite graphedit. VC6 will kick in and mention the memory leaks. You'll also be able to place breakpoints. This is how I debug directshow at least.
So get started! :)
-Nic
ps
Best probably to use MultiByteToWideChar and WideCharToMultiByte for Unicode conversions
Animaniac
18th July 2003, 16:28
Originally posted by Koepi
@Nic:
Do you have any clue what to do about the cases where the first soundtrack is vorbis@44.1khz stereo and the 2nd is i.e. 22.050hz mono? In that case, if you switch audio, the filtergraph starts running faster. I don't see how to prevent this, except for making the filtergraph stop, switch the stream, search to the position again, and restart the graph. This will look a bit jerky but might work.
What do you think?
Regards
Koepi
That's one reason why the splitter needs to be separated. The output pin for audio must remain a constant frequency/bits/channels. (Gabest) It's entirely a DirectShow limitation if you want to have a splitter built-in, as far as I understand.
Can you explain to me more about the splitter being "built-in" and why that would effect this? as much detail as you can. Thanks :)
-Nic
Koepi
18th July 2003, 17:05
You're cruel, Nic. As if I ever tracked down a memory leak in my life ;)
I'll try my best.
Regards
Koepi
Animaniac
18th July 2003, 17:57
Originally posted by Nic
Can you explain to me more about the splitter being "built-in" and why that would effect this? as much detail as you can. Thanks :)
-Nic
Well this is second-hand information I have gathered from Gabest, you'd probably be better off asking him for the technicals. Basically, when the filter graph is built, the audio pin needs to have a defined channel number, sampling frequency, and bit depth. This is all well and good so long as your OGM has only 2 channel, 44.1 kHz, 16 bit audio. But, if you want to have a 6 channel audio stream, and a 2 channel audio stream you run into problems. I think this is one of the reasons AC3 in OGM is not working. The Matroska folks (forgive me for mentioning them) have gotten around this by outputting all streams at the splitter. This will undoubtedly cause problems with WMP and other players without audio switching. Morgan Stream switcher is also limited by the above mentioned. Somehow, by the greatness of Gabest, MPC is able to handle this using its embeded switcher filter. I have no idea how that works, but I'd venture to say it's using some tricks that are allowed when you're not a standalone filter. In short, I'd ask Gabest. ^_^
Koepi
18th July 2003, 19:27
I'm very slowly progressing, but start to understand the filters after asome time of code review and "trying out this, trying out that".
Finally I fixed a thing which always bugged me just for fun:
If you use the language-menu from WMP (6.4) all streams have languages or chapter names, but the video stream always showed "0". Now it's showing the title in there. Nothing huge, but at least a start.
(Far too early for searching memory leaks Nic, sorry to disappoint you there :-/ I didn't code smething like that in ages and so i need much more time...)
Just a little feedback what's going on here ;)
Regards
Koepi
Suiryc
18th July 2003, 19:34
Originally posted by Liisachan
and my concern is, what's going on about SubTitDS ?
isn't it still open-source?
Improving OggDS would be nice, but it would be great if SubTitDS is also in the OGM project.
I think it would be better to make sure OggDS and VSFilter can work together because VSFilter already handle more than only 'simple' SRT subtitles and also has a lot more options.
Animaniac
18th July 2003, 23:49
Originally posted by Suiryc
I think it would be better to make sure OggDS and VSFilter can work together because VSFilter already handle more than only 'simple' SRT subtitles and also has a lot more options.
Yes, and being able to use Gabest's Subtitle Source filters for muxing would definately be a better solution.
unmei
19th July 2003, 13:47
I think it would be better to make sure OggDS and VSFilter can work together
i'd appreciate that decicion too.
I always have trouble when playing a OGM with subtitles (admited, i rather optimised my setup for another container, but well), i need to switch settings in VSfilter and the splitter and stop/restart for every file - it's really anoying and i bet it has something to do with the filter concurrencing or slightly incompatible. im not sure if the splitter preferred to load subtitDS or it simply resets VSfilter or what happens, but clicking around everytime for the subs to work is not nice and i dont have to do that with the other container.
And i really like VSfilter for the subs, imho it just looks best (the antialiasing is neater and i have least config troubles - except the above mentioned thing)
Ok, my plans are now:
1. Get the filters working with CoreVorbis
2. Get OGMuxer into a nice GUI
3. Look at the bugs and unicode problems
4. Get VSFilter working as best I can with OGM.
Its more work than it sounds. Ill tell you how I get on :)
-Nic
outlyer
20th July 2003, 00:04
Originally posted by Koepi
(...) but the video stream always showed "0". Now it's showing the title in there.Thank You! It always bugged me too :D
kilg0r3
20th July 2003, 10:11
yeah that's great. I always thought it was my fault.
No.1 (getting CoreVorbis working instead of the normal built in filter) is done and finished. Very easy, only just got chance to do it though.
Im getting there, just slowly.
Koepi
20th July 2003, 13:28
Nic,
did you get my changes for that "video 0" fix? if you could add them to your sources it'd be cool! :)
(I just bought a "small pool" yesterday evening and am enjoying the sun, sorry for not coding today!)
I looked into teh IAMMediaContent stuff but wasn't yet able to add that interface. I hope I can add that during the week.
Regards
Koepi
Koepi I added you code, but had to patch it. If title did not exist in the OGM, then pLang would be NULL and the strcat would crash the filter.
Ive changed my mind (as always ;) Im not going to write a GUI out of OGMuxer im building its usage into your OggMux as an alternative muxing method. One program means less confusion and ease for the user. Sound good?
-Nic
Koepi
20th July 2003, 16:45
Nic,
you're a star (as always :)
I like that idea, we have to extend (OggMux)->AnyMux a little for that, but that shouldn't be a problem at all :)
Btw., should I put up the sources and/or binaries to the OggMux sourceforge project as well? I think this makes sense. (Please create a SF handle for you then, you should be administrator as well).
[NB: Damn, i burnt a little in the sun - but hey, I have to prepare for holidays! :)]
Thanks for all the nice work,
best regards & cheers
Koepi
P.S.: i forgot, if TITLE isn't set explicitly it should be video source name minus extension, wanted to code that as well in the muxer...
Other notes:
"The tray icon shows now also the title instead of "Ogg DSF""
*Thats now been added like 0.9.9.5 had
OggMux im adding bits to it, using CoreVorbis breaks its Ogg muxing.(because when reading an Ogg the ogg spliter is used and now its Format has changed). I do have a sourceforge name from when I used to work on FAAC with menno back in the early days days of AAC. But I cant remember the password. For now ill send you the source once done and you can be the oggmux "editor" ;)
-Nic
bond
20th July 2003, 17:40
great to hear that things are coming :)
nic, you seem to have some sort of SF-phobia ;)
Eric B
20th July 2003, 18:38
I'm using Ogg media contenair since more a year now.
As said previously, the main problem I had is when there is many audio streams with different channels: http://forum.doom9.org/showthread.php?s=&threadid=46080
http://forum.doom9.org/showthread.php?s=&threadid=46756
(e.g. AC3 5.1, ogg vorbis stereo and ogg vorbis mono)
About mono, there is a 'bug' in VirtualDubMod that avoid to mux a real mono file (1 channel only) as said here (http://sourceforge.net/tracker/index.php?func=detail&aid=738599&group_id=65889&atid=512619).
Do you think it will be possible to correct that in OGM ?
In that point, Matroska performs better, but I'm still waiting for chapters and comments tag in mkv as those of ogm...
Koepi
20th July 2003, 18:48
Eric,
1 or 2 pages before this one we discussed that already.
Koepi
Ive made SRT subs work well with VSFilter, from now on though all the subs selection will be done from VSFilter rather than from the OggDS trayicon...
...Is that going to be ok?, (also means SubTitDs won't be used anymore).
Ill post the OggMux GUI with OGMuxer.exe (AAC) support here today. For now i've turned off the DirectShow support until I release the new OggDS which will allow for delays of all type of audio when muxing (like OGMuxer.exe can do)
Cheers,
-Nic
Kurosu
27th July 2003, 16:40
Originally posted by Nic
Ive made SRT subs work well with VSFilter, from now on though all the subs selection will be done from VSFilter rather than from the OggDS trayicon...
...Is that going to be ok?, (also means SubTitDs won't be used anymore).
My problem is that VSFilter isn't likely to support <font color> tags, only correctly processed by SubtitDS. Therefore, I either have to keep using SubtitDS (and not your filter), wait for a possible SSA support in OGM, or switch to Matroska.
Therefore, it won't be ok, but I guess I'm an exception.
Liisachan
27th July 2003, 16:55
Originally posted by Kurosu
My problem is that VSFilter isn't likely to support <font color> tags I guess it's possible.
BTW have you ever tried to put a tag like {\c&Hffcc99&} in your SRT?
This is not documented, so hackish, but already works as color tags in SRT in OGM for me, with VSFIlter...
Thats a fair point, ill try and make it compatible with both via a switch/reg key.
-Nic
ps
Fixed a really annoying memory leak thats probably always been there (it never deleted the Pins on exit!)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.