Пример #1
0
        public void Test2()
        {
            MediaDictionary options = new MediaDictionary();

            Output.WriteLine($"{((IntPtr)options.internalPointerPlaceHolder).ToInt64()}");
            Output.WriteLine($"={((IntPtr)options.ppDictionary).ToInt64()}");
            options.Add("protocol_whitelist", "file");
            options.Add("key", "value");
            options.Add("protocol_blacklist", "cache");
            Output.WriteLine($"{((IntPtr)options.internalPointerPlaceHolder).ToInt64()}");
            Output.WriteLine($"={((IntPtr)options.ppDictionary).ToInt64()}");
            var file = "222.mp4";
            AVFormatContext * pFormatContext  = null;
            AVFormatContext **ppFormatContext = &pFormatContext;
            var ret1 = ffmpeg.avformat_alloc_output_context2(ppFormatContext, OutFormat.Get("mpeg"), null, file);
            var ret2 = ffmpeg.avio_open2(&pFormatContext->pb, file, ffmpeg.AVIO_FLAG_WRITE, null, options);

            //Output.WriteLine($"{((IntPtr)options.ppDictionary).ToInt64()}");
            //Output.WriteLine($"{((IntPtr)options.internalPointerPlaceHolder).ToInt64()}");
            Output.WriteLine($"{((IntPtr)options.internalPointerPlaceHolder).ToInt64()}");
            Output.WriteLine($"={((IntPtr)options.ppDictionary).ToInt64()}");
            Output.WriteLine($"+{((IntPtr)(*options.ppDictionary)).ToInt64()}");
            Assert.True(options.Count == 1);
            Assert.Equal("key", options.First().Key);
            Assert.Equal("value", options.First().Value);
        }
Пример #2
0
 public Task <int> SendPacketAsync(ushort id, params object[] values)
 {
     if (OutFormat == null)
     {
         throw new NullReferenceException("Outgoing format cannot be null.");
     }
     return(SendAsync(OutFormat.Construct(id, values)));
 }
Пример #3
0
        private void InnerTrans(OutFormat formatter)
        {
            XslCompiledTransform xsl = new XslCompiledTransform();

            xsl.Load(_xsltUrl);

            xsl.Transform(_xpDoc, null, _msOut);

            if (formatter == OutFormat.File)
            {
                _outFileName = this.MemoryStreamSave2File();
            }

            _msOut.Close();
        }
Пример #4
0
        public void Test1()
        {
            MediaDictionary2 options = MediaDictionary2.Empty;

            Output.WriteLine($"{((IntPtr)options._handle).ToInt64()}");
            Output.WriteLine($"={((IntPtr)(AVDictionary**)options).ToInt64()}");
            options.Add("protocol_whitelist", "file");
            options.Add("key", "value");
            options.Add("protocol_blacklist", "cache");
            Output.WriteLine($"{((IntPtr)options._handle).ToInt64()}");
            Output.WriteLine($"={((IntPtr)(AVDictionary**)options).ToInt64()}");
            var file = "111.mp4";
            AVFormatContext * pFormatContext  = null;
            AVFormatContext **ppFormatContext = &pFormatContext;
            var ret1 = ffmpeg.avformat_alloc_output_context2(ppFormatContext, OutFormat.Get("mpeg"), null, file);
            var ret2 = ffmpeg.avio_open2(&pFormatContext->pb, file, ffmpeg.AVIO_FLAG_WRITE, null, options);

            Output.WriteLine($"{((IntPtr)options._handle).ToInt64()}");
            Output.WriteLine($"={((IntPtr)(AVDictionary**)options).ToInt64()}");
            Output.WriteLine($"+{((IntPtr)(*(AVDictionary**)options)).ToInt64()}");
            Assert.True(options.Count == 1);
            Assert.Equal("key", options.First().Key);
            Assert.Equal("value", options.First().Value);
        }
Пример #5
0
 public Mp4VideoWriter(Stream output)
 {
     writer = new MediaWriter(output, OutFormat.Get("mp4"));
 }
Пример #6
0
        public static int Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.Error.WriteLine("Usage: w65c02s-dotnet-test job.json > report.json");
                return(1);
            }
            JObject job = JObject.Parse(File.ReadAllText(args[0]));

            sram[0xFFFD] = 0x02;
            if (job.ContainsKey("init"))
            {
                // um... it *better* contain "init"
                write_init_records((JArray)job["init"]);
            }
            else
            {
                throw new Exception("no init records, what a pointless test");
            }
            if (job.ContainsKey("rwmap"))
            {
                JArray rwmap = (JArray)job["rwmap"];
                for (int n = 0; n < rwmap.Count; ++n)
                {
                    JArray r = (JArray)rwmap[n];
                    ranges.Add(new Range((ushort)r[0], (ushort)r[1]));
                }
            }
            else
            {
                ranges.Add(new Range(0x0000, 0x01FF));
            }
            if (job.ContainsKey("serial_in_addr"))
            {
                serial_in_addr    = (ushort)job["serial_in_addr"];
                serial_in_enabled = true;
                if (job.ContainsKey("serial_in_data"))
                {
                    serial_in = new Queue <byte>(data_decode((string)job["serial_in_data"]));
                }
            }
            if (job.ContainsKey("serial_out_addr"))
            {
                serial_out_addr    = (ushort)job["serial_out_addr"];
                serial_out_enabled = true;
            }
            if (job.ContainsKey("serial_out_fmt"))
            {
                switch ((string)job["serial_out_fmt"])
                {
                case "utf8": serial_out_fmt = OutFormat.UTF8; break;

                case "base64": serial_out_fmt = OutFormat.BASE64; break;

                default: throw new Exception("unknown serial_out_fmt");
                }
            }
            if (job.ContainsKey("show_cycles") && (bool)job["show_cycles"])
            {
                cycles_to_report = 1000;
            }
            if (job.ContainsKey("max_cycles"))
            {
                cycles_to_run = (uint)job["max_cycles"];
            }
            if (job.ContainsKey("terminate_on_brk") && !(bool)job["terminate_on_brk"])
            {
                terminate_on &= (byte)(~TERMINATE_ON_BRK & 0xFF);
            }
            if (job.ContainsKey("terminate_on_infinite_loop") && !(bool)job["terminate_on_infinite_loop"])
            {
                terminate_on &= (byte)(~TERMINATE_ON_INFINITE & 0xFF);
            }
            if (job.ContainsKey("terminate_on_zero_fetch") && !(bool)job["terminate_on_zero_fetch"])
            {
                terminate_on &= (byte)(~TERMINATE_ON_ZERO & 0xFF);
            }
            if (job.ContainsKey("terminate_on_stack_fetch") && !(bool)job["terminate_on_stack_fetch"])
            {
                terminate_on &= (byte)(~TERMINATE_ON_STACK & 0xFF);
            }
            if (job.ContainsKey("terminate_on_vector_fetch") && !(bool)job["terminate_on_vector_fetch"])
            {
                terminate_on &= (byte)(~TERMINATE_ON_VECTOR & 0xFF);
            }
            if (job.ContainsKey("terminate_on_bad_write") && !(bool)job["terminate_on_bad_write"])
            {
                terminate_on &= (byte)(~TERMINATE_ON_BAD_WRITE & 0xFF);
            }
            if (job.ContainsKey("rdy"))
            {
                throw new Exception("this test harness does not support the RDY signal");
            }
            if (job.ContainsKey("res"))
            {
                throw new Exception("this test harness does not support the reset signal");
            }
            List <Flip> flip_list = new List <Flip>();

            if (job.ContainsKey("so"))
            {
                add_flips(flip_list, (JArray)job["so"], 1);
            }
            if (job.ContainsKey("nmi"))
            {
                add_flips(flip_list, (JArray)job["nmi"], 2);
            }
            if (job.ContainsKey("irq"))
            {
                add_flips(flip_list, (JArray)job["irq"], 3);
            }
            flip_list.Sort((Flip a, Flip b) =>
                           (int)a.getCycle() - (int)b.getCycle());
            flips = new Queue <Flip>(flip_list);
            cpu.reset();
            try {
                while (num_cycles < cycles_to_run && termination_cause == 0)
                {
                    cpu.Step(bus);
                }
            }
            catch (AllDone) {}
            JObject result = new JObject();

            if (last_pc_valid)
            {
                result["last_pc"] = last_pc;
            }
            result["num_cycles"] = num_cycles;
            switch (termination_cause)
            {
            case 0: result["termination_cause"] = "limit"; break;

            case 1: result["termination_cause"] = "brk"; break;

            case 2: result["termination_cause"] = "infinite_loop"; break;

            case 3: result["termination_cause"] = "zero_fetch"; break;

            case 4: result["termination_cause"] = "stack_fetch"; break;

            case 5: result["termination_cause"] = "vector_fetch"; break;

            case 6: result["termination_cause"] = "bad_write"; break;

            default: result["termination_cause"] = "unknown"; break;
            }
            if (cycles.Count != 0)
            {
                JArray result_cycles = new JArray();
                foreach (uint cycle in cycles)
                {
                    result_cycles.Add(cycle.ToString("X7"));
                }
                result["cycles"] = result_cycles;
            }
            switch (serial_out_fmt)
            {
            case OutFormat.NONE: break;

            case OutFormat.UTF8:
                result["serial_out_data"] = "utf8:"
                                            + Encoding.UTF8.GetString(serial_out.ToArray());
                break;

            case OutFormat.BASE64:
                result["serial_out_data"] = "base64:"
                                            + Convert.ToBase64String(serial_out.ToArray());
                break;
            }
            Console.WriteLine(result.ToString());
            return(0);
        }