Index: media/formats/webm/webm_parser.cc |
diff --git a/media/formats/webm/webm_parser.cc b/media/formats/webm/webm_parser.cc |
index 985bada5e6b42889fe4993f5eccb88043b8e8c4b..1fc60f5387e6bc196a5310ee1d6583e3614de972 100644 |
--- a/media/formats/webm/webm_parser.cc |
+++ b/media/formats/webm/webm_parser.cc |
@@ -185,21 +185,44 @@ static const ElementIdInfo kTrackTranslateIds[] = { |
}; |
static const ElementIdInfo kVideoIds[] = { |
- {UINT, kWebMIdFlagInterlaced}, |
- {UINT, kWebMIdStereoMode}, |
- {UINT, kWebMIdAlphaMode}, |
- {UINT, kWebMIdPixelWidth}, |
- {UINT, kWebMIdPixelHeight}, |
- {UINT, kWebMIdPixelCropBottom}, |
- {UINT, kWebMIdPixelCropTop}, |
- {UINT, kWebMIdPixelCropLeft}, |
- {UINT, kWebMIdPixelCropRight}, |
- {UINT, kWebMIdDisplayWidth}, |
- {UINT, kWebMIdDisplayHeight}, |
- {UINT, kWebMIdDisplayUnit}, |
- {UINT, kWebMIdAspectRatioType}, |
- {BINARY, kWebMIdColorSpace}, |
- {FLOAT, kWebMIdFrameRate}, |
+ {UINT, kWebMIdFlagInterlaced}, {UINT, kWebMIdStereoMode}, |
+ {UINT, kWebMIdAlphaMode}, {UINT, kWebMIdPixelWidth}, |
+ {UINT, kWebMIdPixelHeight}, {UINT, kWebMIdPixelCropBottom}, |
+ {UINT, kWebMIdPixelCropTop}, {UINT, kWebMIdPixelCropLeft}, |
+ {UINT, kWebMIdPixelCropRight}, {UINT, kWebMIdDisplayWidth}, |
+ {UINT, kWebMIdDisplayHeight}, {UINT, kWebMIdDisplayUnit}, |
+ {UINT, kWebMIdAspectRatioType}, {BINARY, kWebMIdColorSpace}, |
+ {FLOAT, kWebMIdFrameRate}, {LIST, kWebMIdColour}, |
+}; |
+ |
+static const ElementIdInfo kColourIds[] = { |
+ {UINT, kWebMIdMatrixCoefficients}, |
+ {UINT, kWebMIdBitsPerChannel}, |
+ {UINT, kWebMIdChromaSubsamplingHorz}, |
+ {UINT, kWebMIdChromaSubsamplingVert}, |
+ {UINT, kWebMIdCbSubsamplingHorz}, |
+ {UINT, kWebMIdCbSubsamplingVert}, |
+ {UINT, kWebMIdChromaSitingHorz}, |
+ {UINT, kWebMIdChromaSitingVert}, |
+ {UINT, kWebMIdRange}, |
+ {UINT, kWebMIdTransferCharacteristics}, |
+ {UINT, kWebMIdPrimaries}, |
+ {UINT, kWebMIdMaxCLL}, |
+ {UINT, kWebMIdMaxFALL}, |
+ {LIST, kWebMIdMasteringMetadata}, |
+}; |
+ |
+static const ElementIdInfo kMasteringMetadataIds[] = { |
+ {FLOAT, kWebMIdPrimaryRChromaticityX}, |
+ {FLOAT, kWebMIdPrimaryRChromaticityY}, |
+ {FLOAT, kWebMIdPrimaryGChromaticityX}, |
+ {FLOAT, kWebMIdPrimaryGChromaticityY}, |
+ {FLOAT, kWebMIdPrimaryBChromaticityX}, |
+ {FLOAT, kWebMIdPrimaryBChromaticityY}, |
+ {FLOAT, kWebMIdWhitePointChromaticityX}, |
+ {FLOAT, kWebMIdWhitePointChromaticityY}, |
+ {FLOAT, kWebMIdLuminanceMax}, |
+ {FLOAT, kWebMIdLuminanceMin}, |
}; |
static const ElementIdInfo kAudioIds[] = { |
@@ -368,50 +391,54 @@ static const ElementIdInfo kSimpleTagIds[] = { |
{ (id), (level), (id_info), arraysize(id_info) } |
static const ListElementInfo kListElementInfo[] = { |
- LIST_ELEMENT_INFO(kWebMIdCluster, 1, kClusterIds), |
- LIST_ELEMENT_INFO(kWebMIdEBMLHeader, 0, kEBMLHeaderIds), |
- LIST_ELEMENT_INFO(kWebMIdSegment, 0, kSegmentIds), |
- LIST_ELEMENT_INFO(kWebMIdSeekHead, 1, kSeekHeadIds), |
- LIST_ELEMENT_INFO(kWebMIdSeek, 2, kSeekIds), |
- LIST_ELEMENT_INFO(kWebMIdInfo, 1, kInfoIds), |
- LIST_ELEMENT_INFO(kWebMIdChapterTranslate, 2, kChapterTranslateIds), |
- LIST_ELEMENT_INFO(kWebMIdSilentTracks, 2, kSilentTracksIds), |
- LIST_ELEMENT_INFO(kWebMIdBlockGroup, 2, kBlockGroupIds), |
- LIST_ELEMENT_INFO(kWebMIdBlockAdditions, 3, kBlockAdditionsIds), |
- LIST_ELEMENT_INFO(kWebMIdBlockMore, 4, kBlockMoreIds), |
- LIST_ELEMENT_INFO(kWebMIdSlices, 3, kSlicesIds), |
- LIST_ELEMENT_INFO(kWebMIdTimeSlice, 4, kTimeSliceIds), |
- LIST_ELEMENT_INFO(kWebMIdTracks, 1, kTracksIds), |
- LIST_ELEMENT_INFO(kWebMIdTrackEntry, 2, kTrackEntryIds), |
- LIST_ELEMENT_INFO(kWebMIdTrackTranslate, 3, kTrackTranslateIds), |
- LIST_ELEMENT_INFO(kWebMIdVideo, 3, kVideoIds), |
- LIST_ELEMENT_INFO(kWebMIdAudio, 3, kAudioIds), |
- LIST_ELEMENT_INFO(kWebMIdTrackOperation, 3, kTrackOperationIds), |
- LIST_ELEMENT_INFO(kWebMIdTrackCombinePlanes, 4, kTrackCombinePlanesIds), |
- LIST_ELEMENT_INFO(kWebMIdTrackPlane, 5, kTrackPlaneIds), |
- LIST_ELEMENT_INFO(kWebMIdJoinBlocks, 4, kJoinBlocksIds), |
- LIST_ELEMENT_INFO(kWebMIdContentEncodings, 3, kContentEncodingsIds), |
- LIST_ELEMENT_INFO(kWebMIdContentEncoding, 4, kContentEncodingIds), |
- LIST_ELEMENT_INFO(kWebMIdContentCompression, 5, kContentCompressionIds), |
- LIST_ELEMENT_INFO(kWebMIdContentEncryption, 5, kContentEncryptionIds), |
- LIST_ELEMENT_INFO(kWebMIdContentEncAESSettings, 6, kContentEncAESSettingsIds), |
- LIST_ELEMENT_INFO(kWebMIdCues, 1, kCuesIds), |
- LIST_ELEMENT_INFO(kWebMIdCuePoint, 2, kCuePointIds), |
- LIST_ELEMENT_INFO(kWebMIdCueTrackPositions, 3, kCueTrackPositionsIds), |
- LIST_ELEMENT_INFO(kWebMIdCueReference, 4, kCueReferenceIds), |
- LIST_ELEMENT_INFO(kWebMIdAttachments, 1, kAttachmentsIds), |
- LIST_ELEMENT_INFO(kWebMIdAttachedFile, 2, kAttachedFileIds), |
- LIST_ELEMENT_INFO(kWebMIdChapters, 1, kChaptersIds), |
- LIST_ELEMENT_INFO(kWebMIdEditionEntry, 2, kEditionEntryIds), |
- LIST_ELEMENT_INFO(kWebMIdChapterAtom, 3, kChapterAtomIds), |
- LIST_ELEMENT_INFO(kWebMIdChapterTrack, 4, kChapterTrackIds), |
- LIST_ELEMENT_INFO(kWebMIdChapterDisplay, 4, kChapterDisplayIds), |
- LIST_ELEMENT_INFO(kWebMIdChapProcess, 4, kChapProcessIds), |
- LIST_ELEMENT_INFO(kWebMIdChapProcessCommand, 5, kChapProcessCommandIds), |
- LIST_ELEMENT_INFO(kWebMIdTags, 1, kTagsIds), |
- LIST_ELEMENT_INFO(kWebMIdTag, 2, kTagIds), |
- LIST_ELEMENT_INFO(kWebMIdTargets, 3, kTargetsIds), |
- LIST_ELEMENT_INFO(kWebMIdSimpleTag, 3, kSimpleTagIds), |
+ LIST_ELEMENT_INFO(kWebMIdCluster, 1, kClusterIds), |
+ LIST_ELEMENT_INFO(kWebMIdEBMLHeader, 0, kEBMLHeaderIds), |
+ LIST_ELEMENT_INFO(kWebMIdSegment, 0, kSegmentIds), |
+ LIST_ELEMENT_INFO(kWebMIdSeekHead, 1, kSeekHeadIds), |
+ LIST_ELEMENT_INFO(kWebMIdSeek, 2, kSeekIds), |
+ LIST_ELEMENT_INFO(kWebMIdInfo, 1, kInfoIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapterTranslate, 2, kChapterTranslateIds), |
+ LIST_ELEMENT_INFO(kWebMIdSilentTracks, 2, kSilentTracksIds), |
+ LIST_ELEMENT_INFO(kWebMIdBlockGroup, 2, kBlockGroupIds), |
+ LIST_ELEMENT_INFO(kWebMIdBlockAdditions, 3, kBlockAdditionsIds), |
+ LIST_ELEMENT_INFO(kWebMIdBlockMore, 4, kBlockMoreIds), |
+ LIST_ELEMENT_INFO(kWebMIdSlices, 3, kSlicesIds), |
+ LIST_ELEMENT_INFO(kWebMIdTimeSlice, 4, kTimeSliceIds), |
+ LIST_ELEMENT_INFO(kWebMIdTracks, 1, kTracksIds), |
+ LIST_ELEMENT_INFO(kWebMIdTrackEntry, 2, kTrackEntryIds), |
+ LIST_ELEMENT_INFO(kWebMIdTrackTranslate, 3, kTrackTranslateIds), |
+ LIST_ELEMENT_INFO(kWebMIdVideo, 3, kVideoIds), |
+ LIST_ELEMENT_INFO(kWebMIdAudio, 3, kAudioIds), |
+ LIST_ELEMENT_INFO(kWebMIdTrackOperation, 3, kTrackOperationIds), |
+ LIST_ELEMENT_INFO(kWebMIdTrackCombinePlanes, 4, kTrackCombinePlanesIds), |
+ LIST_ELEMENT_INFO(kWebMIdTrackPlane, 5, kTrackPlaneIds), |
+ LIST_ELEMENT_INFO(kWebMIdJoinBlocks, 4, kJoinBlocksIds), |
+ LIST_ELEMENT_INFO(kWebMIdContentEncodings, 3, kContentEncodingsIds), |
+ LIST_ELEMENT_INFO(kWebMIdContentEncoding, 4, kContentEncodingIds), |
+ LIST_ELEMENT_INFO(kWebMIdContentCompression, 5, kContentCompressionIds), |
+ LIST_ELEMENT_INFO(kWebMIdContentEncryption, 5, kContentEncryptionIds), |
+ LIST_ELEMENT_INFO(kWebMIdContentEncAESSettings, |
+ 6, |
+ kContentEncAESSettingsIds), |
+ LIST_ELEMENT_INFO(kWebMIdCues, 1, kCuesIds), |
+ LIST_ELEMENT_INFO(kWebMIdCuePoint, 2, kCuePointIds), |
+ LIST_ELEMENT_INFO(kWebMIdCueTrackPositions, 3, kCueTrackPositionsIds), |
+ LIST_ELEMENT_INFO(kWebMIdCueReference, 4, kCueReferenceIds), |
+ LIST_ELEMENT_INFO(kWebMIdAttachments, 1, kAttachmentsIds), |
+ LIST_ELEMENT_INFO(kWebMIdAttachedFile, 2, kAttachedFileIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapters, 1, kChaptersIds), |
+ LIST_ELEMENT_INFO(kWebMIdEditionEntry, 2, kEditionEntryIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapterAtom, 3, kChapterAtomIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapterTrack, 4, kChapterTrackIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapterDisplay, 4, kChapterDisplayIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapProcess, 4, kChapProcessIds), |
+ LIST_ELEMENT_INFO(kWebMIdChapProcessCommand, 5, kChapProcessCommandIds), |
+ LIST_ELEMENT_INFO(kWebMIdTags, 1, kTagsIds), |
+ LIST_ELEMENT_INFO(kWebMIdTag, 2, kTagIds), |
+ LIST_ELEMENT_INFO(kWebMIdTargets, 3, kTargetsIds), |
+ LIST_ELEMENT_INFO(kWebMIdSimpleTag, 3, kSimpleTagIds), |
+ LIST_ELEMENT_INFO(kWebMIdColour, 4, kColourIds), |
+ LIST_ELEMENT_INFO(kWebMIdMasteringMetadata, 5, kMasteringMetadataIds), |
}; |
// Parses an element header id or size field. These fields are variable length |