From 8da0e27d2e71266838f8685825ff096da79bf8a2 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 27 Jan 2020 15:49:10 +0000 Subject: [PATCH] Fix premature nullness assertions Issue: #6910 PiperOrigin-RevId: 291721229 --- .../exoplayer2/extractor/ts/H264Reader.java | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H264Reader.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H264Reader.java index ed38567230..4a3b8cd291 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H264Reader.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H264Reader.java @@ -560,28 +560,32 @@ public final class H264Reader implements ElementaryStreamReader { } private boolean isFirstVclNalUnitOfPicture(SliceHeaderData other) { + if (!isComplete) { + return false; + } + if (!other.isComplete) { + return true; + } // See ISO 14496-10 subsection 7.4.1.2.4. SpsData spsData = Assertions.checkStateNotNull(this.spsData); SpsData otherSpsData = Assertions.checkStateNotNull(other.spsData); - return isComplete - && (!other.isComplete - || frameNum != other.frameNum - || picParameterSetId != other.picParameterSetId - || fieldPicFlag != other.fieldPicFlag - || (bottomFieldFlagPresent - && other.bottomFieldFlagPresent - && bottomFieldFlag != other.bottomFieldFlag) - || (nalRefIdc != other.nalRefIdc && (nalRefIdc == 0 || other.nalRefIdc == 0)) - || (spsData.picOrderCountType == 0 - && otherSpsData.picOrderCountType == 0 - && (picOrderCntLsb != other.picOrderCntLsb - || deltaPicOrderCntBottom != other.deltaPicOrderCntBottom)) - || (spsData.picOrderCountType == 1 - && otherSpsData.picOrderCountType == 1 - && (deltaPicOrderCnt0 != other.deltaPicOrderCnt0 - || deltaPicOrderCnt1 != other.deltaPicOrderCnt1)) - || idrPicFlag != other.idrPicFlag - || (idrPicFlag && idrPicId != other.idrPicId)); + return frameNum != other.frameNum + || picParameterSetId != other.picParameterSetId + || fieldPicFlag != other.fieldPicFlag + || (bottomFieldFlagPresent + && other.bottomFieldFlagPresent + && bottomFieldFlag != other.bottomFieldFlag) + || (nalRefIdc != other.nalRefIdc && (nalRefIdc == 0 || other.nalRefIdc == 0)) + || (spsData.picOrderCountType == 0 + && otherSpsData.picOrderCountType == 0 + && (picOrderCntLsb != other.picOrderCntLsb + || deltaPicOrderCntBottom != other.deltaPicOrderCntBottom)) + || (spsData.picOrderCountType == 1 + && otherSpsData.picOrderCountType == 1 + && (deltaPicOrderCnt0 != other.deltaPicOrderCnt0 + || deltaPicOrderCnt1 != other.deltaPicOrderCnt1)) + || idrPicFlag != other.idrPicFlag + || (idrPicFlag && idrPicId != other.idrPicId); } } }