STANAG 4609 Player .NET SDK  Version 3.9.1
Player Events.

Playback Events

During the playback, the following events are fired:

void OnPlayerEvent(Player_State ev, string info, long param)
{
switch (ev)
{
case Player_State.Starting: //Starting graph is being built
break;
case Player_State.WaitingFordata: //playback is started, but data source is timed out
break;
case Player_State.Running: //Session is running
break;
case Player_State.Paused: //Session is paused
break;
case Player_State.Stopped: //Session is stopped
break;
case Player_State.Completed: //Session is complete
break;
case Player_State.Error: //Error
break;
case Player_State.Demo_Expired: //Demo Expired
break;
case Player_State.DurationChanged: // Total duration has changed
break;
case Player_State.SegmentChanged: // Current segment changed
break;
case Player_State.SegmentListChanged: // Segment list has changed
break;
default:
break;
}
}

Error Event.

If there is an error, the player will report it with an Error event:

void OnErrorEvent(Error_Type e, string err)
{
ReportError("Error {0} - {1}", e, err);
}

PID detection.

When the player completes detection, it reports the list of PIDs found in the stream.

void OnPidDetectionEvent(List<PidInfoWr> pidList)
{
pidList.ForEach(pid =>
{
switch(pid.streamType)
{
case StreamType.VIDEO:
break;
case StreamType.KLV:
break;
case StreamType.PRIVATE_DATA:
break;
}
});
}
Note
You only need to set this event if you need this information. For simple playback, it is not needed.

Sync Frame event.

When the player completes frame decoding, it reports the list of synced data packets.

void OnSyncFrameEvent(List<StreamFrameInfoWr> streamList)
{
streamList.ForEach(delegate(StreamFrameInfoWr streamFrame)
{
switch (streamFrame.streamType)
{
case StreamType.VIDEO:
{
// Here we got an uncompressed frame
VideoFrameInfoWr vf = streamFrame as VideoFrameInfoWr;
}
break;
case StreamType.KLV:
{
// Here we got a klv packet
KlvFrameInfoWr kf = streamFrame as KlvFrameInfoWr;
if (kf.duplicateCounter == 0 && kf.decodedData != null)
{
}
}
break;
case StreamType.PRIVATE_DATA:
{
// Here we got a private data packet
DataFrameInfoWr df = streamFrame as DataFrameInfoWr;
if (df.duplicateCounter == 0)
{
}
}
break;
}
});
}
Note
You only need to set this event if you need this information. For simple playback it is not needed.
Untitled 1




 Copyright 2019,    IMPLEOTV SYSTEMS LTD