- 28 Jul, 2019 5 commits
-
-
Oliver Woodman committed
-
Oliver Woodman committed
-
Oliver Woodman committed
-
Oliver Woodman committed
-
PiperOrigin-RevId: 249250184
eguven committed
-
- 27 Jul, 2019 2 commits
-
-
PiperOrigin-RevId: 260164426
olly committed -
When using speed adjustment it was possible for playback to get stuck at a period transition when the channel count changed: SonicAudioProcessor would be drained at the point of the period transition in preparation for creating a new AudioTrack with the new channel count, but during draining the incorrect (new) channel count was used to calculate the output buffer size for pending data from Sonic. This meant that, for example, if the channel count changed from stereo to mono we could have an output buffer size that stored an non-integer number of audio frames, and in turn this would cause writing to the AudioTrack to get stuck as the AudioTrack would prevent writing a partial audio frame. Use Sonic's current channel count when draining output to fix the issue. PiperOrigin-RevId: 260156541
andrewlewis committed
-
- 26 Jul, 2019 18 commits
-
-
Oliver Woodman committed
-
PiperOrigin-RevId: 258812820
Oliver Woodman committed -
Issue: #6222 PiperOrigin-RevId: 260146226
olly committed -
PiperOrigin-RevId: 259582498
olly committed -
1. Using the Locale on API<21 doesn't make any sense because it's a no-op anyway. Slightly restructured the code to avoid that. 2. API<21 often reports languages with non-standard underscores instead of dashes. Normalize that too. 3. Some invalid language tags on API>21 get normalized to "und". Use original tag in such a case. Issue:#6153 PiperOrigin-RevId: 258773463
tonihei committed -
2-letter codes (ISO 639-1) are the standard Android normalization and thus we should prefer them to 3-letter codes (although both are technically allowed according the BCP47). This helps in two ways: 1. It simplifies app interaction with our normalized language codes as the Locale class makes it easy to convert a 2-letter to a 3-letter code but not the other way round. 2. It better normalizes codes on API<21 where we previously had issues with language+country codes (see tests). 3. It allows us to normalize both ISO 639-2/T and ISO 639-2/B codes to the same language. PiperOrigin-RevId: 258729728tonihei committed -
Issue:#6192 PiperOrigin-RevId: 258592902
aquilescanta committed -
If we use the default start position, we currently resolve it immediately even if we need to play an ad first, and later try to project forward again if we believe that the default start position should be used. This causes problems if a specific start position is set and the later projection after the preroll ad shouldn't take place. The problem is solved by keeping the content position as TIME_UNSET (= default position) if an ad needs to be played first. The content after the ad can then be resolved to its current default position if needed. PiperOrigin-RevId: 258583948
tonihei committed -
Issue: #6184 PiperOrigin-RevId: 258527533
olly committed -
PiperOrigin-RevId: 257668797
Oliver Woodman committed -
PiperOrigin-RevId: 256751627
olly committed -
PiperOrigin-RevId: 256680382
olly committed -
PiperOrigin-RevId: 256573352
olly committed -
PiperOrigin-RevId: 256526365
olly committed -
This gives a caller greater confidence that the methods have no side effects, and remove any nullness issues with these methods accessing @Nullable member variables. PiperOrigin-RevId: 256525739
olly committed -
- Inline some unnecessarily split out helper methods - Clear ExtractorInput from FlacDecoderJni data after usage - Clean up exception handling for StreamInfo decode failures PiperOrigin-RevId: 256524955
olly committed -
PiperOrigin-RevId: 256202135
olly committed -
PiperOrigin-RevId: 248533906
Oliver Woodman committed
-
- 14 Jul, 2019 2 commits
-
-
r2.10.3
Oliver Woodman committed -
PiperOrigin-RevId: 257630168
olly committed
-
- 09 Jul, 2019 13 commits
-
-
PiperOrigin-RevId: 257185017
bachinger committed -
PiperOrigin-RevId: 257184313
aquilescanta committed -
PiperOrigin-RevId: 257161518
olly committed -
Sending MESSAGE_PREPARE_SOURCE should happen last in the constructor. It was previously happening before initialization finished (and in particular before pendingMediaPeriods was instantiated). Issue: #6146 PiperOrigin-RevId: 257158275
olly committed -
Currently, we sometimes apply new playback parameters directly and sometimes through the list of playbackParameterCheckpoints. Only when using the checkpoints, we also reset the offset and corresponding position for speedup position calculation. However, these offsets need to be changed in all cases to prevent calculation errors during speedup calculation[1]. This change channels all playback parameters changes through the checkpoints to ensure the offsets get updated accordingly. This fixes an issue introduced in https://github.com/google/ExoPlayer/commit/31911ca54a13b0003d6cf902b95c2ed445afa930. [1] - The speed up is calculated using the ratio of input and output bytes in SonicAudioProcessor.scaleDurationForSpeedUp. Whenever we set new playback parameters to the audio processor these two counts are reset. If we don't reset the offsets too, the scaled timestamp can be a large value compared to the input and output bytes causing massive inaccuracies (like the +20 seconds in the linked issue). Issue:#6117 PiperOrigin-RevId: 256533780
tonihei committed -
Before this change we'd release the audio track and create a new one as soon as audio processors had drained when reconfiguring. Fix this behavior by stop()ing the AudioTrack to play out all written data. Issue: #2446 PiperOrigin-RevId: 244812402
andrewlewis committed -
Oliver Woodman committed
-
PiperOrigin-RevId: 257138448
Oliver Woodman committed -
We currently handle most the control code logic after handling special characters. This includes filtering out repeated control codes and checking for the correct channel. As the special character sets are control codes as well, these checks should happen before parsing the characters. Issue:#6133 PiperOrigin-RevId: 256993672
tonihei committed -
PiperOrigin-RevId: 256676196
tonihei committed -
PiperOrigin-RevId: 256147805
Oliver Woodman committed -
1. Only output video starting from a keyframe 2. When calculating the timestamp offset to adjust live streams to start at t=0, use the timestamp of the first tag from which a sample is actually output, rather than just the first audio/video tag. The test streams in the referenced GitHub issue start with a video tag whose packet type is AVC_PACKET_TYPE_SEQUENCE_HEADER (i.e. does not contain a sample) and whose timestamp is set to 0 (i.e. isn't set). The timestamp is set correctly on tags that from which a sample is actually output. Issue: #6111 PiperOrigin-RevId: 256147747
olly committed -
Issue: #6047 PiperOrigin-RevId: 255992898
bachinger committed
-