Now that this API is available.
This keeps the implementation details of hidl's
ashmem allocator in libhidl itself (it should be
opaque).
Test: try and succeed watching (part of a) DRM protected movie
Bug: 34234561
Change-Id: Ied9beddace2ccfc859833ac55f4e3837db5f495e
The app package name was not previously reported in drm metrics. This
change reports the app package name as returned from the vendor metrics.
This is part of the fix. The other change will go into another project.
Bug: 64584568
Test: Unit tests, GTS tests, and Google Play.
Change-Id: Iee36d5203364c5f80a8b0fe9d9bbf5c167abefd1
Implement queryKeyStatus in Clearkey plugin for testing.
Add CTS testQueryKeyStatus in ClearKeySystemTest and
NativeClearKeySystemTest in a separate CL.
Test: CTS - ClearSystemTests
ANDROID_BUILD_droid-cts/tools/cts-tradefed run cts -m
CtsMediaTestCases --test android.media.cts.ClearKeySystemTest
Test: CTS - NativeClearSystemTests
ANDROID_BUILD_droid-cts/tools/cts-tradefed run cts -m
CtsMediaTestCases --test android.media.cts.NativeClearKeySystemTest
bug: 64938501
Change-Id: I8371a3b871e90762f1e7c8453dd6002c31f7eb13
Rather than having a lib called libstagefright_foundation and one
called libstagefright_foundation_vendor, we now just have one library
and the build system keeps track of the vendor APIs that are exposed.
Test: (sanity) boot device, watch (part of) DRM protected movie.
Change-Id: I49f1c557ae8f93092bad5314e0630583cc7dc710
Merged-In: I49f1c557ae8f93092bad5314e0630583cc7dc710
MockCasPlugin.cpp: These are printing out `size_t`s, so we should be
using %zu.
ClearKeyFetcher.cpp: asset_.id() is an `unsigned long long`, so we
can't use PRIu64 for it.
Bug: None
Test: mma. Warnings are gone.
Change-Id: Ie34acb274696dea999f6309fb914b39ef00f4d77
If addValue does not succeed, there will be memory leak on
decodeSession. Fixed it by checking if addValue returns true first.
Plus fixed a small indentation error.
Test: mmm with static analyzer and warning disappears.
Change-Id: Ibf9b85e4c416e8fea8b80a3ba47f87f88573c54c
HIDL transaction status wasn't being checked
resulting in a SIGABRT from createPlugin when the
remote process dies.
bug: 64441780
test: run Play Movies and repeat killing
android.hardware.drm@1.0-service.widevine, check
log for transaction failed messages.
Change-Id: I0ea70578d60bb84cf693f158963181781d7e35c3
Test: run Play Movies and repeat killing
android.hardware.drm@1.0-service.widevine, check
log for transaction failed messages. This uncovered
a related problem in closeSession which is also fixed
in this CL.
bug: 64022042
Change-Id: I4e86414aa1625c35689339389391e9fa6d377b1c
Merged-In: I4e86414aa1625c35689339389391e9fa6d377b1c
Test: run Play Movies and repeat killing
android.hardware.drm@1.0-service.widevine, check
log for transaction failed messages. This uncovered
a related problem in closeSession which is also fixed
in this CL.
bug: 64022042
Change-Id: I4e86414aa1625c35689339389391e9fa6d377b1c
Because DRM Plugins will not be allowed to call the AMI API under
Treble, the mediadrmservice will need to marshal the metrics out of the
plugin in protobuf format and report them to the AMI API instead. This
patch implements the pulling and interpreting of metrics from DRM
Plugins.
Bug: 36497276
Test: Played Google Play Movies, verified that playback still worked and
Widevine metrics appeared in a dump of the system media metrics.
Change-Id: If07717c1b87022bc1fcdedfbc62b9193899742d5
MediaDrm relies on each plugin to close its open sessions
when the plugin is destroyed. This change ensures that all
sessions will be closed even if the plugin does not do it.
b/38323088
Change-Id: I8b6e36182f3b3bc765963819101868fc46001527
When the vndk is enabled (BOARD_VNDK_VERSION=current),
vendor libraries must only link against vendor variants
in the build system. This also means that they receive
restricted sets of headers and that automatic global
headers are restricted.
Test: build ClearKeyDrmUnitTest with BOARD_VNDK_VERSION=current
Bug: 37342627
Change-Id: I5e95a19700522d3ec03e457d6779a34e9be99139
When the vndk is enabled (BOARD_VNDK_VERSION=current),
vendor libraries must only link against vendor variants
in the build system. This also means that they receive
restricted sets of headers and that automatic global
headers are restricted.
Test: build ClearKeyFetcherTest with BOARD_VNDK_VERSION=current
Bug: 37342627
Change-Id: If4a6b78f515a29c0af13ca1db8c75a06d10369eb
When the vndk is enabled (BOARD_VNDK_VERSION=current),
vendor libraries must only link against vendor variants
in the build system. This also means that they receive
restricted sets of headers and that automatic global
headers are restricted.
Test: BOARD_VNDK_VERSION=current m -j k libmockcasplugin
Bug: 37342627
Change-Id: I6129ae91458216f537f6fb4065ecd9f26739851c
Instead of relying on the global include paths, use the new headers lib
'media_plugin_headers'.
Bug: 37342627
Test: BOARD_VNDK_VERSION=current m -j libclearkeycasplugin
Change-Id: Ic6b5230bc9b674e21ccd36ce6ad117c687200599
Rather than having a lib called libstagefright_foundation and one
called libstagefright_foundation_vendor, we now just have one library
and the build system keeps track of the vendor APIs that are exposed.
Test: (sanity) boot device, watch (part of) DRM protected movie.
Change-Id: I49f1c557ae8f93092bad5314e0630583cc7dc710
If binderDied is invoked after a plugin is destroyed
the pointer can already be null. Also reset the init check
state after the plugin is deleted to make sure the
checks in other methods remain valid.
bug:62667492
Test: Play Movies, ExoPlayer
Change-Id: Ie12191b744331a7a435b4c64bbd1c179918553ac
Since libdrmclearkeyplugin is in vendor partition, it is linked against
the vendor-variant of the libstagefright_foundation.
Bug: 37343126
Test: sailfish builds and boots
Test: BOARD_VNDK_CURRENT=current m libdrmclearkeyplugin is successful
Merged-Id: Id8302f88978fc91282c54e0a679bcd8978898f8d
Change-Id: Id8302f88978fc91282c54e0a679bcd8978898f8d
(cherry picked from commit 24aa2adf67)
Since libdrmclearkeyplugin is in vendor partition, it is linked against
the vendor-variant of the libstagefright_foundation.
Bug: 37343126
Test: sailfish builds and boots
Test: BOARD_VNDK_CURRENT=current m libdrmclearkeyplugin is successful
Merged-In: Id8302f88978fc91282c54e0a679bcd8978898f8d
Change-Id: Id8302f88978fc91282c54e0a679bcd8978898f8d
(cherry picked from commit 24aa2adf67)
* Owners are selected from top CL approvals or owners.
They will be suggested to review/approve future CLs.
* OWNERS files are recognized by the new find-owners plugin, see .md files in
https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/
Test: build/make/tools/checkowners.py -c -v OWNERS
Change-Id: I7c848855a2d7a0d7f33123ea4ef5c2d03977b495
A plugin's listener reference was preventing the plugin
from being released in binderDied, which caused
drm sessions to be kept open if an app was abnormally
terminated. Setting the plugin's listener to NULL
in binderDied resolves the problem.
Test: repeat {launch netflix app, kill <app-pid>}
Prior to this change the netflix app would always fail to
run on the second iteration and the log showed
ERROR_TOO_MANY_SESSIONS. After this change, the netflix app
can be killed and restarted without failures.
Also verified with gts tests and play movies app.
bug:37720811
Change-Id: Iceb1c23e2a1d518da85641336f017bb8b2948863
Use defaultServiceManager() instead of IServiceManager::getService()
bug:62073349
test:
repeat {launch Play Movies, play a movie, exit} while monitoring
adb shell cat /sys/kernel/debug/binder/stats |
grep -A10 '^proc <mediadrmserver PID>'
--> Make sure number of nodes is stable
Change-Id: Ibea0437ed21a9d58f3eb7ffa9461fb71d9c2b4ab
See build/soong/README.md for more information.
Also moves a few headers into the same library as their
implementation, and fixes a few includes to go through the
global frameworks/av/include path instead of manually adding
frameworks/av/include/drm.
Test: m -j checkbuild
Change-Id: I0c2d2f2262e7ed78d80a0d44795705c64b797ff0
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.
Test: links
Bug: 33276472
Change-Id: Iecab9a10a6973d01c47bffd5589d71e35614f855
(cherry picked from commit cb421ce297)
See build/soong/README.md for more information.
Test: m -j checkbuild
Change-Id: Icfc13bb5f55fa156ef72d3cf3a327e38739d775b
Merged-In: Icfc13bb5f55fa156ef72d3cf3a327e38739d775b
(cherry picked from commit 53f2035f1d)
See build/soong/README.md for more information.
Test: m -j checkbuild
Change-Id: Icfc13bb5f55fa156ef72d3cf3a327e38739d775b
Merged-In: Icfc13bb5f55fa156ef72d3cf3a327e38739d775b
(cherry picked from commit 53f2035f1d)
This flag is obsolete now that the conversion
to treble is complete.
Change-Id: I7073d337939da43bddf99644bfe52db9baa2f605
Merged-In: I7073d337939da43bddf99644bfe52db9baa2f605
related-to-bug: 32815560
(cherry picked from commit 99a5aba027)
* changes:
LOCAL_CLANG := true is now the default
stagefright: move several static methods out of ACodec
stagefright: move MediaDefs from libstagefright to libmedia
Test: verify that build has no failures
Change-Id: Ib249b276c6295e55eb54fa37b6d15486415dfbed
Merged-In: Ib249b276c6295e55eb54fa37b6d15486415dfbed
(cherry picked from commit 5f5ee1110d)
A function argument which is an array with a fixed size is not
actually a fixed size array, but rather just a pointer. Thus,
when we were using sizeof() for 'key' and 'iv', we were mostly
likely only logging the first 4 or 8 bytes of the array, and
not all 16.
We change this code so we're at least passing the correct size
to the arrayToString method, and thus logging all the bytes.
This API is still fragile, as there is nothing which assures
callers to decrypt are passing in arrays which are exactly 16
bytes. However, this API is equivalent to before, so we aren't
introducing any compatibility issues.
The compiler gave a warning about this.
Test: Compiled and confirmed there's no longer this compiler warning.
Change-Id: Ie3a32eef0882ea95bccc3e22ffcab7336779bd4c
Move various things around so mediadrmserver doesn't need
libstagefright and libmedia
Test: build/boot
Change-Id: I48b713cd679b992cb6ad1262c20394a9892d7027
Merged-In: I48b713cd679b992cb6ad1262c20394a9892d7027
(cherry picked from commit 75571e4bc7)
Non-treble process can no longer load .so from /vendor/lib.
Move the clear key plugin to /system/lib until MediaCas is converted
to treble.
bug: 37476803
Change-Id: I563b4576aeada5470355e7e168fa2c73997004d7
Combine the two openSession methods into one that doesn't take any
arguments. This gives the client more flexibility on creating
sessions efficiently. They can better decide whether to share one
session for multiple streams, or create one session per stream.
bug: 22804304
Change-Id: I9634f4dd4fc437229068103b54555cc28a818937
- Set crypto mode to kMode_AES_CTR, since kMode_AES_CBC is not defined
on Java API, and is rejected when the sample is queued to MediaCodec.
- Wrap the plugin object in a RefBase, and hold a strong ref to it
when executing any API calls in CasImpl. This is needed because
CasImpl could be released by Java API, while MediaCodec native is
still trying to access it.
- Fix build warnings.
Tests: cts-tradefed run cts-dev --module CtsMediaTestCases --test android.media.cts.ClearKeySystemTest
It should not fail.
bug: 22804304
Change-Id: Id4ef037d57dd741d2bb22b1de3d04c8d078b69fb
The clearkey plugin didn't handle some cases of
invalid parameters, which was found the drm VTS test.
Test: drm vts test passes
bug:34178477
Change-Id: I4643e099f052169d6950db8002b13711b56f30f5
[ Merged from master ag/2027840 ]
The SESSION_RECLAIMED event needed to be propagated to the jni native
interface.
Test: Verified by
com.google.android.media.gts.DrmSessionManagerTest#testReclaimSession
(GtsMediaTestCases) test
b/36589391
Change-Id: Ia3f17e20be19bc2e7bb88a2354d231917bfce1e8
We are ready for devices to begin migrating to a 64-bit Media DRM
Server. However, not all devices are ready to make this jump yet. A
device needs to have all of its DRM Plugins ready to run as 64-bit
before it can do this. This includes having 64-bit hardware
integrations.
So that devices can turn on 64-bit support as they get ready, I am
adding flags that can be set in a device's device.mk file. There are two
parts:
* ENABLE_MEDIADRM_64 enables building the mediadrmserver as 64-bit.
* Setting drm.64bit.enabled=true in PRODUCT_PROPERTY_OVERRIDES switches
mediadrmserver to searching for DRM Plugins in the 64-bit directory.
Test: Validated that turning on these flags enables a 64-bit
mediadrmserver that loads 64-bit DRM Plugins from the lib64
directory (after setting DISABLE_TREBLE_DRM to true to load this
code as opposed to the Legacy DRM Plugin HAL)
Bug: 36076017
Change-Id: I141cfd57ff75b40c8b0cb40a5bf1439a1ab5b766
Heap base for the same heap could be mapped to different values
after they go across binder to CryptoHal. So we can't use heapbase
to index the heaps.
Since each ACodec instance allocates all its shared memory buffers
from the same memory dealer, we let CryptoHal assign a sequence
number to the ACodec when it calls setHeap. In subsequent calls
to CryptoHal::decrypt, reference the heap by the seq num, and ignore
the heap base address.
Bug: 36479980
Bug: 36209723
Bug: 36660223
Test: the above bugs don't repro
Change-Id: I2f519a689a5891447385d1bf9d6e668bb3b4dbe2
(cherry-picked from bf628da1e2)
When a decoder is created while another decoder
is in use and the two decoders share a common
crypto instance, decryption results would become
indeterminate, which could cause the decoder to
hang. This change adds a notification to the
crypto instance so it can update state when its
ownership changes.
bug: 36209723
Test: playbacktests-debug-androidTest.apk as
described in the bug.
Change-Id: I453c260eace5543dd79a3569bf6a9592394c4113
- MockCasPlugin: does nothing other than API logging
- ClearKeyCasPlugin: implement a clear key CAS that carries content
keys in the clear in ECMs. It initializes from a test asset string
with a valid id. It outputs to clear buffers.
bug: 22804304
Change-Id: Ifc70b86c1ec80a45b75c7bdd1e558a59018ace5a
MediaCodecTest.android.media.cts.MediaCodecTest.testCryptoError
was failing due to incorrect error code translation introduced
by the drm hidl hal.
bug: 35137940
Change-Id: Ia5e16809872c19335b4b9c1a8ddd1e625a4781b4
Check opaque size to be not greater than an abitrary 100K
and verify malloc succeeded.
Test: Play Movies & TV
Test: Netflix
Test: ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts
-m GtsMediaTestCases --test
com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P60
Test: Forcing opaque size to exceed limit and malloc to report failure;
both resulted in Netflix reporting an error and failing to play.
This is the expected result.
bug: 30202440
Change-Id: I9fdaf208471f2781ffbd656358b1bf1ef5b28ee8
findSession in the SessionLibrary wasn't detecting
the case of a sessionId not found. Since
DefaultKeyedVector was used, a new session id would
get created instead of returning a null sp.
Test: drm hidl hal vts test
bug:36006836
Change-Id: Iff00d8b84188d2bf9f26bceccf645bb730076378
Prior to this change, the default legacy hal
module was explicitly referenced. This change
uses the service manager to iterate through
any hal instances so vendor-provided hals
can be loaded.
bug:34507158
Change-Id: I23bc4fdb2dc7d5254833c9a977241f1fede726a9
The initial drm hidl hal implementation assumed one
codec per crypto instance, but in fact there can be
multiple codecs per crypto instance. This change
extends the drm hal to allow multiple memory heaps
per crypto plugin. It fixes the issue of mapping
memory frequently during playback.
bug:35275191
Test: manual verification with Play Movies on angler
in passthrough mode and on marlin in binderized mode.
Change-Id: Icada005f515483d7bc214b08caf6eea46ca354a7
If mimeType is not defined, isCryptoSchemeSupported will always
return false.
Test: Netflix on Fugu
Test:
ANDROID_BUILD_Troid-gts/tools/gts-tradefed run gts -m GtsMediaTestCases
--test com.google.android.media.gts.MediaDrmTest#testWidevineSanity
bug: 35363342
Change-Id: I579dd6d41d17c1520404a5b45baae3f730f8245a
Eliminate ENABLE_TREBLE since it is obsolete.
Switching back to legacy DRM is still possible
by building with DISABLE_TREBLE_DRM=true
Change-Id: I6b921050dff6162112c60df21549fc93bc46e379
Pass application package name to createPlugin and createDrmPlugin.
The application packagename will be used as part of a unique
identifier for drm plugin.
Test: Play Movies.
Test: ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m
GtsMediaTestCases --test
com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P60
Verify the application's packagename is reachable in the drm plugin's
debug log.
bug: 27101531
Change-Id: I84fb09b591a7af63f6e20004e910112a4ce6ebac
This change adds DrmHal & CryptoHal classes that connect to the Treble
HAL interfaces for drm. These classes mirror the existing Drm and
Crypto classes that connect to the DrmPlugin and CryptoPlugin
interfaces. Having both allows mediadrmserver to run in either mode
while the HAL is stabilized.
The shared memory interfaces between mediaserver's ACodecBufferChannel
and ICrypto had to be reworked to use the Treble HALs. Specifically,
the shared memory path for returning decrypted buffers in the
non-secure case had to become separate instead of piggy-backing on the
source shared memory buffer. A separate shared memory destination
buffer is now allocated on the buffer channel. An abstraction for a
decrypt destination buffer was also introduced to clarify ICrypto's
decrypt method.
Tests: Playback using Play Movies and ExoPlayer works on angler
with and without the treble hal enabled.
bug: 32815560
Change-Id: I5a3dc84f99902eb8cf8eabab9ad074d307744950
The drm plugin provides a listener, we send a kDrmPluginEventVendorDefined
if provideKeyResponse succeeds.
The reason for sending kDrmPluginEventVendorDefined is because
kDrmPluginEventKeysChange currently does not have ndk api support.
This addition is intended for testing AMediaDrm_setOnEventListener only.
Test: cherrypick go/ag/1598039 and go/ag/1630324
ANDROID_BUILD_TOP= ./android-cts/tools/cts-tradefed run cts -m CtsMediaTestCases --test android.media.cts.NativeClearKeySystemTest#testClearKeyPlaybackCenc
Test passes and look for "EVENT_VENDOR_DEFINED received" in the debug log.
bug: 32648208
Change-Id: Iec98b856e8d4ce888f8a1cd2568a3dee871effc5
Move various things around so mediadrmserver doesn't need
libstagefright and libmedia
Test: build/boot
Change-Id: I48b713cd679b992cb6ad1262c20394a9892d7027
Various media components were linking against dynamic libraries that weren't needed.
Test: built and booted
Change-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e
Various media components were linking against dynamic libraries that weren't needed.
Test: built and booted
Change-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e
The listener member of a Drm object wasn't
being released, causing memory to be leaked
every time a MediaDrm instance was created.
bug:32277525
Change-Id: I5582056fff3d20a5fd2b178bf028008d7f9ad1b4
AMediaDrm_getKeyRequest() passes mimeType to drm plugin's getKeyRequest()
based on the UUID. If the drm scheme is clearkey UUID, clearkey plugin will
return ERROR_DRM_CANNOT_HANDLE because it is expecting initDataType
(e.g. "cenc") instead of mimeType (e.g. "video/mp4").
Replace initDataType parameter in clearkey DrmPlugin::getKeyRequest() with
mimeType.
bug: 30790899
Change-Id: I60c77c458d8d836d3eb2f9f52296a86efa73a4eb
* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
* Use const reference type to avoid unnecessary copy.
Bug: 30413862
Test: build with WITH_TIDY=1
Change-Id: Idf1c48d7bfe3f0da20401cb3ff1983ec00be170d
Memory heap check updated and restored to mediaserver,
added as new option to audioserver.
Requires properties to be set (example for audioserver):
$ adb shell setprop libc.debug.malloc.program audioserver
$ adb shell setprop libc.debug.malloc.options backtrace=8
$ adb shell pkill audioserver
...
and to dump:
$ adb shell dumpsys media.audio_flinger -m
Bug: 28909124
Bug: 27500825
Change-Id: Ifa8c2c02b022daf1a799ee4a1d75282a3c921763
Part of media security hardening
MediaDrm was temporarily allowed to
run in either mediaserver or mediadrmserver
while all nexus devices were implementing
support for the native_handle representation
of secure buffers. Now that all nexus
devices support native_handle, the MediaDrm
stack can be removed from mediaserver.
b/22990512
Change-Id: Ie5d83bfeb4c4a824e1d0edb4c9452c782d6fd386
When creating this static lib, explicitly reference libbinder
to pick up its header include paths.
Bug: 27804373
Test: lib compiles when libbinder's header include
paths change.
Change-Id: I6cd034703db8ef13f0bcaece27373a60fcde7b4e
This change also enables -Werror flag that causes
all warning to fail this target's build to prevent regressions.
Bug: 27151704
Change-Id: I5d815d20aea151eb40292b8e2bffb144240413a2
drmserver need to be in the readproc group to access /proc files
associated with other UIDs, due to enabling hidepid=2 in
https://android-review.googlesource.com/181345
Bug: 25925909
Change-Id: If477214a6cd598cebbe440a94aa1d58ea8f7114a
To support adding cts tests for new APIs in M, the
clearkey DRM plugin needs to be updated.
Change-Id: If672ecec8f570d1dd5130e8e4419d37bd931a9e2
related-to-bug: 21527003
This file needs stdlib.h for malloc, free and realloc, but was
previously getting it only via the OpenSSL headers that it was
including.
BoringSSL, in the future, will be tider about what it includes via its
headers and so this file will need to include stdlib.h itself.
(cherry picked from commit 2544611b6f)
Bug: 21085331
Change-Id: I864c679ba5a9f0041dd49d063ad1190ffa87b30a
This file needs stdlib.h for malloc, free and realloc, but was
previously getting it only via the OpenSSL headers that it was
including.
BoringSSL, in the future, will be tider about what it includes via its
headers and so this file will need to include stdlib.h itself.
Change-Id: Ic0ee43ed74ff96f1a57e6e153c65e80e0115c0e9
The libcrypto and libssl modules (and their respective static and host
versions) use LOCAL_EXPORT_C_INCLUDE_DIRS thus just including the module
is sufficient.
Change-Id: If9df76e6fefb7419cbb2fb33a0264626c748561e
to use the new static version.
Change-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a
Conflicts:
media/libmedia/IAudioFlinger.cpp
media/libmedia/IMediaPlayer.cpp
media/libstagefright/CameraSource.cpp
Clang (correctly) interprets
if ("." == sName)
as
if ("." == (const char*)sName)
and recognizes that comparing the pointers isn't what was meant.
With
if (sName == ".")
both clang and gcc see and use String8::operator==(const char *),
ensuring we get the wanted behavior.
Change-Id: Ide240e13214a56f6899f72de3db75dac647e6d4b
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
To run individual test suite, follow the example shown below:
adb shell LD_LIBRARY_PATH=/system/vendor/lib/mediadrm /system/bin/ClearKeyDrmUnitTest
--gtest_filter=JsonWebKeyTest.*
Change-Id: I8ecc944a734cde351505a7cd8c3997976d74553b
Parses JSON Web Key Set in the response data; extracts and base64 decode
key id(s) and key(s).
bug: 12035506
Change-Id: Ib71bce942d6eca1e569dfad0a9adb6dee1cdf75e
Implements an object that can convert ISO-CENC or WebM initialization
data into a ClearKey license request.
Change-Id: Ib95012afcf40fc9e3f45510a468c305fb7bc216e
Java API version
Update frameworks to enable support for CAST
V2 Authentication in the DRM Plugin.
Change-Id: I9066ada0edf8e0d777c503897d8c7fc7f76f2861
related-to-bug: 12702350
Contains the necessary changes to make frameworks/av build and work
on a 64-bit machine.
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
Moving the build of the mock MediaDrm plugin back to
frameworks/av since it can't be installed by cts.
b/10668350
Change-Id: Id662bdb0775389b458f86a299392217f2d959422
This reverts commit 5ff7836da0.
Fixes Fatal signal 6 (SIGABRT)" when playing or downloading a video
bug: 10542864
Change-Id: I7f81a41c3acdbeb571a514b3f65e7ba37d403cca
1. Don't expect plugins to support an empty mimeType in isContentTypeSupported
2. Move the cts test mock drm plugin to the cts tree so it is always used
b/10528466
Change-Id: I6023f6165b1e9d294986f7e5cd0896e056e376f1
In DRM framework, plugins can transmit DrmInfoEvent to Java layer.
Although DrmInfoEvent has several entries, current implementation
can only convey integer and String. This change enables plugins
uto propagate a hashmap to Java layer. The hashmap can have
one or more Strings and one byte array as value.
Changes are made by Sony Corporation.
bug: 10459159
Change-Id: Ic19265d4ad3db4eda66a3c27e1e08873a8f2a4d7
(cherry picked from commit 4f782bf0cb69929ebf03de239e2c9bf8e82adf5e)