当前位置: 首页 > news >正文

网站建设图片大全深圳网站建设知名 乐云践新

网站建设图片大全,深圳网站建设知名 乐云践新,惠州市 网站开发公司,产品造型设计MediaInfo源代码分析系列文章列表#xff1a; MediaInfo源代码分析 1#xff1a;整体结构 MediaInfo源代码分析 2#xff1a;API函数 MediaInfo源代码分析 3#xff1a;Open()函数 MediaInfo源代码分析 4#xff1a;Inform()函数 MediaInfo源代码分析 5#xff1a;JPEG解… MediaInfo源代码分析系列文章列表 MediaInfo源代码分析 1整体结构 MediaInfo源代码分析 2API函数 MediaInfo源代码分析 3Open()函数 MediaInfo源代码分析 4Inform()函数 MediaInfo源代码分析 5JPEG解析代码分析 我们来看一下MediaInfo中的Open()函数的内部调用过程 首先open函数封装了MediaInfo_Internal类中的open()函数 //打开文件 size_t MediaInfo::Open(const String File_Name_) {//封装了一层return Internal-Open(File_Name_); } 查看一下MediaInfo_Internal类中的open()函数的源代码 //打开文件 size_t MediaInfo_Internal::Open(const String File_Name_) {Close();CS.Enter();MEDIAINFO_DEBUG_CONFIG_TEXT(Debug__T(Open, File);DebugZtring(File_Name_).c_str();)//清空文件列表Config.File_Names.clear();if (Config.File_FileNameFormat_Get()__T(CSV)){Config.File_Names.Separator_Set(0, __T(,));Config.File_Names.Write(File_Name_);}//添加文件名到文件名列表else if (!File_Name_.empty())Config.File_Names.push_back(File_Name_);if (Config.File_Names.empty()){CS.Leave();return 0;}Config.File_Names_Pos1;CS.Leave();//Parsing//解析if (BlockMethod1){if (!IsInThread) //If already created, the routine will read the new files{Run();IsInThreadtrue;}return 0;}else{Entry(); //Normal parsingreturn Count_Get(Stream_General);} } 在打开之前首先调用Close()进行清理将文件路径添加到一个列表实际上是一个Vector中调用Entry()进行解析。 查看一下Entry()函数的源代码 //解析函数 void MediaInfo_Internal::Entry() {CS.Enter();MEDIAINFO_DEBUG_CONFIG_TEXT(Debug__T(Entry);)Config.State_Set(0);CS.Leave();//解析文件名是否包含MMS//需要libmmsif ((Config.File_Names[0].size()6 Config.File_Names[0][0]__T(m) Config.File_Names[0][1]__T(m) Config.File_Names[0][2]__T(s) Config.File_Names[0][3]__T(:) Config.File_Names[0][4]__T(/) Config.File_Names[0][5]__T(/))|| (Config.File_Names[0].size()7 Config.File_Names[0][0]__T(m) Config.File_Names[0][1]__T(m) Config.File_Names[0][2]__T(s) Config.File_Names[0][3]__T(h) Config.File_Names[0][4]__T(:) Config.File_Names[0][5]__T(/) Config.File_Names[0][6]__T(/)))#if defined(MEDIAINFO_LIBMMS_YES)Reader_libmms().Format_Test(this, Config.File_Names[0]);#else //MEDIAINFO_LIBMMS_YES{#if MEDIAINFO_EVENTSstruct MediaInfo_Event_Log_0 Event;Event.EventCodeMediaInfo_EventCode_Create(MediaInfo_Parser_None, MediaInfo_Event_Log, 0);Event.Type0xC0;Event.Severity0xFF;Event.MessageCode0;Event.MessageStringULLibmms cupport is disabled due to compilation options;Event.MessageStringALibmms cupport is disabled due to compilation options;MediaInfoLib::Config.Event_Send((const int8u*)Event, sizeof(MediaInfo_Event_Log_0));#endif //MEDIAINFO_EVENTS}#endif //MEDIAINFO_LIBMMS_YES//是否包含网络协议标记为:////需要使用libcurl - the multiprotocol file transfer libraryelse if (Config.File_Names[0].find(__T(://))!string::npos)#if defined(MEDIAINFO_LIBCURL_YES){CS.Enter();if (Reader){CS.Leave();return; //There is a problem}Readernew Reader_libcurl();CS.Leave();Reader-Format_Test(this, Config.File_Names[0]);#if MEDIAINFO_NEXTPACKETif (Config.NextPacket_Get())return;#endif //MEDIAINFO_NEXTPACKET}#else //MEDIAINFO_LIBCURL_YES{#if MEDIAINFO_EVENTSstruct MediaInfo_Event_Log_0 Event;Event.EventCodeMediaInfo_EventCode_Create(MediaInfo_Parser_None, MediaInfo_Event_Log, 0);Event.Type0xC0;Event.Severity0xFF;Event.MessageCode0;Event.MessageStringULLibcurl support is disabled due to compilation options;Event.MessageStringALibcurl support is disabled due to compilation options;MediaInfoLib::Config.Event_Send((const int8u*)Event, sizeof(MediaInfo_Event_Log_0));#endif //MEDIAINFO_EVENTS}#endif //MEDIAINFO_LIBCURL_YES#if defined(MEDIAINFO_DIRECTORY_YES)else if (Dir::Exists(Config.File_Names[0]))Reader_Directory().Format_Test(this, Config.File_Names[0]);#endif //MEDIAINFO_DIRECTORY_YES//是普通文件并且文件存在#if defined(MEDIAINFO_FILE_YES)else if (File::Exists(Config.File_Names[0])){#if defined(MEDIAINFO_REFERENCES_YES)string Dxw;if (Config.File_CheckSideCarFiles_Get() !Config.File_IsReferenced_Get()){//Zenlib中竟然包含专用于文件名操作的类FileName Test(Config.File_Names[0]);//获得小写的文件名后缀Ztring FileExtensionTest.Extension_Get();FileExtension.MakeLowerCase();//逐个比较这些都是文本文件的后缀if (FileExtension!__T(dfxp)){Test.Extension_Set(__T(dfxp));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().dfxp\ /\r\n;}if (FileExtension!__T(sami)){Test.Extension_Set(__T(sami));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().sami\ /\r\n;}if (FileExtension!__T(sc2)){Test.Extension_Set(__T(sc2));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().sc2\ /\r\n;}if (FileExtension!__T(scc)){Test.Extension_Set(__T(scc));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().scc\ /\r\n;}if (FileExtension!__T(smi)){Test.Extension_Set(__T(smi));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().smi\ /\r\n;}//字幕if (FileExtension!__T(srt)){Test.Extension_Set(__T(srt));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().srt\ /\r\n;}if (FileExtension!__T(stl)){Test.Extension_Set(__T(stl));if (File::Exists(Test))Dxw clip file\Test.Name_Get().To_UTF8().stl\ /\r\n;}Ztring NameTest.Name_Get();Ztring BaseNameName.SubString(Ztring(), __T(_));if (!BaseName.empty()){ZtringList List;ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_audio.mp4), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.dfxp), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.sami), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.sc2), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.scc), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.smi), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.srt), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_sub.stl), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.dfxp), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.sami), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.sc2), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.scc), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.smi), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.srt), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_forcesub.stl), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.dfxp), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.sami), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.sc2), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.scc), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.smi), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.srt), Dir::Include_Files);ListDir::GetAllFileNames(Test.Path_Get()PathSeparatorBaseName__T(_*_cc.stl), Dir::Include_Files);for (size_t Pos0; PosList.size(); Pos)Dxw clip file\List[Pos].To_UTF8()\ /\r\n;}if (!Dxw.empty()){Dxw.insert(0, ?xml version\1.0\ encoding\UTF-8\ ?\r\nindexFile xmlns\urn:digimetrics-xml-wrapper\ xmlns:xsi\http://www.w3.org/2001/XMLSchema-instance\ xsi:schemaLocation\urn:digimetrics-xml-wrapper DMSCLIP.XSD\\r\n clip source\main\ file\FileName(Config.File_Names[0]).Name_Get().To_UTF8().FileName(Config.File_Names[0]).Extension_Get().To_UTF8()\ /\r\n);Dxw.append(/indexFile\r\n);Config.File_FileNameFormat_Set(__T(Dxw));}}//为空if (Dxw.empty()){CS.Enter();if (Reader){CS.Leave();return; //There is a problem}Readernew Reader_File();CS.Leave();//测试格式Reader-Format_Test(this, Config.File_Names[0]);}else{//初始化BufferOpen_Buffer_Init(Dxw.size(), FileName(Config.File_Names[0]).Path_Get()PathSeparatorFileName(Config.File_Names[0]).Name_Get());Open_Buffer_Continue((const int8u*)Dxw.c_str(), Dxw.size());Open_Buffer_Finalize();}#else //defined(MEDIAINFO_REFERENCES_YES)CS.Enter();if (Reader){CS.Leave();return; //There is a problem}Readernew Reader_File();CS.Leave();Reader-Format_Test(this, Config.File_Names[0]);#endif //defined(MEDIAINFO_REFERENCES_YES)#if MEDIAINFO_NEXTPACKETif (Config.NextPacket_Get())return;#endif //MEDIAINFO_NEXTPACKET}#endif //MEDIAINFO_FILE_YESCS.Enter();Config.State_Set(1);CS.Leave(); } 我们可以看出MediaInfo支持流媒体协议作为输入源例如mms但前提是要使用相应的库libmms或者libcurl。它会首先查找文件路径中有没有“://”判断是否是流媒体输入。 大多数情况下我们使用本地文件路径作为输入源。这是我们就进入了代码中“#if defined(MEDIAINFO_FILE_YES) 部分下面的代码。具体每块代码的左右都写在代码注释中了不再细说。最后使用 Reader_File的Format_Test()测试输入文件的格式。 看一下Reader_File的Format_Test()的源代码 //用于测试文件格式 size_t Reader_File::Format_Test(MediaInfo_Internal* MI, String File_Name) {//std::coutZtring(File_Name).To_Local().c_str()std::endl;//With Parser MultipleParsing/*MI-Open_Buffer_Init((int64u)-1, File_Name);if (Format_Test_PerParser(MI, File_Name))return 1;return 0; //There is a problem*///Get the Extension//文件后缀Ztring ExtensionFileName::Extension_Get(File_Name);Extension.MakeLowerCase();//Search the theorical format from extensionInfoMap FormatListMediaInfoLib::Config.Format_Get();InfoMap::iterator FormatFormatList.end();if (!MI-Config.File_ForceParser_Get().empty())FormatFormatList.find(MI-Config.File_ForceParser_Get());if (FormatFormatList.end()){FormatFormatList.begin();while (Format!FormatList.end()){const Ztring ExtensionsFormatList.Get(Format-first, InfoFormat_Extensions);if (Extensions.find(Extension)!Error){if(Extension.size()Extensions.size())break; //Only one extenion in the listif(Extensions.find(Extension__T( ))!Error|| Extensions.find(__T( )Extension)!Error)break;}Format;}}if (Format!FormatList.end()){const Ztring ParserFormat-second(InfoFormat_Parser);if (MI-SelectFromExtension(Parser)){//Test the theorical formatif (Format_Test_PerParser(MI, File_Name)0)return 1;}}//遍历所有支持格式测试格式size_t ToReturnMI-ListFormats(File_Name);return ToReturn; } 可以看出最后遍历了所有支持的格式试图找出合适的格式。 最后我们看一下ListFormats()函数用于找出匹配的格式。 由代码可见遍历测试每一种支持的格式。 int MediaInfo_Internal::ListFormats(const String File_Name) {// Multiple// 看看这些格式都是否支持//从上往下遍历//如果遇到某一格式返回值为1便不再进行//否则就进行下一个直到遍历完#if defined(MEDIAINFO_BDAV_YES)delete Info; Infonew File_MpegTs(); ((File_MpegTs*)Info)-BDAV_Size4; if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_BDMV_YES)delete Info; Infonew File_Bdmv(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_CDXA_YES)delete Info; Infonew File_Cdxa(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DCP_YES)delete Info; Infonew File_Dcp(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DVDIF_YES)delete Info; Infonew File_DvDif(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DVDV_YES)delete Info; Infonew File_Dvdv(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DXW_YES)delete Info; Infonew File_Dxw(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_FLV_YES)//检测delete Info; Infonew File_Flv(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_GXF_YES)delete Info; Infonew File_Gxf(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_HLS_YES)delete Info; Infonew File_Hls(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_IBI_YES)delete Info; Infonew File_Ibi(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_ISM_YES)delete Info; Infonew File_Ism(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_IVF_YES)delete Info; Infonew File_Ivf(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_LXF_YES)delete Info; Infonew File_Lxf(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MK_YES)delete Info; Infonew File_Mk(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPEG4_YES)delete Info; Infonew File_Mpeg4(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPEGPS_YES)delete Info; Infonew File_MpegPs(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPEGTS_YES)delete Info; Infonew File_MpegTs(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPLI_YES)delete Info; Infonew File_Mpli(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MXF_YES)delete Info; Infonew File_Mxf(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_NUT_YES)delete Info; Infonew File_Nut(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_OGG_YES)delete Info; Infonew File_Ogg(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_P2_YES)delete Info; Infonew File_P2_Clip(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_PMP_YES)delete Info; Infonew File_Pmp(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_RIFF_YES)delete Info; Infonew File_Riff(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_RM_YES)delete Info; Infonew File_Rm(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_SEQUENCEINFO_YES)delete Info; Infonew File_SequenceInfo(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_SKM_YES)delete Info; Infonew File_Skm(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_SWF_YES)delete Info; Infonew File_Swf(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TSP_YES)delete Info; Infonew File_MpegTs(); ((File_MpegTs*)Info)-TSP_Size16; if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_WM_YES)delete Info; Infonew File_Wm(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_XDCAM_YES)delete Info; Infonew File_Xdcam_Clip(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DPG_YES)delete Info; Infonew File_Dpg(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Video#if defined(MEDIAINFO_AVC_YES)delete Info; Infonew File_Avc(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_HEVC_YES)delete Info; Infonew File_Hevc(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_AVSV_YES)delete Info; Infonew File_AvsV(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DIRAC_YES)delete Info; Infonew File_Dirac(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_FLIC_YES)delete Info; Infonew File_Flic(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_H263_YES)delete Info; Infonew File_H263(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPEG4V_YES)delete Info; Infonew File_Mpeg4v(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPEGV_YES)delete Info; Infonew File_Mpegv(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_VC1_YES)delete Info; Infonew File_Vc1(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_VC3_YES)delete Info; Infonew File_Vc3(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_Y4M_YES)delete Info; Infonew File_Y4m(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Audio#if defined(MEDIAINFO_AAC_YES)delete Info; Infonew File_Aac(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_AC3_YES)delete Info; Infonew File_Ac3(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_SMPTEST0337_YES)delete Info; Infonew File_SmpteSt0337(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_ALS_YES)delete Info; Infonew File_Als(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_AMR_YES)delete Info; Infonew File_Amr(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_AMV_YES)delete Info; Infonew File_Amv(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_APE_YES)delete Info; Infonew File_Ape(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_AU_YES)delete Info; Infonew File_Au(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DTS_YES)delete Info; Infonew File_Dts(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif // Too many false-positives // #if defined(MEDIAINFO_DOLBYE_YES) // delete Info; Infonew File_DolbyE(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1; // #endif#if defined(MEDIAINFO_FLAC_YES)delete Info; Infonew File_Flac(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_IT_YES)delete Info; Infonew File_ImpulseTracker(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_LA_YES)delete Info; Infonew File_La(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MIDI_YES)delete Info; Infonew File_Midi(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MOD_YES)delete Info; Infonew File_Module(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPC_YES)delete Info; Infonew File_Mpc(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPCSV8_YES)delete Info; Infonew File_MpcSv8(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MPEGA_YES)delete Info; Infonew File_Mpega(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_RKAU_YES)delete Info; Infonew File_Rkau(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TAK_YES)delete Info; Infonew File_Tak(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_S3M_YES)delete Info; Infonew File_ScreamTracker3(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TTA_YES)delete Info; Infonew File_Tta(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TWINVQ_YES)delete Info; Infonew File_TwinVQ(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_WVPK_YES)delete Info; Infonew File_Wvpk(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_XM_YES)delete Info; Infonew File_ExtendedModule(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Text#if defined(MEDIAINFO_N19_YES)delete Info; Infonew File_N19(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_SCC_YES)delete Info; Infonew File_Scc(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_SUBRIP_YES)delete Info; Infonew File_SubRip(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TTML_YES)delete Info; Infonew File_Ttml(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_OTHERTEXT_YES)delete Info; Infonew File_OtherText(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Image#if defined(MEDIAINFO_BMP_YES)delete Info; Infonew File_Bmp(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_DPX_YES)delete Info; Infonew File_Dpx(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_GIF_YES)delete Info; Infonew File_Gif(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_ICO_YES)delete Info; Infonew File_Ico(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_JPEG_YES)delete Info; Infonew File_Jpeg(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_PCX_YES)delete Info; Infonew File_Pcx(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_PNG_YES)delete Info; Infonew File_Png(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_PSD_YES)delete Info; Infonew File_Psd(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TIFF_YES)delete Info; Infonew File_Tiff(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TGA_YES)delete Info; Infonew File_Tga(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Archive#if defined(MEDIAINFO_ACE_YES)delete Info; Infonew File_Ace(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_7Z_YES)delete Info; Infonew File_7z(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_BZIP2_YES)delete Info; Infonew File_Bzip2(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_ELF_YES)delete Info; Infonew File_Elf(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_GZIP_YES)delete Info; Infonew File_Gzip(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_ISO9660_YES)delete Info; Infonew File_Iso9660(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_MZ_YES)delete Info; Infonew File_Mz(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_RAR_YES)delete Info; Infonew File_Rar(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_TAR_YES)delete Info; Infonew File_Tar(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif#if defined(MEDIAINFO_ZIP_YES)delete Info; Infonew File_Zip(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Other#if !defined(MEDIAINFO_OTHER_NO)delete Info; Infonew File_Other(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;#endif// Default (empty)delete Info; Infonew File_Unknown(); if (((Reader_File*)Reader)-Format_Test_PerParser(this, File_Name)0) return 1;return 0; } 至此Open()函数的分析完毕。
文章转载自:
http://www.morning.bswhr.cn.gov.cn.bswhr.cn
http://www.morning.wlxfj.cn.gov.cn.wlxfj.cn
http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn
http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn
http://www.morning.diuchai.com.gov.cn.diuchai.com
http://www.morning.dmlsk.cn.gov.cn.dmlsk.cn
http://www.morning.bpmfl.cn.gov.cn.bpmfl.cn
http://www.morning.yqtry.cn.gov.cn.yqtry.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.klyzg.cn.gov.cn.klyzg.cn
http://www.morning.nyhtf.cn.gov.cn.nyhtf.cn
http://www.morning.tzcr.cn.gov.cn.tzcr.cn
http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn
http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn
http://www.morning.lxfyn.cn.gov.cn.lxfyn.cn
http://www.morning.kfbth.cn.gov.cn.kfbth.cn
http://www.morning.mztyh.cn.gov.cn.mztyh.cn
http://www.morning.blfgh.cn.gov.cn.blfgh.cn
http://www.morning.leboju.com.gov.cn.leboju.com
http://www.morning.spfh.cn.gov.cn.spfh.cn
http://www.morning.cfcdr.cn.gov.cn.cfcdr.cn
http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn
http://www.morning.xyrss.cn.gov.cn.xyrss.cn
http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn
http://www.morning.rntgy.cn.gov.cn.rntgy.cn
http://www.morning.sbwr.cn.gov.cn.sbwr.cn
http://www.morning.rqgq.cn.gov.cn.rqgq.cn
http://www.morning.dktyc.cn.gov.cn.dktyc.cn
http://www.morning.sloxdub.cn.gov.cn.sloxdub.cn
http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn
http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn
http://www.morning.kqfdrqb.cn.gov.cn.kqfdrqb.cn
http://www.morning.nsppc.cn.gov.cn.nsppc.cn
http://www.morning.ykgp.cn.gov.cn.ykgp.cn
http://www.morning.fpngg.cn.gov.cn.fpngg.cn
http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn
http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn
http://www.morning.hryhq.cn.gov.cn.hryhq.cn
http://www.morning.khlxd.cn.gov.cn.khlxd.cn
http://www.morning.eviap.com.gov.cn.eviap.com
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn
http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn
http://www.morning.swkzr.cn.gov.cn.swkzr.cn
http://www.morning.ie-comm.com.gov.cn.ie-comm.com
http://www.morning.crxdn.cn.gov.cn.crxdn.cn
http://www.morning.hslgq.cn.gov.cn.hslgq.cn
http://www.morning.lthtp.cn.gov.cn.lthtp.cn
http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn
http://www.morning.fzlk.cn.gov.cn.fzlk.cn
http://www.morning.zbgqt.cn.gov.cn.zbgqt.cn
http://www.morning.fgrkc.cn.gov.cn.fgrkc.cn
http://www.morning.ebpz.cn.gov.cn.ebpz.cn
http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn
http://www.morning.nzklw.cn.gov.cn.nzklw.cn
http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn
http://www.morning.jcrlx.cn.gov.cn.jcrlx.cn
http://www.morning.prfrb.cn.gov.cn.prfrb.cn
http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn
http://www.morning.blqgc.cn.gov.cn.blqgc.cn
http://www.morning.ycnqk.cn.gov.cn.ycnqk.cn
http://www.morning.zfqdt.cn.gov.cn.zfqdt.cn
http://www.morning.rgxf.cn.gov.cn.rgxf.cn
http://www.morning.kcfnp.cn.gov.cn.kcfnp.cn
http://www.morning.lsfbb.cn.gov.cn.lsfbb.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn
http://www.morning.xrtsx.cn.gov.cn.xrtsx.cn
http://www.morning.zrdqz.cn.gov.cn.zrdqz.cn
http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn
http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn
http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn
http://www.morning.rlwgn.cn.gov.cn.rlwgn.cn
http://www.morning.htqrh.cn.gov.cn.htqrh.cn
http://www.morning.ntgjm.cn.gov.cn.ntgjm.cn
http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.hwljx.cn.gov.cn.hwljx.cn
http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn
http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn
http://www.tj-hxxt.cn/news/241073.html

相关文章:

  • 做电影类网站收入怎么样专题学习网站模板
  • 个体户可以做企业网站安徽省住房和城乡建设厅官网网站
  • 网站路径问题制作自己的名字免费的
  • jQuery EasyUI网站开发实战虚拟主机配置
  • 深圳网站制作建设公司推荐怎么做非法彩票网站
  • 网站后台管理代码做商城网站需要的功能
  • 非专业人士可以做网站编辑的工作吗门户网站建设的必要性
  • 重庆主城推广网站建设产品设计去哪里找工作
  • 电子产品东莞网站建设怎么在自己的网站上传视频
  • 有哪些做PPT背景网站国家企业信用信息公示系统官网全国
  • 导航网站好处装饰公司响应式网站建设案例
  • 中国建设银行官方网站登录入口下载教学设计的网站
  • 政务服务网站建设技术因素东莞高端做网站公司
  • 烟台网站制作开发网站建设南宁
  • 1.申请网站空间做网页难不难
  • 景点购票网站开发从百万到千万 网站怎么优化
  • 手机网站建站cms在虚拟机做网站
  • 020网站建设和维护费用移动端前端开发需要学什么
  • 罗湖商城网站设计制作郑州网站策划
  • 网站可以跟博客做互链吗打开网站总显示建设中
  • 深喉咙企业网站生成系统百度搜索推广的定义
  • 哪个网站开发小程序苏州市住房城乡建设局网站
  • 广元市建设局网站首页重庆最专业的房产网站建设
  • 采网站建设wordpress登录后评论
  • 门户网站制作百度信息流推广教程
  • 装饰公司网站源码wordpress 调用用户头像
  • 深圳专业做网站较好的公司天津seo排名收费
  • 西安直播网站开发北京考试学院网站首页
  • 做面条的网站网页添加背景图片代码
  • 如何在建设银行网站查验回单与网站建立的连接不安全