gstreamer-android Digest, Vol 55, Issue 1

Sebastian Dröge sebastian at centricular.com
Wed Dec 2 01:25:04 PST 2015


On Mi, 2015-12-02 at 18:13 +0900, 김경욱 wrote:
> Sorry. Log files wrong.
> 
> I attached new log file.
> 
> please check the attached log file.

If I see this correctly, the problem here is that lseek() and other API
is failing on Android if you use it on files bigger than 2GB. We
probably have to use the lseek64() and similar variants for other API.

On proper platforms this change is done automatically if you define
_FILE_OFFSET_BITS=64 but it looks like Google decided to not do that
for whatever reason.

This would mean that a lot of code everywhere has to be changed.


Can you file a bug about this with your log file at
  https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer

And if you want to help fixing this, can you try with some C code if my
observation is correct?

Try open() on the file, also with flags including O_LARGEFILE. Then try
if lseek() or lseek64() to the end of the file (with offset 0 and
SEEK_END) works. And also if fstat() works on the fd and returns that
it's a regular file (S_ISREG on the mode).

Take a look at
http://cgit.freedesktop.org/gstreamer/gstreamer/tree/plugins/elements/gstfilesrc.c#n449
to see how these functions work.

-- 
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-android/attachments/20151202/bf23d94b/attachment.sig>


More information about the gstreamer-android mailing list