[Theora-dev] Theora with DirectX earlier than 9

illiminable 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 ?

Sebastien Daloz
Theora-dev mailing list
Theora-dev at xiph.org

More information about the Theora-dev mailing list