If there is only one track, we can assume that both boxes refer to the same track
even if the track indices don't match.
Issue:#4083
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203485872
MediaDrm.provideXResponse methods only accept the response
corresponding to the most recent MediaDrm.getXRequest call.
Previously, our code allowed the following incorrect call
sequence:
a = getKeyRequest
b = getKeyRequest
provideKeyResponse(responseFor(a));
This would occur in the edge case of a second key request
being triggered whilst the first was still in flight. The
provideKeyResponse call would then fail.
This change fixes the problem by treating responseFor(a)
as stale. Note that a slightly better fix would be to
defer calling getKeyRequest the second time until after
processing the response corresponding to the first one,
however this is significantly harder to implement, and is
probably not worth it for what should be an edge case.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203481685
Both boxes should contain the same list of track indices. However, if only one
track index in each list does not match, we can just assume that these belong
together.
Issue:#4477
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=203481258
It's quite hard to find the defaults currently. Placing them
on each variable makes them easier to find.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202495929
Currently we immediately stop searching after we found one video and one
audio track. This change adds some leeway to detect additional tracks.
Issue:#4406
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202455491
Allows DrmInitData to carry a license server URL when the media declares one.
Issue:#3393
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=199643743
This simplifies the player setup and prevents using deprecated methods in the demo.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205642981
This allows to automatically forward bandwidth estimate events to
AnalyticsListeners.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205642752
This removes the need to populate the entire period for the common usage of
getting the uid from the period.
Also add default implementation to get period by uid.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205638265
The end position is needed to make the MediaPeriodId unique as multiple
content periods may only vary in this parameter.
This also simplfies some other comparisons where the end position needed to
be compared in addition to the media period id.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205634508
The number is shelved in calls to queue.clear() to keep it for the next
media period. However, the queue may also become empty by repeated calls to
advancePlayingPeriod which may happen when seeking to an unprepared period.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205376036
Currently, when the VideoRendererOutputCapturer updates output size, it will
set the new surface, then release the old surface. This can lead to problem
when both surface depends on EGL, since the second release() can release EGL
resources of the first surface.
This CL reverses this process, and ensures that the old surface is released before the new one is created.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=205235451
Setting the transfer listener on the data source factories is only needed for debug
purposes, logging and for custom bandwidth metering which doesn't use the
player-provided bandwidth meter. As such, it is not compulsary and it should be easy
to set up the data source factory without a transfer listener.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204926083
This was only needed temporatily until we could ensure that the player always
provides a BandwidthMeter.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204903640
As part of this change:
- Don't apply the workaround on API level 27+. GTS coverage
should prevent such devices from existing.
- Use Util.DEVICE consistently.
- Remove the "// Device name", which don't really add much
but make extra work when updating the list.
Issue: #4468
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204889657
This will allow deduplicating the argument from all Loader clients.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204889331
This bandwidth meter is then forwarded to the track selection and as a transfer
listener to media and data sources.
When no bandwidth meter is specified in the ExoPlayerFactory methods, a static
singleton instance will be used.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204881497
When notifying the bandwidth listeners of new samples, the forwarded values
need to be final to prevent concurrent access. Putting the event forwarding
into a separate method ensures the values are final.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=204877650