Replace ffmpeg specific link with generic VP9/MP4 atom syntax spec.

This commit is contained in:
Haixia Shi 2023-03-15 07:07:26 -07:00
parent 614dbd1cfc
commit e7b1c021a5

View File

@ -1173,10 +1173,10 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
} else if (childAtomType == Atom.TYPE_vpcC) { } else if (childAtomType == Atom.TYPE_vpcC) {
ExtractorUtil.checkContainerInput(mimeType == null, /* message= */ null); ExtractorUtil.checkContainerInput(mimeType == null, /* message= */ null);
mimeType = (atomType == Atom.TYPE_vp08) ? MimeTypes.VIDEO_VP8 : MimeTypes.VIDEO_VP9; mimeType = (atomType == Atom.TYPE_vp08) ? MimeTypes.VIDEO_VP8 : MimeTypes.VIDEO_VP9;
parent.setPosition(childStartPosition + Atom.HEADER_SIZE); // See vpcC atom syntax: https://www.webmproject.org/vp9/mp4/#syntax_1
// vpcC atom parsing based on FFmpeg implementation // Skip FullBox header, and profile and level fields
// see https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/vpcc.c parent.setPosition(childStartPosition + Atom.FULL_HEADER_SIZE);
parent.skipBytes(6); parent.skipBytes(2);
boolean fullRangeFlag = (parent.readUnsignedByte() & 1) != 0; boolean fullRangeFlag = (parent.readUnsignedByte() & 1) != 0;
int colorPrimaries = parent.readUnsignedByte(); int colorPrimaries = parent.readUnsignedByte();
int transferCharacteristics = parent.readUnsignedByte(); int transferCharacteristics = parent.readUnsignedByte();