- 11 Jan, 2021 14 commits
-
-
Issue: #8323 PiperOrigin-RevId: 347827615
christosts committed -
This regression was introduced in https://github.com/google/ExoPlayer/commit/b1e9257de143e9f377895b63868ef47b4fc0eea9 Issue: #8349 PiperOrigin-RevId: 347802049
ibaker committed -
It's intended to log a warning in this case, rather than throw. Issue: #8290 PiperOrigin-RevId: 347790527
andrewlewis committed -
PiperOrigin-RevId: 347789441
krocard committed -
Issue: #8011 PiperOrigin-RevId: 347288689
sungsoo committed -
Issue: #8272 PiperOrigin-RevId: 347010412
olly committed -
PiperOrigin-RevId: 346764371
olly committed -
PiperOrigin-RevId: 346346359
bachinger committed -
Issue:#8295 PiperOrigin-RevId: 346064966
kimvde committed -
Issue: #8308 #minor-release PiperOrigin-RevId: 345707141
aquilescanta committed -
This was reported for SSA/ASS in PR #8265, but it seems to me the SubRip part of the Matroska spec is similarly loose, so this change handles null-terminated strings in both. PiperOrigin-RevId: 345452667
ibaker committed -
PiperOrigin-RevId: 345428731
Oliver Woodman committed -
The `AudioProcessor` interface requires that no more input is queued after queueing end of stream, but `DefaultAudioSink` did queue more input and the implementation of `SonicAudioProcessor` actually relied on this to drain output at the end of the stream. Fix this behavior by getting `Sonic` output in `getOutput` and having `DefaultAudioSink` only queue input to processors that are not draining. Also add TODOs to clean up audio processor implementations where the code handles interaction that doesn't conform to the interface. PiperOrigin-RevId: 345406478
andrewlewis committed -
Asset generated using a temporary SSA file and: ``` $ mkvmerge -o sample_with_ssa_subtitles.mkv sample.mkv input.ssa ``` PiperOrigin-RevId: 345217628
ibaker committed
-
- 08 Jan, 2021 4 commits
-
-
PiperOrigin-RevId: 345202157
Oliver Woodman committed -
PiperOrigin-RevId: 345036042
olly committed -
Previously `MediaPeriodQueue` would return null if an ad media URI hadn't loaded yet, but this meant that the player could be stuck in `STATE_READY` if an `AdsLoader` unexpectedly didn't provide an ad URI. Fix this behavior by masking ad media periods. `MaskingMediaPeriod` no longer requires a `MediaSource` to instantiate it. This also fixes a specific case where playback gets stuck when using the IMA extension with an empty ad where the IMA SDK unexpectedly doesn't notify the ad group fetch error. Issue: #8205 PiperOrigin-RevId: 344984824
andrewlewis committed -
PiperOrigin-RevId: 334801561
bachinger committed
-
- 04 Dec, 2020 3 commits
-
-
Marc Baechinger committed
-
Marc Baechinger committed
-
Marc Baechinger committed
-
- 01 Dec, 2020 1 commit
-
-
r2.12.2
Ian Baker committed
-
- 30 Nov, 2020 14 commits
-
-
PiperOrigin-RevId: 344801462
ibaker committed -
- Retire YouTube streams. They're flaky (e.g., one of them has transformed into an audio only stream!). There is also a desire for us to stop relying on special non-expiring YouTube URLs. - Reorganize the remaining streams. PiperOrigin-RevId: 344421031
olly committed -
PiperOrigin-RevId: 344420436
olly committed -
PiperOrigin-RevId: 344408351
olly committed -
#exofixit PiperOrigin-RevId: 344246408
olly committed -
Issue: #8239 PiperOrigin-RevId: 344211877
andrewlewis committed -
#exofixit Issue: #5602 PiperOrigin-RevId: 344093622
olly committed -
The ref'd issue was marked as a doucmentation candidate, but I think the confusion likely arises from the lack of "next" and "previous" in the method names. Our other UI components also support enabling each button individually, so this also brings notifications in line with those. Issue: #6491 #exofixit PiperOrigin-RevId: 344058969
olly committed -
PiperOrigin-RevId: 344057097
kim-vde committed -
#minor-release PiperOrigin-RevId: 344051610
christosts committed -
PiperOrigin-RevId: 343883034
olly committed -
PiperOrigin-RevId: 343882631
olly committed -
PiperOrigin-RevId: 343871061
olly committed -
Don't refer to the "system's default charset", just specify UTF-8 explicitly. PiperOrigin-RevId: 343839878
ibaker committed
-
- 23 Nov, 2020 4 commits
-
-
RunnableFutureTask is not reusable. Trying to reuse it meant that a failure in one doWork() call would cause subsequent download() calls to (a) not block until the runnable has finished executing (does not apply when using a direct executor), and (b) throw the same failure as thrown from the first doWork() call. This could cause #8078 if the initial failure occurred before the content length was resolved. Retries are not blocked on their work completing due to (a), and the download would be marked as failed due to (b). The work itself could then resolve the content length, which causes the stack trace in this issue. Issue: #8078 PiperOrigin-RevId: 343498252
olly committed -
The demo app has two states for downloads, as per DownloadTracker.isDownloaded. It's either "downloaded or downloading" (isDownloaded returns true, and the UI shows a blue tick) or it's "not downloaded or failed (isDownloaded returns false, and the UI does not show a blue tick). toggleDownload is out of sync in that it treates "failed" as belonging to the first state rather than the second. This means tapping on the grey tick in the UI in this case appears to be a no-op (tapping it again will make something happen). This change aligns things by making toggleDownload re-download in the case a previous download failed. In the future we could consider having three states, so failed downloads could be disambiguated properly. Unclear whether it's a good complexity/benefit trade-off for the demo app though! #minor-release PiperOrigin-RevId: 343464364
olly committed -
When a stream has duplicate timestamps we currently discard to the last sample with the specified discardTo timestamp, but it should be the first one to adhere to the method doc and the intended usage. #minor-release PiperOrigin-RevId: 343458870
tonihei committed -
PiperOrigin-RevId: 343437513
sungsoo committed
-