Fix propagation of HlsMetadataEntry's in HLS chunkless preparation

PiperOrigin-RevId: 263356275
This commit is contained in:
aquilescanta 2019-08-14 16:37:26 +01:00 committed by Andrew Lewis
parent 76a6f5b0d0
commit f3a1b099e6

View File

@ -25,6 +25,7 @@ import com.google.android.exoplayer2.drm.DrmInitData;
import com.google.android.exoplayer2.drm.DrmSession; import com.google.android.exoplayer2.drm.DrmSession;
import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.drm.DrmSessionManager;
import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.Extractor;
import com.google.android.exoplayer2.metadata.Metadata;
import com.google.android.exoplayer2.offline.StreamKey; import com.google.android.exoplayer2.offline.StreamKey;
import com.google.android.exoplayer2.source.CompositeSequenceableLoaderFactory; import com.google.android.exoplayer2.source.CompositeSequenceableLoaderFactory;
import com.google.android.exoplayer2.source.MediaPeriod; import com.google.android.exoplayer2.source.MediaPeriod;
@ -787,7 +788,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
variantFormat.containerMimeType, variantFormat.containerMimeType,
sampleMimeType, sampleMimeType,
codecs, codecs,
/* metadata= */ null, variantFormat.metadata,
variantFormat.bitrate, variantFormat.bitrate,
variantFormat.width, variantFormat.width,
variantFormat.height, variantFormat.height,
@ -800,6 +801,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
private static Format deriveAudioFormat( private static Format deriveAudioFormat(
Format variantFormat, Format mediaTagFormat, boolean isPrimaryTrackInVariant) { Format variantFormat, Format mediaTagFormat, boolean isPrimaryTrackInVariant) {
String codecs; String codecs;
Metadata metadata;
int channelCount = Format.NO_VALUE; int channelCount = Format.NO_VALUE;
int selectionFlags = 0; int selectionFlags = 0;
int roleFlags = 0; int roleFlags = 0;
@ -807,6 +809,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
String label = null; String label = null;
if (mediaTagFormat != null) { if (mediaTagFormat != null) {
codecs = mediaTagFormat.codecs; codecs = mediaTagFormat.codecs;
metadata = mediaTagFormat.metadata;
channelCount = mediaTagFormat.channelCount; channelCount = mediaTagFormat.channelCount;
selectionFlags = mediaTagFormat.selectionFlags; selectionFlags = mediaTagFormat.selectionFlags;
roleFlags = mediaTagFormat.roleFlags; roleFlags = mediaTagFormat.roleFlags;
@ -814,6 +817,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
label = mediaTagFormat.label; label = mediaTagFormat.label;
} else { } else {
codecs = Util.getCodecsOfType(variantFormat.codecs, C.TRACK_TYPE_AUDIO); codecs = Util.getCodecsOfType(variantFormat.codecs, C.TRACK_TYPE_AUDIO);
metadata = variantFormat.metadata;
if (isPrimaryTrackInVariant) { if (isPrimaryTrackInVariant) {
channelCount = variantFormat.channelCount; channelCount = variantFormat.channelCount;
selectionFlags = variantFormat.selectionFlags; selectionFlags = variantFormat.selectionFlags;
@ -830,7 +834,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper
variantFormat.containerMimeType, variantFormat.containerMimeType,
sampleMimeType, sampleMimeType,
codecs, codecs,
/* metadata= */ null, metadata,
bitrate, bitrate,
channelCount, channelCount,
/* sampleRate= */ Format.NO_VALUE, /* sampleRate= */ Format.NO_VALUE,