Basically I implemented the interfaces needed for playback, and then modify the return value of each object. I tested for failures in EndGetEvent from the media source while streaming and also failures in RequestSample from media stream while streaming, in both I'm checking if there is a change in the state of the presentation clock.
Apparently, we are not handling correctly the RequestSample error case also.