diff --git a/Source/MediaInfo/Multiple/File_Mpeg4.h b/Source/MediaInfo/Multiple/File_Mpeg4.h index 9c73c4369..51e60ed35 100644 --- a/Source/MediaInfo/Multiple/File_Mpeg4.h +++ b/Source/MediaInfo/Multiple/File_Mpeg4.h @@ -217,7 +217,7 @@ private : void moov_trak_mdia_minf_stbl_stsd_xxxxSound(); void moov_trak_mdia_minf_stbl_stsd_xxxxText(); void moov_trak_mdia_minf_stbl_stsd_xxxxVideo(); - void moov_trak_mdia_minf_stbl_stsd_xxxxOthers(); + void moov_trak_mdia_minf_stbl_stsd_xxxxOthers(const string& CodecIDAddition); void moov_trak_mdia_minf_stbl_stsd_xxxx_alac(); void moov_trak_mdia_minf_stbl_stsd_xxxx_AALP(); void moov_trak_mdia_minf_stbl_stsd_xxxx_ACLR(); diff --git a/Source/MediaInfo/Multiple/File_Mpeg4_Elements.cpp b/Source/MediaInfo/Multiple/File_Mpeg4_Elements.cpp index 3734d0e18..3170369f8 100644 --- a/Source/MediaInfo/Multiple/File_Mpeg4_Elements.cpp +++ b/Source/MediaInfo/Multiple/File_Mpeg4_Elements.cpp @@ -789,6 +789,7 @@ namespace Elements const int64u moov_trak_mdia_minf_stbl_stsd_mebx_keys=0x6B657973; const int64u moov_trak_mdia_minf_stbl_stsd_mebx_keys_PHDR=0x50484452; const int64u moov_trak_mdia_minf_stbl_stsd_mebx_keys_PHDR_keyd=0x6B657964; + const int64u moov_trak_mdia_minf_stbl_stsd_mett=0x6D657474; const int64u moov_trak_mdia_minf_stbl_stsd_mp4a=0x6D703461; const int64u moov_trak_mdia_minf_stbl_stsd_mp4s=0x6D703473; const int64u moov_trak_mdia_minf_stbl_stsd_mp4v=0x6D703476; @@ -5724,8 +5725,44 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_tx3g_ftab() void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx() { //Parsing - Skip_B6( "Reserved"); - Skip_B2( "Data reference index"); + string CodecIDAddition; + if (StreamKind_Last==Stream_Max) + { + switch (Element_Code) + { + case Elements::moov_trak_mdia_minf_stbl_stsd_mett: + { + string mime_format; + Element_Name("Metadata"); + Skip_String(SizeUpTo0(), "content_encoding"); + Skip_B1( "zero"); + Get_String(SizeUpTo0(), CodecIDAddition, "mime_format"); + Skip_B1( "zero"); + break; + } + default: + { + auto NotAscii=false; + if (Element_Size>=6) + { + for (auto Current=Buffer+Buffer_Offset, End=Current+6; Current