├── .gitignore
├── FFmpegSharp.sln
├── FFmpegSharp
├── Codes
│ ├── CodeBase.cs
│ ├── CodeType.cs
│ ├── Flv.cs
│ ├── Jpg.cs
│ ├── M4A.cs
│ ├── Mp3.cs
│ ├── Mp4.cs
│ ├── Png.cs
│ ├── Wav.cs
│ └── Wmv.cs
├── Config.cs
├── Executor
│ ├── Encoder.cs
│ ├── IExecutor.cs
│ ├── Network.cs
│ ├── Processor.cs
│ └── TargetType.cs
├── FFmpegSharp.csproj
├── Filters
│ ├── AudioBitrateFilter.cs
│ ├── AudioChannelFilter.cs
│ ├── AudioRateFilter.cs
│ ├── DisableVideoFilter.cs
│ ├── Extentions.cs
│ ├── FilterBase.cs
│ ├── FilterType.cs
│ ├── IFilter.cs
│ ├── ImageWatermarkFilter.cs
│ ├── ResizeFilter.cs
│ ├── ResizeType.cs
│ ├── Resolution.cs
│ ├── SegmentFilter.cs
│ ├── SnapshotFilter.cs
│ ├── VideoBitrateFilter.cs
│ ├── VideoRateFilter.cs
│ ├── WatermarkPosition.cs
│ ├── X264Filter.cs
│ └── X264Preset .cs
├── Media
│ ├── AudioInfo.cs
│ ├── MediaStream.cs
│ ├── StreamInfo.cs
│ ├── StreamInfoBase.cs
│ ├── StreamType.cs
│ ├── TimeBase.cs
│ └── VideoInfo.cs
├── Properties
│ └── AssemblyInfo.cs
├── Utils
│ └── SizeUtils.cs
├── lib-list.txt
└── packages.config
├── LICENSE
├── README.md
├── SampleApp
├── App.config
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
├── SampleApp.csproj
└── logo.png
└── licenses
├── bzip2.txt
├── fontconfig.txt
├── freetype.txt
├── frei0r.txt
├── gnutls.txt
├── lame.txt
├── libass.txt
├── libbluray.txt
├── libcaca.txt
├── libgsm.txt
├── libiconv.txt
├── libilbc.txt
├── libmodplug.txt
├── libtheora.txt
├── libvorbis.txt
├── libvpx.txt
├── opencore-amr.txt
├── openjpeg.txt
├── opus.txt
├── rtmpdump.txt
├── schroedinger.txt
├── soxr.txt
├── speex.txt
├── twolame.txt
├── vid.stab.txt
├── vo-aacenc.txt
├── vo-amrwbenc.txt
├── wavpack.txt
├── x264.txt
├── xavs.txt
├── xvid.txt
└── zlib.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Dd]ebugPublic/
12 | [Rr]elease/
13 | [Rr]eleases/
14 | x64/
15 | x86/
16 | build/
17 | bld/
18 | [Bb]in/
19 | [Oo]bj/
20 |
21 | # Roslyn cache directories
22 | *.ide/
23 |
24 | # MSTest test Results
25 | [Tt]est[Rr]esult*/
26 | [Bb]uild[Ll]og.*
27 |
28 | #NUNIT
29 | *.VisualState.xml
30 | TestResult.xml
31 |
32 | # Build Results of an ATL Project
33 | [Dd]ebugPS/
34 | [Rr]eleasePS/
35 | dlldata.c
36 |
37 | *_i.c
38 | *_p.c
39 | *_i.h
40 | *.ilk
41 | *.meta
42 | *.obj
43 | *.pch
44 | *.pdb
45 | *.pgc
46 | *.pgd
47 | *.rsp
48 | *.sbr
49 | *.tlb
50 | *.tli
51 | *.tlh
52 | *.tmp
53 | *.tmp_proj
54 | *.log
55 | *.vspscc
56 | *.vssscc
57 | .builds
58 | *.pidb
59 | *.svclog
60 | *.scc
61 |
62 | # Chutzpah Test files
63 | _Chutzpah*
64 |
65 | # Visual C++ cache files
66 | ipch/
67 | *.aps
68 | *.ncb
69 | *.opensdf
70 | *.sdf
71 | *.cachefile
72 |
73 | # Visual Studio profiler
74 | *.psess
75 | *.vsp
76 | *.vspx
77 |
78 | # TFS 2012 Local Workspace
79 | $tf/
80 |
81 | # Guidance Automation Toolkit
82 | *.gpState
83 |
84 | # ReSharper is a .NET coding add-in
85 | _ReSharper*/
86 | *.[Rr]e[Ss]harper
87 | *.DotSettings.user
88 |
89 | # JustCode is a .NET coding addin-in
90 | .JustCode
91 |
92 | # TeamCity is a build add-in
93 | _TeamCity*
94 |
95 | # DotCover is a Code Coverage Tool
96 | *.dotCover
97 |
98 | # NCrunch
99 | _NCrunch_*
100 | .*crunch*.local.xml
101 |
102 | # MightyMoose
103 | *.mm.*
104 | AutoTest.Net/
105 |
106 | # Web workbench (sass)
107 | .sass-cache/
108 |
109 | # Installshield output folder
110 | [Ee]xpress/
111 |
112 | # DocProject is a documentation generator add-in
113 | DocProject/buildhelp/
114 | DocProject/Help/*.HxT
115 | DocProject/Help/*.HxC
116 | DocProject/Help/*.hhc
117 | DocProject/Help/*.hhk
118 | DocProject/Help/*.hhp
119 | DocProject/Help/Html2
120 | DocProject/Help/html
121 |
122 | # Click-Once directory
123 | publish/
124 |
125 | # Publish Web Output
126 | *.[Pp]ublish.xml
127 | *.azurePubxml
128 | # TODO: Comment the next line if you want to checkin your web deploy settings
129 | # but database connection strings (with potential passwords) will be unencrypted
130 | *.pubxml
131 | *.publishproj
132 |
133 | # NuGet Packages
134 | *.nupkg
135 | # The packages folder can be ignored because of Package Restore
136 | **/packages/*
137 | # except build/, which is used as an MSBuild target.
138 | !**/packages/build/
139 | # If using the old MSBuild-Integrated Package Restore, uncomment this:
140 | #!**/packages/repositories.config
141 |
142 | # Windows Azure Build Output
143 | csx/
144 | *.build.csdef
145 |
146 | # Windows Store app package directory
147 | AppPackages/
148 |
149 | # Others
150 | sql/
151 | *.Cache
152 | ClientBin/
153 | [Ss]tyle[Cc]op.*
154 | ~$*
155 | *~
156 | *.dbmdl
157 | *.dbproj.schemaview
158 | *.pfx
159 | *.publishsettings
160 | node_modules/
161 |
162 | # RIA/Silverlight projects
163 | Generated_Code/
164 |
165 | # Backup & report files from converting an old project file
166 | # to a newer Visual Studio version. Backup files are not needed,
167 | # because we have git ;-)
168 | _UpgradeReport_Files/
169 | Backup*/
170 | UpgradeLog*.XML
171 | UpgradeLog*.htm
172 |
173 | # SQL Server files
174 | *.mdf
175 | *.ldf
176 |
177 | # Business Intelligence projects
178 | *.rdl.data
179 | *.bim.layout
180 | *.bim_*.settings
181 |
182 | # Microsoft Fakes
183 | FakesAssemblies/
184 |
185 | *.mov
186 |
--------------------------------------------------------------------------------
/FFmpegSharp.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FFmpegSharp", "FFmpegSharp\FFmpegSharp.csproj", "{F6C4359B-766E-40EE-820C-FA7865CAC400}"
5 | EndProject
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleApp", "SampleApp\SampleApp.csproj", "{499A0AE4-485D-46B5-B194-36108523502B}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {F6C4359B-766E-40EE-820C-FA7865CAC400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {F6C4359B-766E-40EE-820C-FA7865CAC400}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {F6C4359B-766E-40EE-820C-FA7865CAC400}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {F6C4359B-766E-40EE-820C-FA7865CAC400}.Release|Any CPU.Build.0 = Release|Any CPU
18 | {499A0AE4-485D-46B5-B194-36108523502B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19 | {499A0AE4-485D-46B5-B194-36108523502B}.Debug|Any CPU.Build.0 = Debug|Any CPU
20 | {499A0AE4-485D-46B5-B194-36108523502B}.Release|Any CPU.ActiveCfg = Release|Any CPU
21 | {499A0AE4-485D-46B5-B194-36108523502B}.Release|Any CPU.Build.0 = Release|Any CPU
22 | EndGlobalSection
23 | GlobalSection(SolutionProperties) = preSolution
24 | HideSolutionNode = FALSE
25 | EndGlobalSection
26 | EndGlobal
27 |
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/CodeBase.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class CodeBase
4 | {
5 | public string Name { get; protected set; }
6 | public string Extension { get; protected set; }
7 | public CodeType CodeType { get; protected set; }
8 | public CodeBase()
9 | {
10 |
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/CodeType.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public enum CodeType
4 | {
5 | Audio,
6 | Image,
7 | Video
8 | }
9 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Flv.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Flv : CodeBase
4 | {
5 | public Flv()
6 | {
7 | CodeType = CodeType.Video;
8 | Name = "FLV";
9 | Extension = ".flv";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Jpg.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Jpg : CodeBase
4 | {
5 | public Jpg()
6 | {
7 | CodeType = CodeType.Image;
8 | Name = "JPG";
9 | Extension = ".jpg";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/M4A.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class M4A : CodeBase
4 | {
5 | public M4A()
6 | {
7 | CodeType = CodeType.Video;
8 | Name = "M4A";
9 | Extension = ".m4a";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Mp3.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Mp3 : CodeBase
4 | {
5 | public Mp3()
6 | {
7 | CodeType = CodeType.Audio;
8 | Name = "MP3";
9 | Extension = ".mp3";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Mp4.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Mp4 : CodeBase
4 | {
5 | public Mp4()
6 | {
7 | CodeType = CodeType.Video;
8 | Name = "MP4";
9 | Extension = ".mp4";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Png.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Png : CodeBase
4 | {
5 | public Png()
6 | {
7 | CodeType = CodeType.Image;
8 | Name = "PNG";
9 | Extension = ".png";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Wav.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Wav : CodeBase
4 | {
5 | public Wav()
6 | {
7 | CodeType = CodeType.Audio;
8 | Name = "WAV";
9 | Extension = ".wav";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Codes/Wmv.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Codes
2 | {
3 | public class Wmv : CodeBase
4 | {
5 | public Wmv()
6 | {
7 | CodeType = CodeType.Video;
8 | Name = "WMV";
9 | Extension = ".wmv";
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Config.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Reflection;
4 |
5 | namespace FFmpegSharp
6 | {
7 | ///
8 | /// base config
9 | ///
10 | public sealed class Config
11 | {
12 | ///
13 | /// the path for ffmpeg.exe
14 | ///
15 | ///
16 | /// default:{Host runtime Directory}/external/ffmpeg/{OS architecture(for 32bit is x86,for 64bit is x64)}/ffmpeg.exe
17 | ///
18 | public string FFmpegPath { get; set; }
19 |
20 | ///
21 | /// the path for ffprobe.exe
22 | ///
23 | ///
24 | /// default:{Host runtime Directory}/external/ffmpeg/{OS architecture(for 32bit is x86,for 64bit is x64)}/ffprobe.exe
25 | ///
26 | public string FFprobePath { get; set; }
27 |
28 | private Config()
29 | {
30 | var currentDir = new FileInfo(Uri.UnescapeDataString(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath));
31 | //var appPath = currentDir.DirectoryName;
32 | var arch = Environment.Is64BitOperatingSystem ? "x64" : "x86";
33 | FFmpegPath = Path.Combine(currentDir.DirectoryName, "external", "ffmpeg", arch, "ffmpeg.exe");
34 | FFprobePath = Path.Combine(currentDir.DirectoryName, "external", "ffmpeg", arch, "ffprobe.exe");
35 | }
36 |
37 | ///
38 | /// The single instance for FFmpegConfg
39 | ///
40 | public static Config Instance
41 | {
42 | get { return ConfigInstance.instance; }
43 | }
44 |
45 | ///
46 | /// default output directory path;
47 | ///
48 | ///
49 | /// it will not work when it's null or empty
50 | ///
51 | public string OutputPath { get; set; }
52 |
53 | ///
54 | /// nested class for single instance
55 | ///
56 | class ConfigInstance
57 | {
58 | internal static readonly Config instance = new Config();
59 |
60 | static ConfigInstance()
61 | {
62 |
63 | }
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Executor/Encoder.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using FFmpegSharp.Codes;
8 | using FFmpegSharp.Filters;
9 | using FFmpegSharp.Media;
10 |
11 | namespace FFmpegSharp.Executor
12 | {
13 | public class Encoder : IExecutor
14 | {
15 | private readonly List _filters;
16 |
17 |
18 | private string _inputPath;
19 | private string _outputPath;
20 | private MediaStream _source;
21 | private CodeBase _code;
22 |
23 |
24 | private Encoder()
25 | {
26 | _filters = new List();
27 | }
28 |
29 | public Encoder WidthInput(string filePath)
30 | {
31 | _inputPath = filePath;
32 | _source = new MediaStream(_inputPath);
33 | return this;
34 | }
35 |
36 | public Encoder WithFilter(FilterBase filter)
37 | {
38 | if (_filters.Any(x=>x.Name.Equals(filter.Name, StringComparison.OrdinalIgnoreCase)))
39 | {
40 | var old = _filters.First(x => x.Name.Equals(filter.Name, StringComparison.OrdinalIgnoreCase));
41 | _filters.Remove(old);
42 | }
43 |
44 | _filters.Add(filter);
45 | return this;
46 | }
47 |
48 | public Encoder To(string ouputPath) where T : CodeBase, new()
49 | {
50 | _outputPath = ouputPath;
51 | _code = new T();
52 | return this;
53 | }
54 |
55 | public static Encoder Create()
56 | {
57 | return new Encoder();
58 | }
59 |
60 | public void Execute()
61 | {
62 | Validate();
63 |
64 | FixFilters();
65 |
66 | var @params = BuildParams();
67 |
68 | var message = Processor.FFmpeg(@params);
69 |
70 | if(!string.IsNullOrWhiteSpace(message) && -1 == message.IndexOf("kb/s", StringComparison.InvariantCultureIgnoreCase))
71 | throw new ApplicationException(message);
72 | }
73 |
74 | private string BuildParams()
75 | {
76 | var builder = new StringBuilder();
77 |
78 | builder.Append(" -i");
79 | builder.Append(" ");
80 | builder.Append(_inputPath);
81 |
82 | foreach (var filter in _filters.OrderBy(x=>x.Rank))
83 | {
84 | filter.Source = _source;
85 | builder.Append(filter.Execute());
86 | }
87 |
88 | var dir = Path.GetDirectoryName(_outputPath);
89 |
90 | if(string.IsNullOrWhiteSpace(dir))
91 | throw new ApplicationException("output directory error.");
92 |
93 | var fileName = Path.GetFileNameWithoutExtension(_outputPath);
94 |
95 | if(string.IsNullOrWhiteSpace(fileName))
96 | throw new ApplicationException("output filename is null");
97 |
98 | builder.AppendFormat(" {0}\\{1}{2}", dir, fileName, _code.Extension);
99 |
100 | return builder.ToString();
101 | }
102 |
103 | private void Validate()
104 | {
105 | if (string.IsNullOrWhiteSpace(_inputPath))
106 | {
107 | throw new ApplicationException("input file is null.");
108 | }
109 |
110 | if (string.IsNullOrWhiteSpace(_outputPath))
111 | {
112 | throw new ApplicationException("outout path is null");
113 | }
114 |
115 | var outdir = Path.GetDirectoryName(_outputPath);
116 |
117 | if (!string.IsNullOrWhiteSpace(outdir) && !Directory.Exists(outdir))
118 | {
119 | Directory.CreateDirectory(outdir);
120 | }
121 | }
122 |
123 | private void FixFilters()
124 | {
125 | if (_filters.Any(x => x.Name.Equals("Snapshot", StringComparison.OrdinalIgnoreCase)))
126 | {
127 | var snapshot = _filters.First(x => x.Name.Equals("Snapshot", StringComparison.OrdinalIgnoreCase));
128 | snapshot.Source = _source;
129 |
130 | _filters.Remove(snapshot);
131 |
132 | Task.Run(() =>
133 | {
134 | Processor.FFmpeg(snapshot.ToString());
135 | });
136 | }
137 |
138 | if (!_source.AudioInfo.CodecName.Equals("aac", StringComparison.OrdinalIgnoreCase) &&
139 | !_filters.Any(x => x.Name.Equals("AudioChannel", StringComparison.OrdinalIgnoreCase)))
140 | {
141 | _filters.Add(new AudioChannelFilter(2));
142 | }
143 |
144 | if (_filters.Any(x => x.Name.Equals("X264", StringComparison.OrdinalIgnoreCase)) &&
145 | !_filters.Any(x => x.Name.Equals("Resize", StringComparison.OrdinalIgnoreCase)))
146 | {
147 | _filters.Add(new ResizeFilter());
148 | }
149 |
150 | if (_code.Name.Equals("flv", StringComparison.OrdinalIgnoreCase))
151 | {
152 | WithFilter(new AudioRatelFilter(44100));
153 | }
154 | }
155 | }
156 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Executor/IExecutor.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Executor
2 | {
3 | public interface IExecutor
4 | {
5 | void Execute();
6 | }
7 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Executor/Network.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using FFmpegSharp.Codes;
9 | using FFmpegSharp.Filters;
10 | using FFmpegSharp.Media;
11 |
12 | namespace FFmpegSharp.Executor
13 | {
14 | public class Network
15 | {
16 | private readonly List _filters;
17 |
18 | private string _source;
19 | private string _dest;
20 | private TargetType _sourceType;
21 | private TargetType _destType;
22 |
23 | public Network()
24 | {
25 | _sourceType = TargetType.Default;
26 | _destType = TargetType.Default;
27 | _filters = new List();
28 | }
29 |
30 | public Network WithFilter(FilterBase filter)
31 | {
32 | if (_filters.Any(x => x.Name.Equals(filter.Name, StringComparison.OrdinalIgnoreCase)))
33 | {
34 | var old = _filters.First(x => x.Name.Equals(filter.Name, StringComparison.OrdinalIgnoreCase));
35 | _filters.Remove(old);
36 | }
37 |
38 | _filters.Add(filter);
39 | return this;
40 | }
41 |
42 | public Network WithSource(string source)
43 | {
44 | _sourceType = GetTargetType(source);
45 | _source = source;
46 |
47 | return this;
48 | }
49 |
50 | public Network WithDest(string dest)
51 | {
52 | _destType = GetTargetType(dest);
53 | _dest = dest;
54 |
55 | return this;
56 | }
57 |
58 | public static Network Create()
59 | {
60 | return new Network();
61 | }
62 |
63 | ///
64 | /// push a stream to rtmp server
65 | ///
66 | public void Push()
67 | {
68 | Validate();
69 |
70 | if (_destType != TargetType.Live)
71 | {
72 | throw new ApplicationException("source type must be 'RtmpType.Live' when Push a stream to rtmp server.");
73 | }
74 |
75 | var @params = GetParams();
76 |
77 | Processor.FFmpeg(@params);
78 | }
79 |
80 | ///
81 | /// pull a stream from rtmp server
82 | ///
83 | public void Pull()
84 | {
85 | Validate();
86 |
87 | if (!TestRtmpServer(_source))
88 | throw new ApplicationException("rtmp server sent error.");
89 |
90 | if (_sourceType != TargetType.Live)
91 | {
92 | throw new ApplicationException("source type must be a rtmp server.");
93 | }
94 |
95 | var @params = GetParams();
96 |
97 | Processor.FFmpeg(@params);
98 | }
99 |
100 | private void Validate()
101 | {
102 | if (_sourceType == TargetType.Default)
103 | throw new ApplicationException("source error.please input a source.");
104 |
105 | if (_destType == TargetType.Default)
106 | throw new ApplicationException("dest error.please input a dest.");
107 |
108 | var supportFilters = new[] { "Resize", "Segment", "X264", "AudioRate", "AudioBitrate" };
109 |
110 | if (_filters.Any(x => !supportFilters.Contains(x.Name)))
111 | {
112 | throw new ApplicationException(string.Format("filter not support.only support:{0}",
113 | supportFilters.Aggregate(string.Empty, (current, filter) => current + (filter + ",")).TrimEnd(new[] { ',' })));
114 | }
115 | }
116 |
117 | private static TargetType GetTargetType(string target)
118 | {
119 | if (target.StartsWith("rtmp://", StringComparison.OrdinalIgnoreCase))
120 | {
121 | return TargetType.Live;
122 | }
123 |
124 | if (File.Exists(target))
125 | {
126 | return TargetType.File;
127 | }
128 |
129 | throw new ApplicationException("source error.unknown source.");
130 | }
131 |
132 |
133 | private static CodeBase GuessCode(string filePath)
134 | {
135 | var codes = new Dictionary
136 | {
137 | {"mp3", new Mp3()},
138 | {"mp4", new Mp4()},
139 | {"m4a", new M4A()},
140 | {"flv", new Flv()}
141 | };
142 |
143 | var ext = Path.GetExtension(filePath);
144 |
145 | if (string.IsNullOrEmpty(ext))
146 | throw new ApplicationException(string.Format("can't guess the code from Path :'{0}'", filePath));
147 |
148 | var key = ext.TrimStart(new[] { '.' });
149 |
150 | if (codes.Keys.Any(x => x.Equals(key, StringComparison.OrdinalIgnoreCase)))
151 | {
152 | return codes[key];
153 | }
154 |
155 | throw new ApplicationException(string.Format("not support file extension :{0}", key.ToLower()));
156 | }
157 |
158 | private string GetParams()
159 | {
160 | var builder = new StringBuilder();
161 |
162 | if (_sourceType == TargetType.File)
163 | {
164 | builder.Append(" -re -i ");
165 | builder.Append(_source);
166 | }
167 |
168 | if(_sourceType == TargetType.Live)
169 | {
170 | builder.Append(" -i");
171 |
172 | builder.AppendFormat(
173 | -1 < _source.IndexOf("live=1", StringComparison.OrdinalIgnoreCase) ? "\" {0} live=1\"" : "\" {0}\"",
174 | _source);
175 | }
176 |
177 | if (_sourceType == TargetType.File)
178 | {
179 | if (_filters.Any(x => x.Name.Equals("Segment", StringComparison.OrdinalIgnoreCase)))
180 | {
181 | var filter = _filters.First(x => x.Name.Equals("Segment", StringComparison.OrdinalIgnoreCase));
182 | _filters.Remove(filter);
183 | }
184 | }
185 |
186 |
187 | if (!_filters.Any(x => x.Name.Equals("x264", StringComparison.OrdinalIgnoreCase)))
188 | {
189 | builder.Append(" -vcodec copy");
190 | }
191 |
192 | if (_destType == TargetType.Live)
193 | {
194 | if (!_filters.Any(x => x.Name.Equals("AudioRate", StringComparison.OrdinalIgnoreCase)))
195 | {
196 | _filters.Add(new AudioRatelFilter(44100));
197 | }
198 |
199 | if (!_filters.Any(x => x.Name.Equals("AudioBitrate", StringComparison.OrdinalIgnoreCase)))
200 | {
201 | _filters.Add(new AudioBitrateFilter(128));
202 | }
203 | }
204 |
205 | var sourcefile = new MediaStream(_source);
206 |
207 | foreach (var filter in _filters.OrderBy(x => x.Rank))
208 | {
209 | filter.Source = sourcefile;
210 | builder.Append(filter.Execute());
211 | }
212 |
213 | if (_destType == TargetType.File)
214 | {
215 | var dir = Path.GetDirectoryName(_dest);
216 |
217 | if (string.IsNullOrWhiteSpace(dir))
218 | throw new ApplicationException("output directory error.");
219 |
220 | var fileName = Path.GetFileNameWithoutExtension(_dest);
221 |
222 | if (string.IsNullOrWhiteSpace(fileName))
223 | throw new ApplicationException("output filename is null");
224 |
225 | var code = GuessCode(_dest);
226 |
227 | if (!_filters.Any(x => x.Name.Equals("Segment", StringComparison.OrdinalIgnoreCase)))
228 | {
229 | // out%d.mp4
230 | builder.AppendFormat(" {0}{1}%d{2}", dir, fileName, code.Extension);
231 | }
232 | }
233 |
234 | if (_destType == TargetType.Live)
235 | {
236 | builder.Append(" -f flv ");
237 | builder.Append(_dest);
238 | }
239 |
240 | return builder.ToString();
241 | }
242 |
243 | private bool TestRtmpServer(string server)
244 | {
245 | var val = false;
246 |
247 | var @params = string.Format(
248 | -1 < _source.IndexOf("live=1", StringComparison.OrdinalIgnoreCase) ? "\" -i {0} live=1\"" : "\" -i {0}\"",
249 | server);
250 |
251 | //try 10 times
252 | var i = 0;
253 | do
254 | {
255 | try
256 | {
257 | var message = Processor.FFprobe(@params,
258 | id => Task.Run(async () =>
259 | {
260 | await Task.Delay(1000);
261 |
262 | /*
263 | * if rtmp is alive but no current stream output,
264 | * FFmpeg will be in a wait state forerver.
265 | * so after 1s, kill the process.
266 | */
267 |
268 | try
269 | {
270 | var p = Process.GetProcessById(id);
271 | //when the process was exited will throw a excetion.
272 | p.Kill();
273 | }
274 | catch (Exception)
275 | {
276 | }
277 |
278 | }));
279 |
280 | if (message.Equals("error", StringComparison.OrdinalIgnoreCase))
281 | {
282 | throw new ApplicationException("error");
283 | }
284 |
285 | val = true;
286 | i = 10;
287 | }
288 | catch (Exception)
289 | {
290 | i += 1;
291 | }
292 |
293 | } while (i < 10);
294 |
295 | return val;
296 | }
297 | }
298 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Executor/Processor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 |
5 | namespace FFmpegSharp.Executor
6 | {
7 | internal class Processor
8 | {
9 | internal static string FFmpeg(string @params, Action onStart = null)
10 | {
11 | return Execute(true, @params, onStart);
12 | }
13 |
14 | internal static string FFprobe(string @params, Action onStart = null)
15 | {
16 | return Execute(false, @params, onStart);
17 | }
18 |
19 | private static string Execute(bool userFFmpeg, string @params,Action onStart = null)
20 | {
21 | Process p = null;
22 | try
23 | {
24 | using (p = new Process())
25 | {
26 | var workdir = Path.GetDirectoryName(Config.Instance.FFmpegPath);
27 |
28 | if (string.IsNullOrWhiteSpace(workdir))
29 | throw new ApplicationException("work directory is null");
30 |
31 | var exePath = userFFmpeg ? Config.Instance.FFmpegPath : Config.Instance.FFprobePath;
32 |
33 | var info = new ProcessStartInfo(exePath)
34 | {
35 | Arguments = @params,
36 | CreateNoWindow = true,
37 | RedirectStandardError = true,
38 | RedirectStandardOutput = true,
39 | UseShellExecute = false,
40 | WorkingDirectory = workdir
41 | };
42 |
43 | p.StartInfo = info;
44 | p.Start();
45 |
46 | if (null != onStart)
47 | {
48 | onStart.Invoke(p.Id);
49 | }
50 |
51 | var message = string.Empty;
52 |
53 | if (userFFmpeg)
54 | {
55 | while (!p.StandardError.EndOfStream)
56 | {
57 | message =p.StandardError.ReadLine();
58 | }
59 | }
60 | else
61 | {
62 | message = p.StandardOutput.ReadToEnd();
63 | }
64 |
65 | p.WaitForExit();
66 |
67 | return message;
68 | }
69 | }
70 | finally
71 | {
72 | if (null != p)
73 | {
74 | p.Close();
75 | p.Dispose();
76 | }
77 | }
78 |
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/FFmpegSharp/Executor/TargetType.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Executor
2 | {
3 | public enum TargetType
4 | {
5 | Default,
6 | File,
7 | Live,
8 | Picture
9 | }
10 | }
--------------------------------------------------------------------------------
/FFmpegSharp/FFmpegSharp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {F6C4359B-766E-40EE-820C-FA7865CAC400}
8 | Library
9 | Properties
10 | FFmpegSharp
11 | FFmpegSharp
12 | v4.5
13 | 512
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 |
34 | ..\packages\Newtonsoft.Json.6.0.6\lib\net45\Newtonsoft.Json.dll
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 | PreserveNewest
94 |
95 |
96 | PreserveNewest
97 |
98 |
99 | PreserveNewest
100 |
101 |
102 | PreserveNewest
103 |
104 |
105 | PreserveNewest
106 |
107 |
108 | PreserveNewest
109 |
110 |
111 | PreserveNewest
112 |
113 |
114 | PreserveNewest
115 |
116 |
117 | PreserveNewest
118 |
119 |
120 | PreserveNewest
121 |
122 |
123 | PreserveNewest
124 |
125 |
126 | PreserveNewest
127 |
128 |
129 | PreserveNewest
130 |
131 |
132 | PreserveNewest
133 |
134 |
135 | PreserveNewest
136 |
137 |
138 | PreserveNewest
139 |
140 |
141 | PreserveNewest
142 |
143 |
144 | PreserveNewest
145 |
146 |
147 | PreserveNewest
148 |
149 |
150 | PreserveNewest
151 |
152 |
153 | PreserveNewest
154 |
155 |
156 | PreserveNewest
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
171 |
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/AudioBitrateFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | ///
4 | /// audio bitrate filter
5 | ///
6 | public class AudioBitrateFilter : FilterBase
7 | {
8 | public int Rate { get; private set; }
9 |
10 | ///
11 | /// audio bitrate
12 | ///
13 | /// (eg. 64k 96k 128k 192k 320k)
14 | public AudioBitrateFilter(int rate)
15 | {
16 | Name = "AudioBitrate";
17 | FilterType = FilterType.Audio;
18 | Rate = rate;
19 | Rank = 8;
20 | }
21 |
22 | public override string ToString()
23 | {
24 | if (Rate > 320)
25 | Rate = 320;
26 |
27 | if (Rate < 64)
28 | Rate = 64;
29 |
30 | return string.Format(" -b:a {0}k", Rate);
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/AudioChannelFilter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace FFmpegSharp.Filters
4 | {
5 | ///
6 | /// audio channel select filter
7 | ///
8 | public class AudioChannelFilter : FilterBase
9 | {
10 | public int Channel { get; private set; }
11 |
12 | public AudioChannelFilter(int channel)
13 | {
14 | Name = "AudioChannel";
15 | FilterType = FilterType.Audio;
16 | Channel = channel;
17 | Rank = 8;
18 | }
19 |
20 | public override string ToString()
21 | {
22 | if(Channel > Source.AudioInfo.Channels)
23 | throw new ApplicationException(string.Format("there only {0} channels in audio stream.", Source.AudioInfo.Channels));
24 |
25 | return string.Concat(" -ac ", Channel);
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/AudioRateFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | ///
4 | /// audio rate filter
5 | ///
6 | public class AudioRatelFilter : FilterBase
7 | {
8 | public int Rate { get; private set; }
9 |
10 | ///
11 | /// audio sampling rate (in Hz)
12 | ///
13 | /// in flv not above 44100
14 | public AudioRatelFilter(int rate)
15 | {
16 | Name = "AudioRate";
17 | FilterType = FilterType.Audio;
18 | Rate = rate;
19 | Rank = 8;
20 | }
21 |
22 | public override string ToString()
23 | {
24 | return string.Concat(" -ar ", Rate);
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/DisableVideoFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | ///
4 | /// audio channel select filter
5 | ///
6 | public class DisableVideoFilter : FilterBase
7 | {
8 |
9 | public DisableVideoFilter()
10 | {
11 | Name = "DisableVideo";
12 | FilterType = FilterType.Video;
13 | Rank = 8;
14 | }
15 |
16 | public override string ToString()
17 | {
18 | return " -vn";
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/Extentions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 |
4 | namespace FFmpegSharp.Filters
5 | {
6 | public static class Extentions
7 | {
8 | public static string GetDescription(this X264Preset value)
9 | {
10 | var type = value.GetType();
11 | var name = Enum.GetName(type, value);
12 |
13 | if (name == null) return null;
14 |
15 | var field = type.GetField(name);
16 |
17 | if (field == null) return null;
18 |
19 | var attr =
20 | Attribute.GetCustomAttribute(field,
21 | typeof(DescriptionAttribute)) as DescriptionAttribute;
22 |
23 | return attr != null ? attr.Description : null;
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/FilterBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using FFmpegSharp.Media;
3 |
4 | namespace FFmpegSharp.Filters
5 | {
6 | public abstract class FilterBase : IFilter
7 | {
8 | public MediaStream Source = null;
9 |
10 | public int Rank { get; protected set; }
11 | public string Name { get; protected set; }
12 | protected FilterType FilterType { get; set; }
13 |
14 | protected FilterBase()
15 | {
16 | Rank = 9;
17 | }
18 |
19 | protected virtual void ValidateVideoStream()
20 | {
21 | if(null == Source)
22 | throw new ApplicationException("source file is null.");
23 |
24 | if(null == Source.VideoInfo)
25 | throw new ApplicationException("non video stream found in source file.");
26 | }
27 |
28 | protected virtual void ValidateAudioStream()
29 | {
30 | if (null == Source)
31 | throw new ApplicationException("source file is null.");
32 |
33 | if (null == Source.AudioInfo)
34 | throw new ApplicationException("non audio stream found in source file.");
35 | }
36 |
37 | public string Execute()
38 | {
39 | switch (FilterType)
40 | {
41 | case FilterType.Audio:
42 | ValidateAudioStream();
43 | break;
44 | case FilterType.Video:
45 | ValidateVideoStream();
46 | break;
47 | default:
48 | throw new ApplicationException("unknown filter type.");
49 | }
50 | return ToString();
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/FilterType.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public enum FilterType
4 | {
5 | Video,
6 | Audio
7 | }
8 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/IFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public interface IFilter
4 | {
5 | string Execute();
6 | }
7 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/ImageWatermarkFilter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.IO;
4 | using System.Text;
5 |
6 | namespace FFmpegSharp.Filters
7 | {
8 | public class ImageWatermarkFilter : FilterBase
9 | {
10 | public string ImageFile { get; private set; }
11 |
12 | public WatermarkPosition Position { get; private set; }
13 | public Point Offset { get; private set; }
14 |
15 | public ImageWatermarkFilter(string imageFile, WatermarkPosition position, Point offset)
16 | {
17 | Name = "ImageWatermark";
18 | FilterType = FilterType.Video;
19 | ImageFile = imageFile;
20 | Position = position;
21 | Offset = offset;
22 | Rank = 0;
23 | }
24 |
25 | public ImageWatermarkFilter(string imageFile, WatermarkPosition position)
26 | {
27 | Name = "ImageWatermark";
28 | FilterType = FilterType.Video;
29 | ImageFile = imageFile;
30 | Position = position;
31 | Offset = new Point(10, 10);
32 | Rank = 0;
33 | }
34 |
35 | public override string ToString()
36 | {
37 | if (!File.Exists(ImageFile))
38 | throw new ApplicationException("image file not exists.");
39 |
40 | var builder = new StringBuilder();
41 |
42 | string overlayFormat;
43 |
44 | switch (Position)
45 | {
46 | case WatermarkPosition.TopLeft:
47 | overlayFormat = "{0}:{1}";
48 | break;
49 | case WatermarkPosition.TopRight:
50 | overlayFormat = "main_w-overlay_w-{0}:{1}";
51 | break;
52 | case WatermarkPosition.BottomLeft:
53 | overlayFormat = "{0}:main_h-overlay_h-{1}";
54 | break;
55 | case WatermarkPosition.BottomRight:
56 | overlayFormat = "main_w-overlay_w-{0}:main_h-overlay_h-{1}";
57 | break;
58 | case WatermarkPosition.Center:
59 | overlayFormat = "(main_w-overlay_w)/2-{0}:(main_h-overlay_h)/2-{1}";
60 | break;
61 | case WatermarkPosition.MiddleLeft:
62 | overlayFormat = "{0}:(main_h-overlay_h)/2-{1}";
63 | break;
64 | case WatermarkPosition.MiddleRight:
65 | overlayFormat = "main_w-overlay_w-{0}:(main_h-overlay_h)/2-{1}";
66 | break;
67 | case WatermarkPosition.CenterTop:
68 | overlayFormat = "(main_w-overlay_w)/2-{0}:{1}";
69 | break;
70 | case WatermarkPosition.CenterBottom:
71 | overlayFormat = "(main_w-overlay_w)/2-{0}:main_h-overlay_h-{1}";
72 | break;
73 |
74 | default:
75 | throw new ArgumentException("unknown wartermark position");
76 |
77 | }
78 |
79 | var overlayPostion = String.Format(overlayFormat, Offset.X, Offset.Y);
80 |
81 | builder.AppendFormat(" -vf \"movie=\\'{0}\\' [watermark]; [in][watermark] overlay={1} [out]\"",
82 | ImageFile.Replace("\\", "\\\\"), overlayPostion);
83 |
84 | return builder.ToString();
85 | }
86 | }
87 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/ResizeFilter.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Drawing;
3 | using FFmpegSharp.Utils;
4 |
5 | namespace FFmpegSharp.Filters
6 | {
7 | ///
8 | /// video resize filter
9 | ///
10 | public class ResizeFilter : FilterBase
11 | {
12 | private static readonly Dictionary Sizes = new Dictionary
13 | {
14 | {Resolution.X240P, new Size(424, 240)},
15 | {Resolution.X360P, new Size(640, 360)},
16 | {Resolution.X480P, new Size(848, 480)},
17 | {Resolution.X720P, new Size(1280, 720)},
18 | {Resolution.X1080P, new Size(1920, 1080)},
19 | };
20 |
21 | public Resolution Resolution { get; private set; }
22 |
23 |
24 | public ResizeFilter(Resolution resolution = Resolution.X480P)
25 | {
26 | Name = "Resize";
27 | FilterType = FilterType.Video;
28 | Resolution = resolution;
29 |
30 | }
31 |
32 | public override string ToString()
33 | {
34 | var size = Sizes[Resolution];
35 |
36 | return string.Format(" -s {0}x{1} ", size.Width, size.Height);
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/ResizeType.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public enum ResizeType
4 | {
5 | Fixed,
6 | ///
7 | /// default value.
8 | ///
9 | Scale
10 | }
11 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/Resolution.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public enum Resolution
4 | {
5 | X240P,
6 | X360P,
7 | X480P,
8 | X720P,
9 | X1080P
10 | }
11 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/SegmentFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public class SegmentFilter : FilterBase
4 | {
5 | public int SegmentTime { get; private set; }
6 |
7 | public SegmentFilter(int segmentTime)
8 | {
9 | Name = "Segment";
10 | FilterType = FilterType.Video;
11 | Rank = 5;
12 | SegmentTime = segmentTime;
13 | }
14 |
15 | public override string ToString()
16 | {
17 | return string.Format(" -f segment -segment_time {0} -reset_timestamps 1", SegmentTime);
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/SnapshotFilter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.IO;
4 | using System.Text;
5 | using FFmpegSharp.Utils;
6 |
7 | namespace FFmpegSharp.Filters
8 | {
9 | public class SnapshotFilter : FilterBase
10 | {
11 | public int? Number { get; private set; }
12 | public TimeSpan? Time { get; private set; }
13 | public string OutputPath { get; private set; }
14 | public int Width { get; private set; }
15 | public int Height { get; private set; }
16 | public ResizeType ResizeType { get; private set; }
17 |
18 | ///
19 | /// create multiple snapshot.
20 | ///
21 | ///
22 | ///
23 | ///
24 | /// number of snapshot
25 | ///
26 | public SnapshotFilter(string outputPath, int width,int height, int number = 1, ResizeType type = ResizeType.Scale)
27 | {
28 |
29 | Name = "Snapshot";
30 | FilterType = FilterType.Video;
31 | OutputPath = outputPath;
32 | Width = width;
33 | Height = height;
34 | Rank = 6;
35 | ResizeType = type;
36 | if (number <= 1)
37 | {
38 | Number = null;
39 | Time = new TimeSpan(0, 0, 0, 1);
40 | }
41 | else
42 | {
43 | Number = number;
44 | Time = null;
45 | }
46 | }
47 |
48 | ///
49 | /// create single snapshot at the fixed time.
50 | ///
51 | ///
52 | ///
53 | ///
54 | ///
55 | ///
56 | public SnapshotFilter(string outputPath, int width, int height, TimeSpan time, ResizeType type = ResizeType.Scale)
57 | {
58 | Name = "Snapshot";
59 | FilterType = FilterType.Video;
60 | OutputPath = outputPath;
61 | Width = width;
62 | Height = height;
63 | Time = time;
64 | ResizeType = type;
65 | Number = null;
66 | Rank = 6;
67 | }
68 |
69 |
70 | public override string ToString()
71 | {
72 | //ffmpeg -i test.mp4 -f image2 -ss 00:00:14.435 -s 960*550 -vframes 1 out.jpg
73 | //ffmpeg -i test.mp4 -ss 00:00:14.435 -s 960*550 -f image2 -vframes 1 out.jpg
74 | //ffmpeg -i input.flv -f image2 -vf fps=fps=1 out%d.png
75 |
76 | var builder = new StringBuilder();
77 |
78 | builder.Append(" -i ");
79 | builder.Append(Source.FilePath);
80 | builder.Append(" -f image2");
81 |
82 | if (ResizeType == ResizeType.Scale)
83 | {
84 | var sourceSize = new Size(Source.VideoInfo.Width, Source.VideoInfo.Height);
85 | var resultSize = SizeUtils.CalculateOutSize(sourceSize, Width, Height);
86 |
87 | builder.AppendFormat(" -s {0}x{1}", resultSize.Width, resultSize.Height);
88 | }
89 | else
90 | {
91 | builder.AppendFormat(" -s {0}x{1}", Width, Height);
92 | }
93 |
94 | var dir = Path.GetDirectoryName(OutputPath);
95 |
96 | if (string.IsNullOrEmpty(dir))
97 | throw new ApplicationException("snapshot outpath directory is null.");
98 |
99 | if (!Directory.Exists(dir))
100 | {
101 | Directory.CreateDirectory(dir);
102 | }
103 |
104 | var filename = Path.GetFileNameWithoutExtension(OutputPath);
105 |
106 | if (string.IsNullOrEmpty(filename))
107 | throw new ApplicationException("snapshot outpath filename is null.");
108 |
109 | var ext = Path.GetExtension(OutputPath);
110 |
111 | if (string.IsNullOrEmpty(ext))
112 | ext = ".jpg";
113 |
114 |
115 | if (null != Time)
116 | {
117 | builder.AppendFormat(" -ss {0} -vframes 1", Time.Value);
118 | builder.Append(" ");
119 | builder.Append(OutputPath);
120 | }
121 |
122 | if (null != Number)
123 | {
124 | var duration = Source.VideoInfo.Duration;
125 |
126 | var num = duration.TotalSeconds/(Number.Value - 1);
127 |
128 | builder.AppendFormat(" -vf fps=fps=1/{0} {1}\\{2}%d{3}", Math.Floor(num), dir, filename, ext);
129 | }
130 |
131 | return builder.ToString();
132 | }
133 | }
134 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/VideoBitrateFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public class VideoBitrateFilter : FilterBase
4 | {
5 | public float Bitrate { get; private set; }
6 |
7 | ///
8 | /// set frame rate
9 | ///
10 | /// Hz value, fraction or abbreviation(eg. 64k)
11 | public VideoBitrateFilter(float bitrate)
12 | {
13 | Name = "VideoBitrate";
14 | FilterType = FilterType.Video;
15 | Bitrate = bitrate;
16 | Rank = 6;
17 | }
18 |
19 | public override string ToString()
20 | {
21 | return string.Concat(" -b:v ", Bitrate);
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/VideoRateFilter.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public class VideoRateFilter : FilterBase
4 | {
5 | public int Rate { get; private set; }
6 |
7 | ///
8 | /// set frame rate
9 | ///
10 | /// Hz value, fraction or abbreviation
11 | public VideoRateFilter(int rate)
12 | {
13 | Name = "VideoRate";
14 | FilterType = FilterType.Video;
15 | Rate = rate;
16 | Rank = 6;
17 | }
18 |
19 | public override string ToString()
20 | {
21 | return string.Concat(" -r ", Rate);
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/WatermarkPosition.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Filters
2 | {
3 | public enum WatermarkPosition
4 | {
5 | TopLeft,
6 | TopRight,
7 | BottomLeft,
8 | BottomRight,
9 | Center,
10 | MiddleLeft,
11 | MiddleRight,
12 | CenterTop,
13 | CenterBottom,
14 | }
15 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/X264Filter.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * resource:
3 | * https://trac.ffmpeg.org/wiki/Encode/H.264
4 | * http://mewiki.project357.com/wiki/X264_Settings
5 | */
6 | using System.Text;
7 |
8 | namespace FFmpegSharp.Filters
9 | {
10 | public class X264Filter : FilterBase
11 | {
12 | ///
13 | /// change options to trade off compression efficiency against encoding speed.
14 | /// default: Medium
15 | ///
16 | public X264Preset Preset { get; set; }
17 | ///
18 | /// set x264 to encode the movie in Constant Quantizer mode.
19 | /// range 0-54.
20 | /// a setting of 0 will produce lossless output.
21 | /// usually 21-26
22 | ///
23 | public int? ConstantQuantizer { get; set; }
24 | public int? MaxRate { get; set; }
25 | public int? MinRate { get; set; }
26 |
27 | //todo -movflags faststart
28 |
29 | public X264Filter()
30 | {
31 | Name = "X264";
32 | FilterType = FilterType.Video;
33 | Preset = X264Preset.Medium;
34 | Rank = 1;
35 | }
36 |
37 | public override string ToString()
38 | {
39 | var builder = new StringBuilder();
40 |
41 | builder.Append(" -c:v libx264");
42 |
43 | if (X264Preset.Medium != Preset)
44 | {
45 | var param = Preset.GetDescription();
46 |
47 | if (!string.IsNullOrWhiteSpace(param))
48 | {
49 | builder.AppendFormat(" -preset {0}", param);
50 | }
51 | }
52 |
53 | if (null != ConstantQuantizer)
54 | {
55 | if (ConstantQuantizer < 0 || ConstantQuantizer > 51)
56 | {
57 | ConstantQuantizer = 22;
58 | }
59 |
60 | builder.AppendFormat(" -qp {0}", ConstantQuantizer.Value);
61 | }
62 |
63 | return builder.ToString();
64 | }
65 | }
66 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Filters/X264Preset .cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 |
3 | namespace FFmpegSharp.Filters
4 | {
5 | public enum X264Preset
6 | {
7 | [Description("ultrafast")]
8 | Ultrafast,
9 | [Description("superfast")]
10 | Superfast,
11 | [Description("veryfast")]
12 | Veryfast,
13 | [Description("faster")]
14 | Faster,
15 | [Description("fast")]
16 | Fast,
17 | [Description("medium")]
18 | Medium,
19 | [Description("slow")]
20 | Slow,
21 | [Description("slower")]
22 | Slower,
23 | [Description("veryslow")]
24 | Veryslow,
25 | [Description("placebo")]
26 | Placebo
27 | }
28 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Media/AudioInfo.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Media
2 | {
3 | public class AudioInfo : StreamInfoBase
4 | {
5 | public int Channels { get; set; }
6 | }
7 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Media/MediaStream.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using FFmpegSharp.Executor;
8 | using Newtonsoft.Json.Linq;
9 |
10 | namespace FFmpegSharp.Media
11 | {
12 | public class MediaStream
13 | {
14 | public MediaStream(string path)
15 | {
16 | if (!File.Exists(path))
17 | {
18 | throw new ApplicationException(string.Format("file not found in the path: {0} .", path));
19 | }
20 |
21 | //try 10 times
22 | var i = 0;
23 | do
24 | {
25 | try
26 | {
27 | var infostr = GetStreamInfo(path);
28 | LoadInfo(infostr);
29 |
30 | i = 10;
31 | }
32 | catch (Exception)
33 | {
34 | i += 1;
35 | }
36 |
37 | } while (i < 10);
38 |
39 | FilePath = path;
40 |
41 | }
42 |
43 | public VideoInfo VideoInfo { get; private set; }
44 | public AudioInfo AudioInfo { get; private set; }
45 | public string FilePath { get; set; }
46 |
47 | private static string GetStreamInfo(string path)
48 | {
49 | const string paramStr = " -v quiet -print_format json -hide_banner -show_format -show_streams -pretty {0}";
50 | var @param = string.Format(paramStr, path);
51 |
52 | var message = Processor.FFprobe(@param,
53 | id => Task.Run(async () =>
54 | {
55 | await Task.Delay(1000);
56 |
57 | /*
58 | * if rtmp is alive but no current stream output,
59 | * FFmpeg will be in a wait state forerver.
60 | * so after 1s, kill the process.
61 | */
62 |
63 | try
64 | {
65 | var p = Process.GetProcessById(id);//when the process was exited will throw a excetion.
66 | p.Kill();
67 | }
68 | catch (Exception)
69 | {
70 | }
71 |
72 | }));
73 |
74 | if (message.Equals("error", StringComparison.OrdinalIgnoreCase))
75 | {
76 | throw new ApplicationException("there some errors on ffprobe execute");
77 | }
78 |
79 | return message;
80 | }
81 |
82 | private void LoadInfo(string infostr)
83 | {
84 | var streams = JObject.Parse(infostr).SelectToken("streams", false).ToObject>();
85 | var mediaInfo = JObject.Parse(infostr).SelectToken("format").ToObject();
86 |
87 | if (null == streams)
88 | {
89 | throw new ApplicationException("no stream found in the source.");
90 | }
91 |
92 | var videoStream = streams.FirstOrDefault(x => x.Type.Equals("video"));
93 |
94 | if (null != videoStream)
95 | {
96 | VideoInfo = new VideoInfo
97 | {
98 | CodecName = videoStream.CodecName,
99 | Height = videoStream.Height,
100 | Width = videoStream.Width,
101 | Duration = videoStream.Duration
102 | };
103 |
104 | if (VideoInfo.Duration.Ticks < 1)
105 | {
106 | VideoInfo.Duration = mediaInfo.Duration;
107 | }
108 | }
109 |
110 | var audioStream = streams.FirstOrDefault(x => x.Type.Equals("audio"));
111 |
112 | if (null != audioStream)
113 | {
114 | AudioInfo = new AudioInfo
115 | {
116 | CodecName = audioStream.CodecName,
117 | Channels = audioStream.Channels,
118 | Duration = audioStream.Duration,
119 | };
120 |
121 | if (AudioInfo.Duration.Ticks < 1)
122 | {
123 | AudioInfo.Duration = mediaInfo.Duration;
124 | }
125 | }
126 |
127 | }
128 | }
129 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Media/StreamInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Newtonsoft.Json;
3 |
4 | namespace FFmpegSharp.Media
5 | {
6 | [JsonObject]
7 | internal class StreamInfo
8 | {
9 | [JsonProperty("codec_long_name")]
10 | public string CodecName { get; set; }
11 | [JsonProperty("width")]
12 | public int Width { get; set; }
13 | [JsonProperty("height")]
14 | public int Height { get; set; }
15 | [JsonProperty("codec_type")]
16 | public string Type { get; set; }
17 | [JsonProperty("duration")]
18 | public TimeSpan Duration { get; set; }
19 | [JsonProperty("channels")]
20 | public int Channels { get; set; }
21 | }
22 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Media/StreamInfoBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace FFmpegSharp.Media
4 | {
5 | public class StreamInfoBase
6 | {
7 | public string CodecName { get; set; }
8 | public TimeSpan Duration { get; set; }
9 | }
10 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Media/StreamType.cs:
--------------------------------------------------------------------------------
1 | namespace FFmpegSharp.Media
2 | {
3 | public enum StreamType
4 | {
5 | Video,
6 | Audio
7 | }
8 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Media/TimeBase.cs:
--------------------------------------------------------------------------------
1 | //namespace FFmpegSharp.Media
2 | //{
3 | // public class TimeBase
4 | // {
5 | // ///
6 | // /// denominator
7 | // ///
8 | // public int Den { get; set; }
9 |
10 | // ///
11 | // /// numerator
12 | // ///
13 | // public int Num { get; set; }
14 | // }
15 | //}
--------------------------------------------------------------------------------
/FFmpegSharp/Media/VideoInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace FFmpegSharp.Media
4 | {
5 | public class VideoInfo : StreamInfoBase
6 | {
7 |
8 | public int Width { get; set; }
9 |
10 | public int Height { get; set; }
11 |
12 |
13 | }
14 | }
--------------------------------------------------------------------------------
/FFmpegSharp/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | [assembly: AssemblyTitle("FFmpegSharp")]
5 | [assembly: AssemblyDescription("")]
6 | [assembly: AssemblyConfiguration("")]
7 | [assembly: AssemblyCompany("Microsoft")]
8 | [assembly: AssemblyProduct("FFmpegSharp")]
9 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
10 | [assembly: AssemblyTrademark("")]
11 | [assembly: AssemblyCulture("")]
12 | [assembly: ComVisible(false)]
13 | [assembly: Guid("5c59a5b7-9737-46be-93ab-4e0e15b85001")]
14 | [assembly: AssemblyVersion("1.0.0.0")]
15 | [assembly: AssemblyFileVersion("1.0.0.0")]
16 |
--------------------------------------------------------------------------------
/FFmpegSharp/Utils/SizeUtils.cs:
--------------------------------------------------------------------------------
1 | using System.Drawing;
2 |
3 | namespace FFmpegSharp.Utils
4 | {
5 | internal class SizeUtils
6 | {
7 | ///
8 | /// calculate out size in scale
9 | ///
10 | /// source size
11 | /// max width
12 | /// max height
13 | ///
14 | internal static Size CalculateOutSize(Size source, int maxWidth, int maxHeight)
15 | {
16 | var result = new Size();
17 |
18 | double sourceScale = (double)source.Width / source.Height;
19 |
20 | double calculatedScale = (double)maxWidth / maxHeight;
21 |
22 | if (sourceScale < calculatedScale)
23 | {
24 | result.Width = (source.Width * maxHeight) / source.Height;
25 | result.Height = maxHeight;
26 | }
27 | else
28 | {
29 | result.Width = maxWidth;
30 | result.Height = (source.Height * maxWidth) / source.Width;
31 | }
32 |
33 | return result;
34 | }
35 | }
36 | }
--------------------------------------------------------------------------------
/FFmpegSharp/lib-list.txt:
--------------------------------------------------------------------------------
1 | if you want build this project,
2 | please donwload ffmpeg first.
3 |
4 | for x32 build with:
5 | http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-20141117-git-3f07dd6-win32-shared.7z
6 |
7 | for x64 build withd:
8 | http://ffmpeg.zeranoe.com/builds/win64/shared/ffmpeg-20141117-git-3f07dd6-win64-shared.7z
9 |
10 | after extract the files, copy the contents of the 'bin' folder to the path '/external/ffmpeg/x32(or x64)/'
--------------------------------------------------------------------------------
/FFmpegSharp/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### FFmpegSharp is a fluent api encapsulation of ffmpeg with C#
2 |
3 | ## Encode media(with snapshot)
4 | ```csharp
5 | var currentDir =
6 | new FileInfo(Uri.UnescapeDataString(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath));
7 |
8 | var inputPath = Path.Combine(appPath, "test.mov");
9 | var outputPath = Path.Combine(appPath, Guid.NewGuid().ToString());
10 | var image = Path.Combine(appPath, "logo.png");
11 |
12 | if (string.IsNullOrWhiteSpace(appPath))throw new ApplicationException("app path not found.");
13 |
14 |
15 | var inputPath = Path.Combine(appPath, "test.mov");
16 | var outputPath = Path.Combine(appPath, Guid.NewGuid().ToString());
17 |
18 | Encoder.Create()
19 | .WidthInput(inputPath)
20 | .WithFilter(new X264Filter { Preset = X264Preset.Faster, ConstantQuantizer = 18 })
21 | .WithFilter(new ImageWatermarkFilter(image, WatermarkPosition.TopRight))
22 | .WithFilter(new ResizeFilter(Resolution.X720P))
23 | .WithFilter(new SnapshotFilter(Path.Combine(appPath,"snapshot","out.png"),320,180,10))//with snapshot
24 | .To(outputPath)
25 | .Execute();
26 |
27 | ```
28 |
29 |
30 | ## Push a file to RTMP Server
31 | ```csharp
32 | Network.Create()
33 | .WithSource(inputPath)
34 | .WithDest("rtmp://192.168.10.12/live/stream")
35 | .WithFilter(new X264Filter{ConstantQuantizer = 20})
36 | .WithFilter(new ResizeFilter(980,550))
37 | .Push();
38 | ```
39 |
40 |
41 | ### FFmpegLib
42 | if you want build this project,
43 | please donwload ffmpeg lib first.
44 |
45 | for x32 build with:
46 | http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-20141117-git-3f07dd6-win32-shared.7z
47 |
48 | for x64 build withd:
49 | http://ffmpeg.zeranoe.com/builds/win64/shared/ffmpeg-20141117-git-3f07dd6-win64-shared.7z
50 |
51 | after extract the files, copy the contents of the 'bin' folder to the path '/external/ffmpeg/x32(or x64)/'
52 |
53 |
54 | ## License
55 |
56 | [MIT](https://github.com/at0717/FFmpegSharp/blob/master/LICENSE)
--------------------------------------------------------------------------------
/SampleApp/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SampleApp/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Reflection;
6 | using FFmpegSharp.Codes;
7 | using FFmpegSharp.Executor;
8 | using FFmpegSharp.Filters;
9 | using FFmpegSharp.Media;
10 |
11 | namespace SampleApp
12 | {
13 | class Program
14 | {
15 | static void Main(string[] args)
16 | {
17 | var currentDir =
18 | new FileInfo(Uri.UnescapeDataString(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath));
19 | var appPath = currentDir.DirectoryName;
20 |
21 | if (string.IsNullOrWhiteSpace(appPath))
22 | throw new ApplicationException("app path not found.");
23 |
24 | var inputPath = Path.Combine(appPath, "bbt.mkv");
25 | var outputPath = Path.Combine(appPath, Guid.NewGuid().ToString());
26 | var image = Path.Combine(appPath, "logo.png");
27 |
28 | Console.WriteLine("start...");
29 |
30 | Encoder.Create()
31 | .WidthInput(inputPath)
32 | .WithFilter(new X264Filter { Preset = X264Preset.Faster, ConstantQuantizer = 18 })
33 | .WithFilter(new ImageWatermarkFilter(image, WatermarkPosition.TopRight))
34 | .WithFilter(new ResizeFilter(Resolution.X720P))
35 | .WithFilter(new SnapshotFilter(Path.Combine(appPath,"output","output.png"),320,180,10))//with snapshot
36 | .To(outputPath)
37 | .Execute();
38 |
39 | //Network.Create()
40 | // .WithSource(inputPath)
41 | // .WithDest("rtmp://192.168.10.12/live/stream")
42 | // .WithFilter(new X264Filter{ConstantQuantizer = 20})
43 | // .WithFilter(new ResizeFilter(980,550))
44 | // .Push();
45 |
46 | Console.WriteLine("done.\npress any key to exit.");
47 |
48 | Console.ReadKey();
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/SampleApp/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | [assembly: AssemblyTitle("SampleApp")]
5 | [assembly: AssemblyDescription("")]
6 | [assembly: AssemblyConfiguration("")]
7 | [assembly: AssemblyCompany("Microsoft")]
8 | [assembly: AssemblyProduct("SampleApp")]
9 | [assembly: AssemblyCopyright("Copyright © Microsoft 2014")]
10 | [assembly: AssemblyTrademark("")]
11 | [assembly: AssemblyCulture("")]
12 | [assembly: ComVisible(false)]
13 | [assembly: Guid("3baf27ab-11ac-467c-ad98-d81b88770c4c")]
14 | [assembly: AssemblyVersion("1.0.0.0")]
15 | [assembly: AssemblyFileVersion("1.0.0.0")]
16 |
--------------------------------------------------------------------------------
/SampleApp/SampleApp.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {499A0AE4-485D-46B5-B194-36108523502B}
8 | Exe
9 | Properties
10 | SampleApp
11 | SampleApp
12 | v4.5
13 | 512
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | {f6c4359b-766e-40ee-820c-fa7865cac400}
53 | FFmpegSharp
54 |
55 |
56 |
57 |
58 | PreserveNewest
59 |
60 |
61 | PreserveNewest
62 |
63 |
64 |
65 |
72 |
--------------------------------------------------------------------------------
/SampleApp/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mscorlib/FFmpegSharp/bb24de78c13152c2d80a30e19dded4ee239c7a9e/SampleApp/logo.png
--------------------------------------------------------------------------------
/licenses/bzip2.txt:
--------------------------------------------------------------------------------
1 |
2 | --------------------------------------------------------------------------
3 |
4 | This program, "bzip2", the associated library "libbzip2", and all
5 | documentation, are copyright (C) 1996-2010 Julian R Seward. All
6 | rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions
10 | are met:
11 |
12 | 1. Redistributions of source code must retain the above copyright
13 | notice, this list of conditions and the following disclaimer.
14 |
15 | 2. The origin of this software must not be misrepresented; you must
16 | not claim that you wrote the original software. If you use this
17 | software in a product, an acknowledgment in the product
18 | documentation would be appreciated but is not required.
19 |
20 | 3. Altered source versions must be plainly marked as such, and must
21 | not be misrepresented as being the original software.
22 |
23 | 4. The name of the author may not be used to endorse or promote
24 | products derived from this software without specific prior written
25 | permission.
26 |
27 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
28 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
29 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
31 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33 | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
35 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 |
39 | Julian Seward, jseward@bzip.org
40 | bzip2/libbzip2 version 1.0.6 of 6 September 2010
41 |
42 | --------------------------------------------------------------------------
43 |
--------------------------------------------------------------------------------
/licenses/fontconfig.txt:
--------------------------------------------------------------------------------
1 | fontconfig/COPYING
2 |
3 | Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard
4 | Copyright © 2005 Patrick Lam
5 | Copyright © 2009 Roozbeh Pournader
6 | Copyright © 2008,2009 Red Hat, Inc.
7 | Copyright © 2008 Danilo Šegan
8 |
9 |
10 | Permission to use, copy, modify, distribute, and sell this software and its
11 | documentation for any purpose is hereby granted without fee, provided that
12 | the above copyright notice appear in all copies and that both that
13 | copyright notice and this permission notice appear in supporting
14 | documentation, and that the name of the author(s) not be used in
15 | advertising or publicity pertaining to distribution of the software without
16 | specific, written prior permission. The authors make no
17 | representations about the suitability of this software for any purpose. It
18 | is provided "as is" without express or implied warranty.
19 |
20 | THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
21 | INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
22 | EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
23 | CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
24 | DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
25 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
26 | PERFORMANCE OF THIS SOFTWARE.
27 |
28 |
--------------------------------------------------------------------------------
/licenses/freetype.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mscorlib/FFmpegSharp/bb24de78c13152c2d80a30e19dded4ee239c7a9e/licenses/freetype.txt
--------------------------------------------------------------------------------
/licenses/frei0r.txt:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Library General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C)
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License
307 | along with this program; if not, write to the Free Software
308 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
309 |
310 |
311 | Also add information on how to contact you by electronic and paper mail.
312 |
313 | If the program is interactive, make it output a short notice like this
314 | when it starts in an interactive mode:
315 |
316 | Gnomovision version 69, Copyright (C) year name of author
317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 | This is free software, and you are welcome to redistribute it
319 | under certain conditions; type `show c' for details.
320 |
321 | The hypothetical commands `show w' and `show c' should show the appropriate
322 | parts of the General Public License. Of course, the commands you use may
323 | be called something other than `show w' and `show c'; they could even be
324 | mouse-clicks or menu items--whatever suits your program.
325 |
326 | You should also get your employer (if you work as a programmer) or your
327 | school, if any, to sign a "copyright disclaimer" for the program, if
328 | necessary. Here is a sample; alter the names:
329 |
330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
332 |
333 | , 1 April 1989
334 | Ty Coon, President of Vice
335 |
336 | This General Public License does not permit incorporating your program into
337 | proprietary programs. If your program is a subroutine library, you may
338 | consider it more useful to permit linking proprietary applications with the
339 | library. If this is what you want to do, use the GNU Library General
340 | Public License instead of this License.
341 |
--------------------------------------------------------------------------------
/licenses/libass.txt:
--------------------------------------------------------------------------------
1 | Permission to use, copy, modify, and/or distribute this software for any
2 | purpose with or without fee is hereby granted, provided that the above
3 | copyright notice and this permission notice appear in all copies.
4 |
5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
6 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
7 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
8 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
9 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
10 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
11 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
12 |
--------------------------------------------------------------------------------
/licenses/libcaca.txt:
--------------------------------------------------------------------------------
1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2 | Version 2, December 2004
3 |
4 | Copyright (C) 2004 Sam Hocevar
5 | 14 rue de Plaisance, 75014 Paris, France
6 | Everyone is permitted to copy and distribute verbatim or modified
7 | copies of this license document, and changing it is allowed as long
8 | as the name is changed.
9 |
10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12 |
13 | 0. You just DO WHAT THE FUCK YOU WANT TO.
14 |
15 |
--------------------------------------------------------------------------------
/licenses/libgsm.txt:
--------------------------------------------------------------------------------
1 | Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
2 | Technische Universitaet Berlin
3 |
4 | Any use of this software is permitted provided that this notice is not
5 | removed and that neither the authors nor the Technische Universitaet Berlin
6 | are deemed to have made any representations as to the suitability of this
7 | software for any purpose nor are held responsible for any defects of
8 | this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
9 |
10 | As a matter of courtesy, the authors request to be informed about uses
11 | this software has found, about bugs in this software, and about any
12 | improvements that may be of general interest.
13 |
14 | Berlin, 28.11.1994
15 | Jutta Degener
16 | Carsten Bormann
17 |
18 | oOo
19 |
20 | Since the original terms of 15 years ago maybe do not make our
21 | intentions completely clear given today's refined usage of the legal
22 | terms, we append this additional permission:
23 |
24 | Permission to use, copy, modify, and distribute this software
25 | for any purpose with or without fee is hereby granted,
26 | provided that this notice is not removed and that neither
27 | the authors nor the Technische Universitaet Berlin are
28 | deemed to have made any representations as to the suitability
29 | of this software for any purpose nor are held responsible
30 | for any defects of this software. THERE IS ABSOLUTELY NO
31 | WARRANTY FOR THIS SOFTWARE.
32 |
33 | Berkeley/Bremen, 05.04.2009
34 | Jutta Degener
35 | Carsten Bormann
36 |
--------------------------------------------------------------------------------
/licenses/libilbc.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2011, The WebRTC project authors. All rights reserved.
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are
5 | met:
6 |
7 | * Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in
12 | the documentation and/or other materials provided with the
13 | distribution.
14 |
15 | * Neither the name of Google nor the names of its contributors may
16 | be used to endorse or promote products derived from this software
17 | without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 |
--------------------------------------------------------------------------------
/licenses/libmodplug.txt:
--------------------------------------------------------------------------------
1 | ModPlug-XMMS and libmodplug are now in the public domain.
2 |
--------------------------------------------------------------------------------
/licenses/libtheora.txt:
--------------------------------------------------------------------------------
1 | Copyright (C) 2002-2009 Xiph.org Foundation
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions
5 | are met:
6 |
7 | - Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | - Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | - Neither the name of the Xiph.org Foundation nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
22 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/licenses/libvorbis.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2002-2008 Xiph.org Foundation
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions
5 | are met:
6 |
7 | - Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | - Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in the
12 | documentation and/or other materials provided with the distribution.
13 |
14 | - Neither the name of the Xiph.org Foundation nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
22 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/licenses/libvpx.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010, The WebM Project authors. All rights reserved.
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted provided that the following conditions are
5 | met:
6 |
7 | * Redistributions of source code must retain the above copyright
8 | notice, this list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright
11 | notice, this list of conditions and the following disclaimer in
12 | the documentation and/or other materials provided with the
13 | distribution.
14 |
15 | * Neither the name of Google, nor the WebM Project, nor the names
16 | of its contributors may be used to endorse or promote products
17 | derived from this software without specific prior written
18 | permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 |
32 |
--------------------------------------------------------------------------------
/licenses/opencore-amr.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction, and
10 | distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by the
13 | copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all other
16 | entities that control, are controlled by, or are under common control with
17 | that entity. For the purposes of this definition, "control" means (i) the
18 | power, direct or indirect, to cause the direction or management of such
19 | entity, whether by contract or otherwise, or (ii) ownership of fifty
20 | percent (50%) or more of the outstanding shares, or (iii) beneficial
21 | ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity exercising
24 | permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation source,
28 | and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical transformation
31 | or translation of a Source form, including but not limited to compiled
32 | object code, generated documentation, and conversions to other media types.
33 |
34 | "Work" shall mean the work of authorship, whether in Source or Object form,
35 | made available under the License, as indicated by a copyright notice that
36 | is included in or attached to the work (an example is provided in the
37 | Appendix below).
38 |
39 | "Derivative Works" shall mean any work, whether in Source or Object form,
40 | that is based on (or derived from) the Work and for which the editorial
41 | revisions, annotations, elaborations, or other modifications represent, as
42 | a whole, an original work of authorship. For the purposes of this License,
43 | Derivative Works shall not include works that remain separable from, or
44 | merely link (or bind by name) to the interfaces of, the Work and Derivative
45 | Works thereof.
46 |
47 | "Contribution" shall mean any work of authorship, including the original
48 | version of the Work and any modifications or additions to that Work or
49 | Derivative Works thereof, that is intentionally submitted to Licensor for
50 | inclusion in the Work by the copyright owner or by an individual or Legal
51 | Entity authorized to submit on behalf of the copyright owner. For the
52 | purposes of this definition, "submitted" means any form of electronic,
53 | verbal, or written communication sent to the Licensor or its
54 | representatives, including but not limited to communication on electronic
55 | mailing lists, source code control systems, and issue tracking systems that
56 | are managed by, or on behalf of, the Licensor for the purpose of discussing
57 | and improving the Work, but excluding communication that is conspicuously
58 | marked or otherwise designated in writing by the copyright owner as "Not a
59 | Contribution."
60 |
61 | "Contributor" shall mean Licensor and any individual or Legal Entity on
62 | behalf of whom a Contribution has been received by Licensor and
63 | subsequently incorporated within the Work.
64 |
65 | 2. Grant of Copyright License. Subject to the terms and conditions of this
66 | License, each Contributor hereby grants to You a perpetual, worldwide,
67 | non-exclusive, no-charge, royalty-free, irrevocable copyright license to
68 | reproduce, prepare Derivative Works of, publicly display, publicly perform,
69 | sublicense, and distribute the Work and such Derivative Works in Source or
70 | Object form.
71 |
72 | 3. Grant of Patent License. Subject to the terms and conditions of this
73 | License, each Contributor hereby grants to You a perpetual, worldwide,
74 | non-exclusive, no-charge, royalty-free, irrevocable (except as stated in
75 | this section) patent license to make, have made, use, offer to sell, sell,
76 | import, and otherwise transfer the Work, where such license applies only to
77 | those patent claims licensable by such Contributor that are necessarily
78 | infringed by their Contribution(s) alone or by combination of their
79 | Contribution(s) with the Work to which such Contribution(s) was submitted.
80 | If You institute patent litigation against any entity (including a
81 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a
82 | Contribution incorporated within the Work constitutes direct or
83 | contributory patent infringement, then any patent licenses granted to You
84 | under this License for that Work shall terminate as of the date such
85 | litigation is filed.
86 |
87 | 4. Redistribution. You may reproduce and distribute copies of the Work or
88 | Derivative Works thereof in any medium, with or without modifications, and
89 | in Source or Object form, provided that You meet the following conditions:
90 |
91 | 1. You must give any other recipients of the Work or Derivative Works a
92 | copy of this License; and
93 |
94 | 2. You must cause any modified files to carry prominent notices stating
95 | that You changed the files; and
96 |
97 | 3. You must retain, in the Source form of any Derivative Works that You
98 | distribute, all copyright, patent, trademark, and attribution notices from
99 | the Source form of the Work, excluding those notices that do not pertain to
100 | any part of the Derivative Works; and
101 |
102 | 4. If the Work includes a "NOTICE" text file as part of its
103 | distribution, then any Derivative Works that You distribute must include a
104 | readable copy of the attribution notices contained within such NOTICE file,
105 | excluding those notices that do not pertain to any part of the Derivative
106 | Works, in at least one of the following places: within a NOTICE text file
107 | distributed as part of the Derivative Works; within the Source form or
108 | documentation, if provided along with the Derivative Works; or, within a
109 | display generated by the Derivative Works, if and wherever such third-party
110 | notices normally appear. The contents of the NOTICE file are for
111 | informational purposes only and do not modify the License. You may add Your
112 | own attribution notices within Derivative Works that You distribute,
113 | alongside or as an addendum to the NOTICE text from the Work, provided that
114 | such additional attribution notices cannot be construed as modifying the
115 | License.
116 |
117 | You may add Your own copyright statement to Your modifications and may
118 | provide additional or different license terms and conditions for use,
119 | reproduction, or distribution of Your modifications, or for any such
120 | Derivative Works as a whole, provided Your use, reproduction, and
121 | distribution of the Work otherwise complies with the conditions stated in
122 | this License.
123 |
124 | 5. Submission of Contributions. Unless You explicitly state otherwise, any
125 | Contribution intentionally submitted for inclusion in the Work by You to
126 | the Licensor shall be under the terms and conditions of this License,
127 | without any additional terms or conditions. Notwithstanding the above,
128 | nothing herein shall supersede or modify the terms of any separate license
129 | agreement you may have executed with Licensor regarding such Contributions.
130 |
131 | 6. Trademarks. This License does not grant permission to use the trade
132 | names, trademarks, service marks, or product names of the Licensor, except
133 | as required for reasonable and customary use in describing the origin of
134 | the Work and reproducing the content of the NOTICE file.
135 |
136 | 7. Disclaimer of Warranty. Unless required by applicable law or agreed to
137 | in writing, Licensor provides the Work (and each Contributor provides its
138 | Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
139 | KIND, either express or implied, including, without limitation, any
140 | warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or
141 | FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for
142 | determining the appropriateness of using or redistributing the Work and
143 | assume any risks associated with Your exercise of permissions under this
144 | License.
145 |
146 | 8. Limitation of Liability. In no event and under no legal theory, whether
147 | in tort (including negligence), contract, or otherwise, unless required by
148 | applicable law (such as deliberate and grossly negligent acts) or agreed to
149 | in writing, shall any Contributor be liable to You for damages, including
150 | any direct, indirect, special, incidental, or consequential damages of any
151 | character arising as a result of this License or out of the use or
152 | inability to use the Work (including but not limited to damages for loss of
153 | goodwill, work stoppage, computer failure or malfunction, or any and all
154 | other commercial damages or losses), even if such Contributor has been
155 | advised of the possibility of such damages.
156 |
157 | 9. Accepting Warranty or Additional Liability. While redistributing the
158 | Work or Derivative Works thereof, You may choose to offer, and charge a fee
159 | for, acceptance of support, warranty, indemnity, or other liability
160 | obligations and/or rights consistent with this License. However, in
161 | accepting such obligations, You may act only on Your own behalf and on Your
162 | sole responsibility, not on behalf of any other Contributor, and only if
163 | You agree to indemnify, defend, and hold each Contributor harmless for any
164 | liability incurred by, or claims asserted against, such Contributor by
165 | reason of your accepting any such warranty or additional liability.
166 |
167 | END OF TERMS AND CONDITIONS
168 |
169 | APPENDIX: How to apply the Apache License to your work
170 |
171 | To apply the Apache License to your work, attach the following boilerplate
172 | notice, with the fields enclosed by brackets "[]" replaced with your own
173 | identifying information. (Don't include the brackets!) The text should be
174 | enclosed in the appropriate comment syntax for the file format. We also
175 | recommend that a file or class name and description of purpose be included
176 | on the same "printed page" as the copyright notice for easier
177 | identification within third-party archives.
178 |
179 | Copyright [yyyy] [name of copyright owner]
180 |
181 | Licensed under the Apache License, Version 2.0 (the "License"); you may
182 | not use this file except in compliance with the License. You may obtain a
183 | copy of the License at
184 |
185 | http://www.apache.org/licenses/LICENSE-2.0
186 |
187 | Unless required by applicable
188 | law or agreed to in writing, software distributed under the License is
189 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
190 | KIND, either express or implied. See the License for the specific language
191 | governing permissions and limitations under the License.
192 |
--------------------------------------------------------------------------------
/licenses/openjpeg.txt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2002-2012, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
3 | * Copyright (c) 2002-2012, Professor Benoit Macq
4 | * Copyright (c) 2003-2012, Antonin Descampe
5 | * Copyright (c) 2003-2009, Francois-Olivier Devaux
6 | * Copyright (c) 2005, Herve Drolon, FreeImage Team
7 | * Copyright (c) 2002-2003, Yannick Verschueren
8 | * Copyright (c) 2001-2003, David Janssens
9 | * Copyright (c) 2011-2012, Centre National d'Etudes Spatiales (CNES), France
10 | * Copyright (c) 2012, CS Systemes d'Information, France
11 | *
12 | * All rights reserved.
13 | *
14 | * Redistribution and use in source and binary forms, with or without
15 | * modification, are permitted provided that the following conditions
16 | * are met:
17 | * 1. Redistributions of source code must retain the above copyright
18 | * notice, this list of conditions and the following disclaimer.
19 | * 2. Redistributions in binary form must reproduce the above copyright
20 | * notice, this list of conditions and the following disclaimer in the
21 | * documentation and/or other materials provided with the distribution.
22 | *
23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 | * POSSIBILITY OF SUCH DAMAGE.
34 | */
35 |
--------------------------------------------------------------------------------
/licenses/opus.txt:
--------------------------------------------------------------------------------
1 | Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic,
2 | Jean-Marc Valin, Timothy B. Terriberry,
3 | CSIRO, Gregory Maxwell, Mark Borgerding,
4 | Erik de Castro Lopo
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions
8 | are met:
9 |
10 | - Redistributions of source code must retain the above copyright
11 | notice, this list of conditions and the following disclaimer.
12 |
13 | - Redistributions in binary form must reproduce the above copyright
14 | notice, this list of conditions and the following disclaimer in the
15 | documentation and/or other materials provided with the distribution.
16 |
17 | - Neither the name of Internet Society, IETF or IETF Trust, nor the
18 | names of specific contributors, may be used to endorse or promote
19 | products derived from this software without specific prior written
20 | permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
26 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
29 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
30 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
31 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 |
34 | Opus is subject to the royalty-free patent licenses which are
35 | specified at:
36 |
37 | Xiph.Org Foundation:
38 | https://datatracker.ietf.org/ipr/1524/
39 |
40 | Microsoft Corporation:
41 | https://datatracker.ietf.org/ipr/1914/
42 |
43 | Broadcom Corporation:
44 | https://datatracker.ietf.org/ipr/1526/
45 |
--------------------------------------------------------------------------------
/licenses/rtmpdump.txt:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C)
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | , 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
--------------------------------------------------------------------------------
/licenses/soxr.txt:
--------------------------------------------------------------------------------
1 | SoX Resampler Library Copyright (c) 2007-13 robs@users.sourceforge.net
2 |
3 | This library is free software; you can redistribute it and/or modify it
4 | under the terms of the GNU Lesser General Public License as published by
5 | the Free Software Foundation; either version 2.1 of the License, or (at
6 | your option) any later version.
7 |
8 | This library is distributed in the hope that it will be useful, but
9 | WITHOUT ANY WARRANTY; without even the implied warranty of
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
11 | General Public License for more details.
12 |
13 | You should have received a copy of the GNU Lesser General Public License
14 | along with this library; if not, write to the Free Software Foundation,
15 | Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 |
17 |
18 | Notes
19 |
20 | 1. Re software in the `examples' directory: works that are not resampling
21 | examples but are based on the given examples -- for example, applications using
22 | the library -- shall not be considered to be derivative works of the examples.
23 |
24 | 2. If building with pffft.c, see the licence embedded in that file.
25 |
--------------------------------------------------------------------------------
/licenses/speex.txt:
--------------------------------------------------------------------------------
1 | Copyright 2002-2008 Xiph.org Foundation
2 | Copyright 2002-2008 Jean-Marc Valin
3 | Copyright 2005-2007 Analog Devices Inc.
4 | Copyright 2005-2008 Commonwealth Scientific and Industrial Research
5 | Organisation (CSIRO)
6 | Copyright 1993, 2002, 2006 David Rowe
7 | Copyright 2003 EpicGames
8 | Copyright 1992-1994 Jutta Degener, Carsten Bormann
9 |
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions
12 | are met:
13 |
14 | - Redistributions of source code must retain the above copyright
15 | notice, this list of conditions and the following disclaimer.
16 |
17 | - Redistributions in binary form must reproduce the above copyright
18 | notice, this list of conditions and the following disclaimer in the
19 | documentation and/or other materials provided with the distribution.
20 |
21 | - Neither the name of the Xiph.org Foundation nor the names of its
22 | contributors may be used to endorse or promote products derived from
23 | this software without specific prior written permission.
24 |
25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
29 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 |
--------------------------------------------------------------------------------
/licenses/vid.stab.txt:
--------------------------------------------------------------------------------
1 | In this project is open source in the sense of the GPL.
2 |
3 | * This program is free software; you can redistribute it and/or modify *
4 | * it under the terms of the GNU General Public License as published by *
5 | * the Free Software Foundation; either version 2 of the License, or *
6 | * (at your option) any later version. *
7 | * *
8 | * You should have received a copy of the GNU General Public License *
9 | * along with this program; if not, write to the *
10 | * Free Software Foundation, Inc., *
11 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
12 | * *
13 | * This program is distributed in the hope that it will be useful, *
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16 | * GNU General Public License for more details. *
17 |
--------------------------------------------------------------------------------
/licenses/vo-aacenc.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction, and
10 | distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by the
13 | copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all other
16 | entities that control, are controlled by, or are under common control with
17 | that entity. For the purposes of this definition, "control" means (i) the
18 | power, direct or indirect, to cause the direction or management of such
19 | entity, whether by contract or otherwise, or (ii) ownership of fifty
20 | percent (50%) or more of the outstanding shares, or (iii) beneficial
21 | ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity exercising
24 | permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation source,
28 | and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical transformation
31 | or translation of a Source form, including but not limited to compiled
32 | object code, generated documentation, and conversions to other media types.
33 |
34 | "Work" shall mean the work of authorship, whether in Source or Object form,
35 | made available under the License, as indicated by a copyright notice that
36 | is included in or attached to the work (an example is provided in the
37 | Appendix below).
38 |
39 | "Derivative Works" shall mean any work, whether in Source or Object form,
40 | that is based on (or derived from) the Work and for which the editorial
41 | revisions, annotations, elaborations, or other modifications represent, as
42 | a whole, an original work of authorship. For the purposes of this License,
43 | Derivative Works shall not include works that remain separable from, or
44 | merely link (or bind by name) to the interfaces of, the Work and Derivative
45 | Works thereof.
46 |
47 | "Contribution" shall mean any work of authorship, including the original
48 | version of the Work and any modifications or additions to that Work or
49 | Derivative Works thereof, that is intentionally submitted to Licensor for
50 | inclusion in the Work by the copyright owner or by an individual or Legal
51 | Entity authorized to submit on behalf of the copyright owner. For the
52 | purposes of this definition, "submitted" means any form of electronic,
53 | verbal, or written communication sent to the Licensor or its
54 | representatives, including but not limited to communication on electronic
55 | mailing lists, source code control systems, and issue tracking systems that
56 | are managed by, or on behalf of, the Licensor for the purpose of discussing
57 | and improving the Work, but excluding communication that is conspicuously
58 | marked or otherwise designated in writing by the copyright owner as "Not a
59 | Contribution."
60 |
61 | "Contributor" shall mean Licensor and any individual or Legal Entity on
62 | behalf of whom a Contribution has been received by Licensor and
63 | subsequently incorporated within the Work.
64 |
65 | 2. Grant of Copyright License. Subject to the terms and conditions of this
66 | License, each Contributor hereby grants to You a perpetual, worldwide,
67 | non-exclusive, no-charge, royalty-free, irrevocable copyright license to
68 | reproduce, prepare Derivative Works of, publicly display, publicly perform,
69 | sublicense, and distribute the Work and such Derivative Works in Source or
70 | Object form.
71 |
72 | 3. Grant of Patent License. Subject to the terms and conditions of this
73 | License, each Contributor hereby grants to You a perpetual, worldwide,
74 | non-exclusive, no-charge, royalty-free, irrevocable (except as stated in
75 | this section) patent license to make, have made, use, offer to sell, sell,
76 | import, and otherwise transfer the Work, where such license applies only to
77 | those patent claims licensable by such Contributor that are necessarily
78 | infringed by their Contribution(s) alone or by combination of their
79 | Contribution(s) with the Work to which such Contribution(s) was submitted.
80 | If You institute patent litigation against any entity (including a
81 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a
82 | Contribution incorporated within the Work constitutes direct or
83 | contributory patent infringement, then any patent licenses granted to You
84 | under this License for that Work shall terminate as of the date such
85 | litigation is filed.
86 |
87 | 4. Redistribution. You may reproduce and distribute copies of the Work or
88 | Derivative Works thereof in any medium, with or without modifications, and
89 | in Source or Object form, provided that You meet the following conditions:
90 |
91 | 1. You must give any other recipients of the Work or Derivative Works a
92 | copy of this License; and
93 |
94 | 2. You must cause any modified files to carry prominent notices stating
95 | that You changed the files; and
96 |
97 | 3. You must retain, in the Source form of any Derivative Works that You
98 | distribute, all copyright, patent, trademark, and attribution notices from
99 | the Source form of the Work, excluding those notices that do not pertain to
100 | any part of the Derivative Works; and
101 |
102 | 4. If the Work includes a "NOTICE" text file as part of its
103 | distribution, then any Derivative Works that You distribute must include a
104 | readable copy of the attribution notices contained within such NOTICE file,
105 | excluding those notices that do not pertain to any part of the Derivative
106 | Works, in at least one of the following places: within a NOTICE text file
107 | distributed as part of the Derivative Works; within the Source form or
108 | documentation, if provided along with the Derivative Works; or, within a
109 | display generated by the Derivative Works, if and wherever such third-party
110 | notices normally appear. The contents of the NOTICE file are for
111 | informational purposes only and do not modify the License. You may add Your
112 | own attribution notices within Derivative Works that You distribute,
113 | alongside or as an addendum to the NOTICE text from the Work, provided that
114 | such additional attribution notices cannot be construed as modifying the
115 | License.
116 |
117 | You may add Your own copyright statement to Your modifications and may
118 | provide additional or different license terms and conditions for use,
119 | reproduction, or distribution of Your modifications, or for any such
120 | Derivative Works as a whole, provided Your use, reproduction, and
121 | distribution of the Work otherwise complies with the conditions stated in
122 | this License.
123 |
124 | 5. Submission of Contributions. Unless You explicitly state otherwise, any
125 | Contribution intentionally submitted for inclusion in the Work by You to
126 | the Licensor shall be under the terms and conditions of this License,
127 | without any additional terms or conditions. Notwithstanding the above,
128 | nothing herein shall supersede or modify the terms of any separate license
129 | agreement you may have executed with Licensor regarding such Contributions.
130 |
131 | 6. Trademarks. This License does not grant permission to use the trade
132 | names, trademarks, service marks, or product names of the Licensor, except
133 | as required for reasonable and customary use in describing the origin of
134 | the Work and reproducing the content of the NOTICE file.
135 |
136 | 7. Disclaimer of Warranty. Unless required by applicable law or agreed to
137 | in writing, Licensor provides the Work (and each Contributor provides its
138 | Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
139 | KIND, either express or implied, including, without limitation, any
140 | warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or
141 | FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for
142 | determining the appropriateness of using or redistributing the Work and
143 | assume any risks associated with Your exercise of permissions under this
144 | License.
145 |
146 | 8. Limitation of Liability. In no event and under no legal theory, whether
147 | in tort (including negligence), contract, or otherwise, unless required by
148 | applicable law (such as deliberate and grossly negligent acts) or agreed to
149 | in writing, shall any Contributor be liable to You for damages, including
150 | any direct, indirect, special, incidental, or consequential damages of any
151 | character arising as a result of this License or out of the use or
152 | inability to use the Work (including but not limited to damages for loss of
153 | goodwill, work stoppage, computer failure or malfunction, or any and all
154 | other commercial damages or losses), even if such Contributor has been
155 | advised of the possibility of such damages.
156 |
157 | 9. Accepting Warranty or Additional Liability. While redistributing the
158 | Work or Derivative Works thereof, You may choose to offer, and charge a fee
159 | for, acceptance of support, warranty, indemnity, or other liability
160 | obligations and/or rights consistent with this License. However, in
161 | accepting such obligations, You may act only on Your own behalf and on Your
162 | sole responsibility, not on behalf of any other Contributor, and only if
163 | You agree to indemnify, defend, and hold each Contributor harmless for any
164 | liability incurred by, or claims asserted against, such Contributor by
165 | reason of your accepting any such warranty or additional liability.
166 |
167 | END OF TERMS AND CONDITIONS
168 |
169 | APPENDIX: How to apply the Apache License to your work
170 |
171 | To apply the Apache License to your work, attach the following boilerplate
172 | notice, with the fields enclosed by brackets "[]" replaced with your own
173 | identifying information. (Don't include the brackets!) The text should be
174 | enclosed in the appropriate comment syntax for the file format. We also
175 | recommend that a file or class name and description of purpose be included
176 | on the same "printed page" as the copyright notice for easier
177 | identification within third-party archives.
178 |
179 | Copyright [yyyy] [name of copyright owner]
180 |
181 | Licensed under the Apache License, Version 2.0 (the "License"); you may
182 | not use this file except in compliance with the License. You may obtain a
183 | copy of the License at
184 |
185 | http://www.apache.org/licenses/LICENSE-2.0
186 |
187 | Unless required by applicable
188 | law or agreed to in writing, software distributed under the License is
189 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
190 | KIND, either express or implied. See the License for the specific language
191 | governing permissions and limitations under the License.
192 |
--------------------------------------------------------------------------------
/licenses/vo-amrwbenc.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction, and
10 | distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by the
13 | copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all other
16 | entities that control, are controlled by, or are under common control with
17 | that entity. For the purposes of this definition, "control" means (i) the
18 | power, direct or indirect, to cause the direction or management of such
19 | entity, whether by contract or otherwise, or (ii) ownership of fifty
20 | percent (50%) or more of the outstanding shares, or (iii) beneficial
21 | ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity exercising
24 | permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation source,
28 | and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical transformation
31 | or translation of a Source form, including but not limited to compiled
32 | object code, generated documentation, and conversions to other media types.
33 |
34 | "Work" shall mean the work of authorship, whether in Source or Object form,
35 | made available under the License, as indicated by a copyright notice that
36 | is included in or attached to the work (an example is provided in the
37 | Appendix below).
38 |
39 | "Derivative Works" shall mean any work, whether in Source or Object form,
40 | that is based on (or derived from) the Work and for which the editorial
41 | revisions, annotations, elaborations, or other modifications represent, as
42 | a whole, an original work of authorship. For the purposes of this License,
43 | Derivative Works shall not include works that remain separable from, or
44 | merely link (or bind by name) to the interfaces of, the Work and Derivative
45 | Works thereof.
46 |
47 | "Contribution" shall mean any work of authorship, including the original
48 | version of the Work and any modifications or additions to that Work or
49 | Derivative Works thereof, that is intentionally submitted to Licensor for
50 | inclusion in the Work by the copyright owner or by an individual or Legal
51 | Entity authorized to submit on behalf of the copyright owner. For the
52 | purposes of this definition, "submitted" means any form of electronic,
53 | verbal, or written communication sent to the Licensor or its
54 | representatives, including but not limited to communication on electronic
55 | mailing lists, source code control systems, and issue tracking systems that
56 | are managed by, or on behalf of, the Licensor for the purpose of discussing
57 | and improving the Work, but excluding communication that is conspicuously
58 | marked or otherwise designated in writing by the copyright owner as "Not a
59 | Contribution."
60 |
61 | "Contributor" shall mean Licensor and any individual or Legal Entity on
62 | behalf of whom a Contribution has been received by Licensor and
63 | subsequently incorporated within the Work.
64 |
65 | 2. Grant of Copyright License. Subject to the terms and conditions of this
66 | License, each Contributor hereby grants to You a perpetual, worldwide,
67 | non-exclusive, no-charge, royalty-free, irrevocable copyright license to
68 | reproduce, prepare Derivative Works of, publicly display, publicly perform,
69 | sublicense, and distribute the Work and such Derivative Works in Source or
70 | Object form.
71 |
72 | 3. Grant of Patent License. Subject to the terms and conditions of this
73 | License, each Contributor hereby grants to You a perpetual, worldwide,
74 | non-exclusive, no-charge, royalty-free, irrevocable (except as stated in
75 | this section) patent license to make, have made, use, offer to sell, sell,
76 | import, and otherwise transfer the Work, where such license applies only to
77 | those patent claims licensable by such Contributor that are necessarily
78 | infringed by their Contribution(s) alone or by combination of their
79 | Contribution(s) with the Work to which such Contribution(s) was submitted.
80 | If You institute patent litigation against any entity (including a
81 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a
82 | Contribution incorporated within the Work constitutes direct or
83 | contributory patent infringement, then any patent licenses granted to You
84 | under this License for that Work shall terminate as of the date such
85 | litigation is filed.
86 |
87 | 4. Redistribution. You may reproduce and distribute copies of the Work or
88 | Derivative Works thereof in any medium, with or without modifications, and
89 | in Source or Object form, provided that You meet the following conditions:
90 |
91 | 1. You must give any other recipients of the Work or Derivative Works a
92 | copy of this License; and
93 |
94 | 2. You must cause any modified files to carry prominent notices stating
95 | that You changed the files; and
96 |
97 | 3. You must retain, in the Source form of any Derivative Works that You
98 | distribute, all copyright, patent, trademark, and attribution notices from
99 | the Source form of the Work, excluding those notices that do not pertain to
100 | any part of the Derivative Works; and
101 |
102 | 4. If the Work includes a "NOTICE" text file as part of its
103 | distribution, then any Derivative Works that You distribute must include a
104 | readable copy of the attribution notices contained within such NOTICE file,
105 | excluding those notices that do not pertain to any part of the Derivative
106 | Works, in at least one of the following places: within a NOTICE text file
107 | distributed as part of the Derivative Works; within the Source form or
108 | documentation, if provided along with the Derivative Works; or, within a
109 | display generated by the Derivative Works, if and wherever such third-party
110 | notices normally appear. The contents of the NOTICE file are for
111 | informational purposes only and do not modify the License. You may add Your
112 | own attribution notices within Derivative Works that You distribute,
113 | alongside or as an addendum to the NOTICE text from the Work, provided that
114 | such additional attribution notices cannot be construed as modifying the
115 | License.
116 |
117 | You may add Your own copyright statement to Your modifications and may
118 | provide additional or different license terms and conditions for use,
119 | reproduction, or distribution of Your modifications, or for any such
120 | Derivative Works as a whole, provided Your use, reproduction, and
121 | distribution of the Work otherwise complies with the conditions stated in
122 | this License.
123 |
124 | 5. Submission of Contributions. Unless You explicitly state otherwise, any
125 | Contribution intentionally submitted for inclusion in the Work by You to
126 | the Licensor shall be under the terms and conditions of this License,
127 | without any additional terms or conditions. Notwithstanding the above,
128 | nothing herein shall supersede or modify the terms of any separate license
129 | agreement you may have executed with Licensor regarding such Contributions.
130 |
131 | 6. Trademarks. This License does not grant permission to use the trade
132 | names, trademarks, service marks, or product names of the Licensor, except
133 | as required for reasonable and customary use in describing the origin of
134 | the Work and reproducing the content of the NOTICE file.
135 |
136 | 7. Disclaimer of Warranty. Unless required by applicable law or agreed to
137 | in writing, Licensor provides the Work (and each Contributor provides its
138 | Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
139 | KIND, either express or implied, including, without limitation, any
140 | warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or
141 | FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for
142 | determining the appropriateness of using or redistributing the Work and
143 | assume any risks associated with Your exercise of permissions under this
144 | License.
145 |
146 | 8. Limitation of Liability. In no event and under no legal theory, whether
147 | in tort (including negligence), contract, or otherwise, unless required by
148 | applicable law (such as deliberate and grossly negligent acts) or agreed to
149 | in writing, shall any Contributor be liable to You for damages, including
150 | any direct, indirect, special, incidental, or consequential damages of any
151 | character arising as a result of this License or out of the use or
152 | inability to use the Work (including but not limited to damages for loss of
153 | goodwill, work stoppage, computer failure or malfunction, or any and all
154 | other commercial damages or losses), even if such Contributor has been
155 | advised of the possibility of such damages.
156 |
157 | 9. Accepting Warranty or Additional Liability. While redistributing the
158 | Work or Derivative Works thereof, You may choose to offer, and charge a fee
159 | for, acceptance of support, warranty, indemnity, or other liability
160 | obligations and/or rights consistent with this License. However, in
161 | accepting such obligations, You may act only on Your own behalf and on Your
162 | sole responsibility, not on behalf of any other Contributor, and only if
163 | You agree to indemnify, defend, and hold each Contributor harmless for any
164 | liability incurred by, or claims asserted against, such Contributor by
165 | reason of your accepting any such warranty or additional liability.
166 |
167 | END OF TERMS AND CONDITIONS
168 |
169 | APPENDIX: How to apply the Apache License to your work
170 |
171 | To apply the Apache License to your work, attach the following boilerplate
172 | notice, with the fields enclosed by brackets "[]" replaced with your own
173 | identifying information. (Don't include the brackets!) The text should be
174 | enclosed in the appropriate comment syntax for the file format. We also
175 | recommend that a file or class name and description of purpose be included
176 | on the same "printed page" as the copyright notice for easier
177 | identification within third-party archives.
178 |
179 | Copyright [yyyy] [name of copyright owner]
180 |
181 | Licensed under the Apache License, Version 2.0 (the "License"); you may
182 | not use this file except in compliance with the License. You may obtain a
183 | copy of the License at
184 |
185 | http://www.apache.org/licenses/LICENSE-2.0
186 |
187 | Unless required by applicable
188 | law or agreed to in writing, software distributed under the License is
189 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
190 | KIND, either express or implied. See the License for the specific language
191 | governing permissions and limitations under the License.
192 |
--------------------------------------------------------------------------------
/licenses/wavpack.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 1998 - 2009 Conifer Software
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice,
8 | this list of conditions and the following disclaimer.
9 | * Redistributions in binary form must reproduce the above copyright notice,
10 | this list of conditions and the following disclaimer in the
11 | documentation and/or other materials provided with the distribution.
12 | * Neither the name of Conifer Software nor the names of its contributors
13 | may be used to endorse or promote products derived from this software
14 | without specific prior written permission.
15 |
16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
20 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 |
--------------------------------------------------------------------------------
/licenses/x264.txt:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Library General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C)
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License
307 | along with this program; if not, write to the Free Software
308 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309 |
310 |
311 | Also add information on how to contact you by electronic and paper mail.
312 |
313 | If the program is interactive, make it output a short notice like this
314 | when it starts in an interactive mode:
315 |
316 | Gnomovision version 69, Copyright (C) year name of author
317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 | This is free software, and you are welcome to redistribute it
319 | under certain conditions; type `show c' for details.
320 |
321 | The hypothetical commands `show w' and `show c' should show the appropriate
322 | parts of the General Public License. Of course, the commands you use may
323 | be called something other than `show w' and `show c'; they could even be
324 | mouse-clicks or menu items--whatever suits your program.
325 |
326 | You should also get your employer (if you work as a programmer) or your
327 | school, if any, to sign a "copyright disclaimer" for the program, if
328 | necessary. Here is a sample; alter the names:
329 |
330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
332 |
333 | , 1 April 1989
334 | Ty Coon, President of Vice
335 |
336 | This General Public License does not permit incorporating your program into
337 | proprietary programs. If your program is a subroutine library, you may
338 | consider it more useful to permit linking proprietary applications with the
339 | library. If this is what you want to do, use the GNU Library General
340 | Public License instead of this License.
341 |
--------------------------------------------------------------------------------
/licenses/xvid.txt:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Library General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C)
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License
307 | along with this program; if not, write to the Free Software
308 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309 |
310 |
311 | Also add information on how to contact you by electronic and paper mail.
312 |
313 | If the program is interactive, make it output a short notice like this
314 | when it starts in an interactive mode:
315 |
316 | Gnomovision version 69, Copyright (C) year name of author
317 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318 | This is free software, and you are welcome to redistribute it
319 | under certain conditions; type `show c' for details.
320 |
321 | The hypothetical commands `show w' and `show c' should show the appropriate
322 | parts of the General Public License. Of course, the commands you use may
323 | be called something other than `show w' and `show c'; they could even be
324 | mouse-clicks or menu items--whatever suits your program.
325 |
326 | You should also get your employer (if you work as a programmer) or your
327 | school, if any, to sign a "copyright disclaimer" for the program, if
328 | necessary. Here is a sample; alter the names:
329 |
330 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
332 |
333 | , 1 April 1989
334 | Ty Coon, President of Vice
335 |
336 | This General Public License does not permit incorporating your program into
337 | proprietary programs. If your program is a subroutine library, you may
338 | consider it more useful to permit linking proprietary applications with the
339 | library. If this is what you want to do, use the GNU Library General
340 | Public License instead of this License.
341 |
--------------------------------------------------------------------------------
/licenses/zlib.txt:
--------------------------------------------------------------------------------
1 | /* zlib.h -- interface of the 'zlib' general purpose compression library
2 | version 1.2.7, May 2nd, 2012
3 |
4 | Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
5 |
6 | This software is provided 'as-is', without any express or implied
7 | warranty. In no event will the authors be held liable for any damages
8 | arising from the use of this software.
9 |
10 | Permission is granted to anyone to use this software for any purpose,
11 | including commercial applications, and to alter it and redistribute it
12 | freely, subject to the following restrictions:
13 |
14 | 1. The origin of this software must not be misrepresented; you must not
15 | claim that you wrote the original software. If you use this software
16 | in a product, an acknowledgment in the product documentation would be
17 | appreciated but is not required.
18 | 2. Altered source versions must be plainly marked as such, and must not be
19 | misrepresented as being the original software.
20 | 3. This notice may not be removed or altered from any source distribution.
21 |
22 | Jean-loup Gailly Mark Adler
23 | jloup@gzip.org madler@alumni.caltech.edu
24 |
25 | */
26 |
27 |
--------------------------------------------------------------------------------