[Theora-dev] Theora with DirectX earlier than 9
ogg at illiminable.com
Sat May 28 01:48:01 PDT 2005
For development you need dx9.
I'm not even 100% sure you do need dx9 to use them... though i'd imagine you
need at least what comes with windows xp (ie 8.1 i think). I really haven't
tested too much with older versions...
It seems odd that the older video renderer doesn't play yv12... since most
video codecs output this format.
Have you tried playing the files in graphedit to see whether that is
actually the problem ? ie that the renderer won't connect to the decoder ?
Do you get a can't connect error, or do you just get scrambled/hung video ?
Try debugging to the conenction failue and look at the return code.
It's also possible that older renderers don't like certain display
parameters... ie they want the output to have width a multiple of 8 or
something like that, and reject the conncetion when it's not, expecting the
codec to make the transformation for them.
As for converting YV12 to RGB... the reverse conversion is made in the
encoder filter, you can find the code there.
You could make another filter, or you could add another output type to the
decoder, and do the conversion tehre.
Is there a reason you want rgb ? Most of the directx stuff uses YUV types
natively. A conversion to YUY2 is probably easier (and the reverse
conversion is also in the encoder source)... and i'd almost bet all
renderers handle this as it's the output of the mpeg filters that come with
So... in short i don't beleive there is anything stopping you using a dx
version less than 9. The only filter in my package i know of that strictly
requires dx9 is the subtitle filter, since it does overlays directly on the
video surface, using dx9 functions.
As i said, i think it's fairly likely, that it works with dx8 already.
If you can give some more details about how it fails and what happens that
would be great.
Encoder source with conversions -
----- Original Message -----
From: "sebastien daloz" <sebastien.daloz at gmail.com>
To: <theora-dev at xiph.org>
Sent: Tuesday, May 24, 2005 10:47 PM
Subject: [Theora-dev] Theora with DirectX earlier than 9
I'm trying to use Theora video codec with DirectX 8 and DiretX 7. The
problem seems to be out format of Theora decoder wich is YV12 and
incompatible with DirectShow Video Renderer Filter.
Do you know a filter able to convert YV12 to RGB, usable in a
commercial application ? May I have to make such a filter myself ?
Is is said in the README file of oggdsf archive :
"You need DirectX 9 SDK installed (lifes easier if it's at C:\DXSDK)
Otherwise all projects prefixed with dsf you'll need to change the
absolute references to that path. I'll try to do something to make
this easier in future."
If I put a YV12toRGB filter for converting colors in an acceptable
format for DirectX8, are there another thing that could prevent me to
use Theora with such version of directX ?
Theora-dev mailing list
Theora-dev at xiph.org
More information about the Theora-dev