diff --git a/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java b/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java index 88c729f495..c50a7aad65 100644 --- a/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java +++ b/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java @@ -395,8 +395,9 @@ public class HlsChunkSource { byte[] ivData = new BigInteger(iv, 16).toByteArray(); byte[] ivDataWithPadding = new byte[16]; - System.arraycopy(ivData, 0, ivDataWithPadding, ivDataWithPadding.length - ivData.length, - ivData.length); + int offset = ivData.length > 16 ? ivData.length - 16 : 0; + System.arraycopy(ivData, offset, ivDataWithPadding, ivDataWithPadding.length - ivData.length + + offset, ivData.length - offset); encryptedDataSource = new Aes128DataSource(secretKey, ivDataWithPadding, upstreamDataSource); }