From 81ceb7b6a57422e5d05593d49b14d99479f266a0 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Tue, 8 Nov 2016 02:24:49 +0100 Subject: demux_mkv: parse colorimetry metadata Matroska actually has lots of colorimetry metadata that video tracks can use, including mastering metadata (HDR signal peak) etc. This commit adds the EBML definitions and parses the most basic fields. Note that nothing uses these fields yet, this commit is just adding the necessary parsing and infrastructure. --- TOOLS/lib/Parse/Matroska/Definitions.pm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'TOOLS') diff --git a/TOOLS/lib/Parse/Matroska/Definitions.pm b/TOOLS/lib/Parse/Matroska/Definitions.pm index a73c7b1fc6..5a5adcd6de 100644 --- a/TOOLS/lib/Parse/Matroska/Definitions.pm +++ b/TOOLS/lib/Parse/Matroska/Definitions.pm @@ -269,6 +269,33 @@ sub define_matroska { elem('FrameRate', '2383e3', 'float'), elem('ColourSpace', '2eb524', 'binary'), elem('StereoMode', '53b8', 'uint'), + elem('Colour', '55B0', { + elem('MatrixCoefficients', '55B1', 'uint'), + elem('BitsPerChannel', '55B2', 'uint'), + elem('ChromaSubsamplingHorz', '55B3', 'uint'), + elem('ChromaSubsamplingVert', '55B4', 'uint'), + elem('CbSubsamplingHorz', '55B5', 'uint'), + elem('CbSubsamplingVert', '55B6', 'uint'), + elem('ChromaSitingHorz', '55B7', 'uint'), + elem('ChromaSitingVert', '55B8', 'uint'), + elem('Range', '55B9', 'uint'), + elem('TransferCharacteristics', '55BA', 'uint'), + elem('Primaries', '55BB', 'uint'), + elem('MaxCLL', '55BC', 'uint'), + elem('MaxFALL', '55BD', 'uint'), + elem('MasteringMetadata', '55D0', { + elem('PrimaryRChromaticityX', '55D1', 'float'), + elem('PrimaryRChromaticityY', '55D2', 'float'), + elem('PrimaryGChromaticityX', '55D3', 'float'), + elem('PrimaryGChromaticityY', '55D4', 'float'), + elem('PrimaryBChromaticityX', '55D5', 'float'), + elem('PrimaryBChromaticityY', '55D6', 'float'), + elem('WhitePointChromaticityX', '55D7', 'float'), + elem('WhitePointChromaticityY', '55D8', 'float'), + elem('LuminanceMax', '55D9', 'float'), + elem('LuminanceMin', '55DA', 'float'), + }), + }), }), elem('Audio', 'e1', { elem('SamplingFrequency', 'b5', 'float'), -- cgit v1.2.3