Hallo zusammen,
Meinem Verständnis nach weiße ich doch das Ergebnis der Berechnung einem Extended zu, da verstehe ich eben nicht, wo es zu einem Integer-Overflow kommen soll...
Delphi-Quellcode:
fQualityFactor, tOvr, tAud : extended;
fTSize, fWidth, fHeight, fFrameCount : integer;
...
fQualityFactor := (1024 * fTSize - (tAud + tOvr)) /
(fWidth * fHeight * fFrameCount);
Eine Lösung habe ich natürlich, nur verstehe ich sie eben nicht wirklich...
Delphi-Quellcode:
fQualityFactor, tOvr, tAud : extended;
fTSize, fWidth, fHeight, fFrameCount : integer;
extTSize, extWidth, extHeight, extFrameCount : extended;
...
extTSize := fTSize;
extHeight := fHeight;
extWidth := fWidth;
extFrameCount := fFrameCount;
fQualityFactor := (1024 * extTSize - (tAud + tOvr)) /
(extWidth * extHeight * extFrameCount);
fTSize, fWidth usw. gleich als WExtended zu deklarieren, macht meiner Meinung keinen Sinn, da diese Werte immer nur Integer-Charakter haben, soll heißen: das Bild einer Video-Datei kann eben immer nur ganzzahig viele Pixel hoch sein etc.
Wäre schön, wenn mir jemand meinen Fehler aufzeigen könnte.