Skip to content

Low Latency Issue in Exo version 2.13.2 #8664

@GouravSna

Description

@GouravSna

Issue:
In Playlist combination of Live and VOD content; low latency playback rate is not getting unset even though I am not setting it for VOD Asset.


Please check my fork: https://github.com/GouravSna/ExoPlayer-1/tree/LowLatencyTest
Video for the issue: https://drive.google.com/file/d/1iulCk_tDtdnYRA64AdfUjdVJV9qENhaa/view?usp=sharing

Reproduction Steps:

  1. I have kept one Live and one VOD asset in Playlist section named as "Live -> Vod"
  2. I am doing LiveConfiguration for Live asset only and on the next VOD content, I am not touching the mediaItem Builder itself.
builder.setLiveTargetOffsetMs(5000)
          .setLiveMinOffsetMs(C.TIME_UNSET)
          .setLiveMaxOffsetMs(3000)
          .setLiveMinPlaybackSpeed(C.RATE_UNSET)
          .setLiveMaxPlaybackSpeed(10.0f);
  1. Issue is if you see the max playback speed, i intentionally kept as 10.0f for Live asset. While live content is playing change the media in playlist.
  2. Check the VOD content's playback speed is also high; it is not at normal speed.

Debug points:

  1. Please filter the Log with Tag "LowLatencyCheck".
  2. I have kept a handler of 1 sec to keep checking the player's currentLiveOffset for Live media.

Observation:
I have set the target live offset as 5000 ms so if suppose current Live Offset is starting near to 5000 ms then on change media; for VOD content you will not see this issue.
Try checking couple of time when the currentLiveOffset starts from far duration like 12000ms or 10000 ms then in that case, Live content will try to be fast to get closer to live edge. Now do the change media and you will see that for VOD asset, Playback rate is not normal.

My analysis here is that playback rate is somehow not getting reset internally. I checked the code of MediaItem class that in builder you are resetting the values for Live.

Kindly help me here.

Mediaitem state screenshot

Screenshot 2021-03-02 at 9 12 38 PM


  • ExoPlayer version number : 2.13.2
  • Android version : 10.0
  • Android device : Moto G6 (Widevine L1)

PS: One question, Can I rely on player.getPlaybackParameters().speed value to know the current playback rate ? Because I can see that speed is not updating for Low Latency; always I see 1.0f even I can see in that the playback is fast.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions