Exemple #1
0
        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;
            }
        }
Exemple #2
0
 private void _networkStreamAdapter_OnDataArrived(StspOperation option, IBufferPacket packet)
 {
     ThrowIfError(CheckShutdown());
     try
     {
         processPacket(option, packet);
     }
     catch (Exception ex)
     {
         HandleError(ex.HResult);
     }
 }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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);
 }