|
24 | 24 | #include "MediaInfo/Multiple/File_Mxf.h"
|
25 | 25 | #include "MediaInfo/Multiple/File_Mxf_Automated.h"
|
26 | 26 | #include "MediaInfo/Video/File_DolbyVisionMetadata.h"
|
| 27 | +#include "MediaInfo/Video/File_HdrVividMetadata.h" |
27 | 28 | #include "MediaInfo/Audio/File_DolbyAudioMetadata.h"
|
28 | 29 | #if defined(MEDIAINFO_DVDIF_YES)
|
29 | 30 | #include "MediaInfo/Multiple/File_DvDif.h"
|
@@ -2653,7 +2654,7 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
|
2653 | 2654 | }
|
2654 | 2655 | Finish(*Parser);
|
2655 | 2656 | StreamKind_Last=Stream_Max;
|
2656 |
| - if ((*Parser)->Count_Get(Stream_Video) && (*Parser)->Get(Stream_General, 0, General_Format)!=__T("Dolby Vision Metadata")) |
| 2657 | + if ((*Parser)->Count_Get(Stream_Video) && (*Parser)->Get(Stream_General, 0, General_Format)!=__T("Dolby Vision Metadata") && (*Parser)->Get(Stream_General, 0, General_Format) != __T("HDR Vivid Metadata")) |
2657 | 2658 | {
|
2658 | 2659 | Stream_Prepare(Stream_Video);
|
2659 | 2660 | if (IsSub)
|
@@ -3100,7 +3101,8 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
|
3100 | 3101 | {
|
3101 | 3102 | // TODO: avoid this hack
|
3102 | 3103 | const auto& Format = (*Parser)->Retrieve_Const(Stream_General, 0, General_Format);
|
3103 |
| - if (Format == __T("Dolby Vision Metadata")) |
| 3104 | + if (Format == __T("Dolby Vision Metadata") |
| 3105 | + || Format == __T("HDR Vivid Metadata")) |
3104 | 3106 | {
|
3105 | 3107 | ToMergeLater.push_back(*Parser);
|
3106 | 3108 | *Parser = nullptr;
|
@@ -6776,6 +6778,7 @@ void File_Mxf::Data_Parse()
|
6776 | 6778 | GROUP(PHDRMetadataTrackSubDescriptor)
|
6777 | 6779 | GROUP(OmneonVideoNetworksDescriptiveMetadataLinks)
|
6778 | 6780 | GROUP(OmneonVideoNetworksDescriptiveMetadataData)
|
| 6781 | + GROUP(HdrVividMetadataTrackSubDescriptor) |
6779 | 6782 | GROUP(FFV1PictureSubDescriptor)
|
6780 | 6783 | GROUP(MGASoundEssenceDescriptor)
|
6781 | 6784 | GROUP(MGAAudioMetadataSubDescriptor)
|
@@ -8051,6 +8054,9 @@ void File_Mxf::MXFGenericStreamDataElementKey_09_01()
|
8051 | 8054 | #if 1
|
8052 | 8055 | Parsers.push_back(new File_DolbyVisionMetadata);
|
8053 | 8056 | #endif
|
| 8057 | + #if 1 |
| 8058 | + Parsers.push_back(new File_HdrVividMetadata); |
| 8059 | + #endif |
8054 | 8060 | #if defined(MEDIAINFO_ADM_YES)
|
8055 | 8061 | Parsers.push_back(new File_Adm);
|
8056 | 8062 | #endif
|
@@ -9152,6 +9158,44 @@ void File_Mxf::OmneonVideoNetworksDescriptiveMetadataItems()
|
9152 | 9158 | }
|
9153 | 9159 | }
|
9154 | 9160 |
|
| 9161 | +//--------------------------------------------------------------------------- |
| 9162 | +void File_Mxf::HdrVividMetadataTrackSubDescriptor() |
| 9163 | +{ |
| 9164 | + ELEMENT_BEGIN() |
| 9165 | + ELEMENT_MIDDLE() |
| 9166 | + ELEM____UUID_(HdrVividDataDefinition) |
| 9167 | + ELEM____UUID_(HdrVividSourceTrackID) |
| 9168 | + ELEM____UUID_(HdrVividSimplePayloadSID) |
| 9169 | + ELEMENT_END() |
| 9170 | + GenerationInterchangeObject(); |
| 9171 | +} |
| 9172 | + |
| 9173 | +//--------------------------------------------------------------------------- |
| 9174 | +void File_Mxf::HdrVividDataDefinition() |
| 9175 | +{ |
| 9176 | + Info_UL(Data, "Data", nullptr); Element_Info1(Ztring().From_UUID(Data)); |
| 9177 | +} |
| 9178 | + |
| 9179 | +//--------------------------------------------------------------------------- |
| 9180 | +void File_Mxf::HdrVividSourceTrackID() |
| 9181 | +{ |
| 9182 | + //Parsing |
| 9183 | + Info_B4(Data, "Data"); Element_Info1(Data); |
| 9184 | +} |
| 9185 | + |
| 9186 | +//--------------------------------------------------------------------------- |
| 9187 | +void File_Mxf::HdrVividSimplePayloadSID() |
| 9188 | +{ |
| 9189 | + //Parsing |
| 9190 | + Info_B4(Data, "Data"); Element_Info1(Data); |
| 9191 | +} |
| 9192 | + |
| 9193 | +//--------------------------------------------------------------------------- |
| 9194 | +void File_Mxf::HdrVividMetadataItem() |
| 9195 | +{ |
| 9196 | + Skip_XX(Element_Size, "HDR Vivid data"); |
| 9197 | +} |
| 9198 | + |
9155 | 9199 | //---------------------------------------------------------------------------
|
9156 | 9200 | void File_Mxf::TimelineTrack()
|
9157 | 9201 | {
|
@@ -14602,6 +14646,7 @@ void File_Mxf::ChooseParser__FromEssence(const essences::iterator &Essence, cons
|
14602 | 14646 | case Essences::FrameWrappedISXDData: ChooseParser_Isxd(Essence, Descriptor); break;
|
14603 | 14647 | case Essences::FrameWrappedISXDData2: ChooseParser_Isxd(Essence, Descriptor); break;
|
14604 | 14648 | case Essences::PHDRImageMetadataItem: ChooseParser_Phdr(Essence, Descriptor); break;
|
| 14649 | + case Essences::HdrVividMetadataItem: ChooseParser_HdrVivid(Essence, Descriptor); break; |
14605 | 14650 | }
|
14606 | 14651 | }
|
14607 | 14652 |
|
@@ -15271,6 +15316,25 @@ void File_Mxf::ChooseParser_Phdr(const essences::iterator& Essence, const descri
|
15271 | 15316 | ChooseParser_DolbyVisionFrameData(Essence, Descriptor);
|
15272 | 15317 | }
|
15273 | 15318 |
|
| 15319 | +//--------------------------------------------------------------------------- |
| 15320 | +void File_Mxf::ChooseParser_HdrVivid(const essences::iterator& Essence, const descriptors::iterator& Descriptor) |
| 15321 | +{ |
| 15322 | + Essence->second.StreamKind = Stream_Other; |
| 15323 | + Essence->second.Infos["MuxingMode_MoreInfo"] = "Contains additional metadata for other tracks"; |
| 15324 | + |
| 15325 | + //Filling |
| 15326 | + #if 1 // TODO |
| 15327 | + File_HdrVividMetadata* Parser=new File_HdrVividMetadata; |
| 15328 | + #else |
| 15329 | + //Filling |
| 15330 | + File__Analyze* Parser=new File_Unknown(); |
| 15331 | + Open_Buffer_Init(Parser); |
| 15332 | + Parser->Stream_Prepare(Stream_Other); |
| 15333 | + Parser->Fill(Stream_Other, 0, Other_Format, "HDR Vivid Metadata"); |
| 15334 | + #endif |
| 15335 | + Essence->second.Parsers.push_back(Parser); |
| 15336 | +} |
| 15337 | + |
15274 | 15338 | //---------------------------------------------------------------------------
|
15275 | 15339 | void File_Mxf::ChooseParser_DolbyVisionFrameData(const essences::iterator &Essence, const descriptors::iterator &Descriptor)
|
15276 | 15340 | {
|
|
0 commit comments