Skip to content

Commit afaf9c3

Browse files
committed
Adding additional safety to putFrame
1 parent 8b00331 commit afaf9c3

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
@@ -386,7 +386,12 @@ void KinesisVideoClientWrapper::putKinesisVideoFrame(jlong streamHandle, jobject
386386

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

391396
if ((pStreamInfo->streamCaps.nalAdaptationFlags & NAL_ADAPTATION_ANNEXB_NALS) != NAL_ADAPTATION_FLAG_NONE) {
392397
// 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)