- 08 Jan, 2021 2 commits
-
-
Issue: #5011 PiperOrigin-RevId: 350540152
bachinger committed -
Add assertion to check an output format has been propagated before returning an output buffer when operating MediaCodec in asynchronous mode. PiperOrigin-RevId: 350534918
christosts committed
-
- 07 Jan, 2021 9 commits
-
-
`stop(true)` is almost the same as `clearMediaItems(); stop();`, except that any player error isn't cleared. Clearing media items more clearly expresses the intent. PiperOrigin-RevId: 350516748
andrewlewis committed -
The flag compared against the nowTime in the period that is only set to a positive value for live streams. PiperOrigin-RevId: 350514934
tonihei committed -
PiperOrigin-RevId: 350442843
olly committed -
In many cases we just used "playback speed" as a detailed Javadoc parameter or return type definition. This doesn't define which scale the speed is using. PlaybackParameters as the main point to set the speed already uses a more precise wording to describe the value as a factor by which playback will be sped up. This change replaces other usages of "playback speed" with this wording whereever we would usually add a unit, keeping "playback speed" for summary statements etc to reference the general concept that doesn't usually require a unit. PiperOrigin-RevId: 350379139
tonihei committed -
Issue: #8190 PiperOrigin-RevId: 350357825
olly committed -
The experimental setting shows positive results and can be turned on by default. To avoid adaptation between HLS audio formats without bitrates, we need to ensure that only formats with bitrates are considered for adaptation. Also added tests for these features. Issue: #5111 PiperOrigin-RevId: 350315296
tonihei committed -
The AsynchronousMediaCodecCallback has logic to retain a pending output format in case flush() is called. This commit fixes a case where calling flush() again while an output format is pending would nullify the pending output format. A unit test is added in AsynchronousMediaCodecCallback but not the AsynchronousMediaCodecAdapter. That is because the adapter operates directly on top of MediaCodec, but Robolectric's ShadowMediaCodec produces an output format on every MediaCodec.start(). This is unrealistic when operating MediaCodec in asynchronous mode where we need to call MediaCodec.start() after every MediaCodec.flush(). PiperOrigin-RevId: 350176659
christosts committed -
- The AdaptiveTrackSelection doesn't need to use the experimental terminolgy because the code is always triggered if there are multiple adaptive selections. - It's also confusing to pass the state on the outside after the object creation, so moving everything into a simple control flow again where the adaptation checkpoints are passed in via the constructor. - Instead of triple arrays, we can use more readable named structures. - The calculation of the checkpoints can be cleaned up to be more readable by moving things to helper methods. - The reserved bandwidth from all fixed track selections is really just a special case of multiple parallel adaptataions. So this logic doesn't need to be separate. - The whole logic also didn't have test coverage so far. Added tests for the actual adaptation using these checkpoints and the builder calculating the checkpoints. Overall this should be a no-op change. PiperOrigin-RevId: 350162834
tonihei committed -
Overriding this method will never be necessary or advisable once we improve routing of audio session IDs Issue: #8190 PiperOrigin-RevId: 350146302
olly committed
-
- 05 Jan, 2021 4 commits
-
-
Issue: #8419 #minor-release PiperOrigin-RevId: 350134719
olly committed -
PiperOrigin-RevId: 350105847
Ian Baker committed -
PiperOrigin-RevId: 350100601
andrewlewis committed -
This is in preparation for using them from the extractor module. PiperOrigin-RevId: 349571390
andrewlewis committed
-
- 24 Dec, 2020 1 commit
-
-
This will allow ExoPlayer to check if video track's profile and level are supported by decoder when playing progressive media sources. Also fix typo in AvcConfig.
Alexey Rochev committed
-
- 23 Dec, 2020 24 commits
-
-
PiperOrigin-RevId: 348818482
olly committed -
PiperOrigin-RevId: 348795995
olly committed -
#minor-release Issue: #8374 PiperOrigin-RevId: 348792965
olly committed -
PiperOrigin-RevId: 348789555
olly committed -
PiperOrigin-RevId: 348784475
olly committed -
https://github.com/google/ExoPlayer/commit/dd7b379dc0344316488eb816e06638182a9eed90
*** Original commit *** DataSource.open() throws if already opened. Update DataSource implementations to throw an error if open() is called when the DataSource is already open. *** PiperOrigin-RevId: 348783425
olly committed -
PiperOrigin-RevId: 348760170
ibaker committed -
Also add a MockWebServer Dispatcher that can be customised with different resources and behaviours for different paths. PiperOrigin-RevId: 348759662
ibaker committed -
The length needs to change depending on the positition/length parameters passed to DataSpec, so it doesn't really make sense to keep this private method - it's clearer to in-line the calls in each test. PiperOrigin-RevId: 348749254
ibaker committed -
PiperOrigin-RevId: 348688419
bachinger committed -
Issue: #4904 Issue: #5011 PiperOrigin-RevId: 348655288
tonihei committed -
These two things were reported by the nullness checker as warnings. PiperOrigin-RevId: 348650535
tonihei committed -
Update DataSource implementations to throw an error if open() is called when the DataSource is already open. PiperOrigin-RevId: 348609860
christosts committed -
PiperOrigin-RevId: 348462189
tonihei committed -
Estimating the playback frame-rate, querying the display refresh rate, and setting the surface frame-rate, are all closely related to one another. In particular because setting the surface frame-rate can directly cause the display refresh rate to change. It therefore makes sense to move surface frame-rate adjustment into the helper. This also makes it easier to re-use the logic in other video renderers. PiperOrigin-RevId: 348455864
olly committed -
We currently use INDEX_UNBOUNDED for the calculation and don't offset the index by the firstSegmentNum if not unbounded. PiperOrigin-RevId: 348445797
tonihei committed -
The media specifies a URL that uses http rather than https, which the demo app doesn't permit by default. The URL here is the same except it uses https instead. #minor-release PiperOrigin-RevId: 348445571
olly committed -
#exofixit PiperOrigin-RevId: 348444280
bachinger committed -
PiperOrigin-RevId: 348443305
ibaker committed -
#exofixit PiperOrigin-RevId: 348441436
bachinger committed -
PiperOrigin-RevId: 348440799
Oliver Woodman committed -
This replaces all the duplicated logic previously implemented in FakeSampleStream and more closely follows the pattern of how SampleStreams are used from real MediaPeriods. Some tests needed adjustments because using real the SampleQueue improved behaviour: - Waiting for isLoading is only needed once even across period boundaries because the real SampleQueue doesn't have the on/off pattern. - AnalyticsCollectorTest.playlistOperations() was wrongly asserting that some pre-buffering events. The new version is more intuitively correct we pre-buffer the second item during the initial loading phase (thus period1seq1) and keep the buffer in the queue after the removal operation. PiperOrigin-RevId: 348440255
tonihei committed -
The delta updates loose information about previous init segments. Until this is properly fixed, we can avoid the problem by not using delta updates. Issue: #5011 PiperOrigin-RevId: 348023895
tonihei committed -
We're now using CapturingRenderersFactory everywhere PiperOrigin-RevId: 348018988
ibaker committed
-