diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 0d27b6098f..70140b9d84 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -38,6 +38,8 @@ ([#4422](https://github.com/google/ExoPlayer/issues/4422)). * Fix the bitrate being unset on primary track sample formats ([#3297](https://github.com/google/ExoPlayer/issues/3297)). +* DASH: + * Support messageData attribute of in-manifest events. * Improve seeking support for progressive streams: * Support seeking in MPEG-TS ([#966](https://github.com/google/ExoPlayer/issues/966)). diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java index 5de9773a10..a2f0948bde 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java @@ -838,8 +838,15 @@ public class DashManifestParser extends DefaultHandler long durationMs = Util.scaleLargeTimestamp(duration, 1000, timescale); long presentationTimesUs = Util.scaleLargeTimestamp(presentationTime, C.MICROS_PER_SECOND, timescale); + String messageData = parseString(xpp, "messageData", null); byte[] eventObject = parseEventObject(xpp, scratchOutputStream); - return buildEvent(schemeIdUri, value, id, durationMs, eventObject, presentationTimesUs); + return buildEvent( + schemeIdUri, + value, + id, + durationMs, + messageData == null ? eventObject : Util.getUtf8Bytes(messageData), + presentationTimesUs); } /** diff --git a/library/dash/src/test/assets/sample_mpd_4_event_stream b/library/dash/src/test/assets/sample_mpd_4_event_stream index cf96541ca0..e4c927260d 100644 --- a/library/dash/src/test/assets/sample_mpd_4_event_stream +++ b/library/dash/src/test/assets/sample_mpd_4_event_stream @@ -2,7 +2,7 @@ - + 1 800 10101010 +