diff --git a/package/android/src/main/java/com/mrousavy/camera/core/HlsMuxer.kt b/package/android/src/main/java/com/mrousavy/camera/core/HlsMuxer.kt index 1e41589..63be9ed 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/HlsMuxer.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/HlsMuxer.kt @@ -761,9 +761,11 @@ class HlsMuxer( val output = ByteArrayOutputStream() val dos = DataOutputStream(output) - val profileIdc = if (sps.isNotEmpty()) sps[0].toInt() and 0xFF else 0x42 - val profileCompat = if (sps.size > 1) sps[1].toInt() and 0xFF else 0x00 - val levelIdc = if (sps.size > 2) sps[2].toInt() and 0xFF else 0x1F + // SPS NAL unit format: [NAL header, profile_idc, constraint_flags, level_idc, ...] + // Skip byte 0 (NAL header, typically 0x67) to get the actual profile data + val profileIdc = if (sps.size > 1) sps[1].toInt() and 0xFF else 0x42 + val profileCompat = if (sps.size > 2) sps[2].toInt() and 0xFF else 0x00 + val levelIdc = if (sps.size > 3) sps[3].toInt() and 0xFF else 0x1F dos.writeByte(1) // configuration version dos.writeByte(profileIdc) // AVC profile