From ea1db4d983f6690b0e7ff25ea50f77e64e50bf20 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Sun, 3 Sep 2023 11:30:51 +0200 Subject: [PATCH 1/2] KaxSemantic: Make TrackOverlay deprecated https://github.com/ietf-wg-cellar/matroska-specification/pull/742 --- matroska/KaxSemantic.h | 2 ++ src/KaxSemantic.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/matroska/KaxSemantic.h b/matroska/KaxSemantic.h index 0ce79320..966c5070 100644 --- a/matroska/KaxSemantic.h +++ b/matroska/KaxSemantic.h @@ -312,6 +312,8 @@ DECLARE_MKX_UINTEGER_DEF(KaxCodecDecodeAll) }; DECLARE_MKX_UINTEGER(KaxTrackOverlay) +public: + libebml::filepos_t RenderData(libebml::IOCallback & output, bool bForceRender, ShouldWrite writeFilter) override; }; DECLARE_MKX_UINTEGER_DEF(KaxCodecDelay) diff --git a/src/KaxSemantic.cpp b/src/KaxSemantic.cpp index a679f3fb..bd384f08 100644 --- a/src/KaxSemantic.cpp +++ b/src/KaxSemantic.cpp @@ -283,7 +283,7 @@ DEFINE_MKX_UNISTRING(KaxCodecSettings, 0x3A9697, 3, KaxTrackEntry, "CodecSetting DEFINE_MKX_STRING(KaxCodecInfoURL, 0x3B4040, 3, KaxTrackEntry, "CodecInfoURL", VERSION_DEPRECATED) DEFINE_MKX_STRING(KaxCodecDownloadURL, 0x26B240, 3, KaxTrackEntry, "CodecDownloadURL", VERSION_DEPRECATED) DEFINE_MKX_UINTEGER_DEF(KaxCodecDecodeAll, 0xAA, 1, KaxTrackEntry, "CodecDecodeAll", VERSION_DEPRECATED, 1) -DEFINE_MKX_UINTEGER(KaxTrackOverlay, 0x6FAB, 2, KaxTrackEntry, "TrackOverlay", MatroskaProfile(false, false, 0)) +DEFINE_MKX_UINTEGER(KaxTrackOverlay, 0x6FAB, 2, KaxTrackEntry, "TrackOverlay", VERSION_DEPRECATED) DEFINE_MKX_UINTEGER_DEF(KaxCodecDelay, 0x56AA, 2, KaxTrackEntry, "CodecDelay", MatroskaProfile(true, false, 4), 0) DEFINE_MKX_UINTEGER_DEF(KaxSeekPreRoll, 0x56BB, 2, KaxTrackEntry, "SeekPreRoll", MatroskaProfile(true, false, 4), 0) @@ -857,6 +857,11 @@ libebml::filepos_t KaxCodecDecodeAll::RenderData(libebml::IOCallback & /* output return 0; } +libebml::filepos_t KaxTrackOverlay::RenderData(libebml::IOCallback & /* output */, bool /* bForceRender */, ShouldWrite /* writeFilter */) { + assert(false); // no you are not allowed to use this element ! + return 0; +} + libebml::filepos_t KaxOldStereoMode::RenderData(libebml::IOCallback & /* output */, bool /* bForceRender */, ShouldWrite /* writeFilter */) { assert(false); // no you are not allowed to use this element ! return 0; From fec722d777f6e1cfed44c5d2b484ea49003636ea Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Sun, 3 Sep 2023 11:32:02 +0200 Subject: [PATCH 2/2] KaxSemantic: update (generated) enum comments So it matches the generated code. The formatting could be improved. The references could be replaced. But those changes should go in the generator first. --- matroska/KaxSemantic.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/matroska/KaxSemantic.h b/matroska/KaxSemantic.h index 966c5070..cb301cf4 100644 --- a/matroska/KaxSemantic.h +++ b/matroska/KaxSemantic.h @@ -972,7 +972,7 @@ typedef enum { /** *The Matrix Coefficients of the video used to derive luma and chroma values from red, green, and blue color primaries. -For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ISO/IEC 23001-8:2016 or ITU-T H.273. +For clarity, the value and meanings for MatrixCoefficients are adopted from Table 4 of ITU-H.273. */ typedef enum { MATROSKA_VIDEO_MATRIXCOEFFICIENTS_IDENTITY = 0, @@ -1022,7 +1022,7 @@ typedef enum { /** *The transfer characteristics of the video. For clarity, -the value and meanings for TransferCharacteristics are adopted from Table 3 of ISO/IEC 23091-4 or ITU-T H.273. +the value and meanings for TransferCharacteristics are adopted from Table 3 of ITU-H.273. */ typedef enum { MATROSKA_TRANSFER_RESERVED = 0, @@ -1048,7 +1048,7 @@ typedef enum { /** *The colour primaries of the video. For clarity, -the value and meanings for Primaries are adopted from Table 2 of ISO/IEC 23091-4 or ITU-T H.273. +the value and meanings for Primaries are adopted from Table 2 of ITU-H.273. */ typedef enum { MATROSKA_VIDEO_PRIMARIES_RESERVED = 0, @@ -1111,7 +1111,7 @@ Values (big-endian) can be OR'ed. */ typedef enum { MATROSKA_CONTENTENCODINGSCOPE_BLOCK = 1, // All frame contents, excluding lacing data. - MATROSKA_CONTENTENCODINGSCOPE_PRIVATE = 2, // The track's private data. + MATROSKA_CONTENTENCODINGSCOPE_PRIVATE = 2, // The track's `CodecPrivate` data. MATROSKA_CONTENTENCODINGSCOPE_NEXT = 4, // The next ContentEncoding (next `ContentEncodingOrder`. Either the data inside `ContentCompression` and/or `ContentEncryption`). } MatroskaContentEncodingScope; @@ -1194,7 +1194,7 @@ typedef enum { MATROSKA_TARGET_TYPE_ALBUM = 50, // The most common grouping level of music and video (equals to an episode for TV series). MATROSKA_TARGET_TYPE_PART = 40, // When an album or episode has different logical parts. MATROSKA_TARGET_TYPE_TRACK = 30, // The common parts of an album or movie. - MATROSKA_TARGET_TYPE_SUBTRACK = 20, // Corresponds to parts of a track for audio (like a movement). + MATROSKA_TARGET_TYPE_SUBTRACK = 20, // Corresponds to parts of a track for audio like a movement, or a scene in a movie. MATROSKA_TARGET_TYPE_SHOT = 10, // The lowest hierarchy found in music or movies. } MatroskaTargetTypeValue;