forked from Mirrors/freeswitch
71 lines
2.3 KiB
C#
71 lines
2.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|