Add receive time and frame number to video decoder callbacks

This commit is contained in:
Cameron Gutman
2017-06-10 16:22:27 -07:00
parent 8c09154183
commit 0074848a4e
5 changed files with 9 additions and 7 deletions

View File

@@ -7,7 +7,7 @@ public abstract class VideoDecoderRenderer {
public abstract void stop();
public abstract int submitDecodeUnit(byte[] frameData, int frameLength);
public abstract int submitDecodeUnit(byte[] frameData, int frameLength, int frameNumber, long receiveTimeMs);
public abstract void cleanup();

View File

@@ -60,9 +60,9 @@ public class MoonBridge {
}
}
public static int bridgeDrSubmitDecodeUnit(byte[] frameData, int frameLength) {
public static int bridgeDrSubmitDecodeUnit(byte[] frameData, int frameLength, int frameNumber, long receiveTimeMs) {
if (videoRenderer != null) {
return videoRenderer.submitDecodeUnit(frameData, frameLength);
return videoRenderer.submitDecodeUnit(frameData, frameLength, frameNumber, receiveTimeMs);
}
else {
return DR_OK;

View File

@@ -43,7 +43,7 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/moonlight-common-c/enet/include \
$(LOCAL_PATH)/moonlight-common-c/reedsolomon \
$(LOCAL_PATH)/moonlight-common-c/src \
LOCAL_CFLAGS := -DHAS_SOCKLEN_T=1 -DLC_ANDROID
LOCAL_CFLAGS := -DHAS_SOCKLEN_T=1 -DLC_ANDROID -DHAVE_CLOCK_GETTIME=1
ifeq ($(NDK_DEBUG),1)
LOCAL_CFLAGS += -DLC_DEBUG

View File

@@ -79,7 +79,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_init(JNIEnv *env, jobject class) {
BridgeDrStartMethod = (*env)->GetStaticMethodID(env, class, "bridgeDrStart", "()V");
BridgeDrStopMethod = (*env)->GetStaticMethodID(env, class, "bridgeDrStop", "()V");
BridgeDrCleanupMethod = (*env)->GetStaticMethodID(env, class, "bridgeDrCleanup", "()V");
BridgeDrSubmitDecodeUnitMethod = (*env)->GetStaticMethodID(env, class, "bridgeDrSubmitDecodeUnit", "([BI)I");
BridgeDrSubmitDecodeUnitMethod = (*env)->GetStaticMethodID(env, class, "bridgeDrSubmitDecodeUnit", "([BIIJ)I");
BridgeArInitMethod = (*env)->GetStaticMethodID(env, class, "bridgeArInit", "(I)I");
BridgeArStartMethod = (*env)->GetStaticMethodID(env, class, "bridgeArStart", "()V");
BridgeArStopMethod = (*env)->GetStaticMethodID(env, class, "bridgeArStop", "()V");
@@ -173,7 +173,9 @@ int BridgeDrSubmitDecodeUnit(PDECODE_UNIT decodeUnit) {
currentEntry = currentEntry->next;
}
return (*env)->CallStaticIntMethod(env, GlobalBridgeClass, BridgeDrSubmitDecodeUnitMethod, DecodedFrameBuffer, decodeUnit->fullLength);
return (*env)->CallStaticIntMethod(env, GlobalBridgeClass, BridgeDrSubmitDecodeUnitMethod,
DecodedFrameBuffer, decodeUnit->fullLength, decodeUnit->frameNumber,
decodeUnit->receiveTimeMs);
}
int BridgeArInit(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig) {

Submodule moonlight-common/src/main/jni/moonlight-core/moonlight-common-c updated: c01deff683...99cfae7acc