I am starting up in using the the VC1Encoder and VC1Decoder and using version 6.1. I created a test app where I have a 24 bit RGB DIB I convert it to YUV420, encode it, decode it and convert the YUV420 to 24 bit RGB DIB. I know the coverters are working and it appears that the encoder works, but when I try to decode, GetFrame returns UMC_ERR_NOT_ENOUGH_DATA. The buffers seem to indicate that the data is there.
I tried to follow the example in the documentation. Below is the essence of the code. Any help would be appreciated.
When does theflagUMC_ERR_NOT_ENOUGH_DATA show? at your last frame orat eachGetFrame call,thus cause the decode can't continue? You may check ifthere are VC1 decoding error by writing the streamof encoder's output to one file, then check if it can be decode by simple_player.
In general,UMC doesn't takeUMC_ERR_NOT_ENOUGH_DATA aserror or quitconditionif GetFrame returnUMC_ERR_NOT_ENOUGH_DATA because the decoder doesn't start to decode untill the decodebuffer is full.
In the code I sent which follows the example in the documentation, if you follow the while loop it keeps looping if GetFrame returns UMC_ERR_NOT_ENOUGH_DATA until VC1Splitter.GetNextData returns UMC_ERR_END_OF_STREAM. After that a call to GetFrame with the first parameter set to NULL still does not work.
I think the code sample you wrote does essentially the same thing.