I truly appreciate you sparing me from lecturing how cool MS stuff is.
I was once interviewed by MS “experts” only to find out that the development “teams” do not maintain any records from one release to another – in their own words “ we do it from scratch because we have new “teams”. I was actually glad they did not hire me.
I also believe the other reason their stuff so boated and full of holes need fixing is they are actually hardware company – pushing for more memory, larger HDD and even “developed” CD because loading OS using couple of dozen floppies was ridiculous.
I wish I could figure out why the VFW is so flaky and skip the Direct whatever for now.
If the DirectShow sample posted ( written with VC6.0) here worked for me I suspect I would find out that it also have problems to display the captured video.
Actually that is the root of my current linker problem – the CVMRCaputre class posted here does not link either, I get same linker undefined symbol. Unfortunately the author is no longer active – so I got double trouble.
Makes one wonder why so many authors of video capture programs posted here disappear from the scene fast. I guess the only stalwart is CxImage stuff.
Sorry for the rant, going on my morning walk now.
Cheers and have great day.
Unless I can find a source code ( just dreaming) for this stinking stream id library to build my own - what are my alternative(s) to do RELIABLE video capture besides ( expletive deleted ) DirectShow?
I really do not want to switch to Linux and start over.
No more cheers from me on this one.
i'm not sure how can I do the four function I did a lot with for loop function but how can I give the user ability to insert and remove at the position he prefers maybe he wants to remove elemnt at the binging maybe at the last maybe in the middle, also inserting , we have cases
I have been working on GDI previously. It is fine, but all the graphics libraries including GDI have limits.
Eg:- Let's say you want to create a gradient with GDI (or any other API), of course they're pre-defined functions for you to use. But What if I want to create my own function for a gradient effect. Maybe with the SetPixel() function.
But those APIs (GDI, GDI+ ....) are high level APIs. Creating such effects with a high level library slows down the program (because, there's a long pipeline from a GDI call to the Graphics Card).
So, What is the lowest possible level of graphics programming on Windows ? Can I program directly to the GPU ? Or Are there any low level Graphics libraries available on Windows ?
GDI is actually pretty low-level... not sure what you're trying to accomplish (overall) but maybe you're doing something wrong if GDI is too slow. Remember that you can draw off screen then transition that over to the screen, that method is blazing fast.
The lowest level API that you can work with, while still using GDI, is DIBSections. DIBSections allow you to update the pixels of a bitmap manually and draw that bitmap using an HDC. They have always been fast enough, and are many times faster than using the SetPixel method. Hope this helps.
I want to extract frames from a compressed AVI video file.
I have used WIN32 Apis such as "AVIStreamGetFrameOpen" to extract frames from a uncompressed AVI video file.But for a compressed AVI video file the API "AVIStreamGetFrameOpen" returns NULL.Are there APIs to extract frames from a compressed AVI as well as uncompressed AVI file.
Hi, Ashwath. If you are allowed to use ffmpeg in your project then the solution code becomes trivial. Else you will need to check the documentation for the ICDecompress function. You are using the win32 apis to load your avi file, they are very slow and require you to use COM interfaces to decompress your files - these rely on installed codecs on your machine. Using ffmpeg gives you a solution which comes with its codecs built right into the library. Hope this helps.