I currently have mfxBitstream *pMfxBitstream that comes out of EncodeFrameAsync
At that point pfxBitstream->data contains data, however after writing that data to a file or copying it somewhere else, I no longer need it
Is setting pMfxBitstream->DataLength = 0; enough as shown by the example? Or should I also free pMfxBitstream->Data if I intent to use it repeatedly and avoid memory leaks? Or would freeing it potentially cause problems?
You do not have to free any mfxBitStream buffers during execution. The samples provided with the Media SDK showcase the correct usage. In essence just allocate sufficient buffer before starting processing then free it after all frames have been completely processed.