The more specific problem I'm having is that upon playing the mp4 file my program generates, I get a "Windows Media player cannot play the file. The Player might not support the file type of might not support the codec that was used to compress the file."
The h264 file will play so I'd like to run through what I'm doing and at least make sure it makes sense, any thoughts as to things to look for would be appreciated.
After setting it up, I generate a Bitstream for h264 frames and I write them out to a file, one after another.
I then take that bitstream and feed it through MFXMuxer_PutBitstream (this might be related to this question: http://software.intel.com/en-us/forums/topic/501569)
Within MFXMuxer_PutBitstream, it automatically calls curBitstream->write, where curBitstream is a DataIO object (I wrote my own so that instead of saving to/from a file, it just copies the buffer passed into curBitstream->write into a mfxBitstream within the file).
Then as soon as MFXMuxer_PutBitstream finishes executing I call curBitstream->Read, pull the Bitstream out, which seems like it should represent mp4 frames, and write them one at a time to a file.
Then I try to play the file. This approach is correct, right?