[Theora-dev] Theora dll in debug mode

illiminable ogg at illiminable.com
Wed Apr 27 03:01:40 PDT 2005


Hi there,

Firstly... the runtime error (not initialised), is due to the theora source 
code. If you look at the project file in my source, it disables all those 
runtime checks so this shouldn't happen.

Secondly... the crash is likely due to linking to the wrong runtime 
libraries. You need to link to Multithreaded Debug DLL (in debug mode) or 
Multi-threaded DLL in release mode. Also remember, if you have compiled the 
theora dll in debug mode, you have to compile everything that links to it in 
debug mode. Another thing, my filters never link directly to libtheora.dll, 
i use libtheora as a static library and it is wrapped inside the 
libOOTheora.dll.

When you say you downloaded the theora source to compile yourself, do you 
mean the source to libtheora, or the source i have on my website (which 
contains a custom version of libtheora)... if you compiled libtheora 
yourself, from something other than what was in my package, you likely have 
a lot of incorrect settings. Is there a reason why you can't use the version 
that is provided ?

Also, i assume you know that to build it needs the BaseClasses library from 
the directX9 sdk. You have to change some settings in this project, so it 
links with __stdcall, uses Multithreaded Debug Dll (or MultiThreaded DLL for 
release) and builds as a static library.

Another thing... there are several other static libraries that are linked to 
those libraries you list.

If you are using the code provided, you should just be able to toggle the 
setting to "Debug" at the top of visual studio, rebuild the "oggcodecs" 
project, and that will build all the dependancies. As far as i'm aware, all 
the correct runtime/warning ignore settings are set such that the runtime 
error should not occur.

If it is still occuring change the "Runtime Checks" field in the property 
pages to "Stack Frames" rather than "Both"

Another thing... you can't just rebuild and start using them... directshow 
filters are COM objects... all filters need to be properly registered on the 
system, which also means deregistering any existing ones first.

Also, never put them in the system directory. COM object registrations can 
point to anywhere, there's no need to clutter up the system directory with 
them.

If you look at the dependancies dialog box for each of the libraries you are 
trying to build you should be able to see what else they depend on.

One other thing to be aware of... the filters haven't been all that well 
tested in real-time conditions... it's entirely possible the encoder is too 
slow for the amount of data you are throwing at it. I just did a brief test, 
not with a live source but using a file source run into a theora encoder 
then into a theora decoder then to a video renderer, and that configuration 
works ok.

If you have anything of any substantial resolution and framerate, the 
encoder just isn't fast enough to cope with that yet. And there is no built 
in throttling/frame dropping mechanism, so it will just eventually back up 
with unencoded frames and die.

It is also possible that the custom video renderer is causing a problem in 
the way it connects to the decoder.

Can you be a bit more specific than "it just crashes" ?

Zen.


----- Original Message ----- 
From: "Sebastien DALOZ" <sebddlr at yahoo.fr>
To: <theora-dev at xiph.org>
Sent: Wednesday, April 27, 2005 5:16 PM
Subject: [Theora-dev] Theora dll in debug mode


Hi everybody.

I have a problem using Theora in a specific way. I am going to explain that.

I have downloaded ogg codecs for Windows on the Theora website. More 
precisely
there are DirectShow Filters. I try to use Theora codec in a commercial
application and the application crash. It doesn't with another codec like 
XviD,
so the problem may be Theora codec.
Note that I can use Theora outwards this application encoding and decoding
videos without problems.

But this application uses their own DirectShow filters in addition of the 
basic
filters (video capture filter and video renderer filter). Might they be
incompatible with Theora ?
I also downloaded source code of Theora, in order to compress myself the 
codec
in debug mode with Microsoft Visual C++ .NET 2003. I have successfully 
compiled
the next 5 libraries (it seems libOOOggSeek was not necessary for other dll
compilation) :
  - dsfTheoraDecoder.dll
  - dsfTheoraEncoder.dll
  - libOOOgg.dll
  - libOOOggSeek.dll
  - libOOTheora.dll

After replacing Release version of the dll by the Debug version of them,
nothing works. I can't play any theora encoded file, nor encode a new file.
Error is "Debug Assertion Failed !".
With a minimal graph in GraphEdit (Microsoft DirectX SDK) composed by a 
webcam
capture source filter, a Theora Encode Filter, a Theora Decode Filter and a
Video Renderer, I get another error, as you can see here :
http://membres.lycos.fr/univers2lanime/theora/CaptureGraph.jpg

Error seems to be in ntdll.dll (a Windows XP library), but it may be a bad
request of Theora.
http://membres.lycos.fr/univers2lanime/theora/dll_faulted.jpg



Is it possible I haven't well compiled the libraries or forgotten some of 
them
which are needed ? Could you send me proper compiled libraries in debug mode
(with corresponding sources if there are modifications with distributed 
sources
on illiminable website
(http://www.illiminable.com/ogg/oggcodecs_src_0.69.8924.zip).



You can download the debug mode libraries I have compiled on 
http://membres.lycos.fr/univers2lanime/theora/theora_debug_dll.zip






__________________________________________________________________
Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos 
mails !
Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/
_______________________________________________
Theora-dev mailing list
Theora-dev at xiph.org
http://lists.xiph.org/mailman/listinfo/theora-dev






More information about the Theora-dev mailing list