mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-14 01:49:05 +00:00
FS-11849: [Build-System] Add mod_av based on ffmpeg and openh264 to MSI package on Windows.
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user