Commit graph

44 commits

Author SHA1 Message Date
andrewlewis
98db14e7e5 Fix some documentation nits in AudioTrack.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=145554504
2017-01-25 19:27:05 +00:00
olly
0a8dc41632 Set max resolution from codec capabilities for ABR where resolutions are unknown
Issue: #2096

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=145542983
2017-01-25 19:25:02 +00:00
Oliver Woodman
f1e3d3f244 Enable tunneling end-to-end
- Tunneling can be enabled by calling:
  trackSelector.setTunnelingAudioSessionId(
      C.generateAudioSessionIdV21(this));

- If enabled, tunneling is automatically used when the renderers
  and track selection combination support it. Tunneling is
  automatically turned on and off through playlists if the support
  changes.

Issue: #1688
2017-01-17 17:21:10 +00:00
Alexander Pipelka
24a0061caa reconfigure audiotrack on format change
under certain circumstances (e.g. seek to a position where the input format
changed) the audio track needs a reconfigure even if there aren't any
pending buffers
2017-01-14 12:14:37 +01:00
andrewlewis
5a16aee2c9 Use stereo for mono audio passthrough on fugu.
Also backport the Shield workaround to v1.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144446498
2017-01-13 17:27:26 +00:00
andrewlewis
ca7febe442 Remove unused local variable in AudioTrack.java.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144443010
2017-01-13 17:27:26 +00:00
olly
0c53a4e913 Add TrackSelectorResult
This class can accommodate extra information that may potentially
be specified by TrackSelectors in the future (e.g. configuration
for renderers). Even if we don't do this, it's cleaner to have a
proper class and an info field to refer to, as opposed to using a
Pair.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144428963
2017-01-13 17:27:25 +00:00
olly
e125ed705e Report tunneling support via RendererCapabilities API
Also revert ability to query for a decoder that explicitly
supports tunneling, since in the new design we'll just be
querying the first decoder provided by the MediaCodecSelector
and then reporting what it supports. This is in line with
what we do when reporting support for adaptive switching.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144315746
2017-01-13 17:27:25 +00:00
olly
cd42434719 Plumbing to enable tunneling on AudioTrack from renderers
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144223539
2017-01-13 17:06:49 +00:00
olly
3547c9034e Report audio decoder adaptation support correctly
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144219518
2017-01-13 17:05:45 +00:00
andrewlewis
2906a2ea09 Simplify AudioTrack.handleBuffer's return value.
Position discontinuities are notified via AudioTrack.Listener.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144202048
2017-01-13 17:04:43 +00:00
andrewlewis
ce03b8c246 Move AudioTrack initialization into handleBuffer.
Move initialization code from the audio renderers into handleBuffer. The audio
session id and tunneling enabled state can be altered using new setters.

This change is not intended to change the behavior of the audio renderers.
Before this change, the AudioTrack would always be reinitialized by the
renderers before calling handleBuffer.

Add a protected onAudioTrackUnderrun method for custom renderers that want to
implement custom handling of underruns.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=144067149
2017-01-13 17:02:39 +00:00
Oliver Woodman
0b141aeeee Revert "Improving handling of atoms with size less than header in FragmentedMp4Extractor."
This reverts commit 71186ef16e.
2017-01-04 22:32:28 +00:00
cblay
71186ef16e Improving handling of atoms with size less than header in FragmentedMp4Extractor.
These currently lead to cryptic ArrayIndexOutOfBoundsExceptions being thrown from System.arraycopy() so my proposal is to throw a more useful ParserException instead.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142087132
2017-01-04 22:26:58 +00:00
Oliver Woodman
0d135d37b8 Add comment for workaround 2016-12-20 12:33:04 +00:00
ojw28
efc8f6fe42 Merge pull request #2134 from drhill/dev-v2_passthroughChannelFix
fix 6.1 channel passthrough failing
2016-12-20 12:26:19 +00:00
olly
04992fdaac Move AudioTrack.SESSION_ID_NOT_SET to C
It's a nicer place for it to live once it starts being passed
around more widely (e.g. through the video renderer, for
tunneling)

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142158460
2016-12-16 16:21:16 +00:00
olly
5bb1d5dc99 Add tunneling functionality to AudioTrack
Although the underlying platform AudioTrack is capable of
writing the AV sync header from M onward, I've opted not
to use the functionality since it appears to allocate an
unnecessary (and large) number of ByteBuffers. We can swap
over from O if this is addressed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=142138988
2016-12-16 16:21:16 +00:00
olly
4db6f1e495 Expose whether decoders support tunneling
This is a first step toward supporting tunneled playback

Issue: #1688

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=141167501
2016-12-06 20:04:44 +00:00
drhill
cc24c4e38b change to switch to avoid changing 4.0 tracks 2016-12-06 08:08:58 -05:00
andrewlewis
e0649db513 Handle input format changes in SimpleDecoderAudioRenderer.
This is implemented in the same way as in MediaCodecRenderer.

Move codec != null guard into feedInputBuffer to handle the case of an input
format change with no dequeued buffers where the codec can't be reinitialized
immediately.

Issue: #2111

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=140864942
2016-12-02 19:35:09 +00:00
Drew Hill
e22c42c7c2 requested changes for simplicity 2016-12-01 19:30:27 -05:00
Drew Hill
db4b478cc0 fix 6.1 channel passthrough failing 2016-11-30 18:47:36 -05:00
andrewlewis
ae0ac55b8d Add support for resetting the AudioTrack stream type.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=139797714
2016-11-21 19:13:34 +00:00
andrewlewis
348b58021d Move underrun detection into AudioTrack.
This removes duplication from SimpleDecoderAudioRenderer and
MediaCodecAudioRenderer.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=139187254
2016-11-18 12:45:58 +00:00
hoangtc
4cd8c77053 Add layer of indirection for DRM.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=138383979
2016-11-10 21:14:29 +00:00
andrewlewis
a0fe258e8d Fix/suppress some analysis warnings.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136710546
2016-10-24 11:44:49 +01:00
aquilescanta
e288880aaf Fix Ac3 extractor sniff
Issue:#1875

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135100986
2016-10-04 23:40:53 +01:00
andrewlewis
1546da899b Use @IntDef where possible.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=133932812
2016-09-28 11:25:02 +01:00
olly
98919fe709 Add ExoMediaDrm/ExoMediaCrypto to V2
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=131693379
2016-08-31 15:25:35 +01:00
olly
fb55254f90 Fix a bunch more Javadoc
Also inline a few methods/classes where they can be made
private and therefore be removed from the public API.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130935090
2016-08-31 15:25:24 +01:00
olly
d5607cfc47 Make Javadoc compile with Java8
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130922558
2016-08-31 15:25:18 +01:00
olly
1579b68cf6 Sanitize constants
- Use a single constant for unset/unknown times across
  all time bases. Note also that this moves away from
  use of -1 for unset/unknown times in ms, which was a
  bad choice (it might conflict with real times, such
  as a time representing being just behind the start
  of a live window).
- Add a few other unset constants, and use them.
- Fix some hardcoding of -1 where existing constants
  should have been used.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=130775594
2016-08-31 15:25:18 +01:00
olly
9092c5665b Bump V1 to 1.5.10 + Fix incorrect Javadoc
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=129966073
2016-08-31 13:21:38 +01:00
andrewlewis
8d122a101d Use new import ordering.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128967776
2016-08-08 11:06:48 +01:00
olly
2f20fd7c03 Simple language + Javadoc consistency
- Invoked --> Called
- Gets --> Returns
- "True if X. False otherwise." --> "Whether X."
- Removed some @returns where the Javadoc is in "Returns X" form

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128678638
2016-07-28 20:04:40 +01:00
olly
ac59bde2be Fix up a bunch more Javadoc.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128565942
2016-07-28 20:04:40 +01:00
mishragaurav
1624135c20 Parse widevine tag in manifest for secure decryption.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128345063
2016-07-28 19:37:12 +01:00
olly
ba0a4235a0 Consistent Javadoc for text package
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128160177
2016-07-22 22:41:36 +01:00
olly
e7d95aff34 Update Renderer documentation
- Cleaned up documentation
- Removed getIndex from Renderer interface
- Renamed reset to be positionReset

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=127731006
2016-07-22 22:19:56 +01:00
olly
dcc1ac56df Make Renderer an interface
In V1 we received complaints that Renderer was too locked down.
In particular, it wasn't possible to implement a Renderer that
wrapped another Renderer, since most of the methods were package
private and final (e.g. enable).

This change defines Renderer as a proper interface, removing
this limitation. A method-reordering-only change will follow
this one, to get things into a nice consistent/sane order in
each of the Renderer classes.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=127527995
2016-07-15 18:19:23 +01:00
olly
f758082d40 Big (and hopefully near-final) rename.
1. Rename "extensions" package to "decoder". It's used by both
   text and (should be used by) metadata, so it's no longer just
   for extensions.
2. Move Buffer objects move into the decoder package.
3. Rename SubtitleParser and MetadataParser to SubtitleDecoder
   and MetadataDecoder respectively, since they extend Decoder.
   Ditto for all subclasses.
4. Subtitle and Metadata decoders now throw their own exception
   types rather than ParserException.
5. Move MediaCodec classes into a mediacodec package, with the
   exception of the concrete audio and video renderers.
6. Create an audio package to hold the two audio renderer classes
   plus related util classes.
7. Create a video package to hold the one video renderer class
   plus related util classes.

After this change the following nice properties hold:

1. Want a video renderer? Look in the video package. Ditto for
   audio, text and metadata.
2. All TrackRenderer implementations use a decoder of some kind
   to decode buffers received from the source, so we have
   consistent terminology there.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=127326805
2016-07-15 18:14:55 +01:00
olly
c9ec7beb92 Add streamType/capabilities for extension audio renderers
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=126913487
2016-07-15 17:59:12 +01:00
olly
dbb43567a3 Finalize v2 directory + package name
- The package is renamed to avoid conflicts with v1, should any
app wish to include both v1 and v2 for a period of time. This is
similar to the approach used by some other open source projects
(e.g. okhttp).
- Copyright year is updated everywhere for completeness.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=126895326
2016-07-08 12:12:09 +01:00