MTP: problem with seek/stream API
Submitted by Yves-Alexis Perez
Assigned to Philip Langdale
Link to original bug (#746983)
Description
Hi,
trying to investigate why my media player (parole) could play videos on a smb share and not on my android phone (MTP) share, I might have experienced a bug in the gvfs MTP backend.
I've first tried to debug this with gstreamer people, since the media player uses gstreamer. Basically we noticed that:
- parole doesn't play
- gst-play-1.0 doesn't play
- gst-launch-1.0 giosrc location=mtp://... ! filesink location=foo doesn't copy the file
- gvfs-copy does copy the file
- gvfs-cat doesn't output the file
gvfs-copy apparently uses g_file_copy() while gvfs-cat (and the gst pipeline) use g_input_stream_read().
I know MTP is a bit special, but Android supports some extensions to make files seekable, and it seems that g_seekable_can_seek() returns TRUE.
Version: 1.23.x