DX10 req/lack of XP support -- technical discussion with Jim

koitsu

New Member
Jim,

I'm a senior UNIX SA / junior NA, and also software developer (UNIX), who has been trying to find a decent (that's the keyword!) streaming solution for both screencasting (often showing my mother how to perform certain steps in Windows), as well as occasional streaming of games. I have a lot of familiarity with the utter crap software that's out there, such as XSplit (I do have a commercial license), Adobe Flash Media Encoder (don't get me started on this utter pile of junk -- it's encoder must be the worst thing I have ever seen, taking up a full CPU core on a Core i7-2600K to capture a 640x480 region), and things like VLC (also don't get me started). For the most part there are no other alternatives. I'm sure you know this, and it's probably one of the reasons you made OBS.

I use Windows XP Pro SP3 and I have many reasons (all technical and quite justified) why I will not upgrade to Windows 7. (The reason I linked to my resume, BTW, is because I want to make it very clear when I say I have technical reasons for not upgrading, I really am quite serious) Therefore DX10 is not an option. XP is still prevalent in the workplace and at the home, and given that Windows 8 is at present being labelled more or less a flop, the likelihood of people sticking with XP (and 7 of course) is very high. I'm not trying to use this as justification to sway your software, but it is reality as it stands right now. So please hear me out:

I'd like to talk to you a bit about loosening the OS requirement on OBS for a very specific reason:

Some time ago I wrote a lengthy blog post about a piece of Japanese software called SCFH DSF and how to use this to capture from one's desktop, or games, or anything else. I get between 1200-1300 hits a day just for that blog post -- no joke. There's Youtube videos that reference it, tons of gaming forums link to it, yadda yadda.

SCFH DSF is extremely low-CPU and works on XP and Windows 7 and Just Works(tm). It's implemented as a capture shim and shows up as a DirectShow capture filter, thus device (i.e. things like VirtualDub, etc. all see it). It's also now open-source.

I'm never been able to use OBS because I run XP, but I imagine it has native capture capability (desktop, gaming, etc.) and DX10 makes this a lot easier. I understand. But I'm fairly certain that OBS can be made to capture from a DirectShow capture filter with not much work (heck it might already do it), which means that OBS could actually be made to work on XP (with, of course, OBS's native capture capability disabled -- I imagine there are other features which would also need to be disabled).

However, using OBS to capture from SCFH DSF, and then use OBS to stream, seems quite possible.

If I was a Windows programmer I can assure you I would be pulling down the OBS source and banging away on it to make it work with the above. Honestly I would. But Windows is quite a mess API-wise, and I also don't do C++ (only C; I'm an old assembly programmer, OO in general is... well, let's save that for another time), so I'm a bit out of my league.

Thoughts?
 

R1CH

Forum Admin
Developer
Re: DX10 req/lack of XP support -- technical discussion with

OBS uses DX10 for the internal scene rendering and various other functions related to the main rendering pipeline. It has nothing to do with the capture method. XP is over eleven years old at this point and just doesn't have the necessary technology.
 

koitsu

New Member
Re: DX10 req/lack of XP support -- technical discussion with

So is that to say OBS couldn't be used to capture from a DirectShow capture filter and stream the results?

Please explain on a technical level exactly what DX10 features are needed (not "desired", but outright needed) for this to work. OBS can capture from a DirectShow device, correct? OBS has RTSP support, correct? So what DX10 features are required for this to work? How do DX10-specific features truly fit into the picture, and how can these be requirements? Again, please, detailed technical specifics, not abstract.

I really don't see how the "age" of the OS has relevancy on a technical level. Do you know how long DirectShow has existed? Roughly 1997 or thereabouts. This is often the problem -- it's rarely about how old something (OS, etc.) is, it's usually something else (not putting words into mouths, but it's usually a programmer saying "I don't care to support that" or "oh, I would then have to write Function X rather than just rely on this built-in provided in an API").

Thanks!
 

R1CH

Forum Admin
Developer
Re: DX10 req/lack of XP support -- technical discussion with

If you just want to capture and encode straight from a DirectShow device you can just use VLC or ffmpeg or many other existing pieces of software. OBS aims to be a lot more than that by allowing scene compositing and many other features, of which some rely on DX10.

The bottom line is it's not worth it to sacrifice application features just to support an OS that only has 11% market share among gamers (and of those still on XP, many wouldn't have the necessary hardware to stream in the first place).
 

Muf

Forum Moderator
Re: DX10 req/lack of XP support -- technical discussion with

koitsu said:
I want to make it very clear when I say I have technical reasons for not upgrading, I really am quite serious
You prefer a kernel with a thread scheduler that is incapable of efficiently utilising multiple cores, has no native hyperthreading support, does not automatically optimise frequent heap allocations, and is generally outdated and obsolete? :mrgreen:
 

Lain

Forum Admin
Lain
Forum Moderator
Developer
Re: DX10 req/lack of XP support -- technical discussion with

Hey, sorry about the XP issue. I originally decided to not support XP because it limits access to new cutting edge features that microsoft unfortunately kept exclusive to post-XP. Features that are exclusive to directx 10.1+, features with the new audio subsystems, as well as some other things. Mostly it's graphics related performance optimizations in particular. It was a choice I made, and I know that not many people agree with it, but I wouldn't have had access to the awesome new features had I not.

In terms of what's needed or not needed, that's subjective. The performance optimization I get out of my application are very high with the new features. One could argue that it's needed to obtain far greater performance, but is it truly "needed" to make a functional application? Not necessarily. It's just vastly preferred. I realize it's frustrating for some people who can't or won't upgrade for whatever reason (and trust me, I understand. I am -not- a microsoft fan). Yes, yes I do indeed want these features.

I don't mean to cause you any frustration, but you need to understand that I am developing it primarily for fun, and for the challenge (well, and it looks nice on a portfolio). Sure, I might put up a donation thing at some point primarily for R&D, but I truly get no gain from making this app other than the enjoyment and challenge. I am not really doing it as a service, or really trying to sell a product. I do wish I could make everything work for everybody, but unfortunately that's not always the case, and sometimes I have to make a difficult decision like this. If I spent the time trying to make the application perfect for everybody, I would never get anything done, because it's impossible to make everybody happy.

It -can- be made to work with XP, of course. With some major tweaking. The application is built to on an abstract base (mostly), and can be made to work with it. I definitely do not mind at all if you'd like to take a stab at doing so, just as long as it's all within the GPL and such.
 
Top