]> granicus.if.org Git - handbrake/commitdiff
Check Culture of Framerate string
authorScott <sr55.hb@outlook.com>
Sun, 27 Sep 2015 16:21:26 +0000 (17:21 +0100)
committerScott <sr55.hb@outlook.com>
Sun, 27 Sep 2015 16:21:26 +0000 (17:21 +0100)
May be the cause of the filter not being set correctly for some users.

win/CS/HandBrakeWPF/Services/Encode/Factories/EncodeFactory.cs

index 10037fc558817bb55e0910470ac7cb5d4552af0b..0e979f3d9b74ba95cd2f7ecd287d37ca30ff400d 100644 (file)
@@ -458,21 +458,24 @@ namespace HandBrakeWPF.Services.Encode.Factories
 
             // VFR / CFR
             int fm = job.FramerateMode == FramerateMode.CFR ? 1 : job.FramerateMode == FramerateMode.PFR ? 2 : 0;
-            IntPtr frameratePrt = Marshal.StringToHGlobalAnsi(job.Framerate.ToString()); // TODO check culture
-            int vrate = HBFunctions.hb_video_framerate_get_from_name(frameratePrt);
-
-            int? num = null;
-            int? den = null;
-            if (vrate > 0)
+            if (job.Framerate != null)
             {
-                num = 27000000;
-                den = vrate;
-            }
+                IntPtr frameratePrt = Marshal.StringToHGlobalAnsi(job.Framerate.Value.ToString(CultureInfo.InvariantCulture));
+                int vrate = HBFunctions.hb_video_framerate_get_from_name(frameratePrt);
+
+                int? num = null;
+                int? den = null;
+                if (vrate > 0)
+                {
+                    num = 27000000;
+                    den = vrate;
+                }
 
-            string framerateString = num.HasValue ? string.Format("{0}:{1}:{2}", fm, num, den) : string.Format("{0}", fm); // filter_cfr, filter_vrate.num, filter_vrate.den
+                string framerateString = num.HasValue ? string.Format("{0}:{1}:{2}", fm, num, den) : string.Format("{0}", fm); // filter_cfr, filter_vrate.num, filter_vrate.den
 
-            Filter framerateShaper = new Filter { ID = (int)hb_filter_ids.HB_FILTER_VFR, Settings = framerateString };
-            filter.FilterList.Add(framerateShaper);
+                Filter framerateShaper = new Filter { ID = (int)hb_filter_ids.HB_FILTER_VFR, Settings = framerateString };
+                filter.FilterList.Add(framerateShaper);
+            }
 
             // Deblock
             if (job.Deblock >= 5)