I am using the MPEG-4 decoder in a Directshow filter. Some times, the process sample doesnt have enough data to decode a frame or it may have many frames. So I have to do a loop to deliver all the frames that available in the sample. How can I know if the data can be decoded? Suppose that I have a sample that contains 2 frames and half, I will decode the first one, then the second, and then when I trying to decode the 3'rd, I failed (It may be from
mp4_DecodeVideoObjectPlanefunction or mp4_Parsefunction), in this case I have to wait for next sample to append the data, so I can decode the 3'rd frame and so on and so forth. I handle this by keeping the state of the mp4_Info structure before trying todecode any frame, when there is error, I return the old mp4_Info status to the my member variable to use it in the next time. The problem is that some result frames are corrupted. Do you have any idea to help me.