public override void OnVideoEvent(int cookies)
{
if (this.graphBuilder == null || this.graphBuilder2 == null)
return;
try
{
if (cookies == cookiesSink)
{
IMediaEventEx mediaEvent = this.graphBuilder as IMediaEventEx;
EventCode eventCode;
IntPtr param1, param2;
while (mediaEvent.GetEvent(out eventCode, out param1, out param2, 0) >= 0)
{
Trace.WriteLineIf(trace.TraceVerbose, "OnVideoEvent(Sink) -> " + eventCode.ToString());
if (eventCode == EventCode.VMRRenderDeviceSet)
VideoRefresh();
//switch (eventCode)
//{
// // Call application-defined functions for each
// // type of event that you want to handle.
//}
int hr = mediaEvent.FreeEventParams(eventCode, param1, param2);
}
}
else if (cookies == cookiesSource)
{
IMediaEventEx mediaEvent = this.graphBuilder2 as IMediaEventEx;
EventCode eventCode;
IntPtr param1, param2;
while (mediaEvent.GetEvent(out eventCode, out param1, out param2, 0) >= 0)
{
Trace.WriteLineIf(trace.TraceVerbose, "OnVideoEvent(Source) -> " + eventCode.ToString());
if (eventCode == EventCode.VMRRenderDeviceSet)
VideoRefresh();
//switch (eventCode)
//{
// // Call application-defined functions for each
// // type of event that you want to handle.
//}
int hr = mediaEvent.FreeEventParams(eventCode, param1, param2);
}
}
}
catch (Exception ex)
{
Trace.WriteLineIf(trace.TraceError, ex.ToString());
}
}