filesink cannot write output file more than 2048 MB, windows, gstreamer 1.16.1 mingw x64

Артем Семенов artem.semenov at jarillolabs.com
Wed Sep 15 14:18:31 UTC 2021


Hello, Nicolas.

Thanks!

The reason for this error was obvious, but the reasons for its occurrence were not obvious for me.

Ultimately, gstreamer-1.0-mingw-x86_64-1.16.3.msi prebuilt binary does not contain this error, am I 
right?

I don't want to use the msvc build, in our projects, we are now trying to completely switch to gcc 
and cmake, taking into account the urgent need for cross-platform.

By the way, was the performance of gstreamer compared in the mingw vs msvc build on windows?

About FAT32 - this is a well-known limitation, of course, we use ntfs.

Thank you again!

On 15.09.2021, 15:59:09:
> Le mercredi 15 septembre 2021 à 11:44 +0300, Артем Семенов via gstreamer-devel a
> écrit :
>> Hello, James.
>>   
>>   You are wrong, it's not a "low down" windows issue.
>>   
>>   I found this:
>>   
>>   1. "filesink: fails with matroskamux when writing files larger than 2GiB on
>> Windows"
>> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/579
>>   
>>   2. "meson: Ensure large file support for fseeko"
>> https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/517
>>   
>>   And it looks like this fix was backported into 1.16 (1.16.3).
> This one was confusing, this MR was closed, as in the end it was a Meson bug
> (regression in the transition to Meson):
>
> https://github.com/mesonbuild/meson/pull/7272
>
> This is a bit specific to MSys Windows builds, MSVC build should not be
> affected.
>
> p.s. Note that the hard limit on FAT is 4G files (unsigned).
>
>>   
>>   On 15.09.2021, 09:13:57:
>>   
>>> That is a windows issue that cannot be fixed. (Well it can, but it is low down
>>> in windows)
>>> James
>>   
>>   
>>>    
>>>> On 15 Sep 2021, at 8:25 am, Артем Семенов via gstreamer-devel
>>>> <gstreamer-devel at lists.freedesktop.org> wrote:
>>>>
>>>> Hello.
>>>>
>>>> Windows, gstreamer 1.16.1 mingw x64:
>>>>
>>>> When the output file reaches a size greater than 2048 MB, filesink stops
>>>> recording and generates an error:
>>>>
>>>> GST_DEBUG=3
>>>>
>>>> 0:19:09.838828958  5464 000002C708342300 WARN                filesink
>>>> gstfilesink.c:606:gst_file_sink_event:<filesink> error: Error while seeking
>>>> in file "{path_to_output_file}".
>>>> 0:19:09.838856894  5464 000002C708342300 WARN                filesink
>>>> gstfilesink.c:606:gst_file_sink_event:<filesink> error: system error:
>>>> Invalid argument
>>>>
>>>> GST_DEBUG=5
>>>>
>>>> 1:00:17.891237294  6080 000001CC520A4940 DEBUG               filesink
>>>> gstfilesink.c:504:gst_file_sink_do_seek:<filesink> Seeking to offset
>>>> 2147862966 using fseeko
>>>> 1:00:17.891284786  6080 000001CC520A4940 DEBUG               filesink
>>>> gstfilesink.c:714:gst_file_sink_flush_buffer:<filesink> Flushing out buffer
>>>> of size 24
>>>> 1:00:17.891333954  6080 000001CC520A4940 DEBUG               filesink
>>>> gstfilesink.c:658:gst_file_sink_render_buffers:<filesink> writing 1 buffers
>>>> (1 memories, 24 bytes) at position 1074029354
>>>>
>>>> 1:00:17.912922452  6080 000001CC520A4940 DEBUG               filesink
>>>> gstfilesink.c:535:gst_file_sink_do_seek:<filesink> Seeking failed: Invalid
>>>> argument
>>>> 1:00:17.912970224  6080 000001CC520A4940 WARN                filesink
>>>> gstfilesink.c:606:gst_file_sink_event:<filesink> error: Error while seeking
>>>> in file "{path_to_output_file}".
>>>>
>>>> Obviously, this is due to the fact that the 32-bit version of the fseek
>>>> function is used instead of the 64-bit one.
>>>>
>>>> Has this been fixed in subsequent releases?
>>>>
>
-- 
With best regards,
  Artem Semenov mailto:artem.semenov at jarillolabs.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210915/49c4a5fc/attachment.htm>


More information about the gstreamer-devel mailing list