summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrm.java
blob: 875a90c1dd07af1dedcd092b8a5bcce5f5e17917 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.gecko.media;

import android.media.MediaCrypto;

public interface GeckoMediaDrm {
  public interface Callbacks {
    void onSessionCreated(int createSessionToken, int promiseId, byte[] sessionId, byte[] request);

    void onSessionUpdated(int promiseId, byte[] sessionId);

    void onSessionClosed(int promiseId, byte[] sessionId);

    void onSessionMessage(byte[] sessionId, int sessionMessageType, byte[] request);

    void onSessionError(byte[] sessionId, String message);

    void onSessionBatchedKeyChanged(byte[] sessionId, SessionKeyInfo[] keyInfos);

    // All failure cases should go through this function.
    void onRejectPromise(int promiseId, String message);
  }

  void setCallbacks(Callbacks callbacks);

  void createSession(int createSessionToken, int promiseId, String initDataType, byte[] initData);

  void updateSession(int promiseId, String sessionId, byte[] response);

  void closeSession(int promiseId, String sessionId);

  void release();

  MediaCrypto getMediaCrypto();

  void setServerCertificate(final byte[] cert);
}