mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
AV1 treat show_existing_frame headers as not depended on
PiperOrigin-RevId: 724300793
This commit is contained in:
parent
babc2dd416
commit
65e7b599d8
@ -294,10 +294,7 @@ public final class ObuParser {
|
||||
throwWhenFeatureRequired(sequenceHeader.reducedStillPictureHeader);
|
||||
boolean showExistingFrame = obuData.readBit();
|
||||
if (showExistingFrame) {
|
||||
// TODO: b/391108133 - Treat showExistingFrame as depended on. The picture was already
|
||||
// decoded and the player may not save a lot of resources by rendering. Check if this
|
||||
// assumption is correct!
|
||||
isDependedOn = true;
|
||||
isDependedOn = false;
|
||||
return;
|
||||
}
|
||||
int frameType = obuData.readBits(2);
|
||||
|
@ -102,7 +102,7 @@ public class ObuParserTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseFrameHeader_fromFrameHeader_returnsIsDependedOn() {
|
||||
public void parseFrameHeader_fromShowExistingFrameHeader_returnsIsNotDependedOn() {
|
||||
ObuParser.Obu sequenceHeaderObu = ObuParser.split(SEQUENCE_HEADER_AND_FRAME).get(0);
|
||||
ObuParser.SequenceHeader sequenceHeader = ObuParser.SequenceHeader.parse(sequenceHeaderObu);
|
||||
ObuParser.Obu frameHeaderObu =
|
||||
@ -110,7 +110,7 @@ public class ObuParserTest {
|
||||
|
||||
ObuParser.FrameHeader frameHeader = ObuParser.FrameHeader.parse(sequenceHeader, frameHeaderObu);
|
||||
|
||||
assertThat(frameHeader.isDependedOn()).isTrue();
|
||||
assertThat(frameHeader.isDependedOn()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -16,6 +16,7 @@
|
||||
package androidx.media3.exoplayer.video;
|
||||
|
||||
import static androidx.media3.container.ObuParser.OBU_FRAME;
|
||||
import static androidx.media3.container.ObuParser.OBU_FRAME_HEADER;
|
||||
import static androidx.media3.container.ObuParser.OBU_PADDING;
|
||||
import static androidx.media3.container.ObuParser.OBU_SEQUENCE_HEADER;
|
||||
import static androidx.media3.container.ObuParser.OBU_TEMPORAL_DELIMITER;
|
||||
@ -63,7 +64,7 @@ import java.util.List;
|
||||
int skippedFramesCount = 0;
|
||||
int last = obuList.size() - 1;
|
||||
while (last >= 0 && canSkipObu(obuList.get(last))) {
|
||||
if (obuList.get(last).type == OBU_FRAME) {
|
||||
if (obuList.get(last).type == OBU_FRAME || obuList.get(last).type == OBU_FRAME_HEADER) {
|
||||
skippedFramesCount++;
|
||||
}
|
||||
last--;
|
||||
@ -86,7 +87,7 @@ import java.util.List;
|
||||
if (obu.type == OBU_TEMPORAL_DELIMITER || obu.type == OBU_PADDING) {
|
||||
return true;
|
||||
}
|
||||
if (obu.type == OBU_FRAME && sequenceHeader != null) {
|
||||
if ((obu.type == OBU_FRAME || obu.type == OBU_FRAME_HEADER) && sequenceHeader != null) {
|
||||
FrameHeader frameHeader = FrameHeader.parse(sequenceHeader, obu);
|
||||
return frameHeader != null && !frameHeader.isDependedOn();
|
||||
}
|
||||
|
@ -1,198 +1,184 @@
|
||||
MediaCodecAdapter (exotest.video.av1):
|
||||
inputBuffers:
|
||||
count = 28
|
||||
count = 26
|
||||
input buffer #0:
|
||||
timeUs = 1000000000000
|
||||
contents = length 84, hash 9C46A819
|
||||
input buffer #1:
|
||||
timeUs = 1000000066666
|
||||
contents = length 133, hash 1F0DB1A3
|
||||
input buffer #2:
|
||||
timeUs = 1000000133333
|
||||
contents = length 3, hash D5F0
|
||||
input buffer #3:
|
||||
timeUs = 1000000200000
|
||||
contents = length 31, hash 4D3984BD
|
||||
input buffer #4:
|
||||
contents = length 161, hash 489E5DE0
|
||||
input buffer #2:
|
||||
timeUs = 1000000233333
|
||||
contents = length 27, hash 70CFAC05
|
||||
input buffer #5:
|
||||
input buffer #3:
|
||||
timeUs = 1000000266666
|
||||
contents = length 3, hash D5D0
|
||||
input buffer #6:
|
||||
input buffer #4:
|
||||
timeUs = 1000000300000
|
||||
contents = length 82, hash 944218D6
|
||||
input buffer #7:
|
||||
input buffer #5:
|
||||
timeUs = 1000000333333
|
||||
contents = length 3, hash D600
|
||||
input buffer #8:
|
||||
input buffer #6:
|
||||
timeUs = 1000000366666
|
||||
contents = length 27, hash BA4D4A06
|
||||
input buffer #9:
|
||||
input buffer #7:
|
||||
timeUs = 1000000400000
|
||||
contents = length 3, hash D5F0
|
||||
input buffer #10:
|
||||
input buffer #8:
|
||||
timeUs = 1000000433333
|
||||
contents = length 54, hash A98584CA
|
||||
input buffer #11:
|
||||
input buffer #9:
|
||||
timeUs = 1000000466666
|
||||
contents = length 3, hash D600
|
||||
input buffer #12:
|
||||
input buffer #10:
|
||||
timeUs = 1000000500000
|
||||
contents = length 27, hash 45D733B8
|
||||
input buffer #13:
|
||||
input buffer #11:
|
||||
timeUs = 1000000533333
|
||||
contents = length 3, hash D5A0
|
||||
input buffer #14:
|
||||
input buffer #12:
|
||||
timeUs = 1000000566666
|
||||
contents = length 112, hash B80B26FD
|
||||
input buffer #15:
|
||||
input buffer #13:
|
||||
timeUs = 1000000600000
|
||||
contents = length 3, hash D5F0
|
||||
input buffer #16:
|
||||
input buffer #14:
|
||||
timeUs = 1000000633333
|
||||
contents = length 27, hash 37DD29D9
|
||||
input buffer #17:
|
||||
input buffer #15:
|
||||
timeUs = 1000000666666
|
||||
contents = length 3, hash D5E0
|
||||
input buffer #18:
|
||||
input buffer #16:
|
||||
timeUs = 1000000700000
|
||||
contents = length 54, hash 1C15581C
|
||||
input buffer #19:
|
||||
input buffer #17:
|
||||
timeUs = 1000000733333
|
||||
contents = length 3, hash D5F0
|
||||
input buffer #20:
|
||||
input buffer #18:
|
||||
timeUs = 1000000766666
|
||||
contents = length 27, hash 49EC3531
|
||||
input buffer #21:
|
||||
input buffer #19:
|
||||
timeUs = 1000000800000
|
||||
contents = length 3, hash D5B0
|
||||
input buffer #22:
|
||||
input buffer #20:
|
||||
timeUs = 1000000833333
|
||||
contents = length 84, hash 2025C9F5
|
||||
input buffer #23:
|
||||
input buffer #21:
|
||||
timeUs = 1000000866666
|
||||
contents = length 3, hash D5D0
|
||||
input buffer #24:
|
||||
input buffer #22:
|
||||
timeUs = 1000000900000
|
||||
contents = length 27, hash B927669C
|
||||
input buffer #25:
|
||||
input buffer #23:
|
||||
timeUs = 1000000933333
|
||||
contents = length 3, hash D5C0
|
||||
input buffer #26:
|
||||
input buffer #24:
|
||||
timeUs = 1000000966666
|
||||
contents = length 27, hash 706C58AD
|
||||
input buffer #27:
|
||||
input buffer #25:
|
||||
timeUs = 0
|
||||
flags = 4
|
||||
contents = length 0, hash 1
|
||||
outputBuffers:
|
||||
count = 27
|
||||
count = 25
|
||||
output buffer #0:
|
||||
timeUs = 1000000000000
|
||||
size = 84
|
||||
rendered = false
|
||||
output buffer #1:
|
||||
timeUs = 1000000066666
|
||||
size = 133
|
||||
rendered = false
|
||||
output buffer #2:
|
||||
timeUs = 1000000133333
|
||||
size = 3
|
||||
rendered = false
|
||||
output buffer #3:
|
||||
timeUs = 1000000200000
|
||||
size = 31
|
||||
size = 161
|
||||
rendered = true
|
||||
output buffer #4:
|
||||
output buffer #2:
|
||||
timeUs = 1000000233333
|
||||
size = 27
|
||||
rendered = true
|
||||
output buffer #5:
|
||||
output buffer #3:
|
||||
timeUs = 1000000266666
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #6:
|
||||
output buffer #4:
|
||||
timeUs = 1000000300000
|
||||
size = 82
|
||||
rendered = true
|
||||
output buffer #7:
|
||||
output buffer #5:
|
||||
timeUs = 1000000333333
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #8:
|
||||
output buffer #6:
|
||||
timeUs = 1000000366666
|
||||
size = 27
|
||||
rendered = true
|
||||
output buffer #9:
|
||||
output buffer #7:
|
||||
timeUs = 1000000400000
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #10:
|
||||
output buffer #8:
|
||||
timeUs = 1000000433333
|
||||
size = 54
|
||||
rendered = true
|
||||
output buffer #11:
|
||||
output buffer #9:
|
||||
timeUs = 1000000466666
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #12:
|
||||
output buffer #10:
|
||||
timeUs = 1000000500000
|
||||
size = 27
|
||||
rendered = true
|
||||
output buffer #13:
|
||||
output buffer #11:
|
||||
timeUs = 1000000533333
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #14:
|
||||
output buffer #12:
|
||||
timeUs = 1000000566666
|
||||
size = 112
|
||||
rendered = true
|
||||
output buffer #15:
|
||||
output buffer #13:
|
||||
timeUs = 1000000600000
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #16:
|
||||
output buffer #14:
|
||||
timeUs = 1000000633333
|
||||
size = 27
|
||||
rendered = true
|
||||
output buffer #17:
|
||||
output buffer #15:
|
||||
timeUs = 1000000666666
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #18:
|
||||
output buffer #16:
|
||||
timeUs = 1000000700000
|
||||
size = 54
|
||||
rendered = true
|
||||
output buffer #19:
|
||||
output buffer #17:
|
||||
timeUs = 1000000733333
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #20:
|
||||
output buffer #18:
|
||||
timeUs = 1000000766666
|
||||
size = 27
|
||||
rendered = true
|
||||
output buffer #21:
|
||||
output buffer #19:
|
||||
timeUs = 1000000800000
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #22:
|
||||
output buffer #20:
|
||||
timeUs = 1000000833333
|
||||
size = 84
|
||||
rendered = true
|
||||
output buffer #23:
|
||||
output buffer #21:
|
||||
timeUs = 1000000866666
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #24:
|
||||
output buffer #22:
|
||||
timeUs = 1000000900000
|
||||
size = 27
|
||||
rendered = true
|
||||
output buffer #25:
|
||||
output buffer #23:
|
||||
timeUs = 1000000933333
|
||||
size = 3
|
||||
rendered = true
|
||||
output buffer #26:
|
||||
output buffer #24:
|
||||
timeUs = 1000000966666
|
||||
size = 27
|
||||
rendered = true
|
||||
|
Loading…
x
Reference in New Issue
Block a user