|
Hiya,
It is free, try http://xml.apache.org/xerces-c/download.cgi
Have fun
Cheers
Loz
|
|
|
|
|
Using DirectShow I am attempting to take a video feed from a web cam and then stream it across a proprietary link, where it can be viewed within another application somewhere.
I have been exposed to DirectShow for about a day now, so excuse my ignorance, and my few attempts (eg using SetFileName to direct to a named pipe or COM1, and failing to inherit from CBaseRenderer)have got me no-where.
Constructive suggestions welcome!
Thanks
Loz
|
|
|
|
|
LozEvans wrote:
then stream it across a proprietary link
I'm assuming that by proprietary link you mean a software link. If you meant a hardware link, DirectShow has a fair amount of overhead, plus the large amount of data flowing in from the camera - it might be a stretch to transmit it across a physical link. If your hardware will do it, then the easiest place to write the transmission code is in the transform function of a transform filter.
Assuming Rendering on a The Capture Machine
-------------------------------------------
This is the easist situation, I've found the simplest way to use DirectShow is to use the sample apps supplied with the DXSDK to get started. Then write all the code you need on transform filters, and connect a source-> your filter -> Null Renderer.
One tip is that to ensure that the graph is exactly what you want you'll need to either add the graph to the running object table (playcap sample) and view the graph in graphedit or manually connect the pins of the filters. Also make sure that all developers are using the same settings for their screen settings (24 bit color WILL give different graphs to 16 bit color in some cases)
Look at the AMCap (?I think) sample to see how to render to a user specified location.
Look at playcap if you want to learn how to start with directshow (build graphs).
Look at the NullNull Filter sample if you want the basis for a basic transform filter
Good Luck
If you can keep you head when all about you
Are losing theirs and blaming it on you;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts you aim;
Yours is the Earth and everything that's in it.
Rudyard Kipling
|
|
|
|
|
Hi,
I like to know if there's an easy way to convert an icon handle I get from LoadImage to a HBITMAP which I can use to save it to a .bmp file.
Thanks in advance for any hints.
Aart
|
|
|
|
|
|
Create a memory device context compatible with the screen using CreateCompatibleDC . Create a device independent bitmap (DIB) using CreateDIBSection and select it into your memory DC with SelectObject . Draw the icon into the device context using DrawIcon(Ex) .
Now look in Programming Windows by Charles Petzold to work out how to save the DIB bits into a valid BMP file.
|
|
|
|
|
I have been programming a few applications that rely on OpenGL for 2, 3 years now and I still got a few iritating problems when it comes to picking. With many systems (e.g. modern Dell or Compaq PCs) picking does not work if you do not set video card hardware acceleration to the minimum. Until now I have handled the problem by asking customers to adjust their display parameters, but some are getting angry and I would like to get rid of the problem for good.
So here are my questions:
- Have some of you met and solved the problem yet?
- Then how ? Which OpenGL initialization framework (classes) are you using?
- Some people recommended using VTK, Ilog Vision, or other OpenGL based frameworks and quitting direct OpenGL programming. Are any developpers here using one of these solutions and living happy with it?
Thanks in advance for any information.
François GASNIER
|
|
|
|
|
One solution - somewhat difficult to program is to draw each 3Dobject twice - once in the accumulation buffer and one the regular way. Each object is drawn in a different color so when you pick you use getpixel and analyze th e ID coded as a color.
J.
----------------------------
|
|
|
|
|
I know it wasn't one of your questions but over the last 6 years I've never encountered picking to not work. I wish I had, and could help you out.
I have not personally tried the application on a branded machine, but it has been tested on a wide variety of cards by a number of people, right from the intel OEM chip (8152 maybe, I can't remember) of a few years ago, to the Radeon 9800 pro. None of them needed any special adjustment to make them work.
In response to your third question, I've not seen an OpenGL framework that I was happy with yet, so you are not alone in using direct OpenGL programming
Phil
|
|
|
|
|
Thank you for your interesting answer. There must be something really wrong with the way I code. What is really surprising me is that I have tried various ways to initialize OpenGL using some functions/classes found on this site (and others) but up to now I have never found something really satisfactory:
- picking would not work in fully accelerated mode,
- application would become very unstable (e.g. windows 2000 would reboot when picking althought we were working on a brand new installation),
- application would not display anything in the OpenGL window at all...
Could you give a link to the OpenGL initialization code you are using or a sample?
pmartin wrote:
so you are not alone in using direct OpenGL programming
Thanks. I have been speaking of my problems with picking with some professionnal of the CAD/CAM industry and most told me that I should not be surprised to meet many problems and I felt as if I did not knew the real world at all...
|
|
|
|
|
There are problems with many open gl drivers, without a doubt. Picking is not one of them I think. Most of the hardware around, except for maybe the higher end workstations do their picks with with the software fallbacks. So even on the crummiest implementation, they should have it right.
However, one thing I have found is that up to date drivers are a must. A number of people have tried the software, (http://aztec.sourceforge.net) and it just wouldn't start because he didn't have the most recent drivers for his video card.
You can checkout or download the most recent code, and the relvant opengl initialisation code is in
aztec\source\AztecGUICommon\src\gui\win32\MGLCanvasImpl.cpp
and I can show you the picking code if you want.
And I wouldn't try to build the project unless you are VERY patient. Requires finding and downloaded a number of 3rd party libs, and it gets pretty annoying very fast
Phil
|
|
|
|
|
Thank you very much for your efficient help!
The picking in my application now works fine however the hardware acceleration is set.
In fact it was not because of an error in my OpenGL initializing code which is pretty similar to the one you use for aztech. While comparing your picking code and mine I found out that I forgot to save the projection matrix and to call glInitNames() before drawing. I added those few lines and now it works.
This bug has been a pain for 2 years and people doing support will be greateful not to have to tell their customers they need to have their system administrator change hardware acceleration level in order to have the application work properly.
Thank you! I wish I could help you althought I have not reached your expertise yet.
|
|
|
|
|
You are very welcome. I'm extremely pleased it worked out for you!
And don't sell yourself short, I think you are doing well. Its a fairly easy thing to overlook, and once you found a solution (change hardware acceleration) it is very easy to not continue looking.
Anyway, have fun, ad feel free to contact me on the aztec forums, mailings lists, here, or via email.
Phil
|
|
|
|
|
hi all:
That's too strange.
What variable type should I put into the function's parameter(2nd and 3rd).
By the MFC manual. I should write like that: GetColumnInfo(0, &i1, &i2);?
But that can't pass the compiler's check.
If I write like that: GetColumnInfo(0, i1, i2);?
It goes out the memory access error!.
I wrote a few line code:
----------------------------
CSPlitterWnd my_splitterWnd;
...
{
int cxCur, cxMin;
my_splitterWnd.GetColumnInfo(0, &cxCur, &cxMin);
.....
}
----------------------------
The MFC menual about this function:
void GetColumnInfo(
int col,
int& cxCur,
int& cxMin
) const;
|
|
|
|
|
|
void CSplitterWnd::GetColumnInfo(int col, int& cxCur, int& cxMin) const
{
ASSERT_VALID(this);
ASSERT(col >= 0 && col < m_nMaxCols);
cxCur = m_pColInfo[col].nCurSize;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cxMin = m_pColInfo[col].nMinSize;
}
I trace into the CSplitterWnd's source. Access error occur at the upper line I marked.
|
|
|
|
|
Sorry !
I found!.. Error is at m_pColInfo[col].nCurSize.
Not cxCur.
Thank you michael
|
|
|
|
|
|
Hi Guys,
How to handle large string greater than what CString Handle's.
Thanks in Advance
Hussain
|
|
|
|
|
From the Visual C++ 6 help:
"A CString object can store up to INT_MAX (2,147,483,647) characters..."
Maybe you need something different? When did you find limits?
|
|
|
|
|
Some times I heared that CDoub... Some class with this type of name can store more charchters than CString. I Forgot its name.
Hussain
|
|
|
|
|
MOHAMMED AZGHAR HUSSAIN wrote:
I Forgot its name.
When/if you remember it, post again and we'll discuss it.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi All
Can anyone please let me know how can I create a shared directory using Win32 APIs.
Thanks and Regards
Ram
|
|
|
|
|
call net.exe share <share name="">=<path>
Don't try it, just do it!
|
|
|
|
|
The function I believe you are interested in is NetShareAdd() .
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|