Skip to content

Commit c775b23

Browse files
committed
Adding additional safety to putFrame
1 parent 4593758 commit c775b23

File tree

3 files changed

+488
-1
lines changed

3 files changed

+488
-1
lines changed

jni/com/amazonaws/kinesis/video/producer/jni/KinesisVideoClientWrapper.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,12 @@ void KinesisVideoClientWrapper::putKinesisVideoFrame(jlong streamHandle, jobject
385385

386386
PStreamInfo pStreamInfo;
387387
UINT32 zeroCount = 0;
388-
::kinesisVideoStreamGetStreamInfo(streamHandle, &pStreamInfo);
388+
retStatus = ::kinesisVideoStreamGetStreamInfo(streamHandle, &pStreamInfo);
389+
if (STATUS_FAILED(retStatus)) {
390+
DLOGE("Failed to get stream info with status code 0x%08x", retStatus);
391+
throwNativeException(env, EXCEPTION_NAME, "Failed to get stream info", retStatus);
392+
return;
393+
}
389394

390395
if ((pStreamInfo->streamCaps.nalAdaptationFlags & NAL_ADAPTATION_ANNEXB_NALS) != NAL_ADAPTATION_FLAG_NONE) {
391396
// In some devices encoder would generate annexb frames with more than 3 trailing zeros

src/main/java/com/amazonaws/kinesisvideo/internal/producer/jni/NativeKinesisVideoProducerJni.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,7 @@ public void putFrame(final long streamHandle, final @Nonnull KinesisVideoFrame k
536536
{
537537
Preconditions.checkState(isInitialized());
538538
Preconditions.checkNotNull(kinesisVideoFrame);
539+
Preconditions.checkArgument(mKinesisVideoHandleMap.containsKey(streamHandle), "StreamHandle 0x" + Long.toHexString(streamHandle) + " is not valid!");
539540

540541
putKinesisVideoFrame(mClientHandle, streamHandle, kinesisVideoFrame);
541542
}

0 commit comments

Comments
 (0)