12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Microsoft.Deployment.WindowsInstaller;
- using ICSharpCode.SharpZipLib.BZip2;
- using System.IO;
- using System.Net;
- namespace Setup.CA.DownloadOpenH264
- {
- public class CustomActions
- {
- [CustomAction]
- public static ActionResult DownloadOpenH264(Session session)
- {
- session.Log("Begin DownloadOpenH264");
- string filename = session.CustomActionData["location"] + @"openh264.dll";
- try
- {
- WebRequest request = HttpWebRequest.Create("http://ciscobinary.openh264.org/openh264-1.8.0-win64.dll.bz2");
- using (WebResponse response = request.GetResponse())
- {
- Stream responseStream = response.GetResponseStream();
- BZip2InputStream zisUncompressed = new BZip2InputStream(responseStream);
- using (var output = File.Create(filename))
- {
- var buffer = new byte[2048];
- int n;
- while ((n = zisUncompressed.Read(buffer, 0, buffer.Length)) > 0)
- {
- output.Write(buffer, 0, n);
- }
- }
- }
- }
- catch {
- session.Log("Unable to download openh264 codec.");
- }
- return ActionResult.Success;
- }
- [CustomAction]
- public static ActionResult RemoveOpenH264Binary(Session session)
- {
- session.Log("Begin RemoveOpenH264Binary");
- string filename = session.CustomActionData["location"] + @"openh264.dll";
- try
- {
- // Check if file exists with its full path
- if (File.Exists(filename))
- {
- // If file found, delete it
- File.Delete(filename);
- session.Log("RemoveOpenH264Binary deleted openh264.dll");
- }
- }
- catch (IOException ioExp)
- {
- session.Log("RemoveOpenH264Binary can't delete openh264.dll");
- }
- return ActionResult.Success;
- }
- }
- }
|