From 39c734963f67f8ed3fa79820d573e6b3297c8d28 Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 25 Oct 2024 09:10:29 -0700 Subject: [PATCH] `H264Reader`: Add missing propagation of `max_num_reorder_frames` This method is already called below in the `else if (sps.isCompleted())` block which applies when `hasOutputFormat == true`, but this is only ever entered if we are parsing SPS and PPS NAL units **after** we've emitted a format, which is only the case if `DefaultTsPayloadReaderFactory.FLAG_DETECT_ACCESS_UNITS` is set (which it isn't by default). The equivalent call in `H265Reader` is already inside the `if (!hasOutputFormat)` block, so doesn't need a similar fix. #cherrypick PiperOrigin-RevId: 689809529 --- RELEASENOTES.md | 3 +++ .../src/main/java/androidx/media3/extractor/ts/H264Reader.java | 1 + 2 files changed, 4 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 55c7a50d4c..5137ad57d5 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -37,6 +37,9 @@ * Audio: * Video: * Text: + * Fix CEA-608 subtitles in H.264 MPEG-TS streams not being output (this + was broken in `1.5.0-alpha01` by + https://github.com/androidx/media/commit/03a205f220ecf7681f85f8a752227e3986e257ff). * Metadata: * Image: * DRM: diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H264Reader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H264Reader.java index 2d14b0bf4a..d3468fcb1e 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H264Reader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H264Reader.java @@ -233,6 +233,7 @@ public final class H264Reader implements ElementaryStreamReader { .setMaxNumReorderSamples(spsData.maxNumReorderFrames) .build()); hasOutputFormat = true; + seiReader.setReorderingQueueSize(spsData.maxNumReorderFrames); sampleReader.putSps(spsData); sampleReader.putPps(ppsData); sps.reset();