Commit graph

5399 commits

Author SHA1 Message Date
andrewlewis
cf52742ad9 Fix gapless playback
Audio processors are now flushed twice after reconfiguration.
The second flush call cleared the pending trim start bytes so
transitions between tracks were no longer gapless.

Fix this by removing logic to clear pending trim bytes on flush.
As a result we may trim data incorrectly if there is a flush
before any data has been handled for seeking to a non-zero
position, but this edge case will happen rarely and the effect
shouldn't be noticeable.

PiperOrigin-RevId: 307344357
2020-05-27 19:36:49 +01:00
olly
e6b5e6eb6e Merge trick play tracks into main track groups
Issue: #6054
PiperOrigin-RevId: 307285068
2020-05-27 19:36:27 +01:00
Oliver Woodman
ad36f64965 Merge pull request #7210 from nebyan:CacheKeyFactoryNotUsed
PiperOrigin-RevId: 307045655
2020-05-27 19:29:20 +01:00
bachinger
aea9f8e550 Merge pull request #7245 from Clement-Jean:silence-media-source-factory
PiperOrigin-RevId: 307010600
2020-05-27 19:28:30 +01:00
andrewlewis
4dc1d317c3 Fix TeeAudioProcessor sink configuration
TeeAudioProcessor needs to configure its sink when it is initially set up.

PiperOrigin-RevId: 306808871
2020-05-27 19:27:16 +01:00
kimvde
f2d2d56109 Fix H265Reader
Update H265Reader to output the same samples after a seek to 0.

PiperOrigin-RevId: 306675050
2020-05-27 19:25:51 +01:00
olly
48081dd073 Parse trick-play role flags from DASH manifests
Issue: #6054
PiperOrigin-RevId: 306641689
2020-05-27 19:22:23 +01:00
aquilescanta
2df9491383 Avoid throwing an exception for sample default values
Allows playback of content when the default value is
not valid, but not used for any samples.

Issue: #7207
PiperOrigin-RevId: 306631376
2020-05-27 19:12:37 +01:00
olly
bdc0db30fd Don't select trick-play tracks by default
Issue: #6054
Issue: #474
PiperOrigin-RevId: 306504362
2020-05-27 19:10:42 +01:00
olly
d538d6ae37 Fix capabilities check for low frame-rate content
Issue: #6054
Issue: #474
PiperOrigin-RevId: 306437452
2020-05-27 19:09:58 +01:00
Oliver Woodman
76374d7822 Clean up playWhenReady 2020-04-08 22:11:33 +01:00
Oliver Woodman
55e33e3699 Fix missing subtitle addition 2020-04-07 21:43:09 +01:00
olly
f696a56b56 Audio focus: Restore full volume if focus is abandoned when ducked
If we're in the ducked state and updateAudioFocus is called with a
new state for which focus is no longer required, we should restore
the player back to full volume.

Issue: #7182
PiperOrigin-RevId: 305232155
2020-04-07 14:12:30 +01:00
Oliver Woodman
49858b82f2 Merge pull request #7184 from TiVo:p-subtitle-format-from-codecs
PiperOrigin-RevId: 305137114
2020-04-07 14:12:06 +01:00
olly
cc29798d9b Audio focus: Re-request audio focus if in a transient loss state
This avoids cases where audio focus is never successfully acquired
because another app is holding on to transient audio focus indefinitely.

Issue: #7182
PiperOrigin-RevId: 305108528
2020-04-07 14:02:46 +01:00
tonihei
3c0e617837 Merge AudioFocusManager methods to simplify control flow.
handlePrepare/Stop/SetPlayReady can be merged together as they all
handle changes to the desires state of the player.

Also, simplify parts of the control flow by not mixing code that
determines if audio focus needs to be handled with code that actually
acquires or abandons the focus.

PiperOrigin-RevId: 299824857
2020-04-07 14:01:54 +01:00
andrewlewis
07cbfb65e5 Fix stuck ad playbacks with DRM-protected content
When ClippingMediaPeriod first tried to read a buffer, if its end
position was before the end of the stream and it was buffered to its end
position, it would sometimes erroneously signal end-of-stream for
protected content because the sample queue might be waiting for DRM keys
at this point.

Work around the issue temporarily by signaling this specific case back
to ClippingMediaPeriod via the DecoderInputBuffer.

There will likely be a cleaner fix as a result of adding support for
dynamic clip end points in the future, at which point this can be
reverted.

issue:#7188
PiperOrigin-RevId: 305081757
2020-04-07 13:49:54 +01:00
Oliver Woodman
d4d7907193 Revert "Remove duplicate SCTE-35 format and add sample to TsExtractorTest"
This reverts commit 8591e69b6a.
2020-04-07 13:43:28 +01:00
Oliver Woodman
f14c028078 Fix dump files for release 2020-04-03 22:57:06 +01:00
samrobinson
b8e6e98430 Simplify WakeLockManager and WifiLockManager logic.
Disabling reference counting allows some checks to be removed.

This is a no-op.

PiperOrigin-RevId: 299829600
2020-04-03 22:52:40 +01:00
samrobinson
83c2ca5902 Add WifiLock management to SimpleExoPlayer.
Issue:#6914
PiperOrigin-RevId: 297598910
2020-04-03 22:52:35 +01:00
samrobinson
e4e56fac09 Clean WakeLockManager.updateWakeLock logic.
PiperOrigin-RevId: 284552723
2020-04-03 22:49:03 +01:00
kimvde
d921491e7d Remove thread checks in player constructor
SimpleExoPlayer instances don't have to be created from the application
thread.

PiperOrigin-RevId: 304190901
2020-04-01 23:04:51 +01:00
olly
38f282800c Fix ADTS extraction with mid-stream ID3
PiperOrigin-RevId: 304184650
2020-04-01 23:04:36 +01:00
Oliver Woodman
c75f3f77ff Merge pull request #7099 from matamegger:feature/fix_pssh_v1_on_firetv
PiperOrigin-RevId: 303937576
2020-04-01 22:58:03 +01:00
olly
1f44a4db4b Bump version to 2.11.4
PiperOrigin-RevId: 303776645
2020-03-30 19:27:23 +01:00
andrewlewis
fea0acd41a Fix PlaybackStatsListener behavior when not keeping history
issue:#7160
PiperOrigin-RevId: 303747338
2020-03-30 18:36:10 +01:00
jaewan
94ca84ff29 Allow developers to specify CharSequence for Notification strings
CharSequence is used by Notification builders and allows to set Spannable text.
It's the base interface of the String class, so apps wouldn't be break after
the update.

PiperOrigin-RevId: 303731890
2020-03-30 18:36:10 +01:00
olly
f0e734d33e Workaround C2 AAC decoder flush problem on Android 10
Issue: #6671
PiperOrigin-RevId: 303364788
2020-03-30 18:36:07 +01:00
olly
a9cbbf91c3 Skip aliases of other codecs
- They are always listed with their canonical names
- Considering aliases means that blacklisting a decoder can end up
  not actually blacklisting it, since it may still be accessible
  via an alias. It also means that our decoder fallback logic can
  end up falling back to a decoder that we've already tried!

PiperOrigin-RevId: 303348297
2020-03-30 18:31:24 +01:00
ibaker
c9f28086db Make milliseconds optional in SubRip (SRT) subtitles
issue:#7122
PiperOrigin-RevId: 303154493
2020-03-30 18:31:24 +01:00
olly
a038346ecc Resample float audio to 16-bit by default to enable audio processing
This is less confusing than having audio processing functionality (e.g., playback
speed adjustment) just "not work" for some pieces of media.

If this change is merged, I will update #6749 to also track making DefaultAudioSink
intelligently enable/disable float output depending on how the audio processors are
configured.

Issue: #7134
PiperOrigin-RevId: 302871568
2020-03-30 18:31:24 +01:00
olly
ddc98334e0 DefaultAudioSink: Fix issue if last processor is not active
It's incorrect to use an AudioFormat returned from AudioProcessor.configure
unless the AudioProcessor is active.

Issue: #7134
PiperOrigin-RevId: 302674132
2020-03-30 18:31:24 +01:00
olly
54c608481b Support 32-bit FP to 16-bit Int audio resampling
This is a no-op for DefaultAudioSink for now, because DefaultAudioSink
currently disables processing anyway if the input uses ENCODING_PCM_FLOAT.

Issue: #7134
PiperOrigin-RevId: 302670534
2020-03-30 18:31:24 +01:00
olly
2094c7491b WAV: Don't read past data end position
Issue: #7129
PiperOrigin-RevId: 302660343
2020-03-30 18:31:24 +01:00
olly
1d6bd0de15 MP4 edit lists: Use floor rather than ceil to find first sample
If the start time of the edit falls within a sample, start from that
sample rather than the next one. This ensures playback can start from
the correct point if the sample is a keyframe, rather than having to
start from the next one.

Issue: #7133
PiperOrigin-RevId: 302639115
2020-03-30 18:31:24 +01:00
ibaker
d18292c9c9 Allow missing hours in SubRip (.srt) subtitle timecodes
Add a test for this case, and extend the existing tests to ensure the
hour is parsed when it's present.

issue:#7122
PiperOrigin-RevId: 302472213
2020-03-30 18:31:23 +01:00
krocard
cac36be6eb Conserve ByteOrder when growingDecoderInputBuffer
#exo-offload

PiperOrigin-RevId: 302403507
2020-03-30 18:31:23 +01:00
olly
a39715d323 Improve logging
- Make sure logging of UnknownHostException indicates the failure reason
- Indent stack traces inside event blocks in EventLogger
- Don't log media URLs

PiperOrigin-RevId: 302007601
2020-03-30 18:27:14 +01:00
Oliver Woodman
dd4a732303 Merge pull request #7098 from matamegger:feature/webvtt_negative_media_timestamp
PiperOrigin-RevId: 301996778
2020-03-30 18:27:14 +01:00
andrewlewis
4750785f5a Add option for sensor rotation in 360 playbacks
Issue: #6761
PiperOrigin-RevId: 300715682
2020-03-30 18:27:07 +01:00
Oliver Woodman
b2849fde3d Merge pull request #7057 from Chimerapps:dash_assetidentifier
PiperOrigin-RevId: 300313753
2020-03-30 14:32:35 +01:00
Oliver Woodman
dca68b2198 Merge pull request #7064 from davibe:enhancement/6907
PiperOrigin-RevId: 300330109
2020-03-30 14:30:33 +01:00
Oliver Woodman
4e6383aeae Merge pull request #7051 from Cizor:dev-v2
PiperOrigin-RevId: 299357049
2020-03-30 14:25:27 +01:00
Oliver Woodman
c3f9f0e5fe Merge pull request #7010 from dbrain:fix_nullability
PiperOrigin-RevId: 297187116
2020-03-30 13:47:20 +01:00
Oliver Woodman
8591e69b6a Remove duplicate SCTE-35 format and add sample to TsExtractorTest
It's not clear why we're currently outputting the format in both init()
and consume() - it seems likely that this was accidentally introduced
in <unknown commit>
when we started outputting the format in consume() but didn't remove it
from init().
2020-03-30 13:46:24 +01:00
ibaker
1818921a20 Catch-and-log all subtitle decode errors
issue:#6885
PiperOrigin-RevId: 295931197
2020-03-30 13:41:41 +01:00
andrewlewis
ed1eade980 Update stale comment in TrimmingAudioProcessor
The part about leaving the pending trim start byte count unmodified
if the processor was just configured is not correct.

PiperOrigin-RevId: 295745371
2020-03-30 13:40:36 +01:00
olly
23e4236227 Add missing IntDef to switch
PiperOrigin-RevId: 295692163
2020-03-30 13:39:30 +01:00
Oliver Woodman
b14d879947 Tweak Javadoc 2020-02-18 14:47:58 +00:00
olly
5f1c6b650d Fix SmoothStreaming
Issue: #6981
PiperOrigin-RevId: 295579872
2020-02-18 12:15:13 +00:00
olly
d93b57c009 Zero out trailing bytes in CryptoInfo.iv
CryptoInfo.iv length is always 16. When the actual initialization vector
is shorter, zero out the trailing bytes.

Issue: #6982
PiperOrigin-RevId: 295575845
2020-02-18 12:14:34 +00:00
kimvde
a967ff3204 Fix DefaultExtractorsFactory Javadoc
PiperOrigin-RevId: 295540885
2020-02-18 12:11:29 +00:00
olly
cd0999e733 Bump version to 2.11.3
PiperOrigin-RevId: 295695297
2020-02-18 12:10:24 +00:00
andrewlewis
646e690d9f Add GL demo app
Demonstrates rendering to a GLSurfaceView while applying a GL shader.

Issue: #6920
PiperOrigin-RevId: 293551724
2020-02-13 16:52:20 +00:00
aquilescanta
19c8858341 Prepare and release DrmSessionManager in Renderers
Issue: #6951
PiperOrigin-RevId: 294187695
2020-02-13 15:53:05 +00:00
olly
890fd4efb8 Don't re-init codec if DRM session is unchanged
This condition is trying to detect when it might be necessary
to switch from a non-secure to a secure codec. This is not
possible if the DRM session is unchanged, unless a different
codec is required for some other reason (e.g., H264 -> H265),
which is anyway handled by canKeepCodec below.

PiperOrigin-RevId: 292909126
2020-02-03 14:46:08 +00:00
olly
b7c5f5cde6 Avoid unnecessary decoder instantiations on key rotation
Issue: #6903
PiperOrigin-RevId: 292884280
2020-02-03 11:24:25 +00:00
olly
45cb55ce09 Lock down SampleQueue to reasonable extension points
PiperOrigin-RevId: 292542298
2020-02-01 19:40:07 +00:00
olly
fd88115728 HLS: Fix key rotation
Passing EXT-X-KEY DrmInitData through the FragmentedMp4Extractor
doesn't work for streams with key rotation, because an extractor
instance is used for multiple segments, but is only passed the
EXT-X-KEY DrmInitData corresponding to the first segment.

This change removes passing DrmInitData through the extractor,
and instead passes it via FormatAdjustingSampleQueue. This is
in-line with how manifest DrmInitData is handled during DASH
playbacks.

Issue: #6903
PiperOrigin-RevId: 292323429
2020-02-01 19:39:06 +00:00
olly
850aef4f67 SampleQueue: Let subclasses easily invalidate format adjustment
This is a nice-regardless improvement to SampleQueue, which will
likely to used to fix the referenced issue. It makes it possible
for SampleQueue subclasses to support dynamic changes to format
adjustment in a non-hacky way.

Issue: #6903
PiperOrigin-RevId: 292314720
2020-02-01 19:38:06 +00:00
olly
12bb35867e Expand dangal workaround to all API levels
It doesn't seem worth keeping the cap, since the device
will presumably stop receiving major version updates at
some point anyway.

Issue: #6899
PiperOrigin-RevId: 291899439
2020-02-01 19:37:20 +00:00
tonihei
c79cb1bfe0 Add ID3 genres added in Wimamp 5.6 (2010).
All these genres are currently causing a warning and are not added to the Metadata.Entry.

PiperOrigin-RevId: 290594810
2020-01-27 19:06:36 +00:00
olly
b137cfbd99 Tidy up DownloadService restart. Final change for #6798.
- Add additional Listener methods to DownloadManager, to inform of
  changes to whether the downloads are paused or waiting for requirements.

- Only schedule the Scheduler if we really are waiting for requirements.

- Only restart the service if we're no longer waiting for requirements,
  and if there are queued downloads that will now be restarted.
  Previously the service would be restarted whenever the requirements
  were met, regardless of whether there was any work to do.

- Restart service if it might be stopping, as well as if it's already
  stopped. Also restart service if there's a download state change to a
  state for which the service should be started, if.

Issue: #6798
PiperOrigin-RevId: 290270547
2020-01-17 16:16:52 +00:00
olly
0a2373c300 2.11.2 release notes and version bump
PiperOrigin-RevId: 290269098
2020-01-17 16:16:36 +00:00
krocard
49349f0f28 Do not hold a codec in OnFrameRenderedListener
Doing so prevent Codec which is a big object with
JNI to be garbage collected.

As the codec can not be hold in the listener, there
is no way to call release, as it must be called on
the same codec.
As a result the release method is also removed.
The downside is that at runtime some callbacks may be
dropped but it should be a short transitive state.

This also simplifies lifecycle of the listener as
the client does not have to know if release needs
to be called or not.

An alternative would have been to hold a weak ref,
but I deemed it too complicated for the
runtime gain.

PiperOrigin-RevId: 290231659
2020-01-17 16:14:51 +00:00
Oliver Woodman
ea4711630f Fix build 2020-01-17 14:30:48 +00:00
olly
f146bad439 HLS: Fix slow seeking into long MP3 segments
Issue: #6155
PiperOrigin-RevId: 290117324
2020-01-17 14:02:33 +00:00
kimvde
0456b638e3 FlacExtractor: handle case where last frame < MAX_FRAME_HEADER_SIZE
PiperOrigin-RevId: 290079840
2020-01-17 14:02:29 +00:00
krocard
e202560dc9 Tunneling timestamp use Message instead of Runnable
This avoids allocating a Runnable.

PiperOrigin-RevId: 290079660
2020-01-17 14:02:16 +00:00
olly
0ac22d3401 Start service in foreground if allowed
This fixes an issue where a DownloadService implementation
that allows foreground but doesn't provide a scheduler would
not be restarted in the case that it was still in memory but
classed as idle by the platform.

It also speeds up service restart in the case that a
scheduler is provided.

Issue: #6798
PiperOrigin-RevId: 290068960
2020-01-17 14:01:50 +00:00
olly
f35cb8ae49 Split SampleQueue.advanceTo for advance & seek use cases
This method has two use cases:

1. Seeking. Calls are immediately preceded by a call to rewind(), and
   the returned value isn't important unless it's ADVANCED_FAILED (i.e.
   the caller is only interested in success and failure).
2. Advancing. The return value is important unless it's ADVANCED_FAILED,
   in which case the caller wants to treat it as 0.

This change creates separate methods for each use case. The new seekTo
methods automatically rewind and return a boolean. The updated advanceTo
method returns 0 directly in cases where ADVANCED_FAILED was returned.
Arguments that were always hard-coded to true by callers have also been
removed.

This change is a step toward one possible solution for #6155. How we'll
solve that issue is still up for discussion, but this change seems like
one we should make regardless!

Issue: #6155
PiperOrigin-RevId: 290053743
2020-01-17 14:01:45 +00:00
olly
dfa4d55f50 Fix DownloadService resumption
- DownloadManagerHelper now passes all downloads to the
  DownloadService when the service is attached (and once
  the downloads are known). The service then starts the
  foreground notification updater if necessary. This fixes
  the ref'd issue.
- Don't call getScheduler() if the service is background
  only. This was already documented to be the case on the
  DownloadService constructor.
- If the service is started in the foreground on SDK level
  26 and higher, satisfy the condition to move the service
  to the foreground in onStartCommand rather than in stop().
  It's much more obviously correct, and should produce the
  same end result.

Issue: #6798
PiperOrigin-RevId: 290050024
2020-01-17 14:01:38 +00:00
Oliver Woodman
c269ffe1e6 Merge pull request #6603 from TiVo:fix-tunneling-stuck-release
PiperOrigin-RevId: 290041295
2020-01-17 14:00:33 +00:00
Oliver Woodman
38bc7355c7 Merge pull request #6678 from phhusson:feature/enable-multi-metadata-tracks
PiperOrigin-RevId: 290032841
2020-01-17 13:59:48 +00:00
olly
5bdcb5fd56 DASH: Output Format before InitializationChunk load completes
This optimization allows a ChunkSampleStream to output track
formats as soon as they're parsed during an InitializationChunk
load, rather than waiting until after the InitializationChunk
load is completed.

In DASH VOD, a single InitializationChunk typically loads the
moov and sidx atoms in that order. Hence for long form content
where the sidx is a non-trivial size, this may result in the
track formats being output a non-negligible period of time
sooner than was previously the case. This allows downstream
renderers to start codec initialization sooner, potentially
decreasing startup latency.

For a single test stream on a fast & stable network, this
pretty consistently reduced elapsed time until both audio and
video codecs have been initialized from ~0.5s to ~0.3 seconds
on a Galaxy S8. For 5 test runs without and with these patches,
the eventTime logged by EventLogger for the second decoder
init were:

Without (secs): 0.47 0.47 0.45 0.48 0.46
With (secs)   : 0.32 0.33 0.34 0.31 0.40

PiperOrigin-RevId: 289845089
2020-01-17 13:59:37 +00:00
olly
124510276f Optimize chunks to init their outputs before opening the DataSource
The current order of operations means that the Format is only passed
to the chunk's output after the DataSource has been opened. This
means that establishing the network connection and the downstream
renderers initializing their codecs are effectively serialized to
occur one after the other.

In the new order, the Format is passed to the chunk's output before
the DataSource has been opened. This allows the downstream renderers
to initialize their codecs in parallel with the network connection
being established, and hence latency at the start of playback is
reduced.

PiperOrigin-RevId: 289841854
2020-01-17 13:59:33 +00:00
olly
771aa32825 Use customCacheKey in DownloadHelper.createMediaSource
Issue: #6870
PiperOrigin-RevId: 289658261
2020-01-17 13:59:22 +00:00
olly
32021602ca Rename ID3 tag to Afro-Punk
PiperOrigin-RevId: 289490708
2020-01-17 13:58:22 +00:00
olly
4e4a415d6c DownloadService: No-op cleanup
Issue: #6798
PiperOrigin-RevId: 289424582
2020-01-17 13:58:18 +00:00
olly
61130a593d Deprecate DownloadService state change methods
As discovered whilst investigating #6798, there are cases
where these methods are not correctly. They were added as
convenience methods that could be overridden by concrete
DownloadService implementations, but since they don't work
properly it's preferable to require application code to
listen to their DownloadManager directly instead.

Notes:

- The original proposal to fix #6798 stored the state change
events in memory until they could be delivered. This approach
is not ideal because the events still end up being delivered
later than they should be. We also want to fix the root cause
in a different way that does not require doing this.
- This change does not fix #6798. It's a preparatory step.

Issue: #6798
PiperOrigin-RevId: 289418555
2020-01-17 13:58:11 +00:00
olly
865e014877 PlayerTrackEmsgHandler: Release sample queue in release()
This change makes it clear the SampleQueue doesn't outlive
the wrapping PlayerTrackEmsgHandler, and releases it from
PlayerTrackEmsgHandler.release().

This change is a no-op because calling release() is the
same as reset() in this case (the behavior only differs if
a non-dummy DrmSessionManager is being used).

PiperOrigin-RevId: 289416622
2020-01-17 13:58:07 +00:00
aquilescanta
cebad350fa Split HlsSampleStreamWrapper.init into two methods
As a result, onMediaChunkLoadStarted gets invoked on the loading thread, and
init on the playback thread, matching the thread access comments.

Issue:#6321
PiperOrigin-RevId: 289167981
2020-01-17 13:58:03 +00:00
Oliver Woodman
2902452beb Merge pull request #6797 from DolbyLaboratories:dev-v2-ac4-drm
PiperOrigin-RevId: 289092332
2020-01-17 13:57:58 +00:00
olly
ca11e56fe6 Add tests to validate FLAC decoder output
PiperOrigin-RevId: 289091494
2020-01-17 13:57:41 +00:00
olly
91d9405416 Avoid OMX.qti.audio.decoder.flac
Unfortunately devices such as the MI 8 do not provide an alternative
working decoder. Some Vivo devices do provide one though.

PiperOrigin-RevId: 288911897
2020-01-17 13:56:51 +00:00
olly
4e767faa1c Fix extension FLAC decoder to correctly handle non-16-bit depths
PiperOrigin-RevId: 288860159
2020-01-17 13:56:35 +00:00
andrewlewis
b35499f806 Resolve TrueHD spec TODO
PiperOrigin-RevId: 288855515
2020-01-17 13:56:31 +00:00
Oliver Woodman
91d2d8b40e Merge pull request #6836 from DolbyLaboratories:dev-v2-refineAC4
PiperOrigin-RevId: 288772277
2020-01-17 13:56:09 +00:00
kimvde
42897b26c7 FlacExtractor: add condition for zero-length reads
This improves readability by making clearer that reading no bytes from
the input in readFrames() is an expected case if the buffer is full.

PiperOrigin-RevId: 288711841
2020-01-17 13:56:03 +00:00
tonihei
6395d44bfa Disable chronometer for playback speeds != 1.0
This doesn't work because the Chronometer text layout can only count in realtime.

Issue:#6816
PiperOrigin-RevId: 288711702
2020-01-17 13:55:58 +00:00
andrewlewis
e1a110e651 Fix TrueHD chunking in Matroska
Issue: #6845
PiperOrigin-RevId: 288688716
2020-01-17 13:55:49 +00:00
kimvde
7fe55cd468 Use FlacLibrary.isAvailable in FlacExtractor selection
PiperOrigin-RevId: 288667790
2020-01-17 13:55:40 +00:00
olly
eb0acb4155 Fix playback for Vivo codecs that output non-16-bit audio
PiperOrigin-RevId: 288468497
2020-01-17 13:55:02 +00:00
olly
20e7684c6c FlacExtractor: Fix possible skipping of frame boundaries
PiperOrigin-RevId: 288304477
2020-01-17 13:54:47 +00:00
kimvde
be3257e87a Simulate IO exceptions in all FlacExtractor tests
- Simulate IO exceptions in the test using FlacBinarySearchSeeker for
  seeking in FlacExtractorTests. This makes the test slower but covers
  more test cases.

PiperOrigin-RevId: 288285057
2020-01-17 13:54:37 +00:00
olly
1f85cd9afe Remove WavExtractor from the nullness blacklist
PiperOrigin-RevId: 288292488
2020-01-17 13:54:33 +00:00
tonihei
d609c3b666 Support 5G in network type detection
PiperOrigin-RevId: 288280500
2020-01-17 13:54:27 +00:00
ibaker
63eaf1144c Fix MatroskaExtractor to use blockDurationUs not durationUs
This typo was introduced in ddb70d96ad
when migrating a static method with parameter `durationUs` to an
instance method where the correct field to use was `blockDurationUs`
(but `durationUs` also exists).

The test that catches this was only added in 45013ece1e (and
therefore configured with the wrong expected output data).

issue:#6833
PiperOrigin-RevId: 288274197
2020-01-17 13:53:43 +00:00
kimvde
1b764c2d30 Add unit tests to FLAC extractor related classes
PiperOrigin-RevId: 287973192
2020-01-17 13:52:54 +00:00