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)
* 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)