return VideoEncoder.Theora;\r
case "x265":\r
return VideoEncoder.X265;\r
+ case "VP8":\r
+ return VideoEncoder.VP8;\r
default:\r
return VideoEncoder.X264;\r
}\r
return "theora";\r
case VideoEncoder.X265:\r
return "x265";\r
+ case VideoEncoder.VP8:\r
+ return "VP8";\r
default:\r
return "x264";\r
}\r
using System.Globalization;\r
using System.IO;\r
\r
- using Caliburn.Micro;\r
-\r
using HandBrake.ApplicationServices.Model;\r
using HandBrake.ApplicationServices.Model.Encoding;\r
- using HandBrake.ApplicationServices.Services.Interfaces;\r
using HandBrake.Interop.Model.Encoding;\r
using HandBrake.Interop.Model.Encoding.x264;\r
using HandBrake.Interop.Model.Encoding.x265;\r
case VideoEncoder.Theora:\r
query += " -e theora";\r
break;\r
+ case VideoEncoder.VP8:\r
+ query += " -e VP8";\r
+ break;\r
default:\r
query += " -e x264";\r
break;\r
query += string.Format(" -b {0}", task.VideoBitrate.Value);\r
break;\r
case VideoEncodeRateType.ConstantQuality:\r
- switch (task.VideoEncoder)\r
- {\r
- case VideoEncoder.FFMpeg:\r
- case VideoEncoder.FFMpeg2:\r
- query += string.Format(" -q {0}", task.Quality.Value.ToString(CultureInfo.InvariantCulture));\r
- break;\r
- case VideoEncoder.X264:\r
- case VideoEncoder.QuickSync:\r
- query += string.Format(" -q {0}", task.Quality.Value.ToString(CultureInfo.InvariantCulture));\r
- break;\r
- case VideoEncoder.Theora:\r
- query += string.Format(" -q {0}", task.Quality.Value.ToString(CultureInfo.InvariantCulture));\r
- break;\r
- case VideoEncoder.X265:\r
- query += string.Format(" -q {0}", task.Quality.Value.ToString(CultureInfo.InvariantCulture));\r
- break;\r
- }\r
+ query += string.Format(" -q {0}", task.Quality.Value.ToString(CultureInfo.InvariantCulture));\r
break;\r
}\r
\r
[Display(Name = "H.264 (Intel QSV)")]\r
QuickSync,\r
\r
- [Display(Name = "MPEG-4 (FFmpeg)")]\r
+ [Display(Name = "MPEG-4")]\r
[ShortName("mpeg4")]\r
FFMpeg,\r
\r
- [Display(Name = "MPEG-2 (FFmpeg)")]\r
+ [Display(Name = "MPEG-2")]\r
[ShortName("mpeg2")]\r
FFMpeg2,\r
\r
- [Display(Name = "VP3 (Theora)")]\r
+ [Display(Name = "Theora")]\r
[ShortName("theora")]\r
Theora,\r
\r
[Display(Name = "H.265 (x265)")]\r
[ShortName("x265")]\r
- X265\r
+ X265,\r
+\r
+ [Display(Name = "VP8")]\r
+ [ShortName("vp8")]\r
+ VP8\r
}\r
}\r
if (task != null && task.OutputFormat != OutputFormat.Mkv)\r
{\r
encoders.Remove(VideoEncoder.Theora);\r
+ encoders.Remove(VideoEncoder.VP8);\r
}\r
\r
if (!SystemInfo.IsQsvAvailable)\r
case VideoEncoder.FFMpeg:\r
case VideoEncoder.FFMpeg2:\r
this.Task.Quality = (32 - value);\r
- break; \r
+ break; \r
+ case VideoEncoder.VP8:\r
+ this.Task.Quality = (63 - value);\r
+ break;\r
case VideoEncoder.X264:\r
case VideoEncoder.X265:\r
double cqStep = userSettingService.GetUserSetting<double>(UserSettingConstants.X264Step);\r
{\r
get\r
{\r
- return this.SelectedVideoEncoder == VideoEncoder.X264 ? "RF" : "QP";\r
+ return this.SelectedVideoEncoder == VideoEncoder.X264 || this.SelectedVideoEncoder == VideoEncoder.X265 ? "RF" : "QP";\r
}\r
}\r
\r
this.RF = 32 - cq;\r
}\r
break;\r
+ case VideoEncoder.VP8:\r
+ if (preset.Task.Quality.HasValue)\r
+ {\r
+ int cq;\r
+ int.TryParse(preset.Task.Quality.Value.ToString(CultureInfo.InvariantCulture), out cq);\r
+ this.RF = 63 - cq;\r
+ }\r
+ break;\r
case VideoEncoder.X265:\r
case VideoEncoder.X264:\r
\r
this.QualityMax = (int)(51 / userSettingService.GetUserSetting<double>(UserSettingConstants.X264Step));\r
break;\r
case VideoEncoder.Theora:\r
+ case VideoEncoder.VP8:\r
this.QualityMin = 0;\r
this.QualityMax = 63;\r
break;\r