anyone know of a good stable mpeg4 decoder, preferably one thats open source and will work with Win32?
anyone know of a good stable mpeg4 decoder, preferably one thats open source and will work with Win32?
mplayer decodes most MPEG4 codecs, is open-source and only ever crashes on incomplete movie files for me.
All the buzzt!
CornedBee
"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
XviD - I use it for processing my videos and it's very good quality. This 2 1/2-minute video of a stunt I did in a game is compressed using the XviD codec (using a quality setting of 10). It's 428x300 resolution, 29.97 fps, and just under 7 MB in size. This is the codec and it's also open source.
Thanks, looks like Xvid might fit the bill. I gotta decode a raw mpeg4 stream in my app, cuz taking snapshots is just too low of a frame rate.
Xvid is a specific codec. It can't decode all MPEG4 streams.
libavifile is your best bet, I think.
All the buzzt!
CornedBee
"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
well, I really just need to decode MJPEG to a series of jpg or bitmap images. Nothing fancy and Id prefer not having to fix someone elses code, like libavifile and Xvid both require.
Neither library requires that you "fix" anything. Where'd you get that idea?
All the buzzt!
CornedBee
"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
Got that idea from the Xvid sources, which failed to compile with 6 errors and 11 warnings. Looks like they are doign some funny business trying to recast __int64's as doubles. I put in a workaroud for a few of them, ill get to the others later. The big issue is that since the errors are in a loop, my workaround ( which involves CopyMemory) will probably slow it down some. Not entirely sure why VC++ wont recast -
generates an error saying there is no type conversion from unsigned __int64 to double, try using signedCode:unsigned __int64 blah; double foo; foo = (double)blah;
Maybe
foo = (double) ( (signed __int64)blah );
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
And exact error messages.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.