Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2010-10-22 00:39:34 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-10-22 00:39:34 +0400
commit38f8034d78b15098f5ea72eb62b78c3075e84c48 (patch)
tree5eb66c6795c37fc8d63947103ba601cac8affa16 /src/thirdparty/MediaInfo
parentfc45b0a2de232cd0f8a512241b8464d8afddc4b9 (diff)
updated MediaInfoLib and little CMS
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2690 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/thirdparty/MediaInfo')
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Ac3.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Adts.cpp221
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Adts.h11
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Dts.cpp3
-rw-r--r--src/thirdparty/MediaInfo/File_Other.cpp10
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze.cpp90
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze.h8
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp228
-rw-r--r--src/thirdparty/MediaInfo/File__MultipleParsing.cpp2
-rw-r--r--src/thirdparty/MediaInfo/Image/File_Jpeg.cpp45
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config.cpp110
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config.h27
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp126
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp24
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h3
-rw-r--r--src/thirdparty/MediaInfo/MediaInfo_Inform.cpp2
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Cdxa.cpp2
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp37
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp4
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h3
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Descriptors.cpp4
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp71
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp21
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp43
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegTs.h1
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp42
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Avc.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Mpegv.cpp69
28 files changed, 811 insertions, 402 deletions
diff --git a/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp b/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp
index df38b02c6..920ed9c32 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Ac3.cpp
@@ -504,6 +504,9 @@ File_Ac3::File_Ac3()
:File__Analyze()
{
//Configuration
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ #endif //MEDIAINFO_TRACE
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=32*1024;
PTS_DTS_Needed=true;
diff --git a/src/thirdparty/MediaInfo/Audio/File_Adts.cpp b/src/thirdparty/MediaInfo/Audio/File_Adts.cpp
index 1cfa2c3d6..f3b9dda46 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Adts.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Adts.cpp
@@ -39,6 +39,18 @@ namespace MediaInfoLib
//***************************************************************************
// Infos
//***************************************************************************
+//---------------------------------------------------------------------------
+const char* ADTS_SyntacticElements[]=
+{
+ "ID_SCE",
+ "ID_CPE",
+ "ID_CCE",
+ "ID_LFE",
+ "ID_DSE",
+ "ID_PCE",
+ "ID_FIL",
+ "ID_END"
+};
//---------------------------------------------------------------------------
const int32u ADTS_SamplingRate[]=
@@ -235,31 +247,24 @@ bool File_Adts::Synched_Test()
//***************************************************************************
//---------------------------------------------------------------------------
+bool File_Adts::Header_Begin()
+{
+ //There is no real header in ADTS, retrieving only the frame length
+ if (Buffer_Offset+8>Buffer_Size) //size of adts_fixed_header + adts_variable_header
+ return false;
+
+ return true;
+}
+
+//---------------------------------------------------------------------------
void File_Adts::Header_Parse()
{
- //Parsing
- bool protection_absent;
- BS_Begin();
- Skip_BS(12, "syncword");
- Get_SB ( id, "id"); Param_Info(ADTS_ID[id]);
- Skip_BS( 2, "layer");
- Get_SB ( protection_absent, "protection_absent");
- Get_S1 ( 2, profile_ObjectType, "profile_ObjectType"); Param_Info(ADTS_Profile[profile_ObjectType]);
- Get_S1 ( 4, sampling_frequency_index, "sampling_frequency_index"); Param_Info(ADTS_SamplingRate[sampling_frequency_index], " Hz");
- Skip_SB( "private");
- Get_S1 ( 3, channel_configuration, "channel_configuration");
- Skip_SB( "original");
- Skip_SB( "home");
- Skip_SB( "copyright_id");
- Skip_SB( "copyright_id_start");
- Get_S2 (13, aac_frame_length, "aac_frame_length");
- Get_S2 (11, adts_buffer_fullness, "adts_buffer_fullness"); Param_Info(adts_buffer_fullness==0x7FF?"VBR":"CBR");
- Skip_BS( 2, "num_raw_data_blocks");
- BS_End();
+ //There is no "header" in ADTS, retrieving only the frame length
+ aac_frame_length=(BigEndian2int24u(Buffer+Buffer_Offset+3)>>5)&0x1FFF; //13 bits
//Filling
Header_Fill_Size(aac_frame_length);
- Header_Fill_Code(0, "Frame");
+ Header_Fill_Code(0, "adts_frame");
}
//---------------------------------------------------------------------------
@@ -274,7 +279,10 @@ void File_Adts::Data_Parse()
Element_Info(Ztring::ToZtring(Frame_Count));
//Parsing
- Skip_XX(Element_Size, "Data");
+ BS_Begin();
+ adts_frame();
+ BS_End();
+ Skip_XX(Element_Size-Element_Offset, "Data not yet parsed");
//Filling
aac_frame_lengths.push_back(aac_frame_length);
@@ -290,6 +298,177 @@ void File_Adts::Data_Parse()
}
}
+//***************************************************************************
+// Elements
+//***************************************************************************
+
+//---------------------------------------------------------------------------
+void File_Adts::adts_frame()
+{
+ //Parsing
+ adts_fixed_header();
+ adts_variable_header();
+ if (num_raw_data_blocks==0)
+ {
+ if (!protection_absent)
+ {
+ Element_Begin("adts_error_check");
+ Skip_S2(16, "crc_check");
+ Element_End();
+ }
+ raw_data_block();
+ }
+ else
+ {
+ Element_Begin("adts_header_error_check");
+ if (!protection_absent)
+ for (int i=1; i<=num_raw_data_blocks; i++)
+ Skip_S2(16, "raw_data_block_position(i)");
+ Skip_S2(16, "crc_check");
+ Element_End();
+
+ for(int i=0; i<=num_raw_data_blocks; i++)
+ {
+ raw_data_block();
+ if (!protection_absent)
+ {
+ Element_Begin("adts_raw_data_block_error_check");
+ Skip_BS(16, "crc_check");
+ Element_End();
+ }
+ }
+ }
+}
+
+//---------------------------------------------------------------------------
+void File_Adts::adts_fixed_header()
+{
+ //Parsing
+ Element_Begin("adts_fixed_header");
+ Skip_BS(12, "syncword");
+ Get_SB ( id, "id"); Param_Info(ADTS_ID[id]);
+ Skip_BS( 2, "layer");
+ Get_SB ( protection_absent, "protection_absent");
+ Get_S1 ( 2, profile_ObjectType, "profile_ObjectType"); Param_Info(ADTS_Profile[profile_ObjectType]);
+ Get_S1 ( 4, sampling_frequency_index, "sampling_frequency_index"); Param_Info(ADTS_SamplingRate[sampling_frequency_index], " Hz");
+ Skip_SB( "private");
+ Get_S1 ( 3, channel_configuration, "channel_configuration");
+ Skip_SB( "original");
+ Skip_SB( "home");
+ Element_End();
+}
+
+//---------------------------------------------------------------------------
+void File_Adts::adts_variable_header()
+{
+ //Parsing
+ Element_Begin("adts_variable_header");
+ Skip_SB( "copyright_id");
+ Skip_SB( "copyright_id_start");
+ Get_S2 (13, aac_frame_length, "aac_frame_length");
+ Get_S2 (11, adts_buffer_fullness, "adts_buffer_fullness"); Param_Info(adts_buffer_fullness==0x7FF?"VBR":"CBR");
+ Get_S1 ( 2, num_raw_data_blocks, "num_raw_data_blocks");
+ Element_End();
+}
+
+//---------------------------------------------------------------------------
+void File_Adts::raw_data_block()
+{
+ Element_Begin("raw_data_block");
+ int8u id;
+ do
+ {
+ bool NotImplemented=false; //Remove this when all is implemented
+ Element_Begin();
+ Get_S1 (3, id, "id_syn_ele");
+ switch (id)
+ {
+ /*
+ case 0x00://ID_SCE
+ //~ single_channel_element();
+ Element_Begin("single_channel_element");
+ Skip_S1 ( 4,"element_instance_tag");
+ //~ individual_channel_stream(0,0);
+ Element_End();
+ NotImplemented=true;
+ break;
+ case 0x01://ID_CPE: channel_pair_element();
+ NotImplemented=true;
+ break;
+ case 0x02://ID_CCE: coupling_channel_element();
+ NotImplemented=true;
+ break;
+ case 0x03://ID_LFE: lfe_channel_element();
+ NotImplemented=true;
+ break;
+ case 0x04://ID_DSE: data_stream_element();
+ NotImplemented=true;
+ break;
+ case 0x05 : //ID_PCE
+ program_config_element();
+ break;
+ */
+ case 0x06 : //ID_FIL
+ fill_element();
+ break;
+ case 0x07 : //ID_END
+ Element_Name("ID_END");
+ break;
+ default :
+ Element_Name(Ztring::ToZtring(id));
+ NotImplemented=true;
+ }
+ Element_End();
+
+ if (NotImplemented) //Remove this when all is implemented
+ break; //Remove this when all is implemented
+ }
+ while(id!=0x07); //ID_END
+ BS_End();BS_Begin(); //Byte synch
+ Element_End();
+}
+
+//---------------------------------------------------------------------------
+void File_Adts::channel_pair_element()
+{
+ //~ element_instance_tag;
+
+ //~ common_window;
+ //~ if (common_window) {
+ //~ ics_info();
+ //~ ms_mask_present;
+ //~ if ( ms_mask_present == 1 ) {
+ //~ for (g = 0; g < num_window_groups; g++) {
+ //~ for (sfb = 0; sfb < max_sfb; sfb++) {
+ //~ ms_used[g][sfb];
+ //~ }
+ //~ }
+ //~ }
+ //~ }
+ //~ individual_channel_stream(common_window,0);
+ //~ individual_channel_stream(common_window,0);
+
+}
+
+//---------------------------------------------------------------------------
+void File_Adts::fill_element()
+{
+ Element_Name("ID_FIL - fill_element");
+
+ //Parsing
+ int16u cnt;
+ int8u count;
+ Get_S1 (4, count, "count");
+ cnt=count;
+ if (count==15)
+ {
+ int8u esc_count;
+ Get_S1 (8, esc_count, "esc_count");
+ cnt+=esc_count;
+ }
+ Skip_BS(cnt, "extension_payload (not implemented)");
+}
+
} //NameSpace
#endif //MEDIAINFO_ADTS_YES
diff --git a/src/thirdparty/MediaInfo/Audio/File_Adts.h b/src/thirdparty/MediaInfo/Audio/File_Adts.h
index 987495f46..05f0982a3 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Adts.h
+++ b/src/thirdparty/MediaInfo/Audio/File_Adts.h
@@ -54,9 +54,18 @@ private :
bool Synched_Test();
//Buffer - Per element
+ bool Header_Begin();
void Header_Parse();
void Data_Parse();
+ //Elements
+ void adts_frame();
+ void adts_fixed_header();
+ void adts_variable_header();
+ void raw_data_block();
+ void channel_pair_element();
+ void fill_element();
+
//Temp
std::vector<int16u> aac_frame_lengths;
int16u adts_buffer_fullness;
@@ -65,6 +74,8 @@ private :
int8u sampling_frequency_index;
int8u channel_configuration;
bool id;
+ int8u num_raw_data_blocks;
+ bool protection_absent;
};
} //NameSpace
diff --git a/src/thirdparty/MediaInfo/Audio/File_Dts.cpp b/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
index be6e1111f..649b0b5a3 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
@@ -331,6 +331,9 @@ File_Dts::File_Dts()
ParserIDs[0]=MediaInfo_Parser_Dts;
StreamIDs_Width[0]=0;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ #endif //MEDIAINFO_TRACE
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=32*1024;
PTS_DTS_Needed=true;
diff --git a/src/thirdparty/MediaInfo/File_Other.cpp b/src/thirdparty/MediaInfo/File_Other.cpp
index fe8e65b64..2a304692f 100644
--- a/src/thirdparty/MediaInfo/File_Other.cpp
+++ b/src/thirdparty/MediaInfo/File_Other.cpp
@@ -133,6 +133,16 @@ void File_Other::Read_Buffer_Continue()
return;
}
else if (CC4(Buffer)==CC4("RIFF") && CC4(Buffer+8)==CC4("AMV ")) {Format=_T("AMV");}
+ else if (CC4(Buffer)==CC4("RIFF") && CC4(Buffer+8)==CC4("WEBP"))
+ {
+ Accept("WEBP");
+
+ Stream_Prepare(Stream_Image);
+ Fill(Stream_Image, 0, Image_Format, "WebP");
+
+ Finish("WEBP");
+ return;
+ }
else if (CC4(Buffer)==0x414D5697) {Format=_T("MTV");}
else if (CC6(Buffer)==CC6("Z\0W\0F\0"))
{
diff --git a/src/thirdparty/MediaInfo/File__Analyze.cpp b/src/thirdparty/MediaInfo/File__Analyze.cpp
index 774ffadd4..ba11b35cd 100644
--- a/src/thirdparty/MediaInfo/File__Analyze.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze.cpp
@@ -46,11 +46,13 @@ extern MediaInfo_Config Config;
File__Analyze::File__Analyze ()
:File__Base()
{
- //Details
+ //Info for speed optimization
#if MEDIAINFO_TRACE
- Config_DetailsLevel=MediaInfoLib::Config.DetailsLevel_Get();
- Config_DetailsFormat=MediaInfoLib::Config.DetailsFormat_Get();
- Details_DoNotSave=false;
+ Config_Trace_Level=MediaInfoLib::Config.Trace_Level_Get();
+ Config_Trace_Levels=MediaInfoLib::Config.Trace_Levels_Get();
+ Config_Trace_Format=MediaInfoLib::Config.Trace_Format_Get();
+ Trace_DoNotSave=false;
+ Trace_Levels.set();
#endif //MEDIAINFO_TRACE
Config_Demux=MediaInfoLib::Config.Demux_Get();
Config_ParseSpeed=MediaInfoLib::Config.ParseSpeed_Get();
@@ -123,7 +125,7 @@ File__Analyze::File__Analyze ()
Element[0].UnTrusted=false;
Element[0].IsComplete=false;
#if MEDIAINFO_TRACE
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0)
{
//ToShow part
Element[0].ToShow.Name.clear();
@@ -424,7 +426,7 @@ void File__Analyze::Open_Buffer_Continue (File__Analyze* Sub, const int8u* ToAdd
#if MEDIAINFO_TRACE
//Details handling
- if (!Sub->Element[0].ToShow.Details.empty() && !Details_DoNotSave)
+ if (!Sub->Element[0].ToShow.Details.empty() && !Trace_DoNotSave)
{
//Line separator
if (!Element[Element_Level].ToShow.Details.empty())
@@ -874,7 +876,7 @@ bool File__Analyze::Header_Manage()
//ToShow
#if MEDIAINFO_TRACE
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
if (Element[Element_Level-1].ToShow.Name.empty())
Element[Element_Level-1].ToShow.Name=_T("Unknown");
@@ -922,7 +924,7 @@ void File__Analyze::Header_Fill_Code(int64u Code, const Ztring &Name)
Element[Element_Level-1].Code=Code;
//ToShow
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0)
{
Element_Level--;
Element_Name(Name);
@@ -961,7 +963,7 @@ void File__Analyze::Header_Fill_Size(int64u Size)
//ToShow
#if MEDIAINFO_TRACE
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
Element[Element_Level-1].ToShow.Pos=File_Offset+Buffer_Offset;
Element[Element_Level-1].ToShow.Size=Element[Element_Level-1].Next-(File_Offset+Buffer_Offset);
@@ -1179,7 +1181,7 @@ void File__Analyze::Data_GoToFromEnd (int64u GoToFromEnd, const char* ParserName
//---------------------------------------------------------------------------
#if MEDIAINFO_TRACE
-Ztring Log_Offset (int64u OffsetToShow, MediaInfo_Config::detailsFormat Config_DetailsFormat)
+Ztring Log_Offset (int64u OffsetToShow, MediaInfo_Config::trace_Format Config_Trace_Format)
{
if (OffsetToShow==(int64u)-1)
return _T(" ");
@@ -1189,10 +1191,10 @@ Ztring Log_Offset (int64u OffsetToShow, MediaInfo_Config::detailsFormat Config_D
Pos2.resize(8-Pos1.size(), _T('0'));
Pos2+=Pos1;
Pos2.MakeUpperCase();
- switch (Config_DetailsFormat)
+ switch (Config_Trace_Format)
{
- case MediaInfo_Config::DetailsFormat_Tree : Pos2+=_T(' '); break;
- case MediaInfo_Config::DetailsFormat_CSV : Pos2+=_T(','); break;
+ case MediaInfo_Config::Trace_Format_Tree : Pos2+=_T(' '); break;
+ case MediaInfo_Config::Trace_Format_CSV : Pos2+=_T(','); break;
default : ;
}
return Pos2;
@@ -1216,7 +1218,7 @@ void File__Analyze::Element_Begin()
//ToShow
#if MEDIAINFO_TRACE
Element[Element_Level].ToShow.Pos=File_Offset+Buffer_Offset+Element_Offset+BS->OffsetBeforeLastCall_Get(); //TODO: change this, used in Element_End()
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
Element[Element_Level].ToShow.Size=Element[Element_Level].Next-(File_Offset+Buffer_Offset+Element_Offset+BS->OffsetBeforeLastCall_Get());
Element[Element_Level].ToShow.Header_Size=0;
@@ -1251,7 +1253,7 @@ void File__Analyze::Element_Begin(const Ztring &Name, int64u Size)
//ToShow
Element[Element_Level].ToShow.Pos=File_Offset+Buffer_Offset+Element_Offset+BS->OffsetBeforeLastCall_Get(); //TODO: change this, used in Element_End()
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
Element[Element_Level].ToShow.Size=Element[Element_Level].Next-(File_Offset+Buffer_Offset+Element_Offset+BS->OffsetBeforeLastCall_Get());
Element[Element_Level].ToShow.Header_Size=0;
@@ -1288,7 +1290,7 @@ void File__Analyze::Element_Begin(int64u Size)
void File__Analyze::Element_Name(const Ztring &Name)
{
//ToShow
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
if (!Name.empty())
{
@@ -1311,11 +1313,11 @@ void File__Analyze::Element_Name(const Ztring &Name)
void File__Analyze::Element_Info(const Ztring &Parameter)
{
//Coherancy
- if (Config_DetailsLevel==0 || Element[Element_Level].ToShow.Details.size()>64*1024*1024)
+ if (Config_Trace_Level==0 || !(Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()) || Element[Element_Level].ToShow.Details.size()>64*1024*1024)
return;
//Needed?
- if (Config_DetailsLevel<=0.7)
+ if (Config_Trace_Level<=0.7)
return;
//ToShow
@@ -1323,10 +1325,10 @@ void File__Analyze::Element_Info(const Ztring &Parameter)
Parameter2.FindAndReplace(_T("\r\n"), _T(" / "));
Parameter2.FindAndReplace(_T("\r"), _T(" / "));
Parameter2.FindAndReplace(_T("\n"), _T(" / "));
- switch (Config_DetailsFormat)
+ switch (Config_Trace_Format)
{
- case MediaInfo_Config::DetailsFormat_Tree : Element[Element_Level].ToShow.Info+=_T(" - "); break;
- case MediaInfo_Config::DetailsFormat_CSV : Element[Element_Level].ToShow.Info+=_T(','); break;
+ case MediaInfo_Config::Trace_Format_Tree : Element[Element_Level].ToShow.Info+=_T(" - "); break;
+ case MediaInfo_Config::Trace_Format_CSV : Element[Element_Level].ToShow.Info+=_T(','); break;
default : ;
}
Element[Element_Level].ToShow.Info+=Parameter2;
@@ -1346,7 +1348,7 @@ void File__Analyze::Element_End(const Ztring &Name, int64u Size)
}
//ToShow
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
Element[Element_Level].ToShow.Size=Element[Element_Level].Next-Element[Element_Level].ToShow.Pos;
if (!Name.empty())
@@ -1410,9 +1412,9 @@ void File__Analyze::Element_End_Common_Flush()
void File__Analyze::Element_End_Common_Flush_Details()
{
Element[Element_Level].ToShow.NoShow=Element[Element_Level+1].ToShow.NoShow;
- if (Config_DetailsLevel!=0)
+ if (Config_Trace_Level!=0 && (Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
{
- if (!Element[Element_Level+1].WaitForMoreData && (Element[Element_Level+1].IsComplete || !Element[Element_Level+1].UnTrusted) && !Element[Element_Level+1].ToShow.NoShow)// && Config_DetailsLevel!=0 && Element[Element_Level].ToShow.Details.size()<=64*1024*1024)
+ if (!Element[Element_Level+1].WaitForMoreData && (Element[Element_Level+1].IsComplete || !Element[Element_Level+1].UnTrusted) && !Element[Element_Level+1].ToShow.NoShow)// && Config_Trace_Level!=0 && Element[Element_Level].ToShow.Details.size()<=64*1024*1024)
{
//Element
if (!Element[Element_Level+1].ToShow.Name.empty())
@@ -1443,16 +1445,16 @@ Ztring File__Analyze::Element_End_Common_Flush_Build()
Ztring ToReturn;
//Show Offset
- if (Config_DetailsLevel>0.7)
+ if (Config_Trace_Level>0.7)
{
- ToReturn+=Log_Offset(Element[Element_Level+1].ToShow.Pos, Config_DetailsFormat);
+ ToReturn+=Log_Offset(Element[Element_Level+1].ToShow.Pos, Config_Trace_Format);
}
//Name
- switch (Config_DetailsFormat)
+ switch (Config_Trace_Format)
{
- case MediaInfo_Config::DetailsFormat_Tree : ToReturn.resize(ToReturn.size()+Element_Level_Base+Element_Level, _T(' ')); break;
- case MediaInfo_Config::DetailsFormat_CSV :
+ case MediaInfo_Config::Trace_Format_Tree : ToReturn.resize(ToReturn.size()+Element_Level_Base+Element_Level, _T(' ')); break;
+ case MediaInfo_Config::Trace_Format_CSV :
ToReturn+=_T("G,");
ToReturn+=Ztring::ToZtring(Element_Level_Base+Element_Level);
ToReturn+=_T(',');
@@ -1466,11 +1468,11 @@ Ztring File__Analyze::Element_End_Common_Flush_Build()
Element[Element_Level+1].ToShow.Info.clear();
//Size
- if (Config_DetailsLevel>0.3)
+ if (Config_Trace_Level>0.3)
{
- switch (Config_DetailsFormat)
+ switch (Config_Trace_Format)
{
- case MediaInfo_Config::DetailsFormat_Tree :
+ case MediaInfo_Config::Trace_Format_Tree :
ToReturn+=_T(" (");
ToReturn+=Ztring::ToZtring(Element[Element_Level+1].ToShow.Size);
if (Element[Element_Level+1].ToShow.Header_Size>0)
@@ -1505,7 +1507,7 @@ void File__Analyze::Element_Prepare (int64u Size)
#if MEDIAINFO_TRACE
void File__Analyze::Param(const Ztring& Parameter, const Ztring& Value)
{
- if (Config_DetailsLevel==0)
+ if (Config_Trace_Level==0 || !(Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
return;
//Position
@@ -1522,15 +1524,15 @@ void File__Analyze::Param(const Ztring& Parameter, const Ztring& Value)
Element[Element_Level].ToShow.Details+=Config_LineSeparator;
//Show Offset
- if (Config_DetailsLevel>0.7)
+ if (Config_Trace_Level>0.7)
{
- Element[Element_Level].ToShow.Details+=Log_Offset(Pos==(int64u)-1?Pos:(File_Offset+Buffer_Offset+Pos), Config_DetailsFormat);
+ Element[Element_Level].ToShow.Details+=Log_Offset(Pos==(int64u)-1?Pos:(File_Offset+Buffer_Offset+Pos), Config_Trace_Format);
}
//Show Parameter+Value
- switch (Config_DetailsFormat)
+ switch (Config_Trace_Format)
{
- case MediaInfo_Config::DetailsFormat_Tree :
+ case MediaInfo_Config::Trace_Format_Tree :
{
//Show Parameter
Ztring Param; Param=Parameter;
@@ -1551,7 +1553,7 @@ void File__Analyze::Param(const Ztring& Parameter, const Ztring& Value)
}
}
break;
- case MediaInfo_Config::DetailsFormat_CSV :
+ case MediaInfo_Config::Trace_Format_CSV :
Element[Element_Level].ToShow.Details+=_T("T,");
Element[Element_Level].ToShow.Details+=Ztring::ToZtring(Element_Level_Base+Element_Level);
Element[Element_Level].ToShow.Details+=_T(',');
@@ -1572,7 +1574,7 @@ void File__Analyze::Param(const Ztring& Parameter, const Ztring& Value)
#if MEDIAINFO_TRACE
void File__Analyze::Info(const Ztring& Value, size_t Element_Level_Minus)
{
- if (Config_DetailsFormat==MediaInfo_Config::DetailsFormat_CSV)
+ if (Config_Trace_Format==MediaInfo_Config::Trace_Format_CSV)
return; //Do not display info
//Handling a different level (only Element_Level_Minus to 1 is currently well supported)
@@ -1588,7 +1590,7 @@ void File__Analyze::Info(const Ztring& Value, size_t Element_Level_Minus)
Element_Level_Final-=Element_Level_Minus;
}
- if (Config_DetailsLevel==0)
+ if (Config_Trace_Level==0 || !(Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()))
return;
//Coherancy
@@ -1609,8 +1611,8 @@ void File__Analyze::Info(const Ztring& Value, size_t Element_Level_Minus)
//Show Offset
Ztring Offset;
- if (Config_DetailsLevel>0.7)
- Offset=Log_Offset(File_Offset+Buffer_Offset+Element_Offset+BS->Offset_Get(), Config_DetailsFormat);
+ if (Config_Trace_Level>0.7)
+ Offset=Log_Offset(File_Offset+Buffer_Offset+Element_Offset+BS->Offset_Get(), Config_Trace_Format);
Offset.resize(Offset.size()+Element_Level_Base, _T(' '));
//Show Value
@@ -1632,11 +1634,11 @@ void File__Analyze::Param_Info (const Ztring &Text)
//Coherancy
if (Element[Element_Level].UnTrusted)
return;
- if (Config_DetailsLevel==0 || Element[Element_Level].ToShow.Details.size()>64*1024*1024)
+ if (Config_Trace_Level==0 || !(Trace_Levels.to_ulong()&Config_Trace_Levels.to_ulong()) || Element[Element_Level].ToShow.Details.size()>64*1024*1024)
return;
//Needed?
- if (Config_DetailsLevel<=0.7)
+ if (Config_Trace_Level<=0.7)
return;
//Filling
diff --git a/src/thirdparty/MediaInfo/File__Analyze.h b/src/thirdparty/MediaInfo/File__Analyze.h
index d0b23c66c..37fcc0934 100644
--- a/src/thirdparty/MediaInfo/File__Analyze.h
+++ b/src/thirdparty/MediaInfo/File__Analyze.h
@@ -854,8 +854,9 @@ protected :
protected :
//Save for speed improvement
- float Config_DetailsLevel;
- MediaInfo_Config::detailsFormat Config_DetailsFormat;
+ float Config_Trace_Level;
+ std::bitset<32> Config_Trace_Levels;
+ MediaInfo_Config::trace_Format Config_Trace_Format;
float Config_ParseSpeed;
int8u Config_Demux;
Ztring Config_LineSeparator;
@@ -928,7 +929,8 @@ public : //TO CHANGE
const Ztring &Details_Get() {return Element[0].ToShow.Details;} //Direct access to details
void Details_Clear();
protected :
- bool Details_DoNotSave;
+ bool Trace_DoNotSave;
+ std::bitset<32> Trace_Levels;
private :
//Elements
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp b/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp
index 99a5dc254..2b06dd47a 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Buffer.cpp
@@ -139,7 +139,7 @@ void File__Analyze::Get_B1(int8u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(1);
Info=BigEndian2int8u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=1;
}
@@ -148,7 +148,7 @@ void File__Analyze::Get_B2(int16u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(2);
Info=BigEndian2int16u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=2;
}
@@ -157,7 +157,7 @@ void File__Analyze::Get_B3(int32u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(3);
Info=BigEndian2int24u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=3;
}
@@ -166,7 +166,7 @@ void File__Analyze::Get_B4(int32u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
Info=BigEndian2int32u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=4;
}
@@ -175,7 +175,7 @@ void File__Analyze::Get_B5(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(5);
Info=BigEndian2int40u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=5;
}
@@ -184,7 +184,7 @@ void File__Analyze::Get_B6(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(6);
Info=BigEndian2int48u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=6;
}
@@ -193,7 +193,7 @@ void File__Analyze::Get_B7(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(7);
Info=BigEndian2int56u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=7;
}
@@ -202,7 +202,7 @@ void File__Analyze::Get_B8(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(8);
Info=BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=8;
}
@@ -213,7 +213,7 @@ void File__Analyze::Get_B16(int128u &Info, const char* Name)
//Info=BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset);
Info.hi=BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset);
Info.lo=BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset+8);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=16;
}
@@ -222,7 +222,7 @@ void File__Analyze::Get_BF4(float32 &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
Info=BigEndian2float32(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=4;
}
@@ -231,7 +231,7 @@ void File__Analyze::Get_BF8(float64 &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(8);
Info=BigEndian2float64(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=8;
}
@@ -240,7 +240,7 @@ void File__Analyze::Get_BF10(float80 &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(10);
Info=BigEndian2float80(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=10;
}
@@ -256,7 +256,7 @@ void File__Analyze::Get_BFP4(size_t Bits, float32 &Info, const char* Name)
if (Integer>=(1<<Bits)/2)
Integer-=1<<Bits;
Info=Integer+((float32)Fraction)/(1<<(32-Bits));
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=4;
}
@@ -327,7 +327,7 @@ void File__Analyze::Peek_B16(int128u &Info)
void File__Analyze::Skip_B1(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(1);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int8u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int8u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=1;
}
@@ -335,7 +335,7 @@ void File__Analyze::Skip_B1(const char* Name)
void File__Analyze::Skip_B2(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(2);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int16u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int16u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=2;
}
@@ -343,7 +343,7 @@ void File__Analyze::Skip_B2(const char* Name)
void File__Analyze::Skip_B3(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(3);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int24u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int24u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=3;
}
@@ -351,7 +351,7 @@ void File__Analyze::Skip_B3(const char* Name)
void File__Analyze::Skip_B4(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(4);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int32u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int32u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=4;
}
@@ -359,7 +359,7 @@ void File__Analyze::Skip_B4(const char* Name)
void File__Analyze::Skip_B5(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(5);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int40u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int40u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=5;
}
@@ -367,7 +367,7 @@ void File__Analyze::Skip_B5(const char* Name)
void File__Analyze::Skip_B6(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(6);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int48u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int48u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=6;
}
@@ -375,7 +375,7 @@ void File__Analyze::Skip_B6(const char* Name)
void File__Analyze::Skip_B7(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(7);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int56u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int56u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=7;
}
@@ -383,7 +383,7 @@ void File__Analyze::Skip_B7(const char* Name)
void File__Analyze::Skip_B8(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(8);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=8;
}
@@ -391,7 +391,7 @@ void File__Analyze::Skip_B8(const char* Name)
void File__Analyze::Skip_B16(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(16);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=16;
}
@@ -399,7 +399,7 @@ void File__Analyze::Skip_B16(const char* Name)
void File__Analyze::Skip_BF4(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(4);
- if (Config_DetailsLevel>0) Param(Name, BigEndian2float32(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, BigEndian2float32(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=4;
}
@@ -412,7 +412,7 @@ void File__Analyze::Skip_BFP4(size_t Bits, const char* Name)
int32u Fraction=BS->Get4(32-Bits);
BS_End();
Element_Offset-=4; //Because of BS_End()
- if (Config_DetailsLevel>0) Param(Name, Integer+((float32)Fraction)/(1<<(32-Bits)));
+ if (Config_Trace_Level>0) Param(Name, Integer+((float32)Fraction)/(1<<(32-Bits)));
Element_Offset+=4;
}
@@ -425,7 +425,7 @@ void File__Analyze::Get_L1(int8u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(1);
Info=LittleEndian2int8u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=1;
}
@@ -434,7 +434,7 @@ void File__Analyze::Get_L2(int16u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(2);
Info=LittleEndian2int16u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=2;
}
@@ -443,7 +443,7 @@ void File__Analyze::Get_L3(int32u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(3);
Info=LittleEndian2int24u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=3;
}
@@ -452,7 +452,7 @@ void File__Analyze::Get_L4(int32u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
Info=LittleEndian2int32u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=4;
}
@@ -461,7 +461,7 @@ void File__Analyze::Get_L5(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(5);
Info=LittleEndian2int40u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=5;
}
@@ -470,7 +470,7 @@ void File__Analyze::Get_L6(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(6);
Info=LittleEndian2int48u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=6;
}
@@ -479,7 +479,7 @@ void File__Analyze::Get_L7(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(7);
Info=LittleEndian2int56u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=7;
}
@@ -488,7 +488,7 @@ void File__Analyze::Get_L8(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(8);
Info=LittleEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=8;
}
@@ -499,7 +499,7 @@ void File__Analyze::Get_L16(int128u &Info, const char* Name)
//Info=LittleEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset);
Info.hi=LittleEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset);
Info.lo=LittleEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset+8);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=16;
}
@@ -508,7 +508,7 @@ void File__Analyze::Get_LF4(float32 &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
Info=LittleEndian2float32(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=4;
}
@@ -517,7 +517,7 @@ void File__Analyze::Get_LF8(float64 &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(8);
Info=LittleEndian2float64(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=8;
}
@@ -581,7 +581,7 @@ void File__Analyze::Peek_L8(int64u &Info)
void File__Analyze::Skip_L1(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(1);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int8u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int8u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=1;
}
@@ -589,7 +589,7 @@ void File__Analyze::Skip_L1(const char* Name)
void File__Analyze::Skip_L2(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(2);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int16u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int16u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=2;
}
@@ -597,7 +597,7 @@ void File__Analyze::Skip_L2(const char* Name)
void File__Analyze::Skip_L3(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(3);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int24u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int24u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=3;
}
@@ -605,7 +605,7 @@ void File__Analyze::Skip_L3(const char* Name)
void File__Analyze::Skip_L4(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(4);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int32u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int32u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=4;
}
@@ -613,7 +613,7 @@ void File__Analyze::Skip_L4(const char* Name)
void File__Analyze::Skip_L5(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(5);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int40u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int40u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=5;
}
@@ -621,7 +621,7 @@ void File__Analyze::Skip_L5(const char* Name)
void File__Analyze::Skip_L6(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(6);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int48u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int48u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=6;
}
@@ -629,7 +629,7 @@ void File__Analyze::Skip_L6(const char* Name)
void File__Analyze::Skip_L7(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(7);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int56u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int56u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=7;
}
@@ -637,7 +637,7 @@ void File__Analyze::Skip_L7(const char* Name)
void File__Analyze::Skip_L8(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(8);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=8;
}
@@ -645,7 +645,7 @@ void File__Analyze::Skip_L8(const char* Name)
void File__Analyze::Skip_L16(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(16);
- if (Config_DetailsLevel>0) Param(Name, LittleEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param(Name, LittleEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=16;
}
@@ -659,7 +659,7 @@ void File__Analyze::Get_GUID(int128u &Info, const char* Name)
INTEGRITY_SIZE_ATLEAST_INT(16);
Info.hi=LittleEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset);
Info.lo=BigEndian2int64u (Buffer+Buffer_Offset+(size_t)Element_Offset+8);
- if (Config_DetailsLevel>0) Param_GUID(Name, Info);
+ if (Config_Trace_Level>0) Param_GUID(Name, Info);
Element_Offset+=16;
}
@@ -667,7 +667,7 @@ void File__Analyze::Get_GUID(int128u &Info, const char* Name)
void File__Analyze::Skip_GUID(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(16);
- if (Config_DetailsLevel>0) Param_GUID(Name, BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param_GUID(Name, BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=16;
}
@@ -681,7 +681,7 @@ void File__Analyze::Get_UUID(int128u &Info, const char* Name)
INTEGRITY_SIZE_ATLEAST_INT(16);
Info.hi=BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset);
Info.lo=BigEndian2int64u(Buffer+Buffer_Offset+(size_t)Element_Offset+8);
- if (Config_DetailsLevel>0) Param_UUID(Name, Info);
+ if (Config_Trace_Level>0) Param_UUID(Name, Info);
Element_Offset+=16;
}
@@ -689,7 +689,7 @@ void File__Analyze::Get_UUID(int128u &Info, const char* Name)
void File__Analyze::Skip_UUID(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(16);
- if (Config_DetailsLevel>0) Param_UUID(Name, BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
+ if (Config_Trace_Level>0) Param_UUID(Name, BigEndian2int128u(Buffer+Buffer_Offset+(size_t)Element_Offset));
Element_Offset+=16;
}
@@ -705,7 +705,7 @@ void File__Analyze::Get_EB(int64u &Info, const char* Name)
if (Buffer[Buffer_Offset+(size_t)Element_Offset]==0xFF)
{
Info=File_Size-(File_Offset+Buffer_Offset+Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, "Unlimited");
+ if (Config_Trace_Level>0) Param(Name, "Unlimited");
Element_Offset++;
return;
}
@@ -792,7 +792,7 @@ void File__Analyze::Get_EB(int64u &Info, const char* Name)
break;
}
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=Size;
}
@@ -884,7 +884,7 @@ void File__Analyze::Get_ES(int64s &Info, const char* Name)
break;
}
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_Offset+=Size;
}
@@ -924,7 +924,7 @@ void File__Analyze::Get_VS(int64u &Info, const char* Name)
return; //Not enough space
}
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
{
Element_Offset-=Size;
Param(Name, Info);
@@ -964,7 +964,7 @@ void File__Analyze::Skip_VS(const char* Name)
return; //Not enough space
}
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
{
Element_Offset-=Size;
Param(Name, Info);
@@ -988,7 +988,7 @@ void File__Analyze::Get_SE(int32s &Info, const char* Name)
INTEGRITY(InfoD<int32u(-1), "(Problem)", 0)
Info=(int32s)(pow((double)-1, InfoD+1)*(int32u)ceil(InfoD/2));
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, Info);
}
@@ -999,7 +999,7 @@ void File__Analyze::Skip_SE(const char* Name)
int LeadingZeroBits=0;
while(BS->Remain()>0 && BS->Get(1)==0)
LeadingZeroBits++;
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
{
INTEGRITY(LeadingZeroBits<=32, "(Problem)", 0)
double InfoD=pow((float)2, (float)LeadingZeroBits)-1+BS->Get(LeadingZeroBits);
@@ -1021,7 +1021,7 @@ void File__Analyze::Get_UE(int32u &Info, const char* Name)
double InfoD=pow(2, (float)LeadingZeroBits);
Info=(int32u)InfoD-1+BS->Get(LeadingZeroBits);
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, Info);
}
@@ -1032,7 +1032,7 @@ void File__Analyze::Skip_UE(const char* Name)
int LeadingZeroBits=0;
while(BS->Remain()>0 && BS->Get(1)==0)
LeadingZeroBits++;
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
{
INTEGRITY(LeadingZeroBits<=32, "(Problem)", 0)
double InfoD=pow(2, (float)LeadingZeroBits);
@@ -1069,7 +1069,7 @@ void File__Analyze::Get_SI(int32s &Info, const char* Name)
if (Info!=0 && BS->Remain()>0 && BS->GetB()==1)
Info=-Info;
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, Info);
}
@@ -1099,7 +1099,7 @@ void File__Analyze::Get_UI(int32u &Info, const char* Name)
}
Info--;
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, Info);
}
@@ -1140,7 +1140,7 @@ void File__Analyze::Get_VL(int32u Call(int8u Size, int32u ToCall), int32u &Info,
return;
}
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
{
Element_Offset-=Size;
Param(Name, Info);
@@ -1164,7 +1164,7 @@ void File__Analyze::Get_C1(int8u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(1);
Info=CC1(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 1);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 1);
Element_Offset+=1;
}
@@ -1173,7 +1173,7 @@ void File__Analyze::Get_C2(int16u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(2);
Info=CC2(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 2);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 2);
Element_Offset+=2;
}
@@ -1182,7 +1182,7 @@ void File__Analyze::Get_C3(int32u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(3);
Info=CC3(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 3);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 3);
Element_Offset+=3;
}
@@ -1191,7 +1191,7 @@ void File__Analyze::Get_C4(int32u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(4);
Info=CC4(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 4, false);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 4, false);
Element_Offset+=4;
}
@@ -1200,7 +1200,7 @@ void File__Analyze::Get_C5(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(5);
Info=CC5(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 5);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 5);
Element_Offset+=5;
}
@@ -1209,7 +1209,7 @@ void File__Analyze::Get_C6(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(6);
Info=CC6(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 6);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 6);
Element_Offset+=6;
}
@@ -1218,7 +1218,7 @@ void File__Analyze::Get_C7(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(7);
Info=CC7(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 7);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 7);
Element_Offset+=7;
}
@@ -1227,7 +1227,7 @@ void File__Analyze::Get_C8(int64u &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_INT(8);
Info=CC8(Buffer+Buffer_Offset+(size_t)Element_Offset);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 8);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 8);
Element_Offset+=8;
}
@@ -1235,7 +1235,7 @@ void File__Analyze::Get_C8(int64u &Info, const char* Name)
void File__Analyze::Skip_C1(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(1);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 1);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 1);
Element_Offset+=1;
}
@@ -1243,7 +1243,7 @@ void File__Analyze::Skip_C1(const char* Name)
void File__Analyze::Skip_C2(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(2);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 2);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 2);
Element_Offset+=2;
}
@@ -1251,7 +1251,7 @@ void File__Analyze::Skip_C2(const char* Name)
void File__Analyze::Skip_C3(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(3);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 3);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 3);
Element_Offset+=3;
}
@@ -1259,7 +1259,7 @@ void File__Analyze::Skip_C3(const char* Name)
void File__Analyze::Skip_C4(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(4);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 4);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 4);
Element_Offset+=4;
}
@@ -1267,7 +1267,7 @@ void File__Analyze::Skip_C4(const char* Name)
void File__Analyze::Skip_C5(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(5);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 5);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 5);
Element_Offset+=5;
}
@@ -1275,7 +1275,7 @@ void File__Analyze::Skip_C5(const char* Name)
void File__Analyze::Skip_C6(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(6);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 6);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 6);
Element_Offset+=6;
}
@@ -1283,7 +1283,7 @@ void File__Analyze::Skip_C6(const char* Name)
void File__Analyze::Skip_C7(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(7);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 7);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 7);
Element_Offset+=7;
}
@@ -1291,7 +1291,7 @@ void File__Analyze::Skip_C7(const char* Name)
void File__Analyze::Skip_C8(const char* Name)
{
INTEGRITY_SIZE_ATLEAST(8);
- if (Config_DetailsLevel>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 8);
+ if (Config_Trace_Level>0) Param(Name, Buffer+Buffer_Offset+(size_t)Element_Offset, 8);
Element_Offset+=8;
}
@@ -1304,7 +1304,7 @@ void File__Analyze::Get_Local(int64u Bytes, Ztring &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1313,7 +1313,7 @@ void File__Analyze::Get_ISO_8859_1(int64u Bytes, Ztring &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.From_ISO_8859_1((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1322,7 +1322,7 @@ void File__Analyze::Get_String(int64u Bytes, std::string &Info, const char* Name
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.assign((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1345,7 +1345,7 @@ void File__Analyze::Get_UTF8(int64u Bytes, Ztring &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.From_UTF8((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1354,7 +1354,7 @@ void File__Analyze::Get_UTF16(int64u Bytes, Ztring &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.From_UTF16((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1363,7 +1363,7 @@ void File__Analyze::Get_UTF16B(int64u Bytes, Ztring &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.From_UTF16BE((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1372,7 +1372,7 @@ void File__Analyze::Get_UTF16L(int64u Bytes, Ztring &Info, const char* Name)
{
INTEGRITY_SIZE_ATLEAST_STRING(Bytes);
Info.From_UTF16LE((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Info);
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Info);
Element_Offset+=Bytes;
}
@@ -1380,7 +1380,7 @@ void File__Analyze::Get_UTF16L(int64u Bytes, Ztring &Info, const char* Name)
void File__Analyze::Skip_Local(int64u Bytes, const char* Name)
{
INTEGRITY_SIZE_ATLEAST(Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Ztring().From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Ztring().From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
Element_Offset+=Bytes;
}
@@ -1388,7 +1388,7 @@ void File__Analyze::Skip_Local(int64u Bytes, const char* Name)
void File__Analyze::Skip_String(int64u Bytes, const char* Name)
{
INTEGRITY_SIZE_ATLEAST(Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Ztring().From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Ztring().From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
Element_Offset+=Bytes;
}
@@ -1396,7 +1396,7 @@ void File__Analyze::Skip_String(int64u Bytes, const char* Name)
void File__Analyze::Skip_UTF8(int64u Bytes, const char* Name)
{
INTEGRITY_SIZE_ATLEAST(Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Ztring().From_UTF8((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Ztring().From_UTF8((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
Element_Offset+=Bytes;
}
@@ -1404,7 +1404,7 @@ void File__Analyze::Skip_UTF8(int64u Bytes, const char* Name)
void File__Analyze::Skip_UTF16B(int64u Bytes, const char* Name)
{
INTEGRITY_SIZE_ATLEAST(Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Ztring().From_UTF16BE((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Ztring().From_UTF16BE((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
Element_Offset+=Bytes;
}
@@ -1412,7 +1412,7 @@ void File__Analyze::Skip_UTF16B(int64u Bytes, const char* Name)
void File__Analyze::Skip_UTF16L(int64u Bytes, const char* Name)
{
INTEGRITY_SIZE_ATLEAST(Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Ztring().From_UTF16LE((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Ztring().From_UTF16LE((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset), (size_t)Bytes));
Element_Offset+=Bytes;
}
@@ -1427,7 +1427,7 @@ void File__Analyze::Skip_PA(const char* Name)
int8u Size=Buffer[Buffer_Offset+(size_t)Element_Offset];
int8u Pad=(Size%2)?0:1;
INTEGRITY_SIZE_ATLEAST(1+Size+Pad);
- if (Config_DetailsLevel>0 && Size) Param(Name, Ztring().From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset+1), (size_t)Size));
+ if (Config_Trace_Level>0 && Size) Param(Name, Ztring().From_Local((const char*)(Buffer+Buffer_Offset+(size_t)Element_Offset+1), (size_t)Size));
Element_Offset+=1+Size+Pad;
}
@@ -1439,7 +1439,7 @@ void File__Analyze::Skip_PA(const char* Name)
void File__Analyze::Skip_XX(int64u Bytes, const char* Name)
{
//INTEGRITY_SIZE_ATLEAST_INT(Bytes);
- if (Config_DetailsLevel>0 && Bytes) Param(Name, Ztring("(")+Ztring::ToZtring(Bytes)+Ztring(" bytes)"));
+ if (Config_Trace_Level>0 && Bytes) Param(Name, Ztring("(")+Ztring::ToZtring(Bytes)+Ztring(" bytes)"));
Element_Offset+=Bytes;
}
@@ -1456,7 +1456,7 @@ void File__Analyze::Get_Flags (int64u Flags, size_t Order, bool &Info, const cha
Info=false;
Element_Begin();
- if (Config_DetailsLevel>0) Param(Name, Info?"Yes":"No");
+ if (Config_Trace_Level>0) Param(Name, Info?"Yes":"No");
Element_End();
}
@@ -1466,7 +1466,7 @@ void File__Analyze::Get_Flags (int64u ValueToPut, int8u &Info, const char* Name)
Info=(int8u)ValueToPut;
Element_Begin();
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
Element_End();
}
@@ -1474,7 +1474,7 @@ void File__Analyze::Get_Flags (int64u ValueToPut, int8u &Info, const char* Name)
void File__Analyze::Skip_Flags(int64u Flags, size_t Order, const char* Name)
{
Element_Begin();
- if (Config_DetailsLevel>0) Param(Name, (Flags&((int64u)1<<Order))?"Yes":"No");
+ if (Config_Trace_Level>0) Param(Name, (Flags&((int64u)1<<Order))?"Yes":"No");
Element_End();
}
@@ -1482,7 +1482,7 @@ void File__Analyze::Skip_Flags(int64u Flags, size_t Order, const char* Name)
void File__Analyze::Skip_Flags(int64u ValueToPut, const char* Name)
{
Element_Begin();
- if (Config_DetailsLevel>0) Param(Name, ValueToPut);
+ if (Config_Trace_Level>0) Param(Name, ValueToPut);
Element_End();
}
@@ -1495,7 +1495,7 @@ void File__Analyze::Get_BS(size_t Bits, int32u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1503,7 +1503,7 @@ void File__Analyze::Get_SB( bool &Info, const char* Name)
{
INTEGRITY_INT(1<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->GetB();
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1511,7 +1511,7 @@ void File__Analyze::Get_S1(size_t Bits, int8u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get1(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1519,7 +1519,7 @@ void File__Analyze::Get_S2(size_t Bits, int16u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get2(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1527,7 +1527,7 @@ void File__Analyze::Get_S3(size_t Bits, int32u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get4(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1535,7 +1535,7 @@ void File__Analyze::Get_S4(size_t Bits, int32u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get4(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1543,7 +1543,7 @@ void File__Analyze::Get_S5(size_t Bits, int64u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get8(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1551,7 +1551,7 @@ void File__Analyze::Get_S6(size_t Bits, int64u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get8(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1559,7 +1559,7 @@ void File__Analyze::Get_S7(size_t Bits, int64u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get8(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1567,7 +1567,7 @@ void File__Analyze::Get_S8(size_t Bits, int64u &Info, const char* Name)
{
INTEGRITY_INT(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
Info=BS->Get8(Bits);
- if (Config_DetailsLevel>0) Param(Name, Info);
+ if (Config_Trace_Level>0) Param(Name, Info);
}
//---------------------------------------------------------------------------
@@ -1644,7 +1644,7 @@ void File__Analyze::Peek_S8(size_t Bits, int64u &Info)
void File__Analyze::Skip_BS(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
{
if (Bits<=32) //TODO: in BitStream.h, handle >32 bit skips
Param(Name, BS->Get(Bits));
@@ -1667,7 +1667,7 @@ void File__Analyze::Skip_BS(size_t Bits, const char* Name)
void File__Analyze::Skip_SB( const char* Name)
{
INTEGRITY(1<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->GetB());
else
BS->SkipB();
@@ -1677,7 +1677,7 @@ void File__Analyze::Skip_SB( const char* Name)
void File__Analyze::Skip_S1(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get1(Bits));
else
BS->Skip1(Bits);
@@ -1687,7 +1687,7 @@ void File__Analyze::Skip_S1(size_t Bits, const char* Name)
void File__Analyze::Skip_S2(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get2(Bits));
else
BS->Skip2(Bits);
@@ -1697,7 +1697,7 @@ void File__Analyze::Skip_S2(size_t Bits, const char* Name)
void File__Analyze::Skip_S3(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get4(Bits));
else
BS->Skip4(Bits);
@@ -1707,7 +1707,7 @@ void File__Analyze::Skip_S3(size_t Bits, const char* Name)
void File__Analyze::Skip_S4(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get4(Bits));
else
BS->Skip4(Bits);
@@ -1717,7 +1717,7 @@ void File__Analyze::Skip_S4(size_t Bits, const char* Name)
void File__Analyze::Skip_S5(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get8(Bits));
else
BS->Skip8(Bits);
@@ -1727,7 +1727,7 @@ void File__Analyze::Skip_S5(size_t Bits, const char* Name)
void File__Analyze::Skip_S6(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get8(Bits));
else
BS->Skip8(Bits);
@@ -1737,7 +1737,7 @@ void File__Analyze::Skip_S6(size_t Bits, const char* Name)
void File__Analyze::Skip_S7(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get8(Bits));
else
BS->Skip8(Bits);
@@ -1747,7 +1747,7 @@ void File__Analyze::Skip_S7(size_t Bits, const char* Name)
void File__Analyze::Skip_S8(size_t Bits, const char* Name)
{
INTEGRITY(Bits<=BS->Remain(), "Size is wrong", BS->Offset_Get())
- if (Config_DetailsLevel>0)
+ if (Config_Trace_Level>0)
Param(Name, BS->Get8(Bits));
else
BS->Skip8(Bits);
diff --git a/src/thirdparty/MediaInfo/File__MultipleParsing.cpp b/src/thirdparty/MediaInfo/File__MultipleParsing.cpp
index ad1464942..2463434d2 100644
--- a/src/thirdparty/MediaInfo/File__MultipleParsing.cpp
+++ b/src/thirdparty/MediaInfo/File__MultipleParsing.cpp
@@ -292,7 +292,7 @@ File__MultipleParsing::File__MultipleParsing()
:File__Analyze()
{
#if MEDIAINFO_TRACE
- Details_DoNotSave=true;
+ Trace_DoNotSave=true;
#endif //MEDIAINFO_TRACE
File__Analyze* Temp;
diff --git a/src/thirdparty/MediaInfo/Image/File_Jpeg.cpp b/src/thirdparty/MediaInfo/Image/File_Jpeg.cpp
index c04794367..539e4cc82 100644
--- a/src/thirdparty/MediaInfo/Image/File_Jpeg.cpp
+++ b/src/thirdparty/MediaInfo/Image/File_Jpeg.cpp
@@ -43,7 +43,9 @@
//---------------------------------------------------------------------------
#include "MediaInfo/Image/File_Jpeg.h"
#include "ZenLib/Utils.h"
+#include <vector>
using namespace ZenLib;
+using namespace std;
//---------------------------------------------------------------------------
namespace MediaInfoLib
@@ -176,7 +178,7 @@ void File_Jpeg::Header_Parse()
{
//Parsing
int16u code, size;
- Get_B2 (code, "code");
+ Get_B2 (code, "Marker");
switch (code)
{
case Elements::TEM :
@@ -193,7 +195,7 @@ void File_Jpeg::Header_Parse()
case Elements::SOI :
case Elements::EOI :
size=0; break;
- default : Get_B2 (size, "size");
+ default : Get_B2 (size, "Fl - Frame header length");
}
//Filling
@@ -406,17 +408,30 @@ void File_Jpeg::SOD()
void File_Jpeg::SOF_()
{
//Parsing
+ vector<float> SamplingFactors;
+ int8u SamplingFactors_Max=0;
int16u Height, Width;
int8u Resolution, Count;
- Get_B1 (Resolution, "Resolution");
- Get_B2 (Height, "Height");
- Get_B2 (Width, "Width");
- Get_B1 (Count, "Number of image components in frame");
+ Get_B1 (Resolution, "P - Sample precision");
+ Get_B2 (Height, "Y - Number of lines");
+ Get_B2 (Width, "X - Number of samples per line");
+ Get_B1 (Count, "Nf - Number of image components in frame");
for (int8u Pos=0; Pos<Count; Pos++)
{
- Skip_B1( "Identifier");
- Skip_B1( "sampling factor");
- Skip_B1( "Quantization table destination selector");
+ int8u Hi, Vi;
+ Element_Begin("Component");
+ Info_B1(Ci, "Ci - Component identifier"); Element_Info(Ci);
+ BS_Begin();
+ Get_S1 (4, Hi, "Hi - Horizontal sampling factor"); Element_Info(Hi);
+ Get_S1 (4, Vi, "Vi - Vertical sampling factor"); Element_Info(Vi);
+ BS_End();
+ Skip_B1( "Tqi - Quantization table destination selector");
+ Element_End();
+
+ //Filling list of HiVi
+ SamplingFactors.push_back(Hi/Vi);
+ if (((float)Hi)/Vi>SamplingFactors_Max)
+ SamplingFactors_Max=((float)Hi)/Vi;
}
FILLING_BEGIN_PRECISE();
@@ -434,6 +449,18 @@ void File_Jpeg::SOF_()
Fill(StreamKind, 0, Fill_Parameter(StreamKind, Generic_Resolution), Resolution);
Fill(StreamKind, 0, StreamKind==Stream_Image?(size_t)Image_Height:(size_t)Video_Height, Height*Height_Multiplier);
Fill(StreamKind, 0, StreamKind==Stream_Image?(size_t)Image_Width:(size_t)Video_Width, Width);
+
+ //chroma
+ if (SamplingFactors_Max)
+ while (SamplingFactors_Max<4)
+ {
+ for (size_t Pos=0; Pos<SamplingFactors.size(); Pos++)
+ SamplingFactors[Pos]*=2;
+ SamplingFactors_Max*=2;
+ }
+ while (SamplingFactors.size()<3)
+ SamplingFactors.push_back(0);
+ Fill(StreamKind, 0, "ChromaSubsampling", Ztring::ToZtring(SamplingFactors[0], 0)+_T(":")+Ztring::ToZtring(SamplingFactors[1], 0)+_T(":")+Ztring::ToZtring(SamplingFactors[2], 0));
FILLING_END();
}
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config.cpp b/src/thirdparty/MediaInfo/MediaInfo_Config.cpp
index cd7cc8f46..6eb604bb1 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config.cpp
@@ -118,8 +118,8 @@ void MediaInfo_Config::Init()
ShowFiles_TextOnly=1;
ParseSpeed=(float32)0.5;
Verbosity=(float32)0.5;
- DetailsLevel=(float32)0.0;
- DetailsFormat=DetailsFormat_Tree;
+ Trace_Level=(float32)0.0;
+ Trace_Format=Trace_Format_Tree;
Language_Raw=false;
ReadByHuman=true;
Demux=0;
@@ -408,52 +408,67 @@ Ztring MediaInfo_Config::Option (const String &Option, const String &Value_Raw)
{
return Inform_Replace_Get();
}
- else if (Option_Lower==_T("details")) //Legacy for detailslevel
+ else if (Option_Lower==_T("details")) //Legacy for trace_level
{
- DetailsLevel_Set(Value.To_float32());
- return Ztring();
+ return MediaInfo_Config::Option(_T("Trace_Level"), Value);
+ }
+ else if (Option_Lower==_T("details_get")) //Legacy for trace_level
+ {
+ return MediaInfo_Config::Option(_T("Trace_Level_Get"), Value);
}
- else if (Option_Lower==_T("details_get")) //Legacy for detailslevel
+ else if (Option_Lower==_T("detailslevel")) //Legacy for trace_level
{
- return Ztring::ToZtring(DetailsLevel_Get());
+ return MediaInfo_Config::Option(_T("Trace_Level"), Value);
}
- else if (Option_Lower==_T("detailslevel"))
+ else if (Option_Lower==_T("detailslevel_get")) //Legacy for trace_level
{
- DetailsLevel_Set(Value.To_float32());
+ return MediaInfo_Config::Option(_T("Trace_Level_Get"), Value);
+ }
+ else if (Option_Lower==_T("trace_level"))
+ {
+ Trace_Level_Set(Value);
return Ztring();
}
- else if (Option_Lower==_T("detailslevel_get"))
+ else if (Option_Lower==_T("trace_level_get"))
+ {
+ return Ztring::ToZtring(Trace_Level_Get());
+ }
+ else if (Option_Lower==_T("detailsformat")) //Legacy for trace_format
{
- return Ztring::ToZtring(DetailsLevel_Get());
+ return MediaInfo_Config::Option(_T("Trace_Format"), Value);
}
- else if (Option_Lower==_T("detailsformat"))
+ else if (Option_Lower==_T("detailsformat_get")) //Legacy for trace_format
+ {
+ return MediaInfo_Config::Option(_T("Trace_Format_Get"), Value);
+ }
+ else if (Option_Lower==_T("trace_format"))
{
String NewValue_Lower(Value);
transform(NewValue_Lower.begin(), NewValue_Lower.end(), NewValue_Lower.begin(), (int(*)(int))tolower); //(int(*)(int)) is a patch for unix
CriticalSectionLocker CSL(CS);
if (NewValue_Lower==_T("csv"))
- DetailsFormat_Set(DetailsFormat_CSV);
+ Trace_Format_Set(Trace_Format_CSV);
else
- DetailsFormat_Set(DetailsFormat_Tree);
+ Trace_Format_Set(Trace_Format_Tree);
return Ztring();
}
- else if (Option_Lower==_T("detailsformat_get"))
+ else if (Option_Lower==_T("trace_format_get"))
{
- switch (DetailsFormat_Get())
+ switch (Trace_Format_Get())
{
- case DetailsFormat_CSV : return _T("CSV");
+ case Trace_Format_CSV : return _T("CSV");
default : return _T("Tree");
}
}
else if (Option_Lower==_T("detailsmodificator"))
{
- DetailsModificator_Set(Value);
+ Trace_Modificator_Set(Value);
return Ztring();
}
else if (Option_Lower==_T("detailsmodificator_get"))
{
- return DetailsModificator_Get(Value);
+ return Trace_Modificator_Get(Value);
}
else if (Option_Lower==_T("info_parameters"))
{
@@ -672,33 +687,60 @@ bool MediaInfo_Config::ReadByHuman_Get ()
}
//---------------------------------------------------------------------------
-void MediaInfo_Config::DetailsLevel_Set (float NewValue)
+void MediaInfo_Config::Trace_Level_Set (const ZtringListList &NewTrace_Level)
+{
+ CriticalSectionLocker CSL(CS);
+
+ //Global
+ if (NewTrace_Level.size()==1 && NewTrace_Level[0].size()==1)
+ {
+ Trace_Level=NewTrace_Level[0][0].To_float32();
+ Trace_Levels.set();
+ return;
+ }
+
+ //Per item
+ else
+ {
+ Trace_Levels.reset();
+ for (size_t Pos=0; Pos<NewTrace_Level.size(); Pos++)
+ {
+ if (NewTrace_Level[Pos].size()==2)
+ {
+ if (NewTrace_Level[Pos][0]==_T("Container1"))
+ Trace_Levels.set(0, NewTrace_Level[Pos][1].To_int64u()?true:false);
+ }
+ }
+ }
+}
+
+float32 MediaInfo_Config::Trace_Level_Get ()
{
CriticalSectionLocker CSL(CS);
- DetailsLevel=NewValue;
+ return Trace_Level;
}
-float32 MediaInfo_Config::DetailsLevel_Get ()
+std::bitset<32> MediaInfo_Config::Trace_Levels_Get ()
{
CriticalSectionLocker CSL(CS);
- return DetailsLevel;
+ return Trace_Levels;
}
//---------------------------------------------------------------------------
-void MediaInfo_Config::DetailsFormat_Set (detailsFormat NewValue)
+void MediaInfo_Config::Trace_Format_Set (trace_Format NewValue)
{
CriticalSectionLocker CSL(CS);
- DetailsFormat=NewValue;
+ Trace_Format=NewValue;
}
-MediaInfo_Config::detailsFormat MediaInfo_Config::DetailsFormat_Get ()
+MediaInfo_Config::trace_Format MediaInfo_Config::Trace_Format_Get ()
{
CriticalSectionLocker CSL(CS);
- return DetailsFormat;
+ return Trace_Format;
}
//---------------------------------------------------------------------------
-void MediaInfo_Config::DetailsModificator_Set (const ZtringList &NewValue)
+void MediaInfo_Config::Trace_Modificator_Set (const ZtringList &NewValue)
{
ZtringList List(NewValue);
if (List.size()!=2)
@@ -706,14 +748,14 @@ void MediaInfo_Config::DetailsModificator_Set (const ZtringList &NewValue)
transform(List[0].begin(), List[0].end(), List[0].begin(), (int(*)(int))tolower); //(int(*)(int)) is a patch for unix
CriticalSectionLocker CSL(CS);
- DetailsModificators[List[0]]=List[1]==_T("1");
+ Trace_Modificators[List[0]]=List[1]==_T("1");
}
-Ztring MediaInfo_Config::DetailsModificator_Get (const Ztring &Value)
+Ztring MediaInfo_Config::Trace_Modificator_Get (const Ztring &Value)
{
CriticalSectionLocker CSL(CS);
- std::map<Ztring, bool>::iterator ToReturn=DetailsModificators.find(Value);
- if (ToReturn!=DetailsModificators.end())
+ std::map<Ztring, bool>::iterator ToReturn=Trace_Modificators.find(Value);
+ if (ToReturn!=Trace_Modificators.end())
return ToReturn->second?_T("1"):_T("0");
else
return Ztring();
@@ -1046,10 +1088,10 @@ Ztring MediaInfo_Config::Language_Get (const Ztring &Count, const Ztring &Value,
void MediaInfo_Config::Inform_Set (const ZtringListList &NewValue)
{
if (NewValue.Read(0, 0)==_T("Details"))
- DetailsLevel_Set(NewValue.Read(0, 1).To_float32());
+ Trace_Level_Set(NewValue.Read(0, 1));
else
{
- DetailsLevel_Set(0);
+ Trace_Level_Set(_T("0"));
CriticalSectionLocker CSL(CS);
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config.h b/src/thirdparty/MediaInfo/MediaInfo_Config.h
index 5ea72455f..db7cba0d9 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config.h
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config.h
@@ -34,6 +34,7 @@
#include "ZenLib/InfoMap.h"
#include <map>
#include <vector>
+#include <bitset>
using namespace ZenLib;
//---------------------------------------------------------------------------
@@ -85,19 +86,20 @@ public :
void Verbosity_Set (float32 NewValue);
float32 Verbosity_Get ();
- void DetailsLevel_Set (float32 NewValue);
- float32 DetailsLevel_Get ();
+ void Trace_Level_Set (const ZtringListList &NewDetailsLevel);
+ float32 Trace_Level_Get ();
+ std::bitset<32> Trace_Levels_Get ();
- enum detailsFormat
+ enum trace_Format
{
- DetailsFormat_Tree,
- DetailsFormat_CSV,
+ Trace_Format_Tree,
+ Trace_Format_CSV,
};
- void DetailsFormat_Set (detailsFormat NewValue);
- detailsFormat DetailsFormat_Get ();
+ void Trace_Format_Set (trace_Format NewValue);
+ trace_Format Trace_Format_Get ();
- void DetailsModificator_Set (const ZtringList &NewModifcator);
- Ztring DetailsModificator_Get (const Ztring &Modificator);
+ void Trace_Modificator_Set (const ZtringList &NewModifcator); //Not implemented
+ Ztring Trace_Modificator_Get (const Ztring &Modificator); //Not implemented
void Demux_Set (int8u NewValue);
int8u Demux_Get ();
@@ -188,7 +190,9 @@ private :
size_t ShowFiles_TextOnly;
float32 ParseSpeed;
float32 Verbosity;
- float32 DetailsLevel;
+ float32 Trace_Level;
+ std::bitset<32> Trace_Levels; //0-7: Container, 8: Stream
+ std::map<Ztring, bool> Trace_Modificators; //If we want to add/remove some details
bool Language_Raw;
bool ReadByHuman;
int8u Demux;
@@ -202,8 +206,7 @@ private :
Translation Language; //ex. : "KB;Ko"
ZtringListList Custom_View; //Definition of "General", "Video", "Audio", "Text", "Chapters", "Image"
ZtringListList Custom_View_Replace; //ToReplace;ReplaceBy
- detailsFormat DetailsFormat;
- std::map<Ztring, bool> DetailsModificators; //If we want to add/remove some details
+ trace_Format Trace_Format;
InfoMap Container;
InfoMap CodecID[InfoCodecID_Format_Max][Stream_Max];
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp b/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp
index fc43fe013..a91418370 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config_Automatic.cpp
@@ -1370,7 +1370,7 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"0x00000003;RGB;;Raw RGB with arbitrary sample packing within a pixel. Packing and precision of R, G and B components is determined by bit masks for each;http://www.fourcc.org/indexrgb.htm\n"
"1978;RGB;A.M.Paredes predictor;;http://www.pegasusimaging.com/cgi-bin/download2.cgi?LVIDB;;;RGB\n"
" BIT;RGB;;;;;;RGB\n"
- " JPG;M-JPEG;;;;;;YUV;4:2:0\n"
+ " JPG;M-JPEG;;;;;;YUV\n"
" PNG;M-PNG;;;;;;RGB\n"
" RAW;RGB;;;http://www.fourcc.org/indexrgb.htm;;;RGB\n"
" raw;RGB;;;http://www.fourcc.org/indexrgb.htm;;;RGB\n"
@@ -1390,13 +1390,13 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"ABYR;Kensigton low;Kensington;Low resolution, low frame rate (6fps) for digital cameras\n"
"ACTL;ACT-L2;Streambox;;http://www.streambox.com/products/act-L2_codec.htm\n"
"ADV1;WaveCodec;Loronix;;http://www.loronix.com/products/video_clips/wavecodec.asp\n"
- "ADVJ;M-JPEG;Avid;;;;;YUV;4:2:0\n"
+ "ADVJ;M-JPEG;Avid;;;;;YUV\n"
"AEIK;Indeo 3.2;;Vector Quantization\n"
"AEMI;MPEG Video;VideoONE;MPEG-1-I Capture;http://www.array.com;;;YUV;4:2:0\n"
"AFLC;FLC;Autodesk;;http://mirror01.iptelecom.net.ua/~video/codecs/Autodesk.Animator.v1.11.Codec.exe\n"
"AFLI;FLI;Autodesk;;http://mirror01.iptelecom.net.ua/~video/codecs/Autodesk.Animator.v1.11.Codec.exe\n"
"AHDV;CineForm;CineForm HD;;http://www.cineform.com/products/ConnectHD.htm\n"
- "AJPG;M-JPEG;;22fps for digital cameras;;;;YUV;4:2:0\n"
+ "AJPG;M-JPEG;;22fps for digital cameras;;;;YUV\n"
"ALPH;Ziracom;;Ziracom Digital Communications Inc.\n"
"AMPG;MPEG-1;VideoONE;;http://www.array.com;;;YUV;4:2:0\n"
"AMR ;AMR;;Speech codec\n"
@@ -1415,17 +1415,17 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"AVC1;AVC;;;http://ffdshow-tryout.sourceforge.net/;;;YUV;4:2:0\n"
"avc1;AVC;;;http://ffdshow-tryout.sourceforge.net/;;;YUV;4:2:0\n"
"AVD1;DV;Avid;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV\n"
- "AVDJ;M-JPEG;Avid;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV;4:2:0\n"
+ "AVDJ;M-JPEG;Avid;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV\n"
"AVDN;Avid HD;;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe\n"
"AVDV;DV;Avid;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV\n"
- "AVI1;M-JPEG;MainConcept;;;;;YUV;4:2:0\n"
- "AVI2;M-JPEG;MainConcept;;;;;YUV;4:2:0\n"
- "AVID;M-JPEG;Avid;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV;4:2:0\n"
+ "AVI1;M-JPEG;MainConcept;;;;;YUV\n"
+ "AVI2;M-JPEG;MainConcept;;;;;YUV\n"
+ "AVID;M-JPEG;Avid;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV\n"
"AVIS;AviSynth;;Wrapper for AviSynth (Dummy);http://ffdshow-tryout.sourceforge.net/\n"
"AVMP;Avid IMX;;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe\n"
- "AVR ;M-JPEG;Avid NuVista;Avid ABVB/NuVista M-JPEG with Alpha-channel;;;;YUV;4:2:0\n"
- "AVRn;M-JPEG;Avid M-JPEG;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV;4:2:0\n"
- "AVRN;M-JPEG;Avid M-JPEG;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV;4:2:0\n"
+ "AVR ;M-JPEG;Avid NuVista;Avid ABVB/NuVista M-JPEG with Alpha-channel;;;;YUV\n"
+ "AVRn;M-JPEG;Avid M-JPEG;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV\n"
+ "AVRN;M-JPEG;Avid M-JPEG;;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe;;;YUV\n"
"AVUI;Avid;;Avid Meridien Uncompressed with Alpha-channel;http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe\n"
"AVUP;Avid;;Avid 10bit Packed (Quick Time);http://mirror01.iptelecom.net.ua/~video/codecs/Avid.VfW.codec.v2.0d2.exe\n"
"AYUV;YUV;YUV;;;;;YUVA;4:4:4;8\n"
@@ -1451,11 +1451,11 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"CDV5;DV;Canopus;Canopus SD50/DVHD;http://www.cineform.com/products/ConnectHD.htm;;;YUV\n"
"CDVC;DV;Canopus;Canopus DV (DV);http://www.cineform.com/products/ConnectHD.htm;;;YUV\n"
"CDVH;DV;Canopus;Canopus SD50/DVHD;http://www.cineform.com/products/ConnectHD.htm;;;YUV\n"
- "CFCC;M-JPEG;DPS Perception;Dummy format - only AVI header;;;;YUV;4:2:0\n"
+ "CFCC;M-JPEG;DPS Perception;Dummy format - only AVI header;;;;YUV\n"
"CFHD;CineForm;;CineForm 10-bit Visually Perfect HD (Wavelet)\n"
"CGDI;Camcorder;;Camcorder Video (MS Office 97)\n"
"CHAM;Champagne;;Winnov Caviara Champagne\n"
- "CJPG;M-JPEG;Creative;Creative Video Blaster Webcam Go JPEG;;;;YUV;4:2:0\n"
+ "CJPG;M-JPEG;Creative;Creative Video Blaster Webcam Go JPEG;;;;YUV\n"
"CLJR;YUV;Cirrus Logic;Less than 8 bits per Y, U and V sample.;http://www.fourcc.org/indexyuv.htm;;;YUV;4:1:1\n"
"CLLC;Canopus;;Canopus LossLess\n"
"CLPL;YUV;;Format similar to YV12 but including a level of indirection.;;;;YUV\n"
@@ -1492,10 +1492,10 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"DIV6;MPEG-4 Visual;MS MPEG-4 v3;;http://ffdshow-tryout.sourceforge.net/;;;YUV;4:2:0\n"
"DIVX;MPEG-4 Visual;DivX 4;Project Mayo;http://mediaarea.net/DIVX;;;YUV;4:2:0\n"
"divx;MPEG-4 Visual;DivX;Mainly used by Google;http://www.divx.com;;;YUV;4:2:0\n"
- "DJPG;M-JPEG;Broadway 101;Data Translation, Inc.;;;;YUV;4:2:0\n"
+ "DJPG;M-JPEG;Broadway 101;Data Translation, Inc.;;;;YUV\n"
"DM4V;MPEG-4 Visual;Dicas;;;;;YUV;4:2:0\n"
- "DMB1;M-JPEG;Rainbow;Matrox Rainbow Runner hardware compression;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.MJPG.v2.10.27.codec.exe;;;YUV;4:2:0\n"
- "DMB2;M-JPEG;Paradigm;;;;;YUV;4:2:0\n"
+ "DMB1;M-JPEG;Rainbow;Matrox Rainbow Runner hardware compression;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.MJPG.v2.10.27.codec.exe;;;YUV\n"
+ "DMB2;M-JPEG;Paradigm;;;;;YUV\n"
"DMK2;V36 PDA;;ViewSonic V36 PDA Video\n"
"DP02;MPEG-4 Visual;DynaPel;;;;;YUV;4:2:0\n"
"DP16;YUV;Matsushita;With DPCM 6-bit compression;;;;YUV;4:1:1\n"
@@ -1505,8 +1505,8 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"DP96;YUV;Matsushita;With DPCM 6-bit compression;;;;YUV\n"
"DP98;YUV;Matsushita;With DPCM 8-bit compression;;;;YUV\n"
"DP9L;YUV;Matsushita;With DPCM 6-bit compression;;;;YUV\n"
- "DPS0;M-JPEG;DPS Reality;Dummy format - only AVI header;;;;YUV;4:2:0\n"
- "DPSC;M-JPEG;DPS PAR;Dummy format - only AVI header;;;;YUV;4:2:0\n"
+ "DPS0;M-JPEG;DPS Reality;Dummy format - only AVI header;;;;YUV\n"
+ "DPSC;M-JPEG;DPS PAR;Dummy format - only AVI header;;;;YUV\n"
"DRWX;DV;Pinnacle;;;;;YUV\n"
"DSVD;DV;Microsoft;;;;;YUV\n"
"DTMT;Media-100\n"
@@ -1566,25 +1566,25 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"FLJP;DField M-JPEG;;D-Vision Field Encoded M-JPEG with LSI (or Targa emulation)\n"
"FLV1;FFDS;;FFDShow supported;http://ffdshow-tryout.sourceforge.net/\n"
"FLV4;VP6;On2;;http://www.on2.com\n"
- "FMJP;M-JPEG;D-Vision;;;;;YUV;4:2:0\n"
+ "FMJP;M-JPEG;D-Vision;;;;;YUV\n"
"FMP4;MPEG-4 Visual;;;http://ffdshow-tryout.sourceforge.net/;;;YUV;4:2:0\n"
"FPS1;Fraps;;;http://www.fraps.com/\n"
- "FRLE;M-JPEG;SoftLab-Nsk;SoftLab-NSK Y16 + Alpha RLE;;;;YUV;4:2:0\n"
- "FRWA;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward M-JPEG with Alpha-channel;;;;YUV;4:2:0\n"
- "FRWD;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward M-JPEG;;;;YUV;4:2:0\n"
- "FRWT;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward M-JPEG with Alpha-channel;;;;YUV;4:2:0\n"
- "FRWU;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward Uncompressed;;;;YUV;4:2:0\n"
+ "FRLE;M-JPEG;SoftLab-Nsk;SoftLab-NSK Y16 + Alpha RLE;;;;YUV\n"
+ "FRWA;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward M-JPEG with Alpha-channel;;;;YUV\n"
+ "FRWD;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward M-JPEG;;;;YUV\n"
+ "FRWT;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward M-JPEG with Alpha-channel;;;;YUV\n"
+ "FRWU;M-JPEG;SoftLab-Nsk;SoftLab-NSK Vision Forward Uncompressed;;;;YUV\n"
"FVF1;Itered Fractal\n"
"FVFW;FVFW;;;http://ffdshow-tryout.sourceforge.net/\n"
"FXT1;3DFX\n"
"G2M2;GoToMeeting2;;Citrix Systems, Inc.;http://www.gotomeeting.com/\n"
"G2M3;GoToMeeting3;;Citrix Systems, Inc.;http://www.gotomeeting.com/\n"
- "GEPJ;M-JPEG;White Pine;;;;;YUV;4:2:0\n"
+ "GEPJ;M-JPEG;White Pine;;;;;YUV\n"
"GJPG;Grand Tech GT891x\n"
"GLCC;GigaLink\n"
"GLZW;LZW;Gabest;;http://sourceforge.net/project/showfiles.php?group_id=82303&package_id=84358\n"
- "GPEG;M-JPEG;Gabest;;http://sourceforge.net/project/showfiles.php?group_id=82303&package_id=84358;;;YUV;4:2:0\n"
- "GPJM;M-JPEG;Pinnacle;;;;;YUV;4:2:0\n"
+ "GPEG;M-JPEG;Gabest;;http://sourceforge.net/project/showfiles.php?group_id=82303&package_id=84358;;;YUV\n"
+ "GPJM;M-JPEG;Pinnacle;;;;;YUV\n"
"GREY;YUV;;Simple grayscale video;http://www.fourcc.org/indexyuv.htm;;;YUV\n"
"GWLT;MS GWLT;;Microsoft Greyscale WLT DIB\n"
"GXVE;ViVD V2;SoftMedia\n"
@@ -1613,7 +1613,7 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"IF09;H.261;Microsoft\n"
"IFO9;YUV;Intel;;;;;YUV\n"
"IGOR;PowerDVD\n"
- "IJPG;M-JPEG;Intergraph;;;;;YUV;4:2:0\n"
+ "IJPG;M-JPEG;Intergraph;;;;;YUV\n"
"ILVC;Layered Video;Intel\n"
"ILVR;H.263+\n"
"IMAC;MotionComp;;Intel hardware motion compensation.\n"
@@ -1655,10 +1655,10 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"IYU2;YUV;;IEEE1394 24bpp. 24 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec;;;;YUV\n"
"IYUV;YUV;;Intel Indeo iYUV 4:2:0;;;;YUV\n"
"JBYR;Kensington;;Kensington Video;http://ffdshow-tryout.sourceforge.net/\n"
- "JFIF;M-JPEG;;;;;;YUV;4:2:0\n"
- "JPEG;M-JPEG;;;http://www.apple.com/quicktime/download/standalone.html;;;YUV;4:2:0\n"
- "JPG;M-JPEG;;;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV;4:2:0\n"
- "JPGL;M-JPEG;Pegasus;DIVIO JPEG Light for WebCams (Pegasus Lossless JPEG);;;;YUV;4:2:0\n"
+ "JFIF;M-JPEG;;;;;;YUV\n"
+ "JPEG;M-JPEG;;;http://www.apple.com/quicktime/download/standalone.html;;;YUV\n"
+ "JPG;M-JPEG;;;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV\n"
+ "JPGL;M-JPEG;Pegasus;DIVIO JPEG Light for WebCams (Pegasus Lossless JPEG);;;;YUV\n"
"KMVC;Karl;;Karl Morton's Video (presumably);http://www.apple.com/quicktime/download/standalone.html\n"
"kpcd;Photo CD;;Kodak Photo CD\n"
"L261;H.261;Lead Technologies\n"
@@ -1671,8 +1671,8 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"LGRY;Lead GrayScale\n"
"LIA1;Liafail;;Liafail, Inc.\n"
"LJ2K;M-JPEG2000;Lead;;http://mirror01.iptelecom.net.ua/~video/codecs/LEAD.MCMP-M-JPEG.v1.016.codec.exe\n"
- "LJPG;M-JPEG;Lead;;http://mirror01.iptelecom.net.ua/~video/codecs/LEAD.MCMP-M-JPEG.v1.016.codec.exe;;;YUV;4:2:0\n"
- "Ljpg;M-JPEG;Lead;;;;;YUV;4:2:0\n"
+ "LJPG;M-JPEG;Lead;;http://mirror01.iptelecom.net.ua/~video/codecs/LEAD.MCMP-M-JPEG.v1.016.codec.exe;;;YUV\n"
+ "Ljpg;M-JPEG;Lead;;;;;YUV\n"
"LMP2;MPEG-PS;Lead\n"
"LOCO;LOCO;;Lossless\n"
"LSCR;Lead Screen capture\n"
@@ -1688,18 +1688,18 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"M4CC;MPEG-4 Visual;ESS Divo;;;;;YUV;4:2:0\n"
"M4S2;MPEG-4 Visual;Microsoft;;;;;YUV;4:2:0\n"
"MC12;ATI Motion;;ATI Motion Compensation Format\n"
- "MC24;M-JPEG;MainConcept;;;;;YUV;4:2:0\n"
+ "MC24;M-JPEG;MainConcept;;;;;YUV\n"
"MCAM;ATI Motion;;ATI Motion Compensation Format\n"
"MCZM;RGB;;Theory MicroCosm Lossless 64bit RGB with Alpha-channel;;;;RGB\n"
"MDVD;MicroDVD;;Alex MicroDVD Video (hacked MS MPEG-4)\n"
"MDVF;DV;Pinnacle;Pinnacle DV/DV50/DVHD100;;;;YUV\n"
"MHFY;YUV;;A.M.Paredes mhuffyYUV (LossLess);http://mirror01.iptelecom.net.ua/~video/codecs/Pinnacle.ReelTime.v2.5.software.only.codec.exe;;;YUV\n"
"MJ2C;M-JPEG2000;;Morgan Multimedia JPEG2000 Compression;http://mirror01.iptelecom.net.ua/~video/codecs/Pinnacle.ReelTime.v2.5.software.only.codec.exe\n"
- "MJPA;M-JPEG;Pinacle;Pinnacle ReelTime MJPG hardware;http://mediaxw.sourceforge.net;;;YUV;4:2:0\n"
- "MJPB;M-JPEG;Pinacle B;;;;;YUV;4:2:0\n"
- "MJPG;M-JPEG;;;;;;YUV;4:2:0\n"
- "mJPG;M-JPEG;IBM;Including Huffman Tables;;;;YUV;4:2:0\n"
- "MJPX;M-JPEG;Pegasus;Pegasus PICVideo M-JPEG;;;;YUV;4:2:0\n"
+ "MJPA;M-JPEG;Pinacle;Pinnacle ReelTime MJPG hardware;http://mediaxw.sourceforge.net;;;YUV\n"
+ "MJPB;M-JPEG;Pinacle B;;;;;YUV\n"
+ "MJPG;M-JPEG;;;;;;YUV\n"
+ "mJPG;M-JPEG;IBM;Including Huffman Tables;;;;YUV\n"
+ "MJPX;M-JPEG;Pegasus;Pegasus PICVideo M-JPEG;;;;YUV\n"
"ML20;Webcam;;Mimic MSN Messenger Webcam\n"
"MMES;MPEG Video;Matrox;I-frame;;;;YUV;4:2:0\n"
"MMIF;MPEG Video;Matrox;I-frame;;;;YUV;4:2:0\n"
@@ -1731,15 +1731,15 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"MSVC;Microsoft Video 1;;Microsoft Video 1\n"
"MSZH;AVImszh;;Lossless (ZIP compression)\n"
"MTGA;TGA;;Motion TGA images (24, 32 bpp)\n"
- "MTX1;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX2;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX3;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX4;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX5;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX6;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX7;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX8;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
- "MTX9;M-JPEG;Matrox;;;;;YUV;4:2:0\n"
+ "MTX1;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX2;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX3;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX4;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX5;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX6;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX7;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX8;M-JPEG;Matrox;;;;;YUV\n"
+ "MTX9;M-JPEG;Matrox;;;;;YUV\n"
"MV10;Nokia;;Nokia Mobile Phones\n"
"MV11;Nokia;;Nokia Mobile Phones\n"
"MV12;MVI;;Motion Pixels (old)\n"
@@ -1791,10 +1791,10 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"PDVC;DV;Panasonic;;;;;YUV\n"
"PGVV;Radius Video Vision\n"
"PHMO;Photomotion;IBM\n"
- "PIM1;M-JPEG;Pegasus;Pinnacle DC1000 hardware (MPEG compression);http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV;4:2:0\n"
- "PIM2;M-JPEG;Pegasus;Pegasus Imaging;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV;4:2:0\n"
- "PIMJ;M-JPEG;Pegasus;Pegasus Imaging PICvideo Lossless JPEG;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV;4:2:0\n"
- "PIXL;M-JPEG;Miro;MiroVideo XL (M-JPEG);;;;YUV;4:2:0\n"
+ "PIM1;M-JPEG;Pegasus;Pinnacle DC1000 hardware (MPEG compression);http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV\n"
+ "PIM2;M-JPEG;Pegasus;Pegasus Imaging;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV\n"
+ "PIMJ;M-JPEG;Pegasus;Pegasus Imaging PICvideo Lossless JPEG;http://mirror01.iptelecom.net.ua/~video/codecs/PICVideo.Lossless.JPEG.codec.v2.10.27.exe;;;YUV\n"
+ "PIXL;M-JPEG;Miro;MiroVideo XL (M-JPEG);;;;YUV\n"
"PNG;M-PNG\n"
"PNG1;M-PNG;;Corecodec.org CorePNG\n"
"PVEZ;PowerEZ;;Horizons Technology PowerEZ\n"
@@ -1861,12 +1861,12 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"SHR6;BitJazz SheerVideo;;BitJazz SheerVideo (realtime lossless)\n"
"SHR7;BitJazz SheerVideo;;BitJazz SheerVideo (realtime lossless)\n"
"SIF1;SIF1;;;http://mysif.ru/SIF1_dd_Eng.htm\n"
- "SJPG;M-JPEG;CuSeeMe;CuSeeMe;http://mirror01.iptelecom.net.ua/~video/codecs/CUseeMe.M-JPEG.CODEC.v1.17.exe;;;YUV;4:2:0\n"
+ "SJPG;M-JPEG;CuSeeMe;CuSeeMe;http://mirror01.iptelecom.net.ua/~video/codecs/CUseeMe.M-JPEG.CODEC.v1.17.exe;;;YUV\n"
"SL25;DV;SoftLab DVCPro;SoftLab-NSK DVCPRO;;;;YUV;4:1:1\n"
"SL50;DV;SoftLab DVCPro5;SoftLab-NSK ;;;;YUV;4:1:1\n"
"SLDV;DV;SoftLab;SoftLab-NSK Forward DV Draw;;;;YUV;4:1:1\n"
"SLIF;MPEG Video;SoftLab;SoftLab-NSK MPEG-2 I-frames;;;;YUV;4:2:0\n"
- "SLMJ;M-JPEG;SoftLab;SoftLab-NSK Forward M-JPEG;;;;YUV;4:2:0\n"
+ "SLMJ;M-JPEG;SoftLab;SoftLab-NSK Forward M-JPEG;;;;YUV\n"
"smc ;SMC;;Apple Graphics (SMC);http://www.apple.com/quicktime/download/standalone.html\n"
"SMSC;Radius\n"
"SMSD;Radius\n"
@@ -1894,7 +1894,7 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"SVQ1;Sorenson 1;;Sorenson Media Video 1 (Apple QuickTime 3)\n"
"SVQ2;Sorenson 2;;Sorenson Media Video 2 (Apple QuickTime 4)\n"
"SVQ3;Sorenson 3;;Sorenson Media Video 3 (Apple QuickTime 5)\n"
- "SWC1;M-JPEG;MainConcept;MainConcept M-JPEG;;;;YUV;4:2:0\n"
+ "SWC1;M-JPEG;MainConcept;MainConcept M-JPEG;;;;YUV\n"
"T420;YUV;Toshiba;Toshiba YUV 4:2:0;;;;YUV\n"
"TGA ;TGA;Apple;Apple TGA (with Alpha-channel)\n"
"THEO;Theora;;FFVFW Supported\n"
@@ -1922,7 +1922,11 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"U<YA;YUV;Discreet;Discreet UC YUV 4:2:2:4 10 bit (with Alpha-channel);;;;YUV\n"
"U263;H.263;UB;UB Video H.263/H.263+/H.263++ Decoder;http://eMajix.com\n"
"UCOD;ClearVideo;;ClearVideo (fractal compression-based)\n"
+ "ULRA;RGBA;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;RGBA;4:4:4:4\n"
+ "ULRG;RGB;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;RGB;4:4:4\n"
"ULTI;Ultimotion;;IBM Ultimotion\n"
+ "ULY0;YUV;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;YUV;4:2:2\n"
+ "ULY2;YUV;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;YUV;4:2:0\n"
"UMP4;MPEG-4 Visual;UB;UB Video MPEG 4;http://www.fourcc.org/indexyuv.htm;;;YUV;4:2:0\n"
"UYNV;YUV;;Nvidia 16bpp. A direct copy of UYVY registered by Nvidia to work around problems in some olds which did not like hardware which offered more than 2 UYVY surfaces.;http://www.fourcc.org/indexyuv.htm;;;YUV\n"
"UYVP;YUV;;Evans & Sutherland 24bpp. YUV 4:2:2 extended precision 10-bits per component in U0Y0V0Y1 order;;;;YUV\n"
@@ -1955,8 +1959,8 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"VIV1;H.263;Vivo\n"
"VIV2;H.263;Vivo\n"
"VIVO;H.263;Vivo\n"
- "VIXL;M-JPEG;Miro XL;Miro Video XL;http://mirror01.iptelecom.net.ua/~video/codecs/miroVIDEO-XL.codec.v2.2.exe;;;YUV;4:2:0\n"
- "VJPG;M-JPEG;;;;;;YUV;4:2:0\n"
+ "VIXL;M-JPEG;Miro XL;Miro Video XL;http://mirror01.iptelecom.net.ua/~video/codecs/miroVIDEO-XL.codec.v2.2.exe;;;YUV\n"
+ "VJPG;M-JPEG;;;;;;YUV\n"
"VLV1;Videologic\n"
"VMNC;Vmware;;;http://www.vmware.com/\n"
"VP30;VP3;On2\n"
@@ -1987,7 +1991,7 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"WBVC;W9960;;Winbond Electronics W9960\n"
"WHAM;Microsoft Video 1\n"
"WINX;Winnov\n"
- "WJPG;M-JPEG;Winbond ;Winbond JPEG (AverMedia USB devices);;;;YUV;4:2:0\n"
+ "WJPG;M-JPEG;Winbond ;Winbond JPEG (AverMedia USB devices);;;;YUV\n"
"WMV1;WMV1;;Windows Media Video 7;http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx\n"
"WMV2;WMV2;;Windows Media Video 8;http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx\n"
"WMV3;VC-1;WMV3;Windows Media Video 9;http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx\n"
@@ -2006,7 +2010,7 @@ void MediaInfo_Config_CodecID_Video_Riff (InfoMap &Info)
"WZDC;iSnap;;CORE Co. Ltd.\n"
"X263;H.263;Xirlink\n"
"X264;AVC;;XiWave GNU GPL x264 MPEG-4\n"
- "XJPG;M-JPEG;Xirlink;;;;;YUV;4:2:0\n"
+ "XJPG;M-JPEG;Xirlink;;;;;YUV\n"
"XLV0;NetXL Video;;NetXL Inc. XL Video Decoder\n"
"XMPG;MPEG Video;Xing;XING MPEG (I frame only);;;;YUV;4:2:0\n"
"XVID;MPEG-4 Visual;XviD;;http://mediaarea.net/XVID;;;YUV;4:2:0\n"
@@ -3040,7 +3044,11 @@ void MediaInfo_Config_Codec (InfoMap &Info)
"U<YA;Discreet YUV;4CC;V;;;Discreet UC YUV 4:2:2:4 10 bit (with Alpha-channel)\n"
"U263;UB H.263;4CC;V;;;UB Video H.263/H.263+/H.263++ Decoder;http://eMajix.com\n"
"UCOD;ClearVideo;4CC;V;;;ClearVideo (fractal compression-based)\n"
+ "ULRA;RGBA;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;RGBA;4:4:4:4\n"
+ "ULRG;RGB;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;RGB;4:4:4 \n"
"ULTI;Ultimotion;4CC;V;;;IBM Ultimotion\n"
+ "ULY0;YUV;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;YUV;4:2:2\n"
+ "ULY2;YUV;Ut Video;Ut Video Lossless Codec;http://umezawa.dyndns.info/archive/utvideo;;;YUV;4:2:0 \n"
"UMP4;UB MPEG-4;4CC;V;MPEG-4V;;UB Video MPEG 4;http://www.fourcc.org/indexyuv.htm\n"
"UYNV;YUV;4CC;V;YUV;;Nvidia 16bpp. A direct copy of UYVY registered by Nvidia to work around problems in some olds which did not like hardware which offered more than 2 UYVY surfaces.;http://www.fourcc.org/indexyuv.htm\n"
"UYVP;YUV;4CC;V;YUV;;Evans & Sutherland 24bpp. YCbCr 4:2:2 extended precision 10-bits per component in U0Y0V0Y1 order\n"
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp
index f207bcf04..eb15bb572 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.cpp
@@ -57,6 +57,7 @@ MediaInfo_Config_MediaInfo::MediaInfo_Config_MediaInfo()
File_MpegTs_stream_type_Trust=true;
File_Bdmv_ParseTargetedFile=true;
File_DvDif_Analysis=false;
+ File_Mmsh_Describe_Only=false;
State=0;
Demux_ForceIds=false;
Demux_PCM_20bitTo16bit=false;
@@ -271,6 +272,15 @@ Ztring MediaInfo_Config_MediaInfo::Option (const String &Option, const String &V
{
return File_Curl_Get(Value);
}
+ else if (Option_Lower==_T("file_mmsh_describe_only"))
+ {
+ File_Mmsh_Describe_Only_Set(!(Value==_T("0") || Value.empty()));
+ return _T("");
+ }
+ else if (Option_Lower==_T("file_mmsh_describe_only_get"))
+ {
+ return File_Mmsh_Describe_Only_Get()?"1":"0";
+ }
else if (Option_Lower==_T("file_event_callbackfunction"))
{
#if MEDIAINFO_EVENTS
@@ -811,6 +821,20 @@ Ztring MediaInfo_Config_MediaInfo::File_Curl_Get (const Ztring &Field_)
return Curl[Field];
}
+//---------------------------------------------------------------------------
+void MediaInfo_Config_MediaInfo::File_Mmsh_Describe_Only_Set (bool NewValue)
+{
+ CriticalSectionLocker CSL(CS);
+ File_Mmsh_Describe_Only=NewValue;
+}
+
+bool MediaInfo_Config_MediaInfo::File_Mmsh_Describe_Only_Get ()
+{
+ CriticalSectionLocker CSL(CS);
+ bool Temp=File_Mmsh_Describe_Only;
+ return Temp;
+}
+
//***************************************************************************
// Analysis internal
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h
index 3a39dbda4..e790cb586 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h
+++ b/src/thirdparty/MediaInfo/MediaInfo_Config_MediaInfo.h
@@ -130,6 +130,8 @@ public :
bool File_DvDif_Analysis_Get ();
void File_Curl_Set (const Ztring &NewValue);
Ztring File_Curl_Get (const Ztring &Field);
+ void File_Mmsh_Describe_Only_Set (bool NewValue);
+ bool File_Mmsh_Describe_Only_Get ();
//Analysis internal
void State_Set (float State);
@@ -174,6 +176,7 @@ private :
bool File_MpegTs_stream_type_Trust;
bool File_Bdmv_ParseTargetedFile;
bool File_DvDif_Analysis;
+ bool File_Mmsh_Describe_Only;
//Analysis internal
float State;
diff --git a/src/thirdparty/MediaInfo/MediaInfo_Inform.cpp b/src/thirdparty/MediaInfo/MediaInfo_Inform.cpp
index 54f0928b2..82f8638b0 100644
--- a/src/thirdparty/MediaInfo/MediaInfo_Inform.cpp
+++ b/src/thirdparty/MediaInfo/MediaInfo_Inform.cpp
@@ -57,7 +57,7 @@ Ztring MediaInfo_Internal::Inform()
CS.Leave();
#if MEDIAINFO_TRACE
- if (MediaInfoLib::Config.DetailsLevel_Get() || MediaInfoLib::Config.Inform_Get()==_T("Details"))
+ if (MediaInfoLib::Config.Trace_Level_Get() || MediaInfoLib::Config.Inform_Get()==_T("Details"))
{
if (!Details.empty())
return Details;
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Cdxa.cpp b/src/thirdparty/MediaInfo/Multiple/File_Cdxa.cpp
index 75703d6b2..c5bfbfd4d 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Cdxa.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Cdxa.cpp
@@ -300,7 +300,7 @@ void File_Cdxa::Data_Parse()
//Details
#if MEDIAINFO_TRACE
- if (MediaInfoLib::Config.DetailsLevel_Get())
+ if (Config_Trace_Level)
{
if (!MI->Inform().empty())
Element_Show_Add(MI->Inform());
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
index dd270ddf2..216df8624 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
@@ -306,16 +306,6 @@ void File_Lxf::Header_Parse()
Videos_Header.TimeStamp_Begin=TimeStamp;
Videos_Header.TimeStamp_End=TimeStamp+Duration;
Videos_Header.Duration=Duration;
-
- //Cleanup of sizes
- for (size_t Pos=0; Pos<Video_Sizes.size(); Pos++)
- if (Video_Sizes[Pos]==0)
- {
- Video_Sizes.erase(Video_Sizes.begin()+Pos);
- Pos--;
- }
- else
- break;
}
break;
case 1 : //Audio
@@ -356,16 +346,6 @@ void File_Lxf::Header_Parse()
Audios_Header.TimeStamp_Begin=TimeStamp;
Audios_Header.TimeStamp_End=TimeStamp+Duration;
Audios_Header.Duration=Duration;
-
- //Cleanup of sizes
- for (size_t Pos=0; Pos<Audio_Sizes.size(); Pos++)
- if (Audio_Sizes[Pos]==0)
- {
- Audio_Sizes.erase(Audio_Sizes.begin()+Pos);
- Pos--;
- }
- else
- break;
}
break;
case 2 : //Header
@@ -387,16 +367,6 @@ void File_Lxf::Header_Parse()
Skip_L4( "? (Always 0x00000000)");
Skip_L4( "? (Always 0x00000000)");
Info_L8(Reverse, "Reverse TimeStamp?"); Param_Info(((float64)Reverse)/720, 3, " ms");
-
- //Cleanup of sizes
- for (size_t Pos=0; Pos<Header_Sizes.size(); Pos++)
- if (Header_Sizes[Pos]==0)
- {
- Header_Sizes.erase(Header_Sizes.begin()+Pos);
- Pos--;
- }
- else
- break;
}
break;
default : BlockSize=0;
@@ -642,7 +612,10 @@ void File_Lxf::Video()
}
for (size_t Pos=0; Pos<Video_Sizes.size(); Pos++)
- Video_Stream(Pos);
+ {
+ if (Video_Sizes[Pos]) //Skip empty blocks
+ Video_Stream(Pos);
+ }
Video_Sizes.clear();
FILLING_BEGIN();
@@ -712,7 +685,7 @@ bool File_Lxf::Video_Stream(size_t Pos)
{
if (Pos==0)
{
- Skip_XX(Video_Sizes[Pos], "Unknown");
+ Skip_XX(Video_Sizes[Pos], "VBI data");
if (Pos>=Videos.size())
Videos.resize(Pos+1);
Videos[Pos].BytesPerFrame=Video_Sizes[Pos];
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp
index 923759150..cba503acc 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.cpp
@@ -151,6 +151,10 @@ File_Mpeg4::File_Mpeg4()
#if MEDIAINFO_DEMUX
Demux_Level=2; //Container
#endif //MEDIAINFO_DEMUX
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(0); //Container1
+ #endif //MEDIAINFO_TRACE
+
DataMustAlwaysBeComplete=false;
//Temp
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h
index 18ff8a9e3..88fc29352 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4.h
@@ -109,6 +109,9 @@ private :
void moov_trak_mdia_imap_sean___in_obid();
void moov_trak_mdia_mdhd();
void moov_trak_mdia_minf();
+ void moov_trak_mdia_minf_code();
+ void moov_trak_mdia_minf_code_sean();
+ void moov_trak_mdia_minf_code_sean_RU_A();
void moov_trak_mdia_minf_dinf();
void moov_trak_mdia_minf_dinf_url_();
void moov_trak_mdia_minf_dinf_urn_();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Descriptors.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Descriptors.cpp
index c3ffa639d..ba471e61e 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Descriptors.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Descriptors.cpp
@@ -144,6 +144,7 @@ const char* Mpeg4_Descriptors_ObjectTypeIndication(int8u ID)
case 0xA9 : return "DTS";
case 0xAA : return "DTS-HD High Resolution";
case 0xAB : return "DTS-HD Master Audio";
+ case 0xAC : return "DTS-HD Express";
case 0xD1 : return "Private - EVRC";
case 0xD3 : return "Private - AC-3";
case 0xD4 : return "Private - DTS";
@@ -530,6 +531,7 @@ void File_Mpeg4_Descriptors::Descriptor_04()
case 0xA9 : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "DTS", Error, false, true); break;
case 0xAA : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "DTS", Error, false, true); Fill(Stream_Audio, StreamPos_Last, Audio_Format_Profile, "HRA", Error, false, true); break; // DTS-HD High Resolution
case 0xAB : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "DTS", Error, false, true); Fill(Stream_Audio, StreamPos_Last, Audio_Format_Profile, "MA", Error, false, true); break; // DTS-HD Master Audio
+ case 0xAC : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "DTS", Error, false, true); Fill(Stream_Audio, StreamPos_Last, Audio_Format_Profile, "Express", Error, false, true); break; // DTS Express a.k.a. LBR
case 0xD1 : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "EVRC", Error, false, true); Fill(Stream_Audio, StreamPos_Last, Audio_SamplingRate, 8000, 10, true); Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, 1, 10, true); break;
case 0xD3 : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "AC-3", Error, false, true); break;
case 0xD4 : Fill(Stream_Audio , StreamPos_Last, Audio_Format, "DTS", Error, false, true); break;
@@ -570,6 +572,7 @@ void File_Mpeg4_Descriptors::Descriptor_04()
case 0xA9 : Fill(Stream_Audio , StreamPos_Last, Audio_Codec, "DTS", Error, false, true); break;
case 0xAA :
case 0xAB : Fill(Stream_Audio , StreamPos_Last, Audio_Codec, "DTS-HD", Error, false, true); break;
+ case 0xAC : Fill(Stream_Audio , StreamPos_Last, Audio_Codec, "DTS Express", Error, false, true); break;
case 0xD1 : Fill(Stream_Audio , StreamPos_Last, Audio_Codec, "EVRC", Error, false, true); break;
case 0xD3 : Fill(Stream_Audio , StreamPos_Last, Audio_Codec, "AC3", Error, false, true); break;
case 0xD4 : Fill(Stream_Audio , StreamPos_Last, Audio_Codec, "DTS", Error, false, true); break;
@@ -676,6 +679,7 @@ void File_Mpeg4_Descriptors::Descriptor_04()
case 0xA9 : //DTS
case 0xAA : //DTS HRA
case 0xAB : //DTS MA
+ case 0xAC : //DTS Express
case 0xD4 : //DTS
#if defined(MEDIAINFO_DTS_YES)
Parser=new File_Dts;
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
index a6ec12ef1..57649960e 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
@@ -292,6 +292,9 @@ namespace Elements
const int64u moov_trak_mdia_imap_sean___in_obid=0x6F626964;
const int64u moov_trak_mdia_mdhd=0x6D646864;
const int64u moov_trak_mdia_minf=0x6D696E66;
+ const int64u moov_trak_mdia_minf_code=0x636F6465;
+ const int64u moov_trak_mdia_minf_code_sean=0x7365616E;
+ const int64u moov_trak_mdia_minf_code_sean_RU_A=0x52552A41;
const int64u moov_trak_mdia_minf_dinf=0x64696E66;
const int64u moov_trak_mdia_minf_dinf_url_=0x75726C20;
const int64u moov_trak_mdia_minf_dinf_urn_=0x75726E20;
@@ -537,6 +540,13 @@ void File_Mpeg4::Data_Parse()
ATOM(moov_trak_mdia_mdhd)
LIST(moov_trak_mdia_minf)
ATOM_BEGIN
+ LIST(moov_trak_mdia_minf_code)
+ ATOM_BEGIN
+ LIST(moov_trak_mdia_minf_code_sean)
+ ATOM_BEGIN
+ ATOM(moov_trak_mdia_minf_code_sean_RU_A)
+ ATOM_END
+ ATOM_END
LIST(moov_trak_mdia_minf_dinf)
ATOM_BEGIN
ATOM(moov_trak_mdia_minf_dinf_url_)
@@ -927,6 +937,10 @@ void File_Mpeg4::jp2h_ihdr()
//---------------------------------------------------------------------------
void File_Mpeg4::mdat()
{
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ #endif //MEDIAINFO_TRACE
+
if (!Status[IsAccepted])
{
Data_Accept("MPEG-4");
@@ -990,6 +1004,12 @@ void File_Mpeg4::mdat()
}
}
}
+
+ //Trace
+ #if MEDIAINFO_TRACE
+ Trace_Levels.set(); //All
+ #endif //MEDIAINFO_TRACE
+
if (!mdat_Pos.empty() && mdat_Pos.begin()->first<File_Offset+Buffer_Offset+Element_TotalSize_Get())
{
//Next piece of data
@@ -2066,6 +2086,45 @@ void File_Mpeg4::moov_trak_mdia_minf()
}
//---------------------------------------------------------------------------
+void File_Mpeg4::moov_trak_mdia_minf_code()
+{
+ Element_Name("code (found in Avid?)");
+
+ //Parsing
+ Skip_B4( "Unknown");
+ Skip_B4( "Unknown");
+ Skip_B4( "Unknown");
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg4::moov_trak_mdia_minf_code_sean()
+{
+ Element_Name("sean (found in Avid?)");
+
+ //Parsing
+ Skip_B4( "Unknown");
+ Skip_B4( "Unknown");
+ Skip_B4( "Unknown");
+}
+
+//---------------------------------------------------------------------------
+void File_Mpeg4::moov_trak_mdia_minf_code_sean_RU_A()
+{
+ Element_Name("RU*A (found in Avid?)");
+
+ //Parsing
+ Ztring Path;
+ Skip_B4( "Unknown");
+ Skip_B4( "Unknown");
+ Skip_B4( "Unknown");
+ Get_Local(Element_Size-Element_Offset, Path, "Path?");
+
+ FILLING_BEGIN();
+ Stream[moov_trak_tkhd_TrackID].File_Name=Path;
+ FILLING_END();
+}
+
+//---------------------------------------------------------------------------
void File_Mpeg4::moov_trak_mdia_minf_dinf()
{
Element_Name("Data Information");
@@ -2206,13 +2265,15 @@ void File_Mpeg4::moov_trak_mdia_minf_dinf_dref_alis()
Skip_XX(Element_Size-Element_Offset, "Padding");
FILLING_BEGIN();
- Stream[moov_trak_tkhd_TrackID].File_Name.clear();
- if (!Directory_Name.empty())
+ if (Stream[moov_trak_tkhd_TrackID].File_Name.empty()) //Priority to "code" version
{
- Stream[moov_trak_tkhd_TrackID].File_Name=Directory_Name;
- Stream[moov_trak_tkhd_TrackID].File_Name+=ZenLib::PathSeparator;
+ if (!Directory_Name.empty())
+ {
+ Stream[moov_trak_tkhd_TrackID].File_Name=Directory_Name;
+ Stream[moov_trak_tkhd_TrackID].File_Name+=ZenLib::PathSeparator;
+ }
+ Stream[moov_trak_tkhd_TrackID].File_Name+=file_name_string;
}
- Stream[moov_trak_tkhd_TrackID].File_Name+=file_name_string;
FILLING_END();
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
index aef3ffd4d..0e4ebcebc 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
@@ -200,10 +200,13 @@ File_MpegPs::File_MpegPs()
#if MEDIAINFO_EVENTS
ParserIDs[0]=MediaInfo_Parser_MpegPs;
StreamIDs_Width[0]=2;
- #if MEDIAINFO_DEMUX
- Demux_Level=2; //Container
- #endif //MEDIAINFO_DEMUX
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_DEMUX
+ Demux_Level=2; //Container
+ #endif //MEDIAINFO_DEMUX
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(0); //Container1
+ #endif //MEDIAINFO_TRACE
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
Trusted_Multiplier=2;
@@ -3208,6 +3211,18 @@ bool File_MpegPs::Header_Parser_QuickSearch()
//Getting start_code
int8u start_code=Buffer[Buffer_Offset+3];
+ //Trace config
+ #if MEDIAINFO_TRACE
+ if (start_code==0xC0 || start_code==0xE0)
+ {
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ }
+ else
+ {
+ Trace_Levels.set(IsSub?1:0);
+ }
+ #endif //MEDIAINFO_TRACE
+
//Searching start
if (Streams[start_code].Searching_Payload)
{
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
index 3886f2a13..5741def11 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
@@ -326,6 +326,17 @@ void File_MpegTs::Streams_Fill()
if (Complete_Stream->Streams[PID].IsPCR && Complete_Stream->Streams[PID].TimeStamp_End!=(int64u)-1)
Header_Parse_AdaptationField_Duration_Update();
#endif //MEDIAINFO_MPEGTS_PCR_YES
+
+ //Commercial name
+ if (Count_Get(Stream_Video)==1
+ && Count_Get(Stream_Audio)==1
+ && Retrieve(Stream_Video, 0, Video_Format)==_T("MPEG Video")
+ && Retrieve(Stream_Video, 0, Video_Format_Commercial_IfAny).find(_T("HDV"))==0
+ && Retrieve(Stream_Audio, 0, Audio_Format)==_T("MPEG Audio")
+ && Retrieve(Stream_Audio, 0, Audio_Format_Version)==_T("Version 1")
+ && Retrieve(Stream_Audio, 0, Audio_Format_Profile)==_T("Layer 2")
+ && Retrieve(Stream_Audio, 0, Audio_BitRate)==_T("384000"))
+ Fill(Stream_General, 0, General_Format_Commercial_IfAny, Retrieve(Stream_Video, 0, Video_Format_Commercial_IfAny));
}
//---------------------------------------------------------------------------
@@ -483,17 +494,6 @@ void File_MpegTs::Streams_Fill_PerStream()
}
}
- //Commercial name
- if (Count_Get(Stream_Video)==1
- && Count_Get(Stream_Audio)==1
- && Retrieve(Stream_Video, 0, Video_Format)==_T("MPEG Video")
- && Retrieve(Stream_Video, 0, Video_Format_Commercial_IfAny).find(_T("HDV"))==0
- && Retrieve(Stream_Audio, 0, Audio_Format)==_T("MPEG Audio")
- && Retrieve(Stream_Audio, 0, Audio_Format_Version)==_T("Version 1")
- && Retrieve(Stream_Audio, 0, Audio_Format_Profile)==_T("Layer 2")
- && Retrieve(Stream_Audio, 0, Audio_BitRate)==_T("384000"))
- Fill(Stream_General, 0, Video_Format_Commercial_IfAny, Retrieve(Stream_Video, 0, Video_Format_Commercial_IfAny));
-
//Desactivating the stream (except for timestamp)
Temp.Searching_Payload_Start_Set(false);
Temp.Searching_Payload_Continue_Set(false);
@@ -691,6 +691,18 @@ bool File_MpegTs::Synched_Test()
complete_stream::streams::iterator Stream=Complete_Stream->Streams.begin()+PID;
if (Stream->Searching)
{
+ //Trace config
+ #if MEDIAINFO_TRACE
+ if (Stream->Kind==complete_stream::stream::pes)
+ {
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ }
+ else
+ {
+ Trace_Levels.set(IsSub?1:0);
+ }
+ #endif //MEDIAINFO_TRACE
+
payload_unit_start_indicator=(Buffer[Buffer_Offset+BDAV_Size+1]&0x40)!=0;
if (payload_unit_start_indicator)
{
@@ -924,6 +936,15 @@ void File_MpegTs::Read_Buffer_Unsynched()
Clear(Stream_Menu, StreamPos, Menu_Duration);
}
+//---------------------------------------------------------------------------
+void File_MpegTs::Read_Buffer_Continue()
+{
+ if (Buffer_TotalBytes>MpegTs_JumpTo_Begin+MpegTs_JumpTo_End)
+ Config->State_Set((float)0.99); //Nearly the end
+ else
+ Config->State_Set(((float)Buffer_TotalBytes)/(MpegTs_JumpTo_Begin+MpegTs_JumpTo_End));
+}
+
//***************************************************************************
// Buffer - File header
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.h b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.h
index 8c0cdfbf5..d3cb8312a 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.h
@@ -74,6 +74,7 @@ private :
void Option_Manage ();
//Buffer - Global
+ void Read_Buffer_Continue();
void Read_Buffer_Unsynched();
//Buffer - Per element
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp b/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp
index 9664289d9..a640b8115 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Riff_Elements.cpp
@@ -799,11 +799,13 @@ void File_Riff::AVI__GMET()
List.Write(Value);
//Details
- if (MediaInfoLib::Config.DetailsLevel_Get())
- {
- //for (size_t Pos=0; Pos<List.size(); Pos++)
- // Details_Add_Info(Pos, List(Pos, 0).To_Local().c_str(), List(Pos, 1));
- }
+ #if MEDIAINFO_TRACE
+ if (Config_Trace_Level)
+ {
+ //for (size_t Pos=0; Pos<List.size(); Pos++)
+ // Details_Add_Info(Pos, List(Pos, 0).To_Local().c_str(), List(Pos, 1));
+ }
+ #endif //MEDIAINFO_TRACE
//Filling
for (size_t Pos=0; Pos<List.size(); Pos++)
@@ -2144,20 +2146,22 @@ void File_Riff::AVI__movi_xxxx()
}
Stream[Stream_ID].PacketPos++;
- if (MediaInfoLib::Config.DetailsLevel_Get())
- {
- switch (Element_Code&0x0000FFFF) //2 last bytes
- {
- case Elements::AVI__movi_xxxx_____ : Element_Info("DV"); break;
- case Elements::AVI__movi_xxxx___db :
- case Elements::AVI__movi_xxxx___dc : Element_Info("Video"); break;
- case Elements::AVI__movi_xxxx___sb :
- case Elements::AVI__movi_xxxx___tx : Element_Info("Text"); break;
- case Elements::AVI__movi_xxxx___wb : Element_Info("Audio"); break;
- default : Element_Info("Unknown"); break;
- }
- Element_Info(Stream[Stream_ID].PacketPos);
- }
+ #if MEDIAINFO_TRACE
+ if (Config_Trace_Level)
+ {
+ switch (Element_Code&0x0000FFFF) //2 last bytes
+ {
+ case Elements::AVI__movi_xxxx_____ : Element_Info("DV"); break;
+ case Elements::AVI__movi_xxxx___db :
+ case Elements::AVI__movi_xxxx___dc : Element_Info("Video"); break;
+ case Elements::AVI__movi_xxxx___sb :
+ case Elements::AVI__movi_xxxx___tx : Element_Info("Text"); break;
+ case Elements::AVI__movi_xxxx___wb : Element_Info("Audio"); break;
+ default : Element_Info("Unknown"); break;
+ }
+ Element_Info(Stream[Stream_ID].PacketPos);
+ }
+ #endif //MEDIAINFO_TRACE
//Some specific stuff
switch (Element_Code&0x0000FFFF) //2 last bytes
diff --git a/src/thirdparty/MediaInfo/Video/File_Avc.cpp b/src/thirdparty/MediaInfo/Video/File_Avc.cpp
index 674e00fc8..12bd919e5 100644
--- a/src/thirdparty/MediaInfo/Video/File_Avc.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Avc.cpp
@@ -330,6 +330,9 @@ File_Avc::File_Avc()
ParserIDs[0]=MediaInfo_Parser_Avc;
StreamIDs_Width[0]=0;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ #endif //MEDIAINFO_TRACE
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
PTS_DTS_Needed=true;
diff --git a/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp b/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp
index 13a09af5c..6cf7fa20e 100644
--- a/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Mpegv.cpp
@@ -281,6 +281,9 @@ File_Mpegv::File_Mpegv()
ParserIDs[0]=MediaInfo_Parser_Mpegv;
StreamIDs_Width[0]=16;
#endif //MEDIAINFO_EVENTS
+ #if MEDIAINFO_TRACE
+ Trace_Levels.reset(); Trace_Levels.set(8); //Stream
+ #endif //MEDIAINFO_TRACE
Trusted_Multiplier=2;
MustSynchronize=true;
Buffer_TotalBytes_FirstSynched_Max=64*1024;
@@ -620,6 +623,39 @@ void File_Mpegv::Streams_Fill()
if (AfdBarData_Parser)
Merge(*AfdBarData_Parser, Stream_Video, 0, 0);
#endif //defined(MEDIAINFO_AFDBARDATA_YES)
+
+ //Commercial name
+ if (Retrieve(Stream_Video, 0, Video_Format_Version)==_T("Version 2")
+ && Retrieve(Stream_Video, 0, Video_DisplayAspectRatio)==_T("1.778")
+ && Retrieve(Stream_Video, 0, Video_BitDepth)==_T("8")
+ && Retrieve(Stream_Video, 0, Video_ChromaSubsampling)==_T("4:2:0"))
+ {
+ //HDV1
+ if (Retrieve(Stream_Video, 0, Video_Width)==_T("1280")
+ && Retrieve(Stream_Video, 0, Video_Height)==_T("720")
+ && Retrieve(Stream_Video, 0, Video_ScanType)==_T("Progressive")
+ && (Retrieve(Stream_Video, 0, Video_FrameRate)==_T("60.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("59.940") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("30.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("29.970") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("24.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("23.976") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("50.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("25.000"))
+ && (Retrieve(Stream_Video, 0, Video_Format_Profile)==_T("Main@High") || Retrieve(Stream_Video, 0, Video_Format_Profile)==_T("Main@High 1440"))
+ && Retrieve(Stream_Video, 0, Video_BitRate).To_int64u()<20000000 && Retrieve(Stream_Video, 0, Video_BitRate_Nominal).To_int64u()<20000000)
+ Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "HDV 720p");
+
+ //HDV2
+ if (Retrieve(Stream_Video, 0, Video_Width)==_T("1440")
+ && Retrieve(Stream_Video, 0, Video_Height)==_T("1080")
+ && Retrieve(Stream_Video, 0, Video_Format_Profile)==_T("Main@High 1440")
+ && Retrieve(Stream_Video, 0, Video_BitRate).To_int64u()<27000000 && Retrieve(Stream_Video, 0, Video_BitRate_Nominal).To_int64u()<27000000)
+ {
+ //Interlaced
+ if (Retrieve(Stream_Video, 0, Video_ScanType)==_T("Interlaced")
+ && (Retrieve(Stream_Video, 0, Video_FrameRate)==_T("30.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("29.970") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("50.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("25.000")))
+ Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "HDV 1080i");
+
+ //Progressive
+ if (Retrieve(Stream_Video, 0, Video_ScanType)==_T("Progressive")
+ && (Retrieve(Stream_Video, 0, Video_FrameRate)==_T("30.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("29.970") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("24.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("23.976") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("50.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("25.000")))
+ Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "HDV 1080p");
+ }
+ }
}
//---------------------------------------------------------------------------
@@ -722,39 +758,6 @@ void File_Mpegv::Streams_Finish()
delete TemporalReference[Pos]; //TemporalReference[Pos]=NULL;
TemporalReference.clear();
}
-
- //Commercial name
- if (Retrieve(Stream_Video, 0, Video_Format_Version)==_T("Version 2")
- && Retrieve(Stream_Video, 0, Video_DisplayAspectRatio)==_T("1.778")
- && Retrieve(Stream_Video, 0, Video_BitDepth)==_T("8")
- && Retrieve(Stream_Video, 0, Video_ChromaSubsampling)==_T("4:2:0"))
- {
- //HDV1
- if (Retrieve(Stream_Video, 0, Video_Width)==_T("1280")
- && Retrieve(Stream_Video, 0, Video_Height)==_T("720")
- && Retrieve(Stream_Video, 0, Video_ScanType)==_T("Progressive")
- && (Retrieve(Stream_Video, 0, Video_FrameRate)==_T("60.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("59.940") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("30.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("29.970") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("24.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("23.976") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("50.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("25.000"))
- && (Retrieve(Stream_Video, 0, Video_Format_Profile)==_T("Main@High") || Retrieve(Stream_Video, 0, Video_Format_Profile)==_T("Main@High 1440"))
- && Retrieve(Stream_Video, 0, Video_BitRate).To_int64u()<20000000 && Retrieve(Stream_Video, 0, Video_BitRate_Nominal).To_int64u()<20000000)
- Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "HDV 720p");
-
- //HDV2
- if (Retrieve(Stream_Video, 0, Video_Width)==_T("1440")
- && Retrieve(Stream_Video, 0, Video_Height)==_T("1080")
- && Retrieve(Stream_Video, 0, Video_Format_Profile)==_T("Main@High 1440")
- && Retrieve(Stream_Video, 0, Video_BitRate).To_int64u()<27000000 && Retrieve(Stream_Video, 0, Video_BitRate_Nominal).To_int64u()<27000000)
- {
- //Interlaced
- if (Retrieve(Stream_Video, 0, Video_ScanType)==_T("Interlaced")
- && (Retrieve(Stream_Video, 0, Video_FrameRate)==_T("30.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("29.970") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("50.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("25.000")))
- Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "HDV 1080i");
-
- //Progressive
- if (Retrieve(Stream_Video, 0, Video_ScanType)==_T("Progressive")
- && (Retrieve(Stream_Video, 0, Video_FrameRate)==_T("30.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("29.970") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("24.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("23.976") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("50.000") || Retrieve(Stream_Video, 0, Video_FrameRate)==_T("25.000")))
- Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "HDV 1080p");
- }
- }
}
//***************************************************************************