- 02 Aug, 2019 2 commits
-
-
- 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
olly committed -
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
andrewlewis committed
-
- 01 Aug, 2019 16 commits
-
-
Oliver Woodman committed
-
Issue: #6241 PiperOrigin-RevId: 261126968
olly committed -
PiperOrigin-RevId: 260970865
olly committed -
They're not unexpected! PiperOrigin-RevId: 260907687
olly committed -
PiperOrigin-RevId: 244173887
andrewlewis committed -
Issue: #5938 PiperOrigin-RevId: 261150349
olly committed -
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
olly committed -
PiperOrigin-RevId: 261102180
olly committed -
PiperOrigin-RevId: 261102008
olly committed -
ISSUE: #5938 PiperOrigin-RevId: 261097045
bachinger committed -
PiperOrigin-RevId: 261087432
Oliver Woodman committed -
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
olly committed -
PiperOrigin-RevId: 260947018
olly committed -
This could previously occur when seeking back to position=0 PiperOrigin-RevId: 260933636
olly committed -
Update javadoc for TrackOutput#sampleData to make it more clear that implementors aren't expected to rewind with setPosition() PiperOrigin-RevId: 260718614
olly committed -
PiperOrigin-RevId: 260583198
olly committed
-
- 29 Jul, 2019 1 commit
-
-
Issue: #6229 PiperOrigin-RevId: 260500986
andrewlewis committed
-
- 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 14 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
-