-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
new TrackSelection not updated in HlsChunkSource #6256
Comments
Thanks for reporting. It looks this bug also affects other streaming types where we save a reference to the TrackSelection (e.g. DASH). |
You're more than welcome! Here's a proposed fix that is working for me locally: stevemayhew@ddfaa97 I am working from dev-v2-r2.10.3 so it will not directly merge with a pull. I looked to write a test case, but that would entail building out test cases for the whole of If this is good, I'll move the change to base off dev-v2 and submit it as a pull. |
Thanks for the proposal. I re-implemented this in a slightly different way to move the update further down where we keep the streams. |
Cool, thanks. I’ll look for the change and test it.
…On Mon, Aug 5, 2019 at 5:55 AM tonihei ***@***.***> wrote:
Thanks for the proposal. I re-implemented this in a slightly different way
to move the update further down where we keep the streams.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#6256?email_source=notifications&email_token=AADBF6BJG2N2K7BRVYRMJ6DQDAPNVA5CNFSM4IIW4V7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3RXFFQ#issuecomment-518222486>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADBF6F55AODWWI4POUSFILQDAPNVANCNFSM4IIW4V7A>
.
|
If we keep streams in chunk sources after selecting new tracks, we also keep a reference to a stale disabled TrackSelection object. Fix this by updating the TrackSelection object when keeping the stream. The static part of the selection (i.e. the subset of selected tracks) stays the same in all cases. Issue:#6256 PiperOrigin-RevId: 261696082
If we keep streams in chunk sources after selecting new tracks, we also keep a reference to a stale disabled TrackSelection object. Fix this by updating the TrackSelection object when keeping the stream. The static part of the selection (i.e. the subset of selected tracks) stays the same in all cases. Issue:#6256 PiperOrigin-RevId: 261696082
Fix merged into |
I’ll do it tomorrow, planning to move our branch forward from 2.10.3
anyway.
The iFrame playlist parsing is ready to push a branch too, our CI is in the
queue
…On Mon, Aug 5, 2019 at 12:37 PM Oliver Woodman ***@***.***> wrote:
Fix merged into dev-v2 and dev-v2-r2.10.4. If you could give it a quick
test, that would be great.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#6256?email_source=notifications&email_token=AADBF6GAK5WDOYIWJULL273QDB6QFA5CNFSM4IIW4V7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3S3E7A#issuecomment-518369916>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADBF6CSYYVWLJS2YP55BUTQDB6QFANCNFSM4IIW4V7A>
.
|
Issue description
When playing back adaptive HLS content if you change the playback speed the
AdaptiveTrackSelection
should level down to a lower bitrate track to avoid stalls, it does not because theplaybackSpeed
update is missed since theHlsChunkSource
that calls this method references a staleTrackSelection
.The code that handles this is:
Reproduction steps
Playback using any HLS content (I used the Mango Open Source video: https://mango.blender.org, I'll email an S3 bucket with an HLS version of this). Then:
TrackSelection
object reference inHlsChunkSource
, it should change to match that inMediaPeriodHolder
Triage
This is easy to reproduce by just disabling the audio track. This forces a invalidate (
TrackSelector.invalidate()
called). The invalidate creates a newAdaptiveTrackSelection
object, viaTrackSelection.Factory.createTrackSelection()
The updated
TrackSelection
instance is stored in theMediaPeriodHolder
but not updated in theHlsChunkSource
. This is because of logic to avoid re-creating the SampleStream (a good thing) inHlsSampleStreamWrapper
Link to test content
Mango Open Source - Tears of Steel (I'll send a link)
A full bug report captured from the device
I'll send it, probably useless though, the issue is a logic issue not platform specific.
Version of ExoPlayer being used
dev-v2-r2.10.3 - 1275217
Device(s) and version(s) of Android being used
Evolution IPA-1104HDH-01. SDK 26
The text was updated successfully, but these errors were encountered: