sebp wrote: > I've looked at this issue earlier in the year, sorry for not coming back > to everybody before. > Here's my understanding of the problem: > > The Qobuz API offers no means to access tracks from a given position but > only to download files as a whole, so the client has to handle seeking > by itself if it wants to support it. > The Qobuz streaming servers support the HTTP Range requests and the LMS > HTTP streaming code seems to be able to use them, so we should be able > to use this feature to reposition into the stream. > However, repositioning into FLAC streams 'does require' > (http://forums.slimdevices.com/showthread.php?88272-How-to-jump-seek-while-streaming-FLAC-files) > hitting the beginning of a frame, otherwise LMS gets confused (that's > why Michael disabled the feature initially). > The problem is that, unlike what happens with constant bit rate formats, > you cannot simply do some maths to compute a frame's binary offset, > because each frame potentially has a different size. > When playing your local files, LMS will be able to make use of the > SEEKTABLE block that's generally embedded into FLAC files to jump to a > frame located nearby, and forward seek from there (a frame's header > contains information about its size, so you know where the next frame > starts) until it reaches the frame matching your selected time target > before resuming playback . In case there's no SEEKTABLE block in the > file, it still has the option to jump to the first frame of the file and > do its fast travel job from there. > The files Qobuz offers for streaming don't embed any SEEKTABLE block or > similar metadata, though, so you cannot rely on that, and because data > read through HTTP is discarded as soon as,it's been played, scanning the > whole file from the beginning afterwards is also not an option. > > If there's a solution to this problem that's not involving Qobuz, it > probably will be a tricky/incomplete one, and not worth the hassle, in > my opinion. > Earlier this week I've asked Qobuz if they could add some metadata to > help solving it (a proper SEEKTABLE would be better than nothing), but I > won't hold my breath. > > Edit: and seeking works with the Qobuz application because the file is > cached on disk, which LMS doesn't do (and I believe Qobuz wouldn't be > too happy if it did), not because the API offers something to do so.
Thanks for the feedback, understood now. The problem I'm facing is for my upnpbridge plugin, not so much repositioning but simply pausing. There are 3 methods of resuming after pause (TCP connection stalling or closing the connection and then do byte seeking or time seeking on re-opening) and because some players do not support TCP stalling and can do only time seeking, then pause does not work with Qobuz. LMS 7.7.2 - 5 radio, 3 Boom, 4 Duet, 1 Touch, 1 SB2. Sonos 2xPLAY:1, PLAY:3, PLAY:5, Marantz NR1603, JBL OnBeat, XBMC, Foobar2000, XBoxOne (sort of) ------------------------------------------------------------------------ philippe_44's Profile: http://forums.slimdevices.com/member.php?userid=17261 View this thread: http://forums.slimdevices.com/showthread.php?t=97146 _______________________________________________ plugins mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/plugins
