[vdr] locale issue with --edit

Klaus Schmidinger Klaus.Schmidinger at tvdr.de
Wed Mar 14 10:10:23 CET 2012


On 14.03.2012 03:10, Tobi wrote:
> This was driving me mad!
>
> I have a NTSC TS-recording with 29.97002997 fps.
>
> When I set cut marks via the VDR-OSD and cut the recording, this works fine.
>
> But when I cut the same recording with the same cut marks with
> `vdr --edit`, the cut points are offset by some seconds e.g. the beginning
> of the cutted recording is about 9 seconds earlier than it should be.
>
> Reason: When invoking `vdr --edit` LC_NUMERIC is *not* set to "C" yet when
> CutRecording() is called. My default locale uses "," as the decimal
> point, causing the framerate to be parsed as 29.0 instead of 29.97002997.
>
> setlocale(LC_NUMERIC, "C") should be called earlier in main().

Can you please verify that this works?

--- vdr.c       2012/03/09 09:55:15     2.34
+++ vdr.c       2012/03/14 09:09:19
@@ -173,6 +173,7 @@
    // Initiate locale:

    setlocale(LC_ALL, "");
+  setlocale(LC_NUMERIC, "C"); // makes sure any floating point numbers written use a decimal point

    // Command line options:

@@ -550,7 +551,6 @@
       isyslog("codeset is '%s' - %s", CodeSet, known ? "known" : "unknown");
       cCharSetConv::SetSystemCharacterTable(CodeSet);
       }
-  setlocale(LC_NUMERIC, "C"); // makes sure any floating point numbers written use a decimal point

    // Initialize internationalization:



Klaus



More information about the vdr mailing list