1*4d7e907cSAndroid Build Coastguard Worker/** 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2021 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 17*4d7e907cSAndroid Build Coastguard Worker 18*4d7e907cSAndroid Build Coastguard Workerimport @1.0::Status; 19*4d7e907cSAndroid Build Coastguard Workerimport @1.0::SessionId; 20*4d7e907cSAndroid Build Coastguard Workerimport @1.1::SecurityLevel; 21*4d7e907cSAndroid Build Coastguard Workerimport @1.2::IDrmPlugin; 22*4d7e907cSAndroid Build Coastguard Workerimport @1.4::LogMessage; 23*4d7e907cSAndroid Build Coastguard Workerimport @1.4::Status; 24*4d7e907cSAndroid Build Coastguard Worker 25*4d7e907cSAndroid Build Coastguard Worker/** 26*4d7e907cSAndroid Build Coastguard Worker * IDrmPlugin is used to interact with a specific drm plugin that was 27*4d7e907cSAndroid Build Coastguard Worker * created by IDrmFactory::createPlugin. A drm plugin provides methods for 28*4d7e907cSAndroid Build Coastguard Worker * obtaining drm keys to be used by a codec to decrypt protected video 29*4d7e907cSAndroid Build Coastguard Worker * content. 30*4d7e907cSAndroid Build Coastguard Worker */ 31*4d7e907cSAndroid Build Coastguard Workerinterface IDrmPlugin extends @1.2::IDrmPlugin { 32*4d7e907cSAndroid Build Coastguard Worker 33*4d7e907cSAndroid Build Coastguard Worker /** 34*4d7e907cSAndroid Build Coastguard Worker * Check if the specified mime-type & security level require a secure decoder 35*4d7e907cSAndroid Build Coastguard Worker * component. 36*4d7e907cSAndroid Build Coastguard Worker * 37*4d7e907cSAndroid Build Coastguard Worker * @param mime The content mime-type 38*4d7e907cSAndroid Build Coastguard Worker * @param level the requested security level 39*4d7e907cSAndroid Build Coastguard Worker * @return secureRequired must be true if and only if a secure decoder is required 40*4d7e907cSAndroid Build Coastguard Worker * for the specified mime-type & security level 41*4d7e907cSAndroid Build Coastguard Worker */ 42*4d7e907cSAndroid Build Coastguard Worker requiresSecureDecoder(string mime, @1.1::SecurityLevel level) generates (bool secureRequired); 43*4d7e907cSAndroid Build Coastguard Worker 44*4d7e907cSAndroid Build Coastguard Worker /** 45*4d7e907cSAndroid Build Coastguard Worker * Check if the specified mime-type requires a secure decoder component 46*4d7e907cSAndroid Build Coastguard Worker * at the highest security level supported on the device. 47*4d7e907cSAndroid Build Coastguard Worker * 48*4d7e907cSAndroid Build Coastguard Worker * @param mime The content mime-type 49*4d7e907cSAndroid Build Coastguard Worker * @return secureRequired must be true if and only if a secure decoder is required 50*4d7e907cSAndroid Build Coastguard Worker * for the specified mime-type 51*4d7e907cSAndroid Build Coastguard Worker */ 52*4d7e907cSAndroid Build Coastguard Worker requiresSecureDecoderDefault(string mime) generates (bool secureRequired); 53*4d7e907cSAndroid Build Coastguard Worker 54*4d7e907cSAndroid Build Coastguard Worker /** 55*4d7e907cSAndroid Build Coastguard Worker * Set playback id of a drm session. The playback id can be used to join drm session metrics 56*4d7e907cSAndroid Build Coastguard Worker * with metrics from other low level media components, e.g. codecs, or metrics from the high 57*4d7e907cSAndroid Build Coastguard Worker * level player. 58*4d7e907cSAndroid Build Coastguard Worker * 59*4d7e907cSAndroid Build Coastguard Worker * @param sessionId drm session id 60*4d7e907cSAndroid Build Coastguard Worker * @param playbackId high level playback id 61*4d7e907cSAndroid Build Coastguard Worker * @return status the status of the call. The status must be OK on success, or 62*4d7e907cSAndroid Build Coastguard Worker * ERROR_DRM_SESSION_NOT_OPENED if the drm session cannot be found 63*4d7e907cSAndroid Build Coastguard Worker */ 64*4d7e907cSAndroid Build Coastguard Worker setPlaybackId(SessionId sessionId, string playbackId) generates (@1.0::Status status); 65*4d7e907cSAndroid Build Coastguard Worker 66*4d7e907cSAndroid Build Coastguard Worker /** 67*4d7e907cSAndroid Build Coastguard Worker * @return logMessages latest plugin level log messages. Can be used 68*4d7e907cSAndroid Build Coastguard Worker * by apps in diagnosis of errors. 69*4d7e907cSAndroid Build Coastguard Worker * @return status the status of the call. The status must be: 70*4d7e907cSAndroid Build Coastguard Worker * OK on success; 71*4d7e907cSAndroid Build Coastguard Worker * GENERAL_OEM_ERROR on OEM-provided, low-level component failures; 72*4d7e907cSAndroid Build Coastguard Worker * GENERAL_PLUGIN_ERROR on unexpected plugin-level errors. 73*4d7e907cSAndroid Build Coastguard Worker */ 74*4d7e907cSAndroid Build Coastguard Worker getLogMessages() generates (@1.4::Status status, vec<LogMessage> logMessages); 75*4d7e907cSAndroid Build Coastguard Worker 76*4d7e907cSAndroid Build Coastguard Worker}; 77