private void processPacket(StspOperation option, IBufferPacket packet) { switch (option) { // We received server description case StspOperation.StspOperation_ServerDescription: ThrowIfError(CheckShutdown()); if (_eSourceState != SourceState.SourceState_Opening) { Throw(HResult.MF_E_UNEXPECTED); } ProcessServerDescription(packet); invokeOpenedEvent(); break; // We received a media sample case StspOperation.StspOperation_ServerSample: ProcessServerSample(packet); break; case StspOperation.StspOperation_ServerFormatChange: ProcessServerFormatChange(packet); break; // No supported operation default: Throw(HResult.MF_E_UNSUPPORTED_FORMAT); break; } }
private void _networkStreamAdapter_OnDataArrived(StspOperation option, IBufferPacket packet) { ThrowIfError(CheckShutdown()); try { processPacket(option, packet); } catch (Exception ex) { HandleError(ex.HResult); } }
private void _networkStreamAdapter_OnDataArrived(StspOperation option, IBufferPacket packet) { switch (option) { case StspOperation.StspOperation_ServerDescription: ProcessServerDescription(packet); _networkStreamAdapter.SendStartRequest(); break; case StspOperation.StspOperation_ServerSample: ProcessServerSample(packet); break; } }
public static byte[] BuildOperationBytes(StspOperation operation) { var opHeader = new StspOperationHeader { cbDataSize = 0, eOperation = operation }; var bytes = new byte[Marshal.SizeOf(opHeader)]; var f1 = BitConverter.GetBytes(opHeader.cbDataSize); var f2 = BitConverter.GetBytes((int)opHeader.eOperation); Array.Copy(f1, bytes, f1.Length); Array.Copy(f2, 0, bytes, f1.Length, f2.Length); return(bytes); }
public void SendRequest(StspOperation operation) { var bytes = StreamConvertor.BuildOperationBytes(operation); _networkSender.Send(bytes); }
private void invokeDataArrived(StspOperation option, IBufferPacket data) { OnDataArrived?.Invoke(option, data); }