https://github.com/google/ExoPlayer

sort by:
Revision Author Date Message Commit Date
bef130a Merge pull request #6371 from google/dev-v2-r2.10.5 r2.10.5 21 September 2019, 22:37:41 UTC
c9fc0da When the HLS container format is not packed audio, reset timestmap offset Issue:#6444 PiperOrigin-RevId: 270252126 20 September 2019, 19:33:13 UTC
47bfa06 Remove Player.State annotation from 2.10.5 20 September 2019, 18:57:40 UTC
38d6c31 Add 2.10.5 release date PiperOrigin-RevId: 270295080 20 September 2019, 17:13:49 UTC
d03c1dc Add dates to releases in RELEASENOTES. PiperOrigin-RevId: 270276830 20 September 2019, 17:13:19 UTC
ade6586 Remove stray line of code (it's duplicated below) PiperOrigin-RevId: 270289374 20 September 2019, 17:07:14 UTC
bbb739d Fix playback speed in MediaSessionConnector The playback speed set in MediaSession's PlaybackStateCompat needs to be the actual speed at which the playback position progresses and not the user-defined target speed. This fixed a bug where the position advances although the player lost audio focus. Issue:#6203 PiperOrigin-RevId: 269295249 20 September 2019, 17:07:14 UTC
f8d81d0 Add Player.isPlaying and Player.getPlaybackSuppressionReason The player may suppress playback when waiting for audio focus even if the state==Player.READY. There is currently no getter or callback to obtain this piece of information for UI updates or analytics. Also, it's a important derived state to know whether the playback position is advancing. Add isPlaying and the corresponding callback to allow retrieving this information more easily. Issue:#6203 PiperOrigin-RevId: 268921721 20 September 2019, 17:07:10 UTC
9557868 Update release notes - Remove HTTP/2 Fix note, since the issue is still present - Add release note for fatal error handling fix PiperOrigin-RevId: 269902736 18 September 2019, 22:28:39 UTC
1be1b0a Improve old release notes PiperOrigin-RevId: 269781924 18 September 2019, 22:28:31 UTC
556a995 Avoid retrying fatal errors Also clear fatal errors on seek operations PiperOrigin-RevId: 269780886 18 September 2019, 22:28:19 UTC
73e35ab Bump version to 2.10.5 PiperOrigin-RevId: 269582832 18 September 2019, 22:26:44 UTC
2fca01b Make flags contiguous: There's no reason for the gap :) PiperOrigin-RevId: 269514872 17 September 2019, 16:08:12 UTC
57370b3 Update translations PiperOrigin-RevId: 269521864 17 September 2019, 16:07:55 UTC
32a8625 allowing 36 characters for shuffle mode off PiperOrigin-RevId: 268478545 17 September 2019, 16:06:50 UTC
cf3cfa1 allow 33 characters for strings of shuffle on/off PiperOrigin-RevId: 268238764 17 September 2019, 16:06:43 UTC
b2aa0ae provide content description for shuffle on/off button PiperOrigin-RevId: 266884166 17 September 2019, 16:06:13 UTC
66ba8d7 Fix propagation of HlsMetadataEntry's in HLS chunkless preparation PiperOrigin-RevId: 263356275 17 September 2019, 15:34:37 UTC
47e405e Add a metadata argument to Format factory methods used in HLS Required for propagation of HlsMetadataEntry's in chunkless preparation. PiperOrigin-RevId: 263324345 17 September 2019, 15:34:13 UTC
b4a2f27 Expand FakeSampleStream to allow specifying a single sample I removed the buffer.flip() call because it seems incompatible with the way MetadataRenderer deals with the Stream - it calls flip() itself on line 126. Tests fail with flip() here, and pass without it... PiperOrigin-RevId: 263381799 17 September 2019, 01:41:32 UTC
70731fe Further tweaking of release notes 17 September 2019, 01:24:54 UTC
772b139 Tweak release notes 17 September 2019, 01:09:09 UTC
1a4b1e1 Revert "Add HTTP request parameters (headers) to DataSpec." This reverts commit c3d6be3afdd7c0ca68dba15e443bc64aa3f61073. 17 September 2019, 00:53:40 UTC
26e2930 Merge pull request #6158 from xirac:dev-v2 PiperOrigin-RevId: 268240722 17 September 2019, 00:51:50 UTC
560c8c8 Simplify and improve text selection logic. This changes the logic in the following ways: - If no preferred language is matched, prefer better scores for the selected audio language. - If a preferred language is matched, always prefer the better match irrespective of default or forced flags. - If a preferred language score and the isForced flag is the same, prefer tracks with a better selected audio language match. PiperOrigin-RevId: 259707430 17 September 2019, 00:33:38 UTC
9bc4497 Merge pull request #6178 from xirac:feature/text-track-score PiperOrigin-RevId: 259707359 17 September 2019, 00:31:27 UTC
06a374e Clean up release notes 17 September 2019, 00:25:53 UTC
480f737 Upgrade to OkHttp 3.12.5 Issue: #4078 PiperOrigin-RevId: 268887744 17 September 2019, 00:11:05 UTC
4eda96d disable seekbar in media style notification for live stream ISSUE: #6416 PiperOrigin-RevId: 268673895 17 September 2019, 00:09:02 UTC
23ddfaa Add fLaC prefix to FLAC initialization data The fLaC prefix is included in the initialization data output from the MKV extractor, so this is highly likely ot be the right thing to do. Issue: #6397 PiperOrigin-RevId: 268244365 17 September 2019, 00:08:39 UTC
b9ffea6 Fix decoder selection for E-AC3 JOC streams Issue: #6398 PiperOrigin-RevId: 267563795 17 September 2019, 00:08:06 UTC
72aa150 Handle potential timeline updates that switch from content to ad. We currently don't test if an ad needs to be played in case we are already playing content. This is to prevent recreating the current content period when an ad is marked as skipped. We prefer playing until the designated ad group position and appending another piece of content. This is less likely to cause visible discontinuities in case the ad group position is at a key frame boundary. However, this means we currently miss updates that require us to play an ad after a timeline update. PiperOrigin-RevId: 267553459 17 September 2019, 00:04:32 UTC
5a516ba Fix init data handling for FLAC in MP4 Issue: #6396 PiperOrigin-RevId: 267536336 17 September 2019, 00:04:24 UTC
332afc9 move transparency values of buttons to resources to make it accessible for customization PiperOrigin-RevId: 266880069 16 September 2019, 23:57:53 UTC
c3f3b1b Clarify LoadErrorHandlingPolicy's loadDurationMs javadocs PiperOrigin-RevId: 266797383 16 September 2019, 23:57:21 UTC
c879bbf move transparency of shuffle mode off button to bitmap PiperOrigin-RevId: 266795413 16 September 2019, 23:56:55 UTC
525d032 Fix exception message PiperOrigin-RevId: 266790267 16 September 2019, 23:56:32 UTC
4712bcf use isPlaying to determine which notification action to display in compact view PiperOrigin-RevId: 266782250 16 September 2019, 23:54:18 UTC
284a672 Bypass sniffing for single extractor Sniffing is performed in ProgressiveMediaPeriod even if a single extractor is provided. Skip it in that case to improve performances. Issue:#6325 PiperOrigin-RevId: 266766373 16 September 2019, 23:51:07 UTC
fe422db Merge pull request #6303 from ittiam-systems:rtmp-3.1.0 PiperOrigin-RevId: 266407058 02 September 2019, 13:43:00 UTC
f05d67b Simplify androidTest manifests & fix links to use https PiperOrigin-RevId: 266396506 02 September 2019, 13:39:02 UTC
407dbf0 Add HttpDataSource.getResponseCode to provide the status code associated with the most recent HTTP response. PiperOrigin-RevId: 266218104 02 September 2019, 13:38:24 UTC
ad699b8 seenCacheError should be set for all errors PiperOrigin-RevId: 265662686 02 September 2019, 13:37:40 UTC
c3d6be3 Add HTTP request parameters (headers) to DataSpec. Adds HTTP request parameters in DataSpec. Keeps DataSpec behavior to be immutable as before. PiperOrigin-RevId: 265087782 02 September 2019, 13:37:24 UTC
46bf710 Do not compare bitrates of audio tracks with different languages. The last selection criteria is the audio bitrate to prefer higher-quality streams. We shouldn't apply this criterium though if the languages of the tracks are different. Issue:#6335 PiperOrigin-RevId: 265064756 02 September 2019, 13:37:12 UTC
0085a7e Defer adsManager.init until the timeline has loaded If the app seeks after we get an ads manager but before the player exposes the timeline with ads, we would end up expecting to play a preroll even after the seek request arrived. This caused the player to get stuck. Wait until a non-empty timeline has been exposed via onTimelineChanged before initializing IMA (at which point it can start polling the player position). Seek requests are not handled while an ad is playing. PiperOrigin-RevId: 265058325 02 September 2019, 13:36:21 UTC
7cefb56 Update comment to indicate correct int value of "FLAG_ALLOW_CACHE_FRAGMENTATION" in ExoPlayer2 upstream DataSpec Currently the value of FLAG_ALLOW_CACHE_FRAGMENTATION is defined as "1 << 4" but commented as "8". Either the value of FLAG_ALLOW_CACHE_FRAGMENTATION should be "1 << 3", or the comment should be 16. Here I am modifying the comment since it does not affect any current behavior. PiperOrigin-RevId: 265011839 02 September 2019, 13:36:05 UTC
886fe91 Avoid potential ArrayStoreException with audio processors The app is able to pass a more specialized array type, so the Arrays.copyOf call produces an array into which it's not valid to store arbitrary AudioProcessors. Create a new array and copy into it to avoid this problem. PiperOrigin-RevId: 264779164 02 September 2019, 13:35:52 UTC
9e3bee8 Prevent NPE in ImaAdsLoader onPositionDiscontinuity. Any seek before the first timeline becomes available will result in a NPE. Change it to handle that case gracefully. Issue:#5831 PiperOrigin-RevId: 264603061 02 September 2019, 13:35:33 UTC
5b2b21d Fix handling of delayed AdsLoader.start AdsMediaSource posts AdsLoader.start to the main thread during preparation, but the app may call AdsLoader.setPlayer(null) before it actually runs (e.g., if initializing then quickly backgrounding the player). This is valid usage of the API so handle this case instead of asserting. Because not calling setPlayer at all is a pitfall of the API, track whether setPlayer has been called and still assert that in AdsLoader.start. PiperOrigin-RevId: 264329632 02 September 2019, 13:35:14 UTC
c60b355 Add support for the AOM scheme_id for ID3-in-EMSG https://developer.apple.com/documentation/http_live_streaming/about_the_common_media_application_format_with_http_live_streaming PiperOrigin-RevId: 264126140 02 September 2019, 13:35:00 UTC
47e0580 Unwrap SCTE-35 messages in emsg boxes PiperOrigin-RevId: 263768428 02 September 2019, 13:34:35 UTC
d3d192e Extend EventMessage.toString to include durationMs This field is used in .equals(), so it makes sense to include it in toString() too. PiperOrigin-RevId: 263768329 02 September 2019, 13:34:30 UTC
9ec346a Modify EventMessageDecoder to return null if decoding fails (currently throws exceptions) This matches the documentation on MetadataDecoder.decode: "@return The decoded metadata object, or null if the metadata could not be decoded." PiperOrigin-RevId: 263767144 02 September 2019, 13:34:19 UTC
08bb42d Upgrade librtmp-client to 3.1.0 02 September 2019, 13:33:51 UTC
5100e67 Support unwrapping nested Metadata messages in MetadataRenderer Initially this supports ID3-in-EMSG, but can also be used to support SCTE35-in-EMSG too. PiperOrigin-RevId: 263535925 02 September 2019, 13:33:45 UTC
2de1a20 Add Metadata.toString that prints the contents of `entries` entries are used in .equals(), so it's good to have them printed in toString() too (for test failures) and it makes logging easier too. PiperOrigin-RevId: 263335503 02 September 2019, 13:33:26 UTC
dcac4aa Add description to TextInformationFrame.toString() output This field is used in .equals(), we should print it in toString() too PiperOrigin-RevId: 263335432 02 September 2019, 13:33:21 UTC
90b62c6 Change default video buffer size to 32MB. The current max video buffer is 13MB which is too small for high quality streams and doesn't allow the DefaultLoadControl to buffer up to its default max buffer time of 50 seconds. Also move util method and constants only used by DefaultLoadControl into this class. PiperOrigin-RevId: 263328088 02 September 2019, 13:33:14 UTC
a381cbf Make reset on network change the default. PiperOrigin-RevId: 262886490 02 September 2019, 13:32:54 UTC
4656196 Upgrade IMA dependency version PiperOrigin-RevId: 262511088 02 September 2019, 13:32:46 UTC
921ff02 Only read from FormatHolder when a format has been read I think we need to start clearing the holder as part of the DRM rework. When we do this, it'll only be valid to read from the holder immediately after it's been populated. PiperOrigin-RevId: 262362725 02 September 2019, 13:32:40 UTC
a08b537 Simplify EventMessageEncoder/Decoder serialization We're no longer tied to the emsg spec, so we can skip unused fields and assume ms for duration. Also remove @Nullable annotation from EventMessageEncoder#encode, it seems the current implementation never returns null PiperOrigin-RevId: 262135009 02 September 2019, 13:32:33 UTC
bb6b0e1 Expose a method on EventMessageDecoder that returns EventMessage directly PiperOrigin-RevId: 262121134 02 September 2019, 13:32:27 UTC
acdb19e Clean up documentation of DefaultTrackSelector.ParametersBuilder. We don't usually refer to other classes when documenting method parameters but rather duplicate the actual definition. PiperOrigin-RevId: 262102714 02 September 2019, 13:32:21 UTC
c4ac166 Add allowAudioMixedChannelCountAdaptiveness parameter to DefaultTrackSelector. We already allow mixed mime type and mixed sample rate adaptation on request, so for completeness, we can also allow mixed channel count adaptation. Issue:#6257 PiperOrigin-RevId: 261930046 02 September 2019, 13:32:10 UTC
9f48633 Migrate literal usages of 1000 to (new) C.MILLIS_PER_SECOND This only covers calls to scaleLargeTimestamp() PiperOrigin-RevId: 261878019 02 September 2019, 13:31:21 UTC
97183ef Add inband emsg-v1 support to FragmentedMp4Extractor This also decouples EventMessageEncoder's serialization schema from the emesg spec (it happens to still match the emsg-v0 spec, but this is no longer required). PiperOrigin-RevId: 261877918 02 September 2019, 13:31:15 UTC
85c10b0 Merge pull request #6279 from google/dev-v2-r2.10.4 r2.10.4 09 August 2019, 20:01:05 UTC
d1ac272 Update stale TrackSelections in chunk sources when keeping the streams. 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 05 August 2019, 19:36:04 UTC
936a778 Check if controller is used when performing click directly. Issue:#6260 PiperOrigin-RevId: 261647858 05 August 2019, 19:35:56 UTC
b0c2b1a Bump annotations dependency PiperOrigin-RevId: 261353271 02 August 2019, 18:08:20 UTC
f3e5aaa Upgrade dependency versions PiperOrigin-RevId: 261341256 02 August 2019, 17:56:03 UTC
f2cff05 Remove obsolete workaround PiperOrigin-RevId: 261340526 02 August 2019, 17:55:58 UTC
cd7fe05 Constraint seek targetGranule within bounds + simplify tests PiperOrigin-RevId: 261328701 02 August 2019, 16:31:26 UTC
f497bb9 Move DefaultOggSeeker tests into a single class PiperOrigin-RevId: 261320318 02 August 2019, 16:31:20 UTC
1da5689 Improve extractor tests based on ExtractorAsserts - Test seeking to (timeUs=0, position=0), which should always work and produce the same output as initially reading from the start of the stream. - Reset the input when testing seeking, to ensure IO errors are simulated for this case. PiperOrigin-RevId: 261317898 02 August 2019, 16:31:14 UTC
3c8c5a3 Fix DefaultOggSeeker seeking - When in STATE_SEEK with targetGranule==0, seeking would exit without checking that the input was positioned at the correct place. - Seeking could fail due to trying to read beyond the end of the stream. - Seeking was not robust against IO errors during the skip phase that occurs after the binary search has sufficiently converged. PiperOrigin-RevId: 261317035 02 August 2019, 16:31:07 UTC
80bc50b Revert to using header bitrate for CBR MP3s A previous change switched to calculation of the bitrate based on the first MPEG audio header in the stream. This had the effect of fixing seeking to be consistent with playing from the start for streams where every frame has the same padding value, but broke streams where the encoder (correctly) modifies the padding value to match the declared bitrate in the header. Issue: #6238 PiperOrigin-RevId: 261163904 02 August 2019, 16:26:19 UTC
88b68e5 Fix ExoPlayerTest 01 August 2019, 20:06:56 UTC
f5e9213 Shorten data length if it exceeds length of input Issue: #6241 PiperOrigin-RevId: 261126968 01 August 2019, 20:05:24 UTC
6d20a5c WavExtractor: Skip to data start position if position reset to 0 PiperOrigin-RevId: 260970865 01 August 2019, 20:04:45 UTC
c373ff0 Don't print warning when skipping RIFF and FMT chunks They're not unexpected! PiperOrigin-RevId: 260907687 01 August 2019, 20:04:37 UTC
7ec7aab Move E-AC3 workaround out of MediaCodecUtil PiperOrigin-RevId: 244173887 01 August 2019, 20:02:52 UTC
7162bd8 Propagate non-standard MIME type aliases Issue: #5938 PiperOrigin-RevId: 261150349 01 August 2019, 20:01:12 UTC
23ace19 Standardize ALAC initialization data Android considers ALAC initialization data to consider of the magic cookie only, where-as FFmpeg requires a full atom. Standardize around the Android definition, since it makes more sense (the magic cookie being contained within an atom is container specific, where-as the decoder shouldn't care what container the media stream is carried in) Issue: #5938 PiperOrigin-RevId: 261124155 01 August 2019, 19:52:22 UTC
520275e Make OggSeeker.startSeek take a granule rather than a time PiperOrigin-RevId: 261102180 01 August 2019, 19:52:15 UTC
7405021 Some no-op cleanup for DefaultOggSeeker PiperOrigin-RevId: 261102008 01 August 2019, 19:52:09 UTC
4438cdb return lg specific mime type as codec supported type for OMX.lge.alac.decoder ISSUE: #5938 PiperOrigin-RevId: 261097045 01 August 2019, 19:52:01 UTC
309d043 Merge pull request #6239 from ittiam-systems:vorbis-picture-parse PiperOrigin-RevId: 261087432 01 August 2019, 19:51:40 UTC
e159e3a Mp3Extractor: Avoid outputting non-zero position seek frame as a sample Checking inputPosition == 0 isn't sufficient because the synchronization at the top of read() may advance the input (i.e. in the case where there's some garbage prior to the seek frame). PiperOrigin-RevId: 261086901 01 August 2019, 19:50:53 UTC
3e99e7a Clean up some Ogg comments & document granulePosition PiperOrigin-RevId: 260947018 01 August 2019, 19:50:37 UTC
b5ca187 Mp3Extractor: Avoid outputting seek frame as a sample This could previously occur when seeking back to position=0 PiperOrigin-RevId: 260933636 01 August 2019, 19:50:29 UTC
58e70e8 Update javadoc for TrackOutput#sampleData to make it more clear that implementors aren't expected to rewind with setPosition() PiperOrigin-RevId: 260718614 01 August 2019, 19:49:45 UTC
8c1b60f Tweak Firebase JobDispatcher extension README PiperOrigin-RevId: 260583198 01 August 2019, 19:48:59 UTC
f5980a5 Ensure the SilenceMediaSource position is in range Issue: #6229 PiperOrigin-RevId: 260500986 29 July 2019, 21:34:21 UTC
d279c3d Update README.md 28 July 2019, 19:29:55 UTC
d395db9 Update README.md 28 July 2019, 19:29:29 UTC
e56deba Update README.md 28 July 2019, 19:27:35 UTC
926ad19 Update README.md 28 July 2019, 19:26:55 UTC
back to top