Android: Generate JNI code for MediaStreamTrack

Bug: webrtc:8278
Change-Id: Id5ac6ecd4f65bed4ae4b2953ef58ebc390508d21
Reviewed-on: https://webrtc-review.googlesource.com/25963
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20910}
This commit is contained in:
Magnus Jedvert
2017-11-27 13:44:38 +01:00
committed by Commit Bot
parent 32f64d2ef9
commit 4fa5da54d5
5 changed files with 44 additions and 53 deletions

View File

@ -75,9 +75,6 @@ ClassReferenceHolder::ClassReferenceHolder(JNIEnv* jni) {
LoadClass(jni, "org/webrtc/MediaCodecVideoEncoder$OutputBufferInfo");
LoadClass(jni, "org/webrtc/MediaCodecVideoEncoder$VideoCodecType");
LoadClass(jni, "org/webrtc/MediaSource$State");
LoadClass(jni, "org/webrtc/MediaStreamTrack");
LoadClass(jni, "org/webrtc/MediaStreamTrack$MediaType");
LoadClass(jni, "org/webrtc/MediaStreamTrack$State");
LoadClass(jni, "org/webrtc/NetworkMonitor");
LoadClass(jni, "org/webrtc/NetworkMonitorAutoDetect$ConnectionType");
LoadClass(jni, "org/webrtc/NetworkMonitorAutoDetect$IPAddress");

View File

@ -14,6 +14,7 @@
#include "pc/webrtcsdp.h"
#include "sdk/android/generated_peerconnection_jni/jni/IceCandidate_jni.h"
#include "sdk/android/generated_peerconnection_jni/jni/MediaStreamTrack_jni.h"
#include "sdk/android/src/jni/classreferenceholder.h"
namespace webrtc {
@ -35,42 +36,12 @@ jobject NativeToJavaCandidate(JNIEnv* env,
} // namespace
jobject NativeToJavaMediaType(JNIEnv* jni, cricket::MediaType media_type) {
jclass j_media_type_class =
FindClass(jni, "org/webrtc/MediaStreamTrack$MediaType");
const char* media_type_str = nullptr;
switch (media_type) {
case cricket::MEDIA_TYPE_AUDIO:
media_type_str = "MEDIA_TYPE_AUDIO";
break;
case cricket::MEDIA_TYPE_VIDEO:
media_type_str = "MEDIA_TYPE_VIDEO";
break;
case cricket::MEDIA_TYPE_DATA:
RTC_NOTREACHED();
break;
}
jfieldID j_media_type_fid =
GetStaticFieldID(jni, j_media_type_class, media_type_str,
"Lorg/webrtc/MediaStreamTrack$MediaType;");
return GetStaticObjectField(jni, j_media_type_class, j_media_type_fid);
return Java_MediaType_fromNativeIndex(jni, media_type);
}
cricket::MediaType JavaToNativeMediaType(JNIEnv* jni, jobject j_media_type) {
jclass j_media_type_class =
FindClass(jni, "org/webrtc/MediaStreamTrack$MediaType");
jmethodID j_name_id =
GetMethodID(jni, j_media_type_class, "name", "()Ljava/lang/String;");
jstring j_type_string =
(jstring)jni->CallObjectMethod(j_media_type, j_name_id);
CHECK_EXCEPTION(jni) << "error during CallObjectMethod";
std::string type_string = JavaToStdString(jni, j_type_string);
RTC_DCHECK(type_string == "MEDIA_TYPE_AUDIO" ||
type_string == "MEDIA_TYPE_VIDEO")
<< "Media type: " << type_string;
return type_string == "MEDIA_TYPE_AUDIO" ? cricket::MEDIA_TYPE_AUDIO
: cricket::MEDIA_TYPE_VIDEO;
return static_cast<cricket::MediaType>(
Java_MediaType_getNative(jni, j_media_type));
}
cricket::Candidate JavaToNativeCandidate(JNIEnv* jni, jobject j_candidate) {

View File

@ -15,7 +15,7 @@ namespace webrtc {
namespace jni {
JNI_FUNCTION_DECLARATION(jstring,
MediaStreamTrack_nativeId,
MediaStreamTrack_getNativeId,
JNIEnv* jni,
jclass,
jlong j_p) {
@ -24,7 +24,7 @@ JNI_FUNCTION_DECLARATION(jstring,
}
JNI_FUNCTION_DECLARATION(jstring,
MediaStreamTrack_nativeKind,
MediaStreamTrack_getNativeKind,
JNIEnv* jni,
jclass,
jlong j_p) {
@ -33,7 +33,7 @@ JNI_FUNCTION_DECLARATION(jstring,
}
JNI_FUNCTION_DECLARATION(jboolean,
MediaStreamTrack_nativeEnabled,
MediaStreamTrack_getNativeEnabled,
JNIEnv* jni,
jclass,
jlong j_p) {
@ -41,7 +41,7 @@ JNI_FUNCTION_DECLARATION(jboolean,
}
JNI_FUNCTION_DECLARATION(jobject,
MediaStreamTrack_nativeState,
MediaStreamTrack_getNativeState,
JNIEnv* jni,
jclass,
jlong j_p) {
@ -51,7 +51,7 @@ JNI_FUNCTION_DECLARATION(jobject,
}
JNI_FUNCTION_DECLARATION(jboolean,
MediaStreamTrack_nativeSetEnabled,
MediaStreamTrack_setNativeEnabled,
JNIEnv* jni,
jclass,
jlong j_p,