[Ffmpeg-devel] Re: [PATCH] remove mingw32 ifdefs in file.c

Ramiro Polla angustia
Fri Dec 22 19:37:47 CET 2006


Ramiro Polla wrote:
> Aurelien Jacobs wrote:
>> On Thu, 21 Dec 2006 13:49:27 +0000 (UTC)
>> Joakim Plate <elupus at ecce.se> wrote:
>>
>>> The commit made on this will break support for >2gb files in mingw. 
>>> mingw
>>> doesn't have a 64bit off_t and standard file functions. It only has 
>>> explicit
>>> support for it using off64_t, lseeki64 and similars.
>>>     
>>
>> Maybe the attached patch would fix this issue ?
>> Could someone test it ?
>>
>> Aurel
>>   
>> ------------------------------------------------------------------------
>>
>> Index: libavformat/os_support.h
>> ===================================================================
>> --- libavformat/os_support.h    (r??vision 6773)
>> +++ libavformat/os_support.h    (copie de travail)
>> @@ -27,14 +27,17 @@
>>   * miscellaneous OS support macros and functions.
>>   *
>>   * - usleep() (Win32, BeOS, OS/2)
>> + * - lseek()  (Win32)
>>   * - floatf() (OS/2)
>>   * - strcasecmp() (OS/2)
>>   */
>>  
>>  #ifdef __MINGW32__
>>  __declspec(dllimport) void __stdcall Sleep(unsigned long 
>> dwMilliseconds);
>> +__declspec(dllimport) int64_t __stdcall _lseeki64(int, int64_t, int);
>>  // #  include <windows.h>
>>  #  define usleep(t)    Sleep((t) / 1000)
>> +#  define lseek(f,p,w) _lseeki64((f), (p), (w))
>>  #endif
>>  
>>  #ifdef __BEOS__
>>   
> This didn't work.
> - The correct declaration of _lseeki64 is __cdecl. There's no need to 
> declare it here. Sleep is declared because windows.h is not included, 
> but in this case, fcntl.h has this function.
> - By including first this define from lseek to _lseeki64, when fcntl.h 
> is included, it tries to define _lseeki64 twice (one for the real 
> function, and another for lseek, which was defined to be _lseeki64).
>
> Altough I can confirm that my previous patch did break files > 2 gb, 
> and that it does work when _lseeki64 is used.

Attached patch works.

Sorry for breaking Windows builds...

Ramiro Polla
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: lseek.mingw.diff
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20061222/7b64fab4/attachment.txt>



More information about the ffmpeg-devel mailing list