X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fguicast%2Funits.C;h=eed940dca20255a42539c02712093f47d1c98b6a;hb=673257cc109af5234e4219a6baef9589b83b9359;hp=049d8f92de44f850e8ac8d7171ecf556bb37a305;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/units.C b/cinelerra-5.1/guicast/units.C index 049d8f92..eed940dc 100644 --- a/cinelerra-5.1/guicast/units.C +++ b/cinelerra-5.1/guicast/units.C @@ -166,7 +166,8 @@ char* Units::totext(char *text, double seconds, int time_format, switch(time_format) { case TIME_SECONDS: { - seconds = fabs(seconds); +// add 1.0e-6 to prevent round off truncation from glitching a bunch of digits + seconds = fabs(seconds) + 1.0e-6; second = seconds; seconds -= (int64_t)seconds; thousandths = (int64_t)(seconds*1000) % 1000; @@ -174,7 +175,7 @@ char* Units::totext(char *text, double seconds, int time_format, break; } case TIME_HMS: { - seconds = fabs(seconds); + seconds = fabs(seconds) + 1.0e-6; hour = seconds/3600; minute = seconds/60 - hour*60; second = seconds - (hour*3600 + minute*60); @@ -185,7 +186,7 @@ char* Units::totext(char *text, double seconds, int time_format, break; } case TIME_HMS2: { - seconds = fabs(seconds); + seconds = fabs(seconds) + 1.0e-6; hour = seconds/3600; minute = seconds/60 - hour*60; second = seconds - (hour*3600 + minute*60); @@ -193,7 +194,7 @@ char* Units::totext(char *text, double seconds, int time_format, break; } case TIME_HMS3: { - seconds = fabs(seconds); + seconds = fabs(seconds) + 1.0e-6; hour = seconds/3600; minute = seconds/60 - hour*60; second = seconds - (hour*3600 + minute*60); @@ -201,7 +202,7 @@ char* Units::totext(char *text, double seconds, int time_format, break; } case TIME_HMSF: { - seconds = fabs(seconds); + seconds = fabs(seconds) + 1.0e-6; hour = seconds/3600; minute = seconds/60 - hour*60; second = seconds - (hour*3600 + minute*60); @@ -232,7 +233,7 @@ char* Units::totext(char *text, double seconds, int time_format, break; } case TIME_MS1: { - seconds = fabs(seconds); + seconds = fabs(seconds) + 1.0e-6; minute = seconds/60; second = seconds - minute*60; sprintf(text, "%d:%02d", minute, second); @@ -240,7 +241,7 @@ char* Units::totext(char *text, double seconds, int time_format, case TIME_MS2: { int sign = seconds >= 0 ? '+' : '-'; - seconds = fabs(seconds); + seconds = fabs(seconds) + 1.0e-6; minute = seconds/60; second = seconds - minute*60; sprintf(text, "%c%d:%02d", sign, minute, second);