Combine the two openSession methods into one that doesn't take
any arguments. This gives the client more flexibility in creating
sessions, they can better control how to share sessions across
different elementary streams.
bug: 22804304
Change-Id: I95ce75476b19e9ca851c40f873f46d5c7fa583ef
- Wrap session id byte array in Session object
- Move session operations from MediaCas to Session
- Remove position prarameters on descramble() method
- Retrieve cas info for a track by getCasInfo() instead
of getDrmInitData().
bug: 22804304
bug: 36791613
bug: 36783335
Change-Id: Ib3ad8d6a2f679c0e60d2bb025ac5999339722306
Adds TvInputManager methods to notify apps with protected broadcasts
for:
1. Disabling browsable state of preview and watch next programs.
2. Adding preview programs to watch next programs.
Test: build and verify manually to check if notifications are
broadcasted.
Bug: 35881266
Change-Id: I20fd5b63f42b2c74277315bbbd251b71c649e5c1
Also add an ImageWriter ctor to take additional arugment (format)
Test: ImageReader and Writer CTS tests
Bug: 32766711
Change-Id: I99e3862dd5b9a85c9df7879c14c84b68a35718ec
Test: mediaplayer doesn't send error notify to client when only one track has error.
Bug: 24761723
Change-Id: I7221dfdbc6a256532186c654406bbe06de831798
Adds a new broadcast intent for system APPs to send when some TV APP met
certain requirements is newly installed. The intent will wake up the APP
and notify it to initialize its channel and program list to the system
provider.
Test: build
Bug: 34739955
Change-Id: Ib172b40434db4a439ec0db7bf8b28037d0bfb8a8
MediaDrm getKeyRequest works fine even if init and mimeType
parameters are null when releasing or renewing a key.
bug: 33375079
Change-Id: I707874c8f4f26bf8b23b270331680f69833ae14f
The documentation for MediaDrm#getKeyResponse says null is returned from
provideKeyResponse for requests of type streaming or release. This corrects
the documentation to indicate that an empty byte array is returned.
bug: 36093612
Change-Id: I2e4fc658d68d827b8a42fb7fa3ef30e35ee51dcf
Note: BaseColumns(API 1) and BaseTvColumns(API 21) remains public due to
the backward compatability. Plus, inheritence between BaseProgramColumns
and BasePreviewColumns is also removed to follow patterns in other
Contracts.
Test: cts-tradefed run cts -m CtsTvTestCases -t android.media.tv.cts.TvContractTest
Bug: 36395855
Change-Id: Ie73a2e48217676be53f373f8524afd04f7d8fc37
System API for an external audio focus policy. Extends
the system focus listener with interception of
focus requests and abandons. Adds method for the focus
policy to dispatch focus grants and losses.
Test: gts-tradefed run gts -m GtsGmscoreHostTestCases -t 'com.google.android.gts.audio.AudioHostTest#testFocusPolicy'
Bug: 30258418
Change-Id: If408569a2dce07a774e0e2f1be9f1af8e426d2d3
Adding new permission for changing accessibility volume
to allow system UI to change it. Also providing audio
manager with a whitelist of bound accessibility service
uids so it can allow servics to change the volume.
Bug: 36569297
Test: Adding CTS test in linked CL.
Change-Id: I4f327e3a251fc3780c5957f41217c2ef5bb8b16e
Here's the new media handling logic.
1. If the foreground app consumes the media key event
(Activity.onKeyDown/Up() or Activity.setMediaController()),
we stop here.
2. Find the media app whose AudioPlaybackConfiguration becomes
PLAYER_STATE_STARTED lastly across the boot. The media app is the app
with the media session.
- If its session is still alive, send the media key event
to the media session.
- If its session has been released but the session set the media
button receiver, send the media key event through the media button
receiver.
- If it has multiple media sessions, pick the media session whose
PlaybackState matches with the AudioPlaybackConfiguration's player
state.
3. Stop here. Don't try revive any other app.
This approach has two limitations.
1. If an app has multiple AudioPlaybackConfigurations and/or
media sessions, the MediaSessionService may pick the wrong media
session to send media key events.
2. If an app with a media session plays sound effects differently from
the SoundPool class, the MediaSessionService would consider the app
as the lastly played media app.
Bug: 33032080
Test: Manual tests as follows
1. Checked that the lastly played app receives the media key events
although the app's media session doesn't report its playback state.
2. Checked that the lastly played app receives the media key events
although the app's media session is released.
3. Checked that the lastly played app doesn't receive the media key
events if its playback is remote.
Change-Id: I1fd6f9eee0750da4dea9fcc7401fdb1c3f249a72
Translate ServiceSpecificException from aidl to CAS-specific
exceptions. Also, throw CAS specific exception for descramble().
bug: 22804304
Change-Id: I6d68c335c87fbb95fd8cc227e432eed4e5951550