From b52102743a68e0e0c52518154d59248607a3208a Mon Sep 17 00:00:00 2001 From: Santiago Seifert Date: Wed, 24 Jun 2020 16:15:11 +0100 Subject: [PATCH] Make the output CryptoInfo.iv non-null Bug: 154120292 Bug: 149906115 Test: Manually. Test: atest CtsMediaParserTestCases Change-Id: Icca0c5806f3c38afc22597c612b224fa6d37ca65 --- apex/media/framework/java/android/media/MediaParser.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java index cc3017ab0777b..1cb2121674976 100644 --- a/apex/media/framework/java/android/media/MediaParser.java +++ b/apex/media/framework/java/android/media/MediaParser.java @@ -880,6 +880,7 @@ public final class MediaParser { private static final String TS_MODE_MULTI_PMT = "multi_pmt"; private static final String TS_MODE_HLS = "hls"; private static final int BYTES_PER_SUBSAMPLE_ENCRYPTION_ENTRY = 6; + private static final byte[] EMPTY_BYTE_ARRAY = new byte[0]; @IntDef( value = { @@ -1674,6 +1675,9 @@ public final class MediaParser { if (cryptoData != mLastReceivedCryptoData) { mLastOutputCryptoInfo = createNewCryptoInfoAndPopulateWithCryptoData(cryptoData); + // We are using in-band crypto info, so the IV will be ignored. But we prevent + // it from being null because toString assumes it non-null. + mLastOutputCryptoInfo.iv = EMPTY_BYTE_ARRAY; } } else /* We must populate the full CryptoInfo. */ { // CryptoInfo.pattern is not accessible to the user, so the user needs to feed