The new method allows to add transfer listeners (e.g. the BandwidthMeter) after
the data source has been created. To simplify the implementation for
subclasses, this change also introduces a BaseDataSource which handles
the list of listeners and the listener registration.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202649563
In the future, this allows to register the BandwidthMeter (managed by the player)
as a listener to all media transfers related to this media source.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202643946
- Extract ConstantBitrateSeeker from Mp3 package into a more general
ConstantBitrateSeekMap.
- Use this seekmap to implement seeking for AMR format.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202638183
From the spec:
If the EXT-X-INDEPENDENT-SEGMENTS tag appears in a Master
Playlist, it applies to every Media Segment in every Media
Playlist in the Master Playlist.
----
This requires propagation of attributes from the master
playlist to the media playlists. This CL only includes
independent segments, but other inheritable attributes
will be supported in following changes. Other inheritable
attributes include variable substitution definitions and
session keys.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202628422
- Make it looks more natural to have MetadataRetrieverTestRunner in the same
package as ExoPlayerTestRunner.
- Change moe_config script to remove the file MetadataRetrieverTestRunner,
instead of the folder.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202626238
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 are discarding all TS PES payload readers on seek. This is to fix
a bug that makes PES stream readers read packets inconsistently after seeking (first
time, the readers ignore all packets before PMT, second seek time after PMT is
read, the readers will read all packets before PMT).
This works fine if we don't support seeking to arbitrary position within the TS
stream. However, this may lead to a problem if we want to support seeking, because
some TS streams only have track format at the begining of the stream, and reseting
the payload readers after seeking can lead to track format not available anymore.
This change reverts the original fix (do not discard TS PES payload readers on seek
anymore). Instead, in non-HLS mode, after we have processed all PMTs packets in
the strea, we will re-seek to the beginning and perform readin again to make sure
the result will be consistent across multiple seeks. This is a prepare step to
support seeking in TS streams.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202466233
This url is readily available when creating media source events (from the
data source) but so far not published to external listeners. This change
adds a new field to LoadEventInfo which corresponds to DataSource.getUri().
Issue:#2054
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202459049
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
Add methods setCustomErrorMessage(@Nullable CharSequence message)
and setCustomErrorMessage(@Nullable CharSequence message, int code)
to MediaSessionConnector to report errors to the MediaSession
which are not player errors.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202352083
Original change by nickchavez@nickchavez:andcsvol:3257:citc on 2018/06/19 12:41:18.
Add VolumeProvider interface to VideoAdPlayer and VideoStreamPlayer.
- Send volume on videoDisplay.start so that it can be sent to OMID.
- Add unit tests for AdPlayerCalback and ExoPlayerVideoAdPlayerImpl.
- Add functional tests for client side and DAI volume updates.
Add onVolumeChanged() to VideoAdPlayerCallback and VideoStreamPlayerCallback.
- Implement volume updates for SDK owned video player.
- Remove mute/unmute events, which are handled in JS instead (like iOS).
- Collect volume changes from client side and DAI video players.
External: Publisher players will now have to implement getVolume() and onVolumeChanged() for custom video players.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202324636
Also moved shared code to SegmentDownloadAction between its subclasses.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=202294880
When getMedatadata from an ExtractorMediaPeriod, due to the MediaPeriod refreshing its Timeline twice, the MetadataRetriever may wrongly reset periodIndex of the current trackGroup to C.TIME_UNSET, which makes it unable to handle subsequent metadata queries.
This CL changes the MetadataRetriever to keep track of periodUid of the current trackGroup instead of period index. PeriodUid is not changed on timeline refreshing, so is not prone the existing problem.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201969350
Refactor sniff(), and extract a few methods out from read() to make it look clearer. This CL does not change any functionality.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201933207
The DefaultAnalyticsListener was added for selective overrides. Now that Java 8
support is enabled, these selective listener overrides can be implemented
more easily and more flexible using default methods.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201931770
The DefaultEventListener was added for selective overrides. Now that Java 8
support is enabled, these selective listener overrides can be implemented
more easily and more flexible using default methods.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201695490
Both values are helpful for event reporting, but are only available while
the data source is open. Similar to bytesLoaded, they need to be reported
through the Chunk.
Issue:#2054
Issue:#4361
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201664907
This will make it possible for ImaAdsLoader to access the player volume when
used with SimpleExoPlayer.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201664189
Replace assertThat(a >= b).isTrue() with assertThat(a).isAtLeast(b) because it
reads more natural, and in case the assertion fails, it will print out the
actual values to help debugging.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=201371993