The problem encountered is in using the CMMFDevVideoPlay class on the xPressMusic 5800 phone.
We have been able to use the decoder and get decoded MPEG4 frames using this plugin. However, we do not get back post processed data from the post processor using the plugin. So in the case where CMMFDevVideoPlay instance is configured to only decode MPEG4 data, we get back a decoded YUV frame on the MdvpoNewPictures callback with the complete YUV data. When we add a postprocess function like scaling and YUV to RGB conversion, we do not get back any MdvpoNewPictures data callback.
We have tried 2 approaches of invoking the post processor with the expectation that we will get back the result in memory buffers and both did not work out:
1. To the same instance of CMMFDevVideoPlay, set the decoding and post processing (scaling and YUV) options. This does not return back any data on a MdvpoNewPictures callback even on giving input data continuously.
2. Create one instance of CMMFDevVideo that sets the decoder and another instance that sets the post processor options. When decoded data callback is received from the decoder, pass the picture returned by the decoder through NextPictureL() to the post processor using WritePictureL(picture). We presume that the postprocessor would also return the processed picture using the MdvpoNewPictures callbacks, but none is received.
Is MdvpoNewPictures() the right callback to receive post processed data, or is there any other callback which we need to use to receive post processed data? Can you give us some clue on what could be going wrong in the post processor call work flow?
Another thing that we thought we should bring to your notice is that, the files devvideobase.h, devvideoconstants.h, devvideobase.inl and devvideoplugininterfaceuids.hrh were missing from the plugin and we picked the files from the UIQ 3.1 SDK. I wonder if that was a right thing to do and whether that could be a reason for the problem.
Look forward to a response that helps us fix the problem.