Esempio n. 1
0
        static void Main(string[] args)
        {
            int offset = 0;

            string home = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

            string path = String.Format("{0}\\Videos\\20180510_1957 FTS-191-.TS", home.ToString());

            if (File.Exists(path))
            {
                Console.WriteLine("Yes");
                Console.WriteLine(OtherConstants.SyncByteValue);

                try
                {
                    FileStream stream = new FileStream(path, FileMode.Open);

                    int streamLengthInBytes = (int)stream.Length;

                    Console.WriteLine("Stream length: {0}MB", Calculations.BytesToMegs(stream.Length));

                    StreamReader reader = new StreamReader(stream);


                    while (!reader.EndOfStream)
                    {
                        int b = reader.Read();

                        if (b == OtherConstants.SyncByteValue)
                        {
                            decimal percentageProgessed = ((decimal)offset / (decimal)streamLengthInBytes) * 100;
                            Console.WriteLine("Offset: {0} / {2} ({3}%) SyncByte {1}", offset, b, streamLengthInBytes, percentageProgessed.ToString("0.0"));

                            int byte2 = reader.Read();
                            int byte3 = reader.Read();
                            int byte4 = reader.Read();
                            int byte5 = reader.Read();
                            //watch out for end of file here. Make safe

                            Console.WriteLine($"dec: {byte2} bin:{Converters.IntByteToBinaryString(byte2)} / dec: {byte3} bin: {Converters.IntByteToBinaryString(byte3)}");
                            ushort _16bit = Converters.BytesToPIDType(byte2, byte3);

                            Console.WriteLine("Bytes: {0}", Converters.IntUShortToBinaryString(_16bit));
                            Console.WriteLine("PID Could be: {0} and in Hex: {1:X}", Converters.IntUShortToBinaryString(Converters.ExtractPIDTypeFromTSPacketUShort(_16bit)), Converters.ExtractPIDTypeFromTSPacketUShort(_16bit));

                            byte[] bytesForPacket = new byte[]
                            {
                                (byte)b,
                                (byte)byte2,
                                (byte)byte2,
                                (byte)byte2,
                                (byte)byte2
                            };

                            TransportPacket packet = new TransportPacket(bytesForPacket);
                            Console.WriteLine(packet.GetDebugOutput());

                            Console.ReadKey();
                        }

                        offset++;
                    }


                    stream.Close();
                }
                catch (FileLoadException fex)
                {
                    Console.WriteLine("File load error: {0}", fex.Message);
                }
                catch (IOException ioex)
                {
                    Console.WriteLine("I/O error: {0}", ioex.Message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Generic error: {0}", ex.Message);
                }
                finally
                {
                }
            }

            Console.ReadKey();
        }