gecko-dev/mobile
Chris Pearce 0ebe8e14ac Bug 1552145 - Change HLS seek to seek before seek target and drop frames until next keyframe. r=jya
The Java ExoPlayer that we use for HLS support on Android does an accurate
seek, that is, it seeks to the frame at the seek target. This may not be a
keyframe, which we can start decoding at. So change the HLS seek to seek 2
seconds behind the seek target, and drop all frames up to the next keyframe.
This means that after a seek the HLSDemuxer will output a keyframe, and
hopefully (but we can't guarantee of course) it will lie behind the actual seek
target.

We also need to purge the GeckoHlsVideoRenderer's queue of frames which it
is holding onto in order to determine their durations, otherwise after a seek,
we'll get output from this queue of frames. That is, after a seek we would still
get a few frames from the old playback position.

This seek case is particularly problematic as we aggressively shutdown decoders
when the media is paused, including right after the load reaches
loadedmetadata, and we need to seek in order to recover from going dormant.

Differential Revision: https://phabricator.services.mozilla.com/D33254

--HG--
extra : moz-landing-system : lando
2019-06-04 22:20:49 +00:00
..
android Bug 1552145 - Change HLS seek to seek before seek target and drop frames until next keyframe. r=jya 2019-06-04 22:20:49 +00:00
locales Bug 1523741 - Converting legacy aboutTelemetry to Fluent aboutTelemetry, r=jaws,flod,Gijs 2019-04-08 09:15:16 +00:00