blob: a26e889bd28981d0d96e209d334e80cd9e6c517e [file] [log] [blame]
henrike@webrtc.org28e20752013-07-10 00:45:36 +00001/*
kjellanderb24317b2016-02-10 07:54:43 -08002 * Copyright 2013 The WebRTC project authors. All Rights Reserved.
henrike@webrtc.org28e20752013-07-10 00:45:36 +00003 *
kjellanderb24317b2016-02-10 07:54:43 -08004 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
henrike@webrtc.org28e20752013-07-10 00:45:36 +00009 */
10
henrike@webrtc.org28e20752013-07-10 00:45:36 +000011package org.webrtc;
12
13/** Java wrapper for a C++ MediaSourceInterface. */
14public class MediaSource {
15 /** Tracks MediaSourceInterface.SourceState */
sakalb6760f92016-09-29 04:12:44 -070016 public enum State { INITIALIZING, LIVE, ENDED, MUTED }
henrike@webrtc.org28e20752013-07-10 00:45:36 +000017
sakalb6760f92016-09-29 04:12:44 -070018 final long nativeSource; // Package-protected for PeerConnectionFactory.
henrike@webrtc.org28e20752013-07-10 00:45:36 +000019
20 public MediaSource(long nativeSource) {
21 this.nativeSource = nativeSource;
22 }
23
24 public State state() {
25 return nativeState(nativeSource);
26 }
27
fischman@webrtc.org32001ef2013-08-12 23:26:21 +000028 public void dispose() {
magjedb1c74532017-08-27 13:47:20 -070029 JniCommon.nativeReleaseRef(nativeSource);
henrike@webrtc.org28e20752013-07-10 00:45:36 +000030 }
31
32 private static native State nativeState(long pointer);
henrike@webrtc.org28e20752013-07-10 00:45:36 +000033}