Lars Gehre wrote:
>> Lars Gehre wrote:
>>> I believe all versions of ICS have these problems (at least with
>>> Delphi 7 but I don't think integer or longword are suddenly
>> Int64 in
>>> newer delphi versions).
>>
>> It seems that ICSv6 and v7 both support Int64:
>>
>> {$IFDEF UseInt64ForHttpRange}
>> THttpRangeInt = Int64;
>> {$ELSE}
>> THttpRangeInt = LongInt; { Limited to 2GB size }
>> {$ENDIF}
>>
>> If you use Delphi 7 you upgrade to ICSv6 or even ICSv7.
>
>
> V5 does support it also. That's why I wrote THttpRangeInt. :)
> The problems still exists because integer and THttpRangeInt are
> constantly mixed, as I wrote. At least in V7 Code the same routines
> are used and will also cause the described problems.
You are right, I assumed that this stuff just works, however v6 and v7
include the same bugs. THttpRangeInt is also used where it should be a
Longint. Also define UseInt64ForHttpRange should be replaced by STREAM64
since without STREAM64 being defined it won't work. I also found another
bug, see my other mail.
--
Arno Garrels
>
> I tried V6, but it does not work very well with continous streams, so
> I will stick with V5, which has proven over the last three years to
> be extremly stable in streaming.
>
> Lars
>
>
>>
>> --
>> Arno Garrels [TeamICS]
>> http://www.overbyte.be/eng/overbyte/teamics.html
>>
>>
>>>
>>> The following routines have problems:
>>>
>>> - THttpRangeStream.AddPartStream(Value: TStream; AStartPos, AEndPos:
>>> Integer);
>>> Integer should be THttpRangeInt
>>>
>>> - THttpRangeStream.Read(var Buffer; Count: Longint):
>> Integer; Result
>>> := FSize - FPosition; // don't -> Overflow, use seperate
>> Variable ->
>>> THttpRangeInt
>>>
>>> ActSize := min(Count - DataRead, Rec.Size - (ActOffset));
>> //Overflow
>>> because min only handles Integer.
>>>
>>> - THttpConnection.ConnectionDataSent(Sender : TObject;
>> Error : WORD);
>>> var
>>> Count : Integer;
>>> ToSend : Integer; // Overflow in both use THttpRangeInt instead.
>>>
>>>
>>> - procedure ParseRangeString(var FromStr : String; var ToStr :
>>> String; const Value : String);
>>> Don't use StrToInt, Use StrToInt64
>>>
>>> - THttpRangeList.InitFromString(AStr: String); Don't use StrToInt,
>>> Use StrToInt64
>>>
>>> After these corrections, ICS works flawless, even jumping
>> around in a
>>> 16 GB HDTV Recording works without glitches. I simply love ICS! ;)
>>>
>>> Greetings
>>> Lars
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be