diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/FlacStreamMetadata.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/FlacStreamMetadata.java index ae179a177b..905b7c7609 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/FlacStreamMetadata.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/FlacStreamMetadata.java @@ -143,8 +143,7 @@ public final class FlacStreamMetadata { bitsPerSample, totalSamples, /* seekTable= */ null, - new Metadata(pictureFrames) - .copyWithAppendedEntriesFrom(VorbisUtil.parseVorbisComments(vorbisComments))); + concatenateVorbisMetadata(vorbisComments, pictureFrames)); } private FlacStreamMetadata( @@ -250,6 +249,22 @@ public final class FlacStreamMetadata { return metadata == null ? other : metadata.copyWithAppendedEntriesFrom(other); } + /** Returns */ + @Nullable + private static Metadata concatenateVorbisMetadata( + List vorbisComments, + List pictureFrames + ) { + @Nullable Metadata parsedVorbisComments = VorbisUtil.parseVorbisComments(vorbisComments); + + if (parsedVorbisComments == null && pictureFrames.isEmpty()) { + return null; + } + + return new Metadata(pictureFrames) + .copyWithAppendedEntriesFrom(parsedVorbisComments); + } + /** Returns a copy of {@code this} with the seek table replaced by the one given. */ public FlacStreamMetadata copyWithSeekTable(@Nullable SeekTable seekTable) { return new FlacStreamMetadata(