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); }
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))); }
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(); }
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); }
public Mp4VideoWriter(Stream output) { writer = new MediaWriter(output, OutFormat.Get("mp4")); }
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); }