From 377a3250f075279bf73aaf5c752a9a662f273849 Mon Sep 17 00:00:00 2001 From: Alexey Rochev Date: Thu, 7 Jan 2021 20:13:19 +0300 Subject: [PATCH] H265Reader: initialize correct Format.height for interlaced video --- .../exoplayer2/extractor/ts/H265Reader.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H265Reader.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H265Reader.java index ea23e1ef7a..58d028613a 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H265Reader.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/H265Reader.java @@ -334,6 +334,23 @@ public final class H265Reader implements ElementaryStreamReader { Log.w(TAG, "Unexpected aspect_ratio_idc value: " + aspectRatioIdc); } } + if (bitArray.readBit()) // overscan_info_present_flag + bitArray.skipBit(); + if (bitArray.readBit()) { // video_signal_type_present_flag + bitArray.skipBits(4); + if (bitArray.readBit()) // colour_description_present_flag + bitArray.skipBits(24); + } + if (bitArray.readBit()) { // chroma_loc_info_present_flag + bitArray.readUnsignedExpGolombCodedInt(); + bitArray.readUnsignedExpGolombCodedInt(); + } + bitArray.skipBit(); // neutral_chroma_indication_flag + if (bitArray.readBit()) { // field_seq_flag + // field_seq_flag equal to 1 indicates that the CVS conveys pictures that represent fields, + // which means that picture height must be multiplied by 2 to get frame height + picHeightInLumaSamples *= 2; + } } return new Format.Builder()