?

Log in

No account? Create an account
Apparently Ogg Vorbis doesn't support Windows - 'Twas brillig, and the slithy toves did gyre and gimble in the wabe — LiveJournal [entries|archive|friends|userinfo]
Thomas

[ website | Beware the Jabberwock... ]
[ deviantArt | the-boggyb ]
[ FanFiction | Torkell ]
[ Tumblr | torkellr ]

Links
[Random links| BBC news | Vulture Central | Slashdot | Dangerous Prototypes | LWN | Raspberry Pi]
[Fellow blogs| a Half Empty Glass | the Broken Cube | The Music Jungle | Please remove your feet | A letter from home]
[Other haunts| Un4seen Developments | Jazz 2 Online | EmuTalk.net | Feng's shui]

Apparently Ogg Vorbis doesn't support Windows [Thursday 11th August 2005 at 7:14 pm]
Thomas

boggyb
[Tags|, , , ]
[Feeling |pissed offpissed off]
[Playing |Abscence Of Mind ~ Masada/]

So, I thought it might be worth downloading the current 1.1.1 version of oggenc, as apparently it's a lot better. Silly me.


Problem #1: The vorbis people apparently don't believe in up-to-date binaries for win32. Solved by deciding to build from source. I'll just need to download, unzip, and run nmake, right?

Problem #2: While they provide MS Visual C++ projects, they neglect to convert the line endings to windows style. Solved by uploading to a random ftp site in binary, and then downloading in ascii mode.

Problem #3: No, MSVC will not automagically include all the project files in the current directory just by opening a workspace containing an empty project

Problem #4: Apparently I need to download (and presumably compile) libvorbis to make it work. I'll just pick up and compile libogg while I'm at it, shall I?

Problem #5: libvorbis depends on libogg. Specifically, libvorbis depends on the libogg files being in a directory called "ogg" in the include path, or in a directory called "ogg" in one of "..\..\ogg\include;..\include;..\win32\src;..\..\vorbis\lib" where the current directory is "D:\blah\libogg\win32". Solved by removing the "lib" prefix.

Problem #6: vorbis-tools\oggenc\encode.c(176) : error C2143: syntax error : missing ';' before 'type' followed by vorbis-tools\oggenc\encode.c(183) : error C2065: 'bitrate' : undeclared identifier


At this point I decide it's too hard and give up. And don't you dare suggest that I should debug someone else's code that should Just Work.

How on earth do all you Unix/Linux/BSD people cope with building everything from source?
Link | Previous Entry | Share | Next Entry[ 7 pennies | Penny for your thoughts? ]

Comments:
[User Picture]From: ralesk
Thursday 11th August 2005 at 6:24 pm (UTC)
They blame Windoze for being obnoxious, because “it works” for them.

BTW, I’m endlessly pissed off at the idiocy of the IceCast people for similar reasons (only that they didn’t provide windows binaries for a good while, at all, period).

Fucking hate the “windows sucks, use 'nix” attitude.
(Reply) (Thread)
From: pewterfish
Thursday 11th August 2005 at 10:32 pm (UTC)
Building from source tends to work a lot better on Linux boxen, mainly because the developers tend to be working in said system and understand it well. The result is something that simply flies along in situations where everything is set up as expected, and falls over messily otherwise, as you have seen.

In order to build windows binaries, the developers would first need a Windows-based PC, which cannot necessarily be assumed. In summary, I suggest that their Windows maintainer (whose responsibility it is to package the software for use on Windows machines, as you're probably aware) is on crack and should be shot.

Problem 6 is ... interesting. Could be an honest typo, but /might/ also be triggered by your solution to problem 5.

Conclusion: Not impressed by the Ogg Vorbis Windows maintainer. Building binaries shouldn't be that hard, but the problems you've encountered (particularly with MSVC projects) are unacceptable. Someone isn't doing their job and, since they're not being paid to do so, it's kinda hard to make them. If it helps any, this annoys me too.
(Reply) (Thread)
[User Picture]From: boggyb
Thursday 11th August 2005 at 10:44 pm (UTC)
The other thing I've noticed is with Linux boxen, usually you're expected to run some magical autoconfigure script that abuses sh or whatever to give a custom makefile. This is completely useless on win32, as cmd is not sh. Not that the documentation mentioned anything of how to compile under win32 - I had a readme file telling me to do the usual "./configure" "make" "make install", and a win32 folder containing some MSVC projects.

I would have actually thought reliably building from source to be *easier* under win32, as you have only two target enviroments (the 9x branch and the NT branch), and if you aim for 9x then it will usually run as-is under NT. Whereas with linux, if the typical autoconf script is anything to go by, you can end up with two platforms which do not have a single header or library in common (ok, so that's exaggerating a bit).

I did first google for binaries, but it appears all there is precompiled from 1.1.1 is oggenc, and I was looking for the extra binaries as well (oggdec, vorbiscomment, etc). Which apparently are not in demand.

With problem #6, I did take a look at the code, and decided I don't know anough about C++ to fix it (I did try the obvious add a semicolon, but I think the bug is further up in the code). What I didn't post was a later problem #7, wherein I discovered some unresolved imports relating to theora (found when looking to see if *any* of the tools would compile).
(Reply) (Parent) (Thread)
From: pewterfish
Thursday 11th August 2005 at 11:03 pm (UTC)
Yeah, ./configure is pretty standard: leverages the flexibility of the shell to automatically set the correct paths and directory names. Windows cmd is less flexible, but I would have thought this kind of thing should be doable as a batch file, or something. Don't know why noone has, perhaps I'm missing something.

Yeah, linux runs on a lot of platforms (nine entirely different hardware architectures, last time I counted). I would also expect the build to be at least workable under Win32, if not easy, but it does rely on someone who knows how the OS works to set it up. It Ogg have noone with the right skills, it ain't gonna happen. And you're right, that's a bit shit. Sounds like their windows maintainer is just going through the motions: not understanding what he's doing and as a result screwing up somewhere down the line.

And dependencies on Theora? Within Vorbis? They should be completely separate: frankly, I'm impressed.

If you're still interested in getting it installed, are their forums any help?
(Reply) (Parent) (Thread)
[User Picture]From: ralesk
Friday 12th August 2005 at 9:46 am (UTC)
Maybe I’m bitter, but I expect the forums be full of “use Linux, bitch” people — “fix the bloody sound architecture in your OS, bitch, and I will” :D
(Reply) (Parent) (Thread)
From: pewterfish
Friday 12th August 2005 at 11:07 am (UTC)
Oh yes, there will be idiots. I've dealt with some of them myself. But there are reasonable linux users out there (*waves*), and some might be able to help.

The sound architecture, yeeeees... Everyone has an idea of what it should look like, and damn the others. ALSA works nicely, though, if you can prevent your blasted window manager from interfering. And I believe there are OpenAL bindings for it as well, which is promising news for the future.
(Reply) (Parent) (Thread)
[User Picture]From: ralesk
Friday 12th August 2005 at 9:43 am (UTC)
Sidenote: The VideoLAN crew builds everything on a linux box. From the Win32 port up to the BeOS one. I guess there’s no need for a Windows box if you know what you’re doing ;)
(Reply) (Parent) (Thread)