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-09-17 02:04:26 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2010-09-17 02:04:26 +0400
commit09b74d9b765024f9c32e2e220abcca5a7a8da505 (patch)
tree3932d5a54d098de48444f93b17d21ae42124616c /src/thirdparty/MediaInfo
parent6c43f3dcc61e35d7adccf31124bac8ec34e40945 (diff)
Updated MediaInfo, fixed installer build after 2574
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2576 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/thirdparty/MediaInfo')
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Aac.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Adpcm.cpp4
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Dts.cpp5
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Pcm.cpp4
-rw-r--r--src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp17
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Streams.cpp6
-rw-r--r--src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp10
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcproj8
-rw-r--r--src/thirdparty/MediaInfo/MediaInfoLib.vcxproj8
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Flv.cpp15
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp6
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Ivf.cpp23
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp6
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mk.cpp11
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mk.h2
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp16
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp44
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegPs.h2
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp6
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp16
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp53
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Mxf.h6
-rw-r--r--src/thirdparty/MediaInfo/Multiple/File_Rm.cpp3
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_libcurl.cpp50
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_libcurl.h1
-rw-r--r--src/thirdparty/MediaInfo/Reader/Reader_libcurl_Include.h900
-rw-r--r--src/thirdparty/MediaInfo/Setup.h4
-rw-r--r--src/thirdparty/MediaInfo/Tag/File_Id3v2.cpp43
-rw-r--r--src/thirdparty/MediaInfo/Tag/File_Id3v2.h1
-rw-r--r--src/thirdparty/MediaInfo/Tag/File_VorbisCom.cpp1
-rw-r--r--src/thirdparty/MediaInfo/Text/File_OtherText.cpp4
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Avc.cpp12
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Avc.h6
-rw-r--r--src/thirdparty/MediaInfo/Video/File_Mpegv.h4
34 files changed, 1141 insertions, 159 deletions
diff --git a/src/thirdparty/MediaInfo/Audio/File_Aac.cpp b/src/thirdparty/MediaInfo/Audio/File_Aac.cpp
index cee708f1e..246f894a3 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Aac.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Aac.cpp
@@ -92,8 +92,7 @@ void File_Aac::From_Codec()
Fill(Stream_Audio, 0, Audio_Codec, Codec);
Ztring Profile;
int8u Version=0, SBR=2, PS=2;
- if (0);
- else if (Codec==_T("A_AAC/MPEG2/MAIN")) {Version=2; Profile=_T("Main");}
+ if (Codec==_T("A_AAC/MPEG2/MAIN")) {Version=2; Profile=_T("Main");}
else if (Codec==_T("A_AAC/MPEG2/LC")) {Version=2; Profile=_T("LC"); SBR=0;}
else if (Codec==_T("A_AAC/MPEG2/LC/SBR")) {Version=2; Profile=_T("LC"); SBR=1;}
else if (Codec==_T("A_AAC/MPEG2/SSR")) {Version=2; Profile=_T("SSR");}
diff --git a/src/thirdparty/MediaInfo/Audio/File_Adpcm.cpp b/src/thirdparty/MediaInfo/Audio/File_Adpcm.cpp
index 537a847f0..8c35ce606 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Adpcm.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Adpcm.cpp
@@ -52,9 +52,7 @@ void File_Adpcm::Read_Buffer_Continue()
Fill(Stream_General, 0, Audio_Format, "ADPCM");
Fill(Stream_General, 0, Audio_Codec, "ADPCM");
Ztring Profile, Firm;
- if (0)
- ;
- else if (Codec==_T("alaw")) {Profile=_T("A-Law");}
+ if (Codec==_T("alaw")) {Profile=_T("A-Law");}
else if (Codec==_T("ulaw")) {Profile=_T("U-Law");}
else if (Codec==_T("ima4")) { Firm=_T("IMA");}
else if (Codec==_T("6")) {Profile=_T("A-Law");}
diff --git a/src/thirdparty/MediaInfo/Audio/File_Dts.cpp b/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
index 12b242d15..be6e1111f 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Dts.cpp
@@ -1034,7 +1034,10 @@ void File_Dts::Core_XCh(int64u Size)
BS_End();
if (XChFSIZE==Element_Size-(Element_Offset-6))
XChFSIZE--; //Compatibility reason (from specs)
- Skip_XX(XChFSIZE+1-6, "XCh data");
+ if (XChFSIZE+1-6<=Size-2)
+ Skip_XX(XChFSIZE+1-6, "XCh data");
+ else
+ Skip_XX(Size-2, "XCh data (with problem)");
FILLING_BEGIN();
channel_arrangement_XCh=AMODE;
diff --git a/src/thirdparty/MediaInfo/Audio/File_Pcm.cpp b/src/thirdparty/MediaInfo/Audio/File_Pcm.cpp
index 79ffb1f91..278ae161c 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Pcm.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Pcm.cpp
@@ -125,9 +125,7 @@ void File_Pcm::Streams_Fill()
{
//Filling
Ztring Firm, Endianness, Sign, ITU, Resolution;
- if (0)
- ;
- else if (Codec==_T("EVOB")) {Firm=_T(""); Endianness=_T("Big"); Sign=_T("Signed"); Resolution=_T("16");} //PCM Signed 16 bits Big Endian, Interleavement is for 2 samples*2 channels L0-1/L0-0/R0-1/R0-0/L1-1/L1-0/R1-1/R1-0/L0-2/R0-2/L1-2/R1-2, http://wiki.multimedia.cx/index.php?title=PCM
+ if (Codec==_T("EVOB")) {Firm=_T(""); Endianness=_T("Big"); Sign=_T("Signed"); Resolution=_T("16");} //PCM Signed 16 bits Big Endian, Interleavement is for 2 samples*2 channels L0-1/L0-0/R0-1/R0-0/L1-1/L1-0/R1-1/R1-0/L0-2/R0-2/L1-2/R1-2, http://wiki.multimedia.cx/index.php?title=PCM
else if (Codec==_T("VOB")) {Firm=_T(""); Endianness=_T("Big"); Sign=_T("Signed"); Resolution=_T("16");} //PCM Signed 16 bits Big Endian, Interleavement is for 2 samples*2 channels L0-1/L0-0/R0-1/R0-0/L1-1/L1-0/R1-1/R1-0/L0-2/R0-2/L1-2/R1-2, http://wiki.multimedia.cx/index.php?title=PCM
else if (Codec==_T("M2TS")) {Firm=_T(""); Endianness=_T("Big"); Sign=_T("Signed");} //PCM Signed Big Endian
else if (Codec==_T("A_PCM/INT/BIG")) {Firm=_T(""); Endianness=_T("Big");}
diff --git a/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp b/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp
index 4e19adf22..a025b122c 100644
--- a/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp
+++ b/src/thirdparty/MediaInfo/Audio/File_Wvpk.cpp
@@ -210,19 +210,14 @@ bool File_Wvpk::Synchronize()
{
//Testing next start, to be sure
size_t Size=LittleEndian2int32u(Buffer+Buffer_Offset+4)+8;
- if (1)//File_Offset+Buffer_Offset+Size!=File_Size-File_EndTagSize)
- {
- if (Buffer_Offset+Size+8>Buffer_Size)
- return false; //Need more data
+ if (Buffer_Offset+Size+8>Buffer_Size)
+ return false; //Need more data
- //Testing
- if (CC4(Buffer+Buffer_Offset+Size)!=CC4("wvpk"))
- Buffer_Offset++;
- else
- break; //while()
- }
- else
+ //Testing
+ if (CC4(Buffer+Buffer_Offset+Size)!=CC4("wvpk"))
Buffer_Offset++;
+ else
+ break; //while()
}
}
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp b/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp
index c5a204dd0..4cc0f4eea 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Streams.cpp
@@ -764,8 +764,7 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete
{
float F1=Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio).To_float32();
Ztring C1;
- if (0);
- else if (F1>1.23 && F1<1.27) C1=_T("5:4");
+ if (F1>1.23 && F1<1.27) C1=_T("5:4");
else if (F1>1.30 && F1<1.37) C1=_T("4:3");
else if (F1>1.45 && F1<1.55) C1=_T("3:2");
else if (F1>1.70 && F1<1.85) C1=_T("16:9");
@@ -785,8 +784,7 @@ void File__Analyze::Fill (stream_t StreamKind, size_t StreamPos, size_t Paramete
{
float F1=Retrieve(Stream_Video, StreamPos, Video_DisplayAspectRatio_Original).To_float32();
Ztring C1;
- if (0);
- else if (F1>1.23 && F1<1.27) C1=_T("5:4");
+ if (F1>1.23 && F1<1.27) C1=_T("5:4");
else if (F1>1.30 && F1<1.37) C1=_T("4:3");
else if (F1>1.45 && F1<1.55) C1=_T("3:2");
else if (F1>1.70 && F1<1.85) C1=_T("16:9");
diff --git a/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp b/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp
index 5291c9c2b..72f457d1e 100644
--- a/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp
+++ b/src/thirdparty/MediaInfo/File__Analyze_Streams_Finish.cpp
@@ -118,7 +118,7 @@ void File__Analyze::Streams_Finish_StreamOnly(stream_t StreamKind, size_t Pos)
}
//---------------------------------------------------------------------------
-void File__Analyze::Streams_Finish_StreamOnly_General(size_t StreamPos)
+void File__Analyze::Streams_Finish_StreamOnly_General(size_t UNUSED(StreamPos))
{
}
@@ -220,22 +220,22 @@ void File__Analyze::Streams_Finish_StreamOnly_Audio(size_t Pos)
}
//---------------------------------------------------------------------------
-void File__Analyze::Streams_Finish_StreamOnly_Text(size_t Pos)
+void File__Analyze::Streams_Finish_StreamOnly_Text(size_t UNUSED(Pos))
{
}
//---------------------------------------------------------------------------
-void File__Analyze::Streams_Finish_StreamOnly_Chapters(size_t StreamPos)
+void File__Analyze::Streams_Finish_StreamOnly_Chapters(size_t UNUSED(StreamPos))
{
}
//---------------------------------------------------------------------------
-void File__Analyze::Streams_Finish_StreamOnly_Image(size_t StreamPos)
+void File__Analyze::Streams_Finish_StreamOnly_Image(size_t UNUSED(StreamPos))
{
}
//---------------------------------------------------------------------------
-void File__Analyze::Streams_Finish_StreamOnly_Menu(size_t StreamPos)
+void File__Analyze::Streams_Finish_StreamOnly_Menu(size_t UNUSED(StreamPos))
{
}
diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcproj b/src/thirdparty/MediaInfo/MediaInfoLib.vcproj
index bd593c52f..0cb7620a9 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcproj
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcproj
@@ -45,7 +45,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
- PreprocessorDefinitions="WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
+ PreprocessorDefinitions="WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO"
DisableSpecificWarnings="4065;4244;4390"
/>
<Tool
@@ -103,7 +103,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
- PreprocessorDefinitions="WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
+ PreprocessorDefinitions="WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO"
DebugInformationFormat="3"
DisableSpecificWarnings="4065;4244;4267;4390"
/>
@@ -164,7 +164,7 @@
FavorSizeOrSpeed="2"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
- PreprocessorDefinitions="WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
+ PreprocessorDefinitions="WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO"
DisableSpecificWarnings="4065;4244;4390"
/>
<Tool
@@ -226,7 +226,7 @@
FavorSizeOrSpeed="2"
AdditionalIncludeDirectories="..;Source;../ZenLib;../zlib"
AdditionalUsingDirectories=""
- PreprocessorDefinitions="WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO"
+ PreprocessorDefinitions="WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO"
EnableEnhancedInstructionSet="0"
DisableSpecificWarnings="4065;4244;4267;4390"
/>
diff --git a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
index 6eae8567a..d4cc97da1 100644
--- a/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
+++ b/src/thirdparty/MediaInfo/MediaInfoLib.vcxproj
@@ -83,7 +83,7 @@
<ClCompile>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4065;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
@@ -98,7 +98,7 @@
<ClCompile>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_DEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4065;4244;4267;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<EnablePREfast>false</EnablePREfast>
@@ -111,7 +111,7 @@
<ClCompile>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<DisableSpecificWarnings>4065;4244;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<Optimization>MinSpace</Optimization>
@@ -129,7 +129,7 @@
<ClCompile>
<AdditionalIncludeDirectories>..;Source;../ZenLib;../zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;MEDIAINFO_TRACE_NO;MEDIAINFO_LIBCURL_NO;MEDIAINFO_LIBMMS_NO;CURL_STATICLIB; MEDIAINFO_N19_NO; MEDIAINFO_OTHERTEXT_NO; MEDIAINFO_IMAGE_NO; MEDIAINFO_ARCHIVE_NO; MEDIAINFO_EVENTS_NO; MEDIAINFO_DEMUX_NO; MEDIAINFO_MPEGTS_DUPLICATE_NO; MEDIAINFO_DVDIF_ANALYZE_NO;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
<DisableSpecificWarnings>4065;4244;4267;4390;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<Optimization>MinSpace</Optimization>
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp b/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp
index 05236ba29..7f0286f90 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Flv.cpp
@@ -1080,8 +1080,7 @@ void File_Flv::meta_SCRIPTDATAVALUE(const std::string &StringData)
std::string ToFill;
Ztring ValueS;
stream_t StreamKind=Stream_General;
- if (0) ;
- else if (StringData=="width") {ToFill="Width"; StreamKind=Stream_Video; ValueS.From_Number(Value, 0); video_stream_Count=true;} //1 file with FrameRate tag and video stream but no video present tag
+ if (StringData=="width") {ToFill="Width"; StreamKind=Stream_Video; ValueS.From_Number(Value, 0); video_stream_Count=true;} //1 file with FrameRate tag and video stream but no video present tag
else if (StringData=="height") {ToFill="Height"; StreamKind=Stream_Video; ValueS.From_Number(Value, 0); video_stream_Count=true;} //1 file with FrameRate tag and video stream but no video present tag
else if (StringData=="duration") meta_duration=Value*1000;
else if (StringData=="audiodatarate") {ToFill="BitRate"; StreamKind=Stream_Audio; ValueS.From_Number(Value*1000, 0);}
@@ -1118,8 +1117,7 @@ void File_Flv::meta_SCRIPTDATAVALUE(const std::string &StringData)
int8u Value;
Get_B1 (Value, "Value");
std::string ToFill;
- if (0) ;
- else if (StringData=="haskeyframes") {}
+ if (StringData=="haskeyframes") {}
else if (StringData=="hasKeyframes") {}
else if (StringData=="hasVideo") {}
else if (StringData=="stereo") {}
@@ -1144,8 +1142,7 @@ void File_Flv::meta_SCRIPTDATAVALUE(const std::string &StringData)
Get_UTF8(Value_Size, Value, "Value");
size_t ToFill=(size_t)-1;
std::string ToFillS;
- if (0) ;
- else if (StringData=="creator") {ToFill=General_Encoded_Application;}
+ if (StringData=="creator") {ToFill=General_Encoded_Application;}
else if (StringData=="creationdate") {ToFill=General_Encoded_Date; Value.Date_From_String(Value.To_UTF8().c_str());}
else if (StringData=="encoder") {ToFill=General_Encoded_Application;}
else if (StringData=="Encoded_With") {ToFill=General_Encoded_Application;}
@@ -1248,8 +1245,7 @@ void File_Flv::meta_SCRIPTDATAVALUE(const std::string &StringData)
Param_Info(ValueS);
Skip_B2( "Local_Offset_Minutes");
std::string ToFill;
- if (0) ;
- else if (StringData=="metadatadate") {ToFill="Tagged_Date";}
+ if (StringData=="metadatadate") {ToFill="Tagged_Date";}
else {ToFill=StringData;}
Element_Info(ValueS);
Fill(Stream_General, 0, ToFill.c_str(), ValueS);
@@ -1265,8 +1261,7 @@ void File_Flv::meta_SCRIPTDATAVALUE(const std::string &StringData)
Ztring Value;
Get_UTF16B(Value_Size, Value, "Value");
std::string ToFill;
- if (0) ;
- else if (StringData=="creator") {ToFill="Encoded_Application";}
+ if (StringData=="creator") {ToFill="Encoded_Application";}
else if (StringData=="liveXML") {}
else if (StringData=="metadatacreator") {ToFill="Tagged_Application";}
else if (StringData=="creationdate") {ToFill="Encoded_Date"; Value.Date_From_String(Value.To_UTF8().c_str());}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp
index 16872d9e6..e5910a9a3 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Gxf.cpp
@@ -796,7 +796,7 @@ void File_Gxf::map()
FILLING_END();
int8u Hours=(int8u)-1, Minutes=(int8u)-1, Seconds=(int8u)-1, Frames=(int8u)-1;
- bool Invalid, DropFrame=true;
+ bool Invalid=true, DropFrame=true;
bool TimeCode_Parsed=false;
while (Element_Offset<Track_End)
@@ -900,11 +900,11 @@ void File_Gxf::map()
{
if (!Invalid && TimeCode_First==(int64u)-1)
{
- float32 FrameRate=Gxf_FrameRate(Streams[TrackID].FrameRate_Code);
+ float64 FrameRate=Gxf_FrameRate(Streams[TrackID].FrameRate_Code);
TimeCode_First=Hours *60*60*1000
+Minutes *60*1000
+Seconds *1000
- +float32_int64s(Frames*1000/FrameRate);
+ +float64_int64s(Frames*1000/FrameRate);
}
}
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Ivf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Ivf.cpp
index db112ad3b..d321181af 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Ivf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Ivf.cpp
@@ -62,7 +62,7 @@ bool File_Ivf::FileHeader_Begin()
void File_Ivf::FileHeader_Parse()
{
//Parsing
- int32u frame_rate_num, frame_rate_den, frame_count, unused, fourcc;
+ int32u frame_rate_num, frame_rate_den, frame_count, fourcc;
int16u version, header_size, width, height;
Skip_C4 ( "Signature");
@@ -78,10 +78,29 @@ void File_Ivf::FileHeader_Parse()
Get_L4 (frame_rate_num, "FrameRate Numerator");
Get_L4 (frame_rate_den, "FrameRate Denominator");
Get_L4 (frame_count, "Frame Count");
- Get_L4 (unused, "Unused");
+ Skip_L4( "Unused");
if (header_size-32)
Skip_XX(header_size-32, "Unknown");
}
+ else
+ {
+ fourcc=0x00000000;
+ width=0;
+ height=0;
+ frame_rate_num=0;
+ frame_rate_den=0;
+ frame_count=0;
+ }
+ }
+ else
+ {
+ header_size=0;
+ fourcc=0x00000000;
+ width=0;
+ height=0;
+ frame_rate_num=0;
+ frame_rate_den=0;
+ frame_count=0;
}
FILLING_BEGIN();
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
index 5f9988ded..dd270ddf2 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Lxf.cpp
@@ -582,16 +582,16 @@ bool File_Lxf::Audio_Stream(size_t Pos)
if (SampleSize==20 && Config->Demux_PCM_20bitTo16bit_Get())
{
//Removing bits 3-0 (Little endian)
- int8u* SixteenBit=new int8u[Audio_Sizes[Pos]];
+ int8u* SixteenBit=new int8u[(size_t)Audio_Sizes[Pos]];
size_t SixteenBit_Pos=0;
size_t Buffer_Pos=Buffer_Offset+(size_t)Element_Offset;
- size_t Buffer_Max=Buffer_Offset+(size_t)Element_Offset+Audio_Sizes[Pos];
+ size_t Buffer_Max=Buffer_Offset+(size_t)(Element_Offset+Audio_Sizes[Pos]);
while (Buffer_Pos+5<=Buffer_Max)
{
int64u Temp=LittleEndian2int40u(Buffer+Buffer_Pos);
Temp=((Temp&0xFFFF000000LL)>>8)|((Temp&0xFFFF0LL)>>4);
- int32s2LittleEndian(SixteenBit+SixteenBit_Pos, Temp);
+ int32s2LittleEndian(SixteenBit+SixteenBit_Pos, (int32s)Temp);
SixteenBit_Pos+=4;
Buffer_Pos+=5;
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp
index 8eff49122..514fa59bb 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mk.cpp
@@ -2069,6 +2069,15 @@ void File_Mk::Segment_Tracks_TrackEntry_CodecID()
}
//---------------------------------------------------------------------------
+void File_Mk::Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compression()
+{
+ FILLING_BEGIN();
+ Stream[TrackNumber].ContentCompAlgo=0; //0 is default
+ Fill(StreamKind_Last, StreamPos_Last, "MuxingMode", Mk_ContentCompAlgo(0), Unlimited, true, true);
+ FILLING_END();
+}
+
+//---------------------------------------------------------------------------
void File_Mk::Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compression_ContentCompAlgo()
{
//Parsing
@@ -2076,7 +2085,7 @@ void File_Mk::Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compres
FILLING_BEGIN();
Stream[TrackNumber].ContentCompAlgo=Algo;
- Fill(StreamKind_Last, StreamPos_Last, "MuxingMode", Mk_ContentCompAlgo(Algo));
+ Fill(StreamKind_Last, StreamPos_Last, "MuxingMode", Mk_ContentCompAlgo(Algo), Unlimited, true, true);
FILLING_END();
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mk.h b/src/thirdparty/MediaInfo/Multiple/File_Mk.h
index c860b501b..930d140d3 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mk.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mk.h
@@ -180,7 +180,7 @@ private :
void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Order() {UInteger_Info();};
void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Scope() {UInteger_Info();};
void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Type() {UInteger_Info();};
- void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compression() {};
+ void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compression();
void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compression_ContentCompAlgo();
void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Compression_ContentCompSettings();
void Segment_Tracks_TrackEntry_ContentEncodings_ContentEncoding_Encryption() {};
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
index cad1ac5cf..f13d8e547 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg4_Elements.cpp
@@ -2814,17 +2814,19 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxSound()
}
FILLING_BEGIN();
+ int32u SampleRate32=SampleRate;
+
//samr bug viewed in some files: channels and Sampling rate are wrong
if (Element_Code==0x73616D72) //"samr"
{
- SampleRate=8000;
+ SampleRate32=8000;
Channels=1;
}
//lpcm puts "1" in the SampleRate field and Timescale is the real sample size
- if (Element_Code==0x6C70636D) //"lpcm"
+ if (Element_Code==0x6C70636D && SampleRate32==1) //"lpcm"
{
- SampleRate=moov_trak_mdia_mdhd_TimeScale;
+ SampleRate32=moov_trak_mdia_mdhd_TimeScale;
}
std::string Codec;
@@ -2920,7 +2922,7 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxxSound()
Fill(Stream_Audio, StreamPos_Last, Audio_Channel_s_, Channels, 10, true);
if (SampleSize!=0 && Element_Code!=0x6D703461 && (Element_Code&0xFFFF0000)!=0x6D730000 && Retrieve(Stream_Audio, StreamPos_Last, Audio_Resolution).empty()) //if not mp4a, and not ms*
Fill(Stream_Audio, StreamPos_Last, Audio_Resolution, SampleSize, 10, true);
- Fill(Stream_Audio, StreamPos_Last, Audio_SamplingRate, SampleRate);
+ Fill(Stream_Audio, StreamPos_Last, Audio_SamplingRate, SampleRate32);
//Sometimes, more Atoms in this atoms
if (Element_Offset+8<Element_Size)
@@ -3513,12 +3515,8 @@ void File_Mpeg4::moov_trak_mdia_minf_stbl_stsd_xxxx_wave_xxxx()
//Filling
if (Option_Size>0)
{
- if (0);
- else Skip_XX(Option_Size, "Unknown");
+ Skip_XX(Option_Size, "Unknown");
}
-
- //Creating the parser
- if (0);
}
//---------------------------------------------------------------------------
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
index 19483f002..17ad090f6 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.cpp
@@ -2077,7 +2077,7 @@ void File_MpegPs::private_stream_1()
if (Element_Offset<private_stream_1_Offset)
Skip_XX(private_stream_1_Offset-Element_Offset, "DVD-Video data");
- xxx_stream_Parse(Streams_Private1[private_stream_1_ID], private_stream_1_Count);
+ xxx_stream_Parse(Streams_Private1[private_stream_1_ID]);
}
//---------------------------------------------------------------------------
@@ -2158,16 +2158,16 @@ bool File_MpegPs::private_stream_1_Choose_DVD_ID()
if (Count>0 && 4+(int64u)Next+4<=Element_Size)
{
//Subtitles (CVD)
- if (CodecID>=0x00 && CodecID<=0x0F)
- ; //Seems to not work with subtitles, to be confirmed
+ // if (CodecID>=0x00 && CodecID<=0x0F)
+ // ; //Seems to not work with subtitles, to be confirmed
//Subtitles (DVD)
- if (CodecID>=0x20 && CodecID<=0x3F)
- ; //Seems to not work with subtitles, to be confirmed
+ // if (CodecID>=0x20 && CodecID<=0x3F)
+ // ; //Seems to not work with subtitles, to be confirmed
//Subtitles (SVCD)
- if (CodecID>=0x70 && CodecID<=0x7F)
- ; //Seems to not work with subtitles, to be confirmed
+ // if (CodecID>=0x70 && CodecID<=0x7F)
+ // ; //Seems to not work with subtitles, to be confirmed
//AC3
- else if (CodecID>=0x80 && CodecID<=0x87)
+ if (CodecID>=0x80 && CodecID<=0x87)
{
if (CC2(Buffer+Buffer_Offset+4+Next)!=0x0B77 && CC2(Buffer+Buffer_Offset+3+Next)!=0x0B77 && CC2(Buffer+Buffer_Offset+2+Next)!=0x0B77)
return false;
@@ -2185,8 +2185,8 @@ bool File_MpegPs::private_stream_1_Choose_DVD_ID()
return false;
}
//PCM
- else if (CodecID>=0xA0 && CodecID<=0xAF)
- ;
+ //else if (CodecID>=0xA0 && CodecID<=0xAF)
+ // ;
//MLP
else if (CodecID>=0xB0 && CodecID<=0xBF)
{
@@ -2569,7 +2569,7 @@ void File_MpegPs::audio_stream()
Demux(Buffer+Buffer_Offset, (size_t)Element_Size, ContentType_MainStream);
//Parsing
- xxx_stream_Parse(Streams[start_code], audio_stream_Count);
+ xxx_stream_Parse(Streams[start_code]);
}
//---------------------------------------------------------------------------
@@ -2645,15 +2645,13 @@ void File_MpegPs::video_stream()
}
//Demux
- if (!(FromTS_stream_type==0x20
- #if MEDIAINFO_DEMUX
- && SubStream_Demux
- #endif //MEDIAINFO_DEMUX
- ))
- Demux(Buffer+Buffer_Offset, (size_t)Element_Size, ContentType_MainStream);
+ #if MEDIAINFO_DEMUX
+ if (!(FromTS_stream_type==0x20 && SubStream_Demux))
+ Demux(Buffer+Buffer_Offset, (size_t)Element_Size, ContentType_MainStream);
+ #endif //MEDIAINFO_DEMUX
//Parsing
- xxx_stream_Parse(Streams[start_code], video_stream_Count);
+ xxx_stream_Parse(Streams[start_code]);
}
//---------------------------------------------------------------------------
@@ -2814,7 +2812,7 @@ void File_MpegPs::SL_packetized_stream()
}
//Parsing
- xxx_stream_Parse(Streams[start_code], audio_stream_Count);
+ xxx_stream_Parse(Streams[start_code]);
}
//---------------------------------------------------------------------------
@@ -2916,12 +2914,12 @@ void File_MpegPs::extension_stream()
if (stream_id_extension==0x72 && !(Streams_Extension[0x71].Parsers.empty() && Streams_Extension[0x76].Parsers.empty()))
{
if (!Streams_Extension[0x71].Parsers.empty())
- xxx_stream_Parse(Streams_Extension[0x71], extension_stream_Count);
+ xxx_stream_Parse(Streams_Extension[0x71]);
if (!Streams_Extension[0x76].Parsers.empty())
- xxx_stream_Parse(Streams_Extension[0x76], extension_stream_Count);
+ xxx_stream_Parse(Streams_Extension[0x76]);
}
else
- xxx_stream_Parse(Streams_Extension[stream_id_extension], extension_stream_Count);
+ xxx_stream_Parse(Streams_Extension[stream_id_extension]);
}
//---------------------------------------------------------------------------
@@ -2945,7 +2943,7 @@ const ZenLib::Char* File_MpegPs::extension_stream_ChooseExtension()
//***************************************************************************
//---------------------------------------------------------------------------
-void File_MpegPs::xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count)
+void File_MpegPs::xxx_stream_Parse(ps_stream &Temp)
{
switch (start_code)
{
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h
index 8fb21d38b..507436fad 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegPs.h
@@ -257,7 +257,7 @@ private :
//File__Analyze helpers
void Streams_Fill_PerStream(size_t StreamID, ps_stream &Temp);
void Streams_Finish_PerStream(size_t StreamID, ps_stream &Temp);
- void xxx_stream_Parse(ps_stream &Temp, int8u &xxx_Count);
+ void xxx_stream_Parse(ps_stream &Temp);
//Output buffer
size_t Output_Buffer_Get (const String &Value);
diff --git a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
index f43182732..b37ee462d 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_MpegTs.cpp
@@ -503,9 +503,9 @@ void File_MpegTs::Streams_Finish()
//Retrieving IDs
Ztring ID_Complete=Retrieve(Stream_Text, StreamPos, Text_ID);
int16u ID_Video=ID_Complete.To_int16u();
- int16u ID_Text=Ztring(ID_Complete.substr(ID_Complete.find(_T('-'))+1, string::npos)).To_int16u();
- if (ID_Text==608) //CEA-608 caption
- ID_Text=128+Ztring(ID_Complete.substr(ID_Complete.rfind(_T('-'))+1, string::npos)).To_int16u();
+ int8u ID_Text=Ztring(ID_Complete.substr(ID_Complete.rfind(_T('-'))+1, string::npos)).To_int8u();
+ if (ID_Complete.find(_T("-608-"))!=string::npos) //CEA-608 caption
+ ID_Text+=128;
//ATSC EIT
for (size_t ProgramPos=0; ProgramPos<Complete_Stream->Streams[ID_Video].program_numbers.size(); ProgramPos++)
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp
index ccdc7f43d..fb44bd8a2 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mpeg_Descriptors.cpp
@@ -1471,21 +1471,17 @@ void File_Mpeg_Descriptors::Data_Parse()
ELEMENT_CASE(01, "SCTE35 - DTMF_descriptor");
ELEMENT_CASE(02, "SCTE35 - segmentation_descriptor");
default: Element_Info("SCTE35 - Reserved");
- Skip_XX(Element_Size, "Data");
+ Skip_XX(Element_Size, "Data");
break;
}
}
else
{
- switch (Element_Code)
- {
- default: if (Element_Code>=0x40)
- Element_Info("user private");
- else
- Element_Info("unknown");
- Skip_XX(Element_Size, "Data");
- break;
- }
+ if (Element_Code>=0x40)
+ Element_Info("user private");
+ else
+ Element_Info("unknown");
+ Skip_XX(Element_Size, "Data");
}
}
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp b/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp
index c2f321620..b6a26c263 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mxf.cpp
@@ -325,10 +325,7 @@ const char* Mxf_EssenceElement(int128u EssenceElement)
default : return "Unknown stream";
}
case 0x07 : //CP Data (SMPTE 326M)
- switch (Code7)
- {
- default : return "";
- }
+ return "";
case 0x15 : //GC Picture
switch (Code7)
{
@@ -758,18 +755,18 @@ void File_Mxf::Streams_Finish()
}
else if (Retrieve(Stream_Video, 0, Video_Format)==_T("MPEG Video") && Retrieve(Stream_Video, 0, Video_Format_Settings_GOP)==_T("N=1") && Retrieve(Stream_Video, 0, Video_Colorimetry)==_T("4:2:2") && Retrieve(Stream_Video, 0, Video_BitRate)==_T("30000000"))
{
- Fill(Stream_General, 0, General_Format_Commercial_IfAny, "XDCAM IMX 30");
- Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "XDCAM IMX 30");
+ Fill(Stream_General, 0, General_Format_Commercial_IfAny, "IMX 30");
+ Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "IMX 30");
}
else if (Retrieve(Stream_Video, 0, Video_Format)==_T("MPEG Video") && Retrieve(Stream_Video, 0, Video_Format_Settings_GOP)==_T("N=1") && Retrieve(Stream_Video, 0, Video_Colorimetry)==_T("4:2:2") && Retrieve(Stream_Video, 0, Video_BitRate)==_T("40000000"))
{
- Fill(Stream_General, 0, General_Format_Commercial_IfAny, "XDCAM IMX 40");
- Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "XDCAM IMX 40");
+ Fill(Stream_General, 0, General_Format_Commercial_IfAny, "IMX 40");
+ Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "IMX 40");
}
else if (Retrieve(Stream_Video, 0, Video_Format)==_T("MPEG Video") && Retrieve(Stream_Video, 0, Video_Format_Settings_GOP)==_T("N=1") && Retrieve(Stream_Video, 0, Video_Colorimetry)==_T("4:2:2") && Retrieve(Stream_Video, 0, Video_BitRate)==_T("50000000"))
{
- Fill(Stream_General, 0, General_Format_Commercial_IfAny, "XDCAM IMX 50");
- Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "XDCAM IMX 50");
+ Fill(Stream_General, 0, General_Format_Commercial_IfAny, "IMX 50");
+ Fill(Stream_Video, 0, Video_Format_Commercial_IfAny, "IMX 50");
}
else if (Retrieve(Stream_Video, 0, Video_Format)==_T("MPEG Video") && Retrieve(Stream_Video, 0, Video_Format_Settings_GOP)!=_T("N=1") && Retrieve(Stream_Video, 0, Video_Colorimetry)==_T("4:2:0") && Retrieve(Stream_Video, 0, Video_BitRate)==_T("18000000"))
{
@@ -882,7 +879,7 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
}
//Looking for Material package TrackID
- int32u ID=(int32u)-1;
+ int32u TrackID=(int32u)-1;
for (packages::iterator SourcePackage=Packages.begin(); SourcePackage!=Packages.end(); SourcePackage++)
if (SourcePackage->second.PackageUID.hi.hi) //Looking fo a SourcePackage with PackageUID only
{
@@ -902,13 +899,13 @@ void File_Mxf::Streams_Finish_Essence(int32u EssenceUID, int128u TrackUID)
//We have the right Sequence, looking for Track from MaterialPackage
for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); Track++)
if (Track->second.Sequence==Sequence->first)
- ID=Track->second.TrackID;
+ TrackID=Track->second.TrackID;
}
}
}
}
- if (ID!=(int32u)-1)
- Fill(StreamKind_Last, StreamPos_Last, General_ID, ID);
+ if (TrackID!=(int32u)-1)
+ Fill(StreamKind_Last, StreamPos_Last, General_ID, TrackID);
else if (Tracks[TrackUID].TrackID!=(int32u)-1)
Fill(StreamKind_Last, StreamPos_Last, General_ID, Tracks[TrackUID].TrackID);
else
@@ -1066,8 +1063,6 @@ void File_Mxf::Streams_Finish_Descriptor(int128u DescriptorUID, int128u PackageU
//We have the right Sequence, looking for Track from MaterialPackage
for (tracks::iterator Track=Tracks.begin(); Track!=Tracks.end(); Track++)
{
- int64u A=Sequence->first.hi;
- int64u B=Track->first.hi;
if (Track->second.Sequence==Sequence->first)
ID=Track->second.TrackID;
}
@@ -1294,7 +1289,7 @@ void File_Mxf::Streams_Finish_Locator(int128u LocatorUID)
}
//---------------------------------------------------------------------------
-void File_Mxf::Streams_Finish_Component(int128u ComponentUID, float32 EditRate)
+void File_Mxf::Streams_Finish_Component(int128u ComponentUID, float64 EditRate)
{
components::iterator Component=Components.find(ComponentUID);
if (Component==Components.end())
@@ -2760,7 +2755,7 @@ void File_Mxf::SDTI_SystemMetadataPack() //SMPTE 385M + 326M
+ Minutes_Units *60*1000
+ Seconds_Tens *10*1000
+ Seconds_Units *1000
- + FrameRate?float64_int32s((Frames_Tens*10+Frames_Units)*1000/FrameRate):0);
+ + (FrameRate?float64_int32s((Frames_Tens*10+Frames_Units)*1000/FrameRate):0));
Element_Info(Ztring().Duration_From_Milliseconds(TimeCode));
@@ -3143,7 +3138,7 @@ void File_Mxf::FileDescriptor_ContainerDuration()
Get_B8 (Data, "Data"); Element_Info(Data);
FILLING_BEGIN();
- float32 SampleRate=Descriptors[InstanceUID].SampleRate;
+ float64 SampleRate=Descriptors[InstanceUID].SampleRate;
if (SampleRate && Data!=0xFFFFFFFFFFFFFFFFLL)
Descriptors[InstanceUID].Infos["Duration"].From_Number(Data/SampleRate*1000);
FILLING_END();
@@ -4529,7 +4524,7 @@ void File_Mxf::SystemScheme1_TimeCodeArray()
+ Minutes_Units *60*1000
+ Seconds_Tens *10*1000
+ Seconds_Units *1000
- + (SystemScheme1_FrameRateFromDescriptor?float64_int32s((Frames_Tens*10+Frames_Units)*1000/SystemScheme1_FrameRateFromDescriptor):0));
+ + (SystemScheme1_FrameRateFromDescriptor?float64_int32s((Frames_Tens*10+Frames_Units)*1000/(float64)SystemScheme1_FrameRateFromDescriptor):0));
Element_Info(Ztring().Duration_From_Milliseconds(TimeCode));
@@ -5594,19 +5589,25 @@ void File_Mxf::Info_UL_040101_Labels()
switch (Code6)
{
case 0x01 : //SMPTE 386M
+ {
Param_Info("Type D-10 Mapping");
Skip_B1( "MPEG Constraints"); //SMPTE 356M
Skip_B1( "Template Extension");
+ }
break;
case 0x02 :
+ {
Param_Info("DV Mappings");
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
break;
case 0x03 :
+ {
Param_Info("Type D-11 Mapping");
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
break;
case 0x04 :
{
@@ -5616,9 +5617,11 @@ void File_Mxf::Info_UL_040101_Labels()
}
break;
case 0x05 : //SMPTE 384M
+ {
Param_Info("Uncompressed Pictures");
Info_B1(Code7, "Number of lines / field rate combination"); //SMPTE 384M
Info_B1(Code8, "Mapping Kind"); Param_Info(Mxf_EssenceContainer_Mapping(Code6, Code7, Code8));
+ }
break;
case 0x06 :
{
@@ -5649,28 +5652,38 @@ void File_Mxf::Info_UL_040101_Labels()
}
break;
case 0x0A :
+ {
Param_Info("A-law Sound Element Mapping");
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
break;
case 0x0B :
+ {
Param_Info("Encrypted Generic Container");
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
break;
case 0x0C :
+ {
Param_Info("JPEG 2000 Picture Mapping");
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
break;
case 0x7F :
+ {
Param_Info("Generic Essence Container Wrapping");
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
break;
default :
+ {
Skip_B1( "Mapping Kind");
Skip_B1( "Locally defined");
+ }
}
}
break;
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Mxf.h b/src/thirdparty/MediaInfo/Multiple/File_Mxf.h
index 9fc5fa266..b8f2e75b1 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Mxf.h
+++ b/src/thirdparty/MediaInfo/Multiple/File_Mxf.h
@@ -76,7 +76,7 @@ protected :
void Streams_Finish_Essence (int32u EssenceUID, int128u TrackUID);
void Streams_Finish_Descriptor (int128u DescriptorUID, int128u PackageUID);
void Streams_Finish_Locator (int128u LocatorUID);
- void Streams_Finish_Component (int128u ComponentUID, float32 EditRate);
+ void Streams_Finish_Component (int128u ComponentUID, float64 EditRate);
void Streams_Finish_Identification (int128u IdentificationUID);
//Buffer - Global
@@ -426,7 +426,7 @@ protected :
int128u Sequence;
int32u TrackID;
int32u TrackNumber;
- float32 EditRate;
+ float64 EditRate;
bool Stream_Finish_Done;
track()
@@ -434,7 +434,7 @@ protected :
Sequence=0;
TrackID=(int32u)-1;
TrackNumber=(int32u)-1;
- EditRate=0.000;
+ EditRate=(float64)0;
Stream_Finish_Done=false;
}
};
diff --git a/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp b/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp
index 1d881442e..10fa44fb7 100644
--- a/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp
+++ b/src/thirdparty/MediaInfo/Multiple/File_Rm.cpp
@@ -327,8 +327,7 @@ void File_Rm::MDPR()
//Parsing TypeSpecific
Element_Info(mime_type.c_str());
MDPR_IsStream=true;
- if (0);
- else if (mime_type=="audio/x-pn-multirate-realaudio")
+ if (mime_type=="audio/x-pn-multirate-realaudio")
MDPR_IsStream=false; //What do we with this?
else if (mime_type=="audio/X-MP3-draft-00")
{
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_libcurl.cpp b/src/thirdparty/MediaInfo/Reader/Reader_libcurl.cpp
index a42be52ef..e45759ad3 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_libcurl.cpp
+++ b/src/thirdparty/MediaInfo/Reader/Reader_libcurl.cpp
@@ -35,10 +35,12 @@
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
+#define LIBCURL_DLL_RUNTIME
#include "MediaInfo/Reader/Reader_libcurl.h"
#include "MediaInfo/File__Analyze.h"
#if defined LIBCURL_DLL_RUNTIME
-#elif defined LIBCURL_DLL_STATIC
+ //Copy of cURL include files
+ #include "MediaInfo/Reader/Reader_libcurl_Include.h"
#else
#undef __TEXT
#include "curl/curl.h"
@@ -54,6 +56,52 @@ namespace MediaInfoLib
{
//***************************************************************************
+// Constructor/Destructor
+//***************************************************************************
+
+Reader_libcurl::Reader_libcurl ()
+{
+ #if defined LIBCURL_DLL_RUNTIME
+ if (libcurl_Module_Count)
+ return;
+
+ size_t Errors=0;
+
+ /* Load library */
+ #ifdef MEDIAINFO_GLIBC
+ libcurl_Module=g_module_open(MEDIAINFODLL_NAME, G_MODULE_BIND_LAZY);
+ #elif defined (_WIN32) || defined (WIN32)
+ libcurl_Module=LoadLibrary(_T(MEDIAINFODLL_NAME));
+ #else
+ libcurl_Module=dlopen(MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!libcurl_Module)
+ libcurl_Module=dlopen("./"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!libcurl_Module)
+ libcurl_Module=dlopen("/usr/local/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!libcurl_Module)
+ libcurl_Module=dlopen("/usr/local/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!libcurl_Module)
+ libcurl_Module=dlopen("/usr/lib/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ if (!libcurl_Module)
+ libcurl_Module=dlopen("/usr/lib64/"MEDIAINFODLL_NAME, RTLD_LAZY);
+ #endif
+ if (!libcurl_Module)
+ return ;
+
+ /* Load methods */
+ MEDIAINFO_ASSIGN (init,"init")
+ MEDIAINFO_ASSIGN (setopt,"setopt")
+ MEDIAINFO_ASSIGN (perform,"perform")
+ MEDIAINFO_ASSIGN (cleanup,"cleanup")
+ MEDIAINFO_ASSIGN (getinfo,"getinfo")
+ if (Errors>0)
+ return;
+
+ libcurl_Module_Count++;
+ #endif //defined LIBCURL_DLL_RUNTIME
+}
+
+//***************************************************************************
// libcurl stuff
//***************************************************************************
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h b/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h
index a05c70e58..58e753e18 100644
--- a/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h
+++ b/src/thirdparty/MediaInfo/Reader/Reader_libcurl.h
@@ -42,6 +42,7 @@ class Reader_libcurl : public Reader__Base
{
public :
//Constructor/Destructor
+ Reader_libcurl ();
virtual ~Reader_libcurl() {}
//Format testing
diff --git a/src/thirdparty/MediaInfo/Reader/Reader_libcurl_Include.h b/src/thirdparty/MediaInfo/Reader/Reader_libcurl_Include.h
new file mode 100644
index 000000000..ba651efe1
--- /dev/null
+++ b/src/thirdparty/MediaInfo/Reader/Reader_libcurl_Include.h
@@ -0,0 +1,900 @@
+// Reader_libcurl - All info about media files
+// Copyright (C) 2002-2010 MediaArea.net SARL, Info@MediaArea.net
+//
+// This library is free software: you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this library. If not, see <http://www.gnu.org/licenses/>.
+//
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//Copy of curl include files
+typedef void CURL;
+
+typedef enum {
+ CURLE_OK = 0,
+ CURLE_UNSUPPORTED_PROTOCOL, /* 1 */
+ CURLE_FAILED_INIT, /* 2 */
+ CURLE_URL_MALFORMAT, /* 3 */
+ CURLE_OBSOLETE4, /* 4 - NOT USED */
+ CURLE_COULDNT_RESOLVE_PROXY, /* 5 */
+ CURLE_COULDNT_RESOLVE_HOST, /* 6 */
+ CURLE_COULDNT_CONNECT, /* 7 */
+ CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */
+ CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server
+ due to lack of access - when login fails
+ this is not returned. */
+ CURLE_OBSOLETE10, /* 10 - NOT USED */
+ CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */
+ CURLE_OBSOLETE12, /* 12 - NOT USED */
+ CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */
+ CURLE_FTP_WEIRD_227_FORMAT, /* 14 */
+ CURLE_FTP_CANT_GET_HOST, /* 15 */
+ CURLE_OBSOLETE16, /* 16 - NOT USED */
+ CURLE_FTP_COULDNT_SET_TYPE, /* 17 */
+ CURLE_PARTIAL_FILE, /* 18 */
+ CURLE_FTP_COULDNT_RETR_FILE, /* 19 */
+ CURLE_OBSOLETE20, /* 20 - NOT USED */
+ CURLE_QUOTE_ERROR, /* 21 - quote command failure */
+ CURLE_HTTP_RETURNED_ERROR, /* 22 */
+ CURLE_WRITE_ERROR, /* 23 */
+ CURLE_OBSOLETE24, /* 24 - NOT USED */
+ CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */
+ CURLE_READ_ERROR, /* 26 - couldn't open/read from file */
+ CURLE_OUT_OF_MEMORY, /* 27 */
+ /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
+ instead of a memory allocation error if CURL_DOES_CONVERSIONS
+ is defined
+ */
+ CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */
+ CURLE_OBSOLETE29, /* 29 - NOT USED */
+ CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */
+ CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */
+ CURLE_OBSOLETE32, /* 32 - NOT USED */
+ CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */
+ CURLE_HTTP_POST_ERROR, /* 34 */
+ CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */
+ CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */
+ CURLE_FILE_COULDNT_READ_FILE, /* 37 */
+ CURLE_LDAP_CANNOT_BIND, /* 38 */
+ CURLE_LDAP_SEARCH_FAILED, /* 39 */
+ CURLE_OBSOLETE40, /* 40 - NOT USED */
+ CURLE_FUNCTION_NOT_FOUND, /* 41 */
+ CURLE_ABORTED_BY_CALLBACK, /* 42 */
+ CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */
+ CURLE_OBSOLETE44, /* 44 - NOT USED */
+ CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */
+ CURLE_OBSOLETE46, /* 46 - NOT USED */
+ CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */
+ CURLE_UNKNOWN_TELNET_OPTION, /* 48 - User specified an unknown option */
+ CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */
+ CURLE_OBSOLETE50, /* 50 - NOT USED */
+ CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint
+ wasn't verified fine */
+ CURLE_GOT_NOTHING, /* 52 - when this is a specific error */
+ CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */
+ CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as
+ default */
+ CURLE_SEND_ERROR, /* 55 - failed sending network data */
+ CURLE_RECV_ERROR, /* 56 - failure in receiving network data */
+ CURLE_OBSOLETE57, /* 57 - NOT IN USE */
+ CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */
+ CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */
+ CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */
+ CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized transfer encoding */
+ CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */
+ CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */
+ CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */
+ CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind
+ that failed */
+ CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */
+ CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not
+ accepted and we failed to login */
+ CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */
+ CURLE_TFTP_PERM, /* 69 - permission problem on server */
+ CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */
+ CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */
+ CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */
+ CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */
+ CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */
+ CURLE_CONV_FAILED, /* 75 - conversion failed */
+ CURLE_CONV_REQD, /* 76 - caller must register conversion
+ callbacks using curl_easy_setopt options
+ CURLOPT_CONV_FROM_NETWORK_FUNCTION,
+ CURLOPT_CONV_TO_NETWORK_FUNCTION, and
+ CURLOPT_CONV_FROM_UTF8_FUNCTION */
+ CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing
+ or wrong format */
+ CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */
+ CURLE_SSH, /* 79 - error from the SSH layer, somewhat
+ generic so the error message will be of
+ interest when this has happened */
+
+ CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL
+ connection */
+ CURLE_AGAIN, /* 81 - socket is not ready for send/recv,
+ wait till it's ready and try again (Added
+ in 7.18.2) */
+ CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or
+ wrong format (Added in 7.19.0) */
+ CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in
+ 7.19.0) */
+ CURL_LAST /* never use! */
+} CURLcode;
+
+#define CURLINFO_STRING 0x100000
+#define CURLINFO_LONG 0x200000
+#define CURLINFO_DOUBLE 0x300000
+#define CURLINFO_SLIST 0x400000
+#define CURLINFO_MASK 0x0fffff
+#define CURLINFO_TYPEMASK 0xf00000
+
+typedef enum {
+ CURLINFO_NONE, /* first, never use this */
+ CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1,
+ CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2,
+ CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3,
+ CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4,
+ CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5,
+ CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6,
+ CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7,
+ CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8,
+ CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9,
+ CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10,
+ CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11,
+ CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12,
+ CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13,
+ CURLINFO_FILETIME = CURLINFO_LONG + 14,
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15,
+ CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16,
+ CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,
+ CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18,
+ CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19,
+ CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20,
+ CURLINFO_PRIVATE = CURLINFO_STRING + 21,
+ CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22,
+ CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23,
+ CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24,
+ CURLINFO_OS_ERRNO = CURLINFO_LONG + 25,
+ CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26,
+ CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27,
+ CURLINFO_COOKIELIST = CURLINFO_SLIST + 28,
+ CURLINFO_LASTSOCKET = CURLINFO_LONG + 29,
+ CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30,
+ CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31,
+ CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32,
+ CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33,
+ CURLINFO_CERTINFO = CURLINFO_SLIST + 34,
+ CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35,
+ /* Fill in new entries below here! */
+
+ CURLINFO_LASTONE = 35
+} CURLINFO;
+
+/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */
+#define CURLPROTO_HTTP (1<<0)
+#define CURLPROTO_HTTPS (1<<1)
+#define CURLPROTO_FTP (1<<2)
+#define CURLPROTO_FTPS (1<<3)
+#define CURLPROTO_SCP (1<<4)
+#define CURLPROTO_SFTP (1<<5)
+#define CURLPROTO_TELNET (1<<6)
+#define CURLPROTO_LDAP (1<<7)
+#define CURLPROTO_LDAPS (1<<8)
+#define CURLPROTO_DICT (1<<9)
+#define CURLPROTO_FILE (1<<10)
+#define CURLPROTO_TFTP (1<<11)
+#define CURLPROTO_ALL (~0) /* enable everything */
+
+/* long may be 32 or 64 bits, but we should never depend on anything else
+ but 32 */
+#define CURLOPTTYPE_LONG 0
+#define CURLOPTTYPE_OBJECTPOINT 10000
+#define CURLOPTTYPE_FUNCTIONPOINT 20000
+#define CURLOPTTYPE_OFF_T 30000
+
+#define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number
+
+/*
+ * This macro-mania below setups the CURLOPT_[what] enum, to be used with
+ * curl_easy_setopt(). The first argument in the CINIT() macro is the [what]
+ * word.
+ */
+
+typedef enum {
+ /* This is the FILE * or void * the regular output should be written to. */
+ CINIT(FILE, OBJECTPOINT, 1),
+
+ /* The full URL to get/put */
+ CINIT(URL, OBJECTPOINT, 2),
+
+ /* Port number to connect to, if other than default. */
+ CINIT(PORT, LONG, 3),
+
+ /* Name of proxy to use. */
+ CINIT(PROXY, OBJECTPOINT, 4),
+
+ /* "name:password" to use when fetching. */
+ CINIT(USERPWD, OBJECTPOINT, 5),
+
+ /* "name:password" to use with proxy. */
+ CINIT(PROXYUSERPWD, OBJECTPOINT, 6),
+
+ /* Range to get, specified as an ASCII string. */
+ CINIT(RANGE, OBJECTPOINT, 7),
+
+ /* not used */
+
+ /* Specified file stream to upload from (use as input): */
+ CINIT(INFILE, OBJECTPOINT, 9),
+
+ /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE
+ * bytes big. If this is not used, error messages go to stderr instead: */
+ CINIT(ERRORBUFFER, OBJECTPOINT, 10),
+
+ /* Function that will be called to store the output (instead of fwrite). The
+ * parameters will use fwrite() syntax, make sure to follow them. */
+ CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11),
+
+ /* Function that will be called to read the input (instead of fread). The
+ * parameters will use fread() syntax, make sure to follow them. */
+ CINIT(READFUNCTION, FUNCTIONPOINT, 12),
+
+ /* Time-out the read operation after this amount of seconds */
+ CINIT(TIMEOUT, LONG, 13),
+
+ /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about
+ * how large the file being sent really is. That allows better error
+ * checking and better verifies that the upload was successful. -1 means
+ * unknown size.
+ *
+ * For large file support, there is also a _LARGE version of the key
+ * which takes an off_t type, allowing platforms with larger off_t
+ * sizes to handle larger files. See below for INFILESIZE_LARGE.
+ */
+ CINIT(INFILESIZE, LONG, 14),
+
+ /* POST static input fields. */
+ CINIT(POSTFIELDS, OBJECTPOINT, 15),
+
+ /* Set the referrer page (needed by some CGIs) */
+ CINIT(REFERER, OBJECTPOINT, 16),
+
+ /* Set the FTP PORT string (interface name, named or numerical IP address)
+ Use i.e '-' to use default address. */
+ CINIT(FTPPORT, OBJECTPOINT, 17),
+
+ /* Set the User-Agent string (examined by some CGIs) */
+ CINIT(USERAGENT, OBJECTPOINT, 18),
+
+ /* If the download receives less than "low speed limit" bytes/second
+ * during "low speed time" seconds, the operations is aborted.
+ * You could i.e if you have a pretty high speed connection, abort if
+ * it is less than 2000 bytes/sec during 20 seconds.
+ */
+
+ /* Set the "low speed limit" */
+ CINIT(LOW_SPEED_LIMIT, LONG, 19),
+
+ /* Set the "low speed time" */
+ CINIT(LOW_SPEED_TIME, LONG, 20),
+
+ /* Set the continuation offset.
+ *
+ * Note there is also a _LARGE version of this key which uses
+ * off_t types, allowing for large file offsets on platforms which
+ * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE.
+ */
+ CINIT(RESUME_FROM, LONG, 21),
+
+ /* Set cookie in request: */
+ CINIT(COOKIE, OBJECTPOINT, 22),
+
+ /* This points to a linked list of headers, struct curl_slist kind */
+ CINIT(HTTPHEADER, OBJECTPOINT, 23),
+
+ /* This points to a linked list of post entries, struct curl_httppost */
+ CINIT(HTTPPOST, OBJECTPOINT, 24),
+
+ /* name of the file keeping your private SSL-certificate */
+ CINIT(SSLCERT, OBJECTPOINT, 25),
+
+ /* password for the SSL or SSH private key */
+ CINIT(KEYPASSWD, OBJECTPOINT, 26),
+
+ /* send TYPE parameter? */
+ CINIT(CRLF, LONG, 27),
+
+ /* send linked-list of QUOTE commands */
+ CINIT(QUOTE, OBJECTPOINT, 28),
+
+ /* send FILE * or void * to store headers to, if you use a callback it
+ is simply passed to the callback unmodified */
+ CINIT(WRITEHEADER, OBJECTPOINT, 29),
+
+ /* point to a file to read the initial cookies from, also enables
+ "cookie awareness" */
+ CINIT(COOKIEFILE, OBJECTPOINT, 31),
+
+ /* What version to specifically try to use.
+ See CURL_SSLVERSION defines below. */
+ CINIT(SSLVERSION, LONG, 32),
+
+ /* What kind of HTTP time condition to use, see defines */
+ CINIT(TIMECONDITION, LONG, 33),
+
+ /* Time to use with the above condition. Specified in number of seconds
+ since 1 Jan 1970 */
+ CINIT(TIMEVALUE, LONG, 34),
+
+ /* 35 = OBSOLETE */
+
+ /* Custom request, for customizing the get command like
+ HTTP: DELETE, TRACE and others
+ FTP: to use a different list command
+ */
+ CINIT(CUSTOMREQUEST, OBJECTPOINT, 36),
+
+ /* HTTP request, for odd commands like DELETE, TRACE and others */
+ CINIT(STDERR, OBJECTPOINT, 37),
+
+ /* 38 is not used */
+
+ /* send linked-list of post-transfer QUOTE commands */
+ CINIT(POSTQUOTE, OBJECTPOINT, 39),
+
+ /* Pass a pointer to string of the output using full variable-replacement
+ as described elsewhere. */
+ CINIT(WRITEINFO, OBJECTPOINT, 40),
+
+ CINIT(VERBOSE, LONG, 41), /* talk a lot */
+ CINIT(HEADER, LONG, 42), /* throw the header out too */
+ CINIT(NOPROGRESS, LONG, 43), /* shut off the progress meter */
+ CINIT(NOBODY, LONG, 44), /* use HEAD to get http document */
+ CINIT(FAILONERROR, LONG, 45), /* no output on http error codes >= 300 */
+ CINIT(UPLOAD, LONG, 46), /* this is an upload */
+ CINIT(POST, LONG, 47), /* HTTP POST method */
+ CINIT(DIRLISTONLY, LONG, 48), /* return bare names when listing directories */
+
+ CINIT(APPEND, LONG, 50), /* Append instead of overwrite on upload! */
+
+ /* Specify whether to read the user+password from the .netrc or the URL.
+ * This must be one of the CURL_NETRC_* enums below. */
+ CINIT(NETRC, LONG, 51),
+
+ CINIT(FOLLOWLOCATION, LONG, 52), /* use Location: Luke! */
+
+ CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */
+ CINIT(PUT, LONG, 54), /* HTTP PUT */
+
+ /* 55 = OBSOLETE */
+
+ /* Function that will be called instead of the internal progress display
+ * function. This function should be defined as the curl_progress_callback
+ * prototype defines. */
+ CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56),
+
+ /* Data passed to the progress callback */
+ CINIT(PROGRESSDATA, OBJECTPOINT, 57),
+
+ /* We want the referrer field set automatically when following locations */
+ CINIT(AUTOREFERER, LONG, 58),
+
+ /* Port of the proxy, can be set in the proxy string as well with:
+ "[host]:[port]" */
+ CINIT(PROXYPORT, LONG, 59),
+
+ /* size of the POST input data, if strlen() is not good to use */
+ CINIT(POSTFIELDSIZE, LONG, 60),
+
+ /* tunnel non-http operations through a HTTP proxy */
+ CINIT(HTTPPROXYTUNNEL, LONG, 61),
+
+ /* Set the interface string to use as outgoing network interface */
+ CINIT(INTERFACE, OBJECTPOINT, 62),
+
+ /* Set the krb4/5 security level, this also enables krb4/5 awareness. This
+ * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string
+ * is set but doesn't match one of these, 'private' will be used. */
+ CINIT(KRBLEVEL, OBJECTPOINT, 63),
+
+ /* Set if we should verify the peer in ssl handshake, set 1 to verify. */
+ CINIT(SSL_VERIFYPEER, LONG, 64),
+
+ /* The CApath or CAfile used to validate the peer certificate
+ this option is used only if SSL_VERIFYPEER is true */
+ CINIT(CAINFO, OBJECTPOINT, 65),
+
+ /* 66 = OBSOLETE */
+ /* 67 = OBSOLETE */
+
+ /* Maximum number of http redirects to follow */
+ CINIT(MAXREDIRS, LONG, 68),
+
+ /* Pass a long set to 1 to get the date of the requested document (if
+ possible)! Pass a zero to shut it off. */
+ CINIT(FILETIME, LONG, 69),
+
+ /* This points to a linked list of telnet options */
+ CINIT(TELNETOPTIONS, OBJECTPOINT, 70),
+
+ /* Max amount of cached alive connections */
+ CINIT(MAXCONNECTS, LONG, 71),
+
+ /* What policy to use when closing connections when the cache is filled
+ up */
+ CINIT(CLOSEPOLICY, LONG, 72),
+
+ /* 73 = OBSOLETE */
+
+ /* Set to explicitly use a new connection for the upcoming transfer.
+ Do not use this unless you're absolutely sure of this, as it makes the
+ operation slower and is less friendly for the network. */
+ CINIT(FRESH_CONNECT, LONG, 74),
+
+ /* Set to explicitly forbid the upcoming transfer's connection to be re-used
+ when done. Do not use this unless you're absolutely sure of this, as it
+ makes the operation slower and is less friendly for the network. */
+ CINIT(FORBID_REUSE, LONG, 75),
+
+ /* Set to a file name that contains random data for libcurl to use to
+ seed the random engine when doing SSL connects. */
+ CINIT(RANDOM_FILE, OBJECTPOINT, 76),
+
+ /* Set to the Entropy Gathering Daemon socket pathname */
+ CINIT(EGDSOCKET, OBJECTPOINT, 77),
+
+ /* Time-out connect operations after this amount of seconds, if connects
+ are OK within this time, then fine... This only aborts the connect
+ phase. [Only works on unix-style/SIGALRM operating systems] */
+ CINIT(CONNECTTIMEOUT, LONG, 78),
+
+ /* Function that will be called to store headers (instead of fwrite). The
+ * parameters will use fwrite() syntax, make sure to follow them. */
+ CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79),
+
+ /* Set this to force the HTTP request to get back to GET. Only really usable
+ if POST, PUT or a custom request have been used first.
+ */
+ CINIT(HTTPGET, LONG, 80),
+
+ /* Set if we should verify the Common name from the peer certificate in ssl
+ * handshake, set 1 to check existence, 2 to ensure that it matches the
+ * provided hostname. */
+ CINIT(SSL_VERIFYHOST, LONG, 81),
+
+ /* Specify which file name to write all known cookies in after completed
+ operation. Set file name to "-" (dash) to make it go to stdout. */
+ CINIT(COOKIEJAR, OBJECTPOINT, 82),
+
+ /* Specify which SSL ciphers to use */
+ CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83),
+
+ /* Specify which HTTP version to use! This must be set to one of the
+ CURL_HTTP_VERSION* enums set below. */
+ CINIT(HTTP_VERSION, LONG, 84),
+
+ /* Specifically switch on or off the FTP engine's use of the EPSV command. By
+ default, that one will always be attempted before the more traditional
+ PASV command. */
+ CINIT(FTP_USE_EPSV, LONG, 85),
+
+ /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */
+ CINIT(SSLCERTTYPE, OBJECTPOINT, 86),
+
+ /* name of the file keeping your private SSL-key */
+ CINIT(SSLKEY, OBJECTPOINT, 87),
+
+ /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */
+ CINIT(SSLKEYTYPE, OBJECTPOINT, 88),
+
+ /* crypto engine for the SSL-sub system */
+ CINIT(SSLENGINE, OBJECTPOINT, 89),
+
+ /* set the crypto engine for the SSL-sub system as default
+ the param has no meaning...
+ */
+ CINIT(SSLENGINE_DEFAULT, LONG, 90),
+
+ /* Non-zero value means to use the global dns cache */
+ CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* To become OBSOLETE soon */
+
+ /* DNS cache timeout */
+ CINIT(DNS_CACHE_TIMEOUT, LONG, 92),
+
+ /* send linked-list of pre-transfer QUOTE commands */
+ CINIT(PREQUOTE, OBJECTPOINT, 93),
+
+ /* set the debug function */
+ CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94),
+
+ /* set the data for the debug function */
+ CINIT(DEBUGDATA, OBJECTPOINT, 95),
+
+ /* mark this as start of a cookie session */
+ CINIT(COOKIESESSION, LONG, 96),
+
+ /* The CApath directory used to validate the peer certificate
+ this option is used only if SSL_VERIFYPEER is true */
+ CINIT(CAPATH, OBJECTPOINT, 97),
+
+ /* Instruct libcurl to use a smaller receive buffer */
+ CINIT(BUFFERSIZE, LONG, 98),
+
+ /* Instruct libcurl to not use any signal/alarm handlers, even when using
+ timeouts. This option is useful for multi-threaded applications.
+ See libcurl-the-guide for more background information. */
+ CINIT(NOSIGNAL, LONG, 99),
+
+ /* Provide a CURLShare for mutexing non-ts data */
+ CINIT(SHARE, OBJECTPOINT, 100),
+
+ /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default),
+ CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */
+ CINIT(PROXYTYPE, LONG, 101),
+
+ /* Set the Accept-Encoding string. Use this to tell a server you would like
+ the response to be compressed. */
+ CINIT(ENCODING, OBJECTPOINT, 102),
+
+ /* Set pointer to private data */
+ CINIT(PRIVATE, OBJECTPOINT, 103),
+
+ /* Set aliases for HTTP 200 in the HTTP Response header */
+ CINIT(HTTP200ALIASES, OBJECTPOINT, 104),
+
+ /* Continue to send authentication (user+password) when following locations,
+ even when hostname changed. This can potentially send off the name
+ and password to whatever host the server decides. */
+ CINIT(UNRESTRICTED_AUTH, LONG, 105),
+
+ /* Specifically switch on or off the FTP engine's use of the EPRT command ( it
+ also disables the LPRT attempt). By default, those ones will always be
+ attempted before the good old traditional PORT command. */
+ CINIT(FTP_USE_EPRT, LONG, 106),
+
+ /* Set this to a bitmask value to enable the particular authentications
+ methods you like. Use this in combination with CURLOPT_USERPWD.
+ Note that setting multiple bits may cause extra network round-trips. */
+ CINIT(HTTPAUTH, LONG, 107),
+
+ /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx
+ in second argument. The function must be matching the
+ curl_ssl_ctx_callback proto. */
+ CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108),
+
+ /* Set the userdata for the ssl context callback function's third
+ argument */
+ CINIT(SSL_CTX_DATA, OBJECTPOINT, 109),
+
+ /* FTP Option that causes missing dirs to be created on the remote server.
+ In 7.19.4 we introduced the convenience enums for this option using the
+ CURLFTP_CREATE_DIR prefix.
+ */
+ CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110),
+
+ /* Set this to a bitmask value to enable the particular authentications
+ methods you like. Use this in combination with CURLOPT_PROXYUSERPWD.
+ Note that setting multiple bits may cause extra network round-trips. */
+ CINIT(PROXYAUTH, LONG, 111),
+
+ /* FTP option that changes the timeout, in seconds, associated with
+ getting a response. This is different from transfer timeout time and
+ essentially places a demand on the FTP server to acknowledge commands
+ in a timely manner. */
+ CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112),
+
+ /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to
+ tell libcurl to resolve names to those IP versions only. This only has
+ affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */
+ CINIT(IPRESOLVE, LONG, 113),
+
+ /* Set this option to limit the size of a file that will be downloaded from
+ an HTTP or FTP server.
+
+ Note there is also _LARGE version which adds large file support for
+ platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */
+ CINIT(MAXFILESIZE, LONG, 114),
+
+ /* See the comment for INFILESIZE above, but in short, specifies
+ * the size of the file being uploaded. -1 means unknown.
+ */
+ CINIT(INFILESIZE_LARGE, OFF_T, 115),
+
+ /* Sets the continuation offset. There is also a LONG version of this;
+ * look above for RESUME_FROM.
+ */
+ CINIT(RESUME_FROM_LARGE, OFF_T, 116),
+
+ /* Sets the maximum size of data that will be downloaded from
+ * an HTTP or FTP server. See MAXFILESIZE above for the LONG version.
+ */
+ CINIT(MAXFILESIZE_LARGE, OFF_T, 117),
+
+ /* Set this option to the file name of your .netrc file you want libcurl
+ to parse (using the CURLOPT_NETRC option). If not set, libcurl will do
+ a poor attempt to find the user's home directory and check for a .netrc
+ file in there. */
+ CINIT(NETRC_FILE, OBJECTPOINT, 118),
+
+ /* Enable SSL/TLS for FTP, pick one of:
+ CURLFTPSSL_TRY - try using SSL, proceed anyway otherwise
+ CURLFTPSSL_CONTROL - SSL for the control connection or fail
+ CURLFTPSSL_ALL - SSL for all communication or fail
+ */
+ CINIT(USE_SSL, LONG, 119),
+
+ /* The _LARGE version of the standard POSTFIELDSIZE option */
+ CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120),
+
+ /* Enable/disable the TCP Nagle algorithm */
+ CINIT(TCP_NODELAY, LONG, 121),
+
+ /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+ /* 123 OBSOLETE. Gone in 7.16.0 */
+ /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+ /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+ /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */
+ /* 127 OBSOLETE. Gone in 7.16.0 */
+ /* 128 OBSOLETE. Gone in 7.16.0 */
+
+ /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option
+ can be used to change libcurl's default action which is to first try
+ "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK
+ response has been received.
+
+ Available parameters are:
+ CURLFTPAUTH_DEFAULT - let libcurl decide
+ CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS
+ CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL
+ */
+ CINIT(FTPSSLAUTH, LONG, 129),
+
+ CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130),
+ CINIT(IOCTLDATA, OBJECTPOINT, 131),
+
+ /* 132 OBSOLETE. Gone in 7.16.0 */
+ /* 133 OBSOLETE. Gone in 7.16.0 */
+
+ /* zero terminated string for pass on to the FTP server when asked for
+ "account" info */
+ CINIT(FTP_ACCOUNT, OBJECTPOINT, 134),
+
+ /* feed cookies into cookie engine */
+ CINIT(COOKIELIST, OBJECTPOINT, 135),
+
+ /* ignore Content-Length */
+ CINIT(IGNORE_CONTENT_LENGTH, LONG, 136),
+
+ /* Set to non-zero to skip the IP address received in a 227 PASV FTP server
+ response. Typically used for FTP-SSL purposes but is not restricted to
+ that. libcurl will then instead use the same IP address it used for the
+ control connection. */
+ CINIT(FTP_SKIP_PASV_IP, LONG, 137),
+
+ /* Select "file method" to use when doing FTP, see the curl_ftpmethod
+ above. */
+ CINIT(FTP_FILEMETHOD, LONG, 138),
+
+ /* Local port number to bind the socket to */
+ CINIT(LOCALPORT, LONG, 139),
+
+ /* Number of ports to try, including the first one set with LOCALPORT.
+ Thus, setting it to 1 will make no additional attempts but the first.
+ */
+ CINIT(LOCALPORTRANGE, LONG, 140),
+
+ /* no transfer, set up connection and let application use the socket by
+ extracting it with CURLINFO_LASTSOCKET */
+ CINIT(CONNECT_ONLY, LONG, 141),
+
+ /* Function that will be called to convert from the
+ network encoding (instead of using the iconv calls in libcurl) */
+ CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142),
+
+ /* Function that will be called to convert to the
+ network encoding (instead of using the iconv calls in libcurl) */
+ CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143),
+
+ /* Function that will be called to convert from UTF8
+ (instead of using the iconv calls in libcurl)
+ Note that this is used only for SSL certificate processing */
+ CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144),
+
+ /* if the connection proceeds too quickly then need to slow it down */
+ /* limit-rate: maximum number of bytes per second to send or receive */
+ CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145),
+ CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146),
+
+ /* Pointer to command string to send if USER/PASS fails. */
+ CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147),
+
+ /* callback function for setting socket options */
+ CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148),
+ CINIT(SOCKOPTDATA, OBJECTPOINT, 149),
+
+ /* set to 0 to disable session ID re-use for this transfer, default is
+ enabled (== 1) */
+ CINIT(SSL_SESSIONID_CACHE, LONG, 150),
+
+ /* allowed SSH authentication methods */
+ CINIT(SSH_AUTH_TYPES, LONG, 151),
+
+ /* Used by scp/sftp to do public/private key authentication */
+ CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152),
+ CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153),
+
+ /* Send CCC (Clear Command Channel) after authentication */
+ CINIT(FTP_SSL_CCC, LONG, 154),
+
+ /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */
+ CINIT(TIMEOUT_MS, LONG, 155),
+ CINIT(CONNECTTIMEOUT_MS, LONG, 156),
+
+ /* set to zero to disable the libcurl's decoding and thus pass the raw body
+ data to the application even when it is encoded/compressed */
+ CINIT(HTTP_TRANSFER_DECODING, LONG, 157),
+ CINIT(HTTP_CONTENT_DECODING, LONG, 158),
+
+ /* Permission used when creating new files and directories on the remote
+ server for protocols that support it, SFTP/SCP/FILE */
+ CINIT(NEW_FILE_PERMS, LONG, 159),
+ CINIT(NEW_DIRECTORY_PERMS, LONG, 160),
+
+ /* Set the behaviour of POST when redirecting. Values must be set to one
+ of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */
+ CINIT(POSTREDIR, LONG, 161),
+
+ /* used by scp/sftp to verify the host's public key */
+ CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162),
+
+ /* Callback function for opening socket (instead of socket(2)). Optionally,
+ callback is able change the address or refuse to connect returning
+ CURL_SOCKET_BAD. The callback should have type
+ curl_opensocket_callback */
+ CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163),
+ CINIT(OPENSOCKETDATA, OBJECTPOINT, 164),
+
+ /* POST volatile input fields. */
+ CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165),
+
+ /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */
+ CINIT(PROXY_TRANSFER_MODE, LONG, 166),
+
+ /* Callback function for seeking in the input stream */
+ CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167),
+ CINIT(SEEKDATA, OBJECTPOINT, 168),
+
+ /* CRL file */
+ CINIT(CRLFILE, OBJECTPOINT, 169),
+
+ /* Issuer certificate */
+ CINIT(ISSUERCERT, OBJECTPOINT, 170),
+
+ /* (IPv6) Address scope */
+ CINIT(ADDRESS_SCOPE, LONG, 171),
+
+ /* Collect certificate chain info and allow it to get retrievable with
+ CURLINFO_CERTINFO after the transfer is complete. (Unfortunately) only
+ working with OpenSSL-powered builds. */
+ CINIT(CERTINFO, LONG, 172),
+
+ /* "name" and "pwd" to use when fetching. */
+ CINIT(USERNAME, OBJECTPOINT, 173),
+ CINIT(PASSWORD, OBJECTPOINT, 174),
+
+ /* "name" and "pwd" to use with Proxy when fetching. */
+ CINIT(PROXYUSERNAME, OBJECTPOINT, 175),
+ CINIT(PROXYPASSWORD, OBJECTPOINT, 176),
+
+ /* Comma separated list of hostnames defining no-proxy zones. These should
+ match both hostnames directly, and hostnames within a domain. For
+ example, local.com will match local.com and www.local.com, but NOT
+ notlocal.com or www.notlocal.com. For compatibility with other
+ implementations of this, .local.com will be considered to be the same as
+ local.com. A single * is the only valid wildcard, and effectively
+ disables the use of proxy. */
+ CINIT(NOPROXY, OBJECTPOINT, 177),
+
+ /* block size for TFTP transfers */
+ CINIT(TFTP_BLKSIZE, LONG, 178),
+
+ /* Socks Service */
+ CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179),
+
+ /* Socks Service */
+ CINIT(SOCKS5_GSSAPI_NEC, LONG, 180),
+
+ /* set the bitmask for the protocols that are allowed to be used for the
+ transfer, which thus helps the app which takes URLs from users or other
+ external inputs and want to restrict what protocol(s) to deal
+ with. Defaults to CURLPROTO_ALL. */
+ CINIT(PROTOCOLS, LONG, 181),
+
+ /* set the bitmask for the protocols that libcurl is allowed to follow to,
+ as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs
+ to be set in both bitmasks to be allowed to get redirected to. Defaults
+ to all protocols except FILE and SCP. */
+ CINIT(REDIR_PROTOCOLS, LONG, 182),
+
+ /* set the SSH knownhost file name to use */
+ CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183),
+
+ /* set the SSH host key callback, must point to a curl_sshkeycallback
+ function */
+ CINIT(SSH_KEYFUNCTION, FUNCTIONPOINT, 184),
+
+ /* set the SSH host key callback custom pointer */
+ CINIT(SSH_KEYDATA, OBJECTPOINT, 185),
+
+ CURLOPT_LASTENTRY /* the last unused */
+} CURLoption;
+
+ /* three convenient "aliases" that follow the name scheme better */
+#define CURLOPT_WRITEDATA CURLOPT_FILE
+#define CURLOPT_READDATA CURLOPT_INFILE
+#define CURLOPT_HEADERDATA CURLOPT_WRITEHEADER
+
+typedef int64u curl_off_t;
+
+//***************************************************************************
+// Dynamic load stuff
+//***************************************************************************
+
+extern "C"
+{
+
+#if defined (_WIN32) || defined (WIN32)
+ #define MEDIAINFODLL_NAME "libcurl.dll"
+#elif defined(__APPLE__) && defined(__MACH__)
+ #define MEDIAINFODLL_NAME "libcurl.0.dylib"
+ #define __stdcall
+#else
+ #define MEDIAINFODLL_NAME "libcurl.so.0"
+ #define __stdcall
+#endif //!defined(_WIN32) || defined (WIN32)
+
+#ifdef MEDIAINFO_GLIBC
+ #include <gmodule.h>
+ static GModule* libcurl_Module=NULL;
+#elif defined (_WIN32) || defined (WIN32)
+ #undef __TEXT
+ #include <windows.h>
+ static HMODULE libcurl_Module=NULL;
+#else
+ #include <dlfcn.h>
+ static void* libcurl_Module=NULL;
+#endif
+
+size_t libcurl_Module_Count=0;
+
+#ifdef MEDIAINFO_GLIBC
+#define MEDIAINFO_ASSIGN(_Name,_Name2) \
+ if (!g_module_symbol (libcurl_Module, "curl_easy_"_Name2, (gpointer*)&curl_easy_##_Name)) \
+ Errors++;
+#elif defined (_WIN32) || defined (WIN32)
+#define MEDIAINFO_ASSIGN(_Name,_Name2) \
+ curl_easy_##_Name=(LIBCURL_##_Name)GetProcAddress(libcurl_Module, "curl_easy_"_Name2); \
+ if (curl_easy_##_Name==NULL) Errors++;
+#else
+#define MEDIAINFO_ASSIGN(_Name,_Name2) \
+ curl_easy_##_Name=(LIBCURL_##_Name)dlsym(libcurl_Module, "curl_easy_"_Name2); \
+ if (curl_easy_##_Name==NULL) Errors++;
+#endif
+
+#undef curl_easy_init
+typedef CURL* (*LIBCURL_init) (); static LIBCURL_init curl_easy_init;
+typedef CURLcode (*LIBCURL_setopt) (CURL *curl, CURLoption option, ...); static LIBCURL_setopt curl_easy_setopt;
+typedef CURLcode (*LIBCURL_perform)(CURL *curl); static LIBCURL_perform curl_easy_perform;
+typedef void (*LIBCURL_cleanup)(CURL *curl); static LIBCURL_cleanup curl_easy_cleanup;
+typedef CURLcode (*LIBCURL_getinfo)(CURL *curl, CURLINFO info, ...); static LIBCURL_getinfo curl_easy_getinfo;
+}
diff --git a/src/thirdparty/MediaInfo/Setup.h b/src/thirdparty/MediaInfo/Setup.h
index f47cdc094..23e3aafb6 100644
--- a/src/thirdparty/MediaInfo/Setup.h
+++ b/src/thirdparty/MediaInfo/Setup.h
@@ -175,7 +175,9 @@
#define MEDIAINFO_LIBCURL_YES
#endif
#if !defined(MEDIAINFO_READER_NO) && !defined(MEDIAINFO_LIBMMS_NO) && !defined(MEDIAINFO_LIBMMS_YES)
- #define MEDIAINFO_LIBMMS_YES
+ #ifndef WINDOWS
+ #define MEDIAINFO_LIBMMS_YES
+ #endif //WINDOWS
#endif
//---------------------------------------------------------------------------
diff --git a/src/thirdparty/MediaInfo/Tag/File_Id3v2.cpp b/src/thirdparty/MediaInfo/Tag/File_Id3v2.cpp
index 79e63aaac..375afd38e 100644
--- a/src/thirdparty/MediaInfo/Tag/File_Id3v2.cpp
+++ b/src/thirdparty/MediaInfo/Tag/File_Id3v2.cpp
@@ -313,7 +313,6 @@ File_Id3v2::File_Id3v2()
//Temp
Id3v2_Size=0;
- Unsynchronisation_Frame=false;
}
//***************************************************************************
@@ -450,6 +449,9 @@ void File_Id3v2::FileHeader_Parse()
//---------------------------------------------------------------------------
void File_Id3v2::Header_Parse()
{
+ Unsynchronisation_Frame=false;
+ DataLengthIndicator=false;
+
if (Id3v2_Size<10) //first 10 is minimum size of a tag, Second 10 is ID3v2 header size
{
//Not enough place for a tag, must be padding
@@ -486,6 +488,14 @@ void File_Id3v2::Header_Parse()
int16u Flags;
Get_C4 (Frame_ID, "Frame ID");
Get_B4 (Size, "Size");
+ if (Id3v2_Version!=3)
+ {
+ Size=((Size>>0)&0x7F)
+ | ((Size>>1)&0x3F80)
+ | ((Size>>2)&0x1FC000)
+ | ((Size>>3)&0x0FE00000);
+ Param_Info(Size, " bytes");
+ }
Get_B2 (Flags, "Flags");
if (Id3v2_Version==3)
{
@@ -505,15 +515,7 @@ void File_Id3v2::Header_Parse()
Skip_Flags(Flags, 3, "Compression");
Skip_Flags(Flags, 2, "Encryption");
Get_Flags (Flags, 1, Unsynchronisation_Frame, "Unsynchronisation");
- Skip_Flags(Flags, 0, "Data length indicator");
- }
- if (Id3v2_Version!=3)
- {
- Size=((Size>>0)&0x7F)
- | ((Size>>1)&0x3F80)
- | ((Size>>2)&0x1FC000)
- | ((Size>>3)&0x0FE00000);
- Param_Info(Size);
+ Get_Flags (Flags, 0, DataLengthIndicator, "Data length indicator");
}
}
@@ -532,12 +534,24 @@ void File_Id3v2::Data_Parse()
{
Id3v2_Size-=Header_Size+Element_Size;
+ if (DataLengthIndicator)
+ {
+ int32u DataLength;
+ Get_B4 (DataLength, "Data length");
+ DataLength=((DataLength>>0)&0x7F)
+ | ((DataLength>>1)&0x3F80)
+ | ((DataLength>>2)&0x1FC000)
+ | ((DataLength>>3)&0x0FE00000);
+ Param_Info(DataLength, " bytes");
+ }
+
//Unsynchronisation
int8u* Buffer_Unsynch=NULL;
const int8u* Save_Buffer=Buffer;
size_t Save_Buffer_Offset=Buffer_Offset;
+ int64u Save_Element_Offset=Element_Offset;
int64u Save_Element_Size=Element_Size;
- size_t Element_Offset_Unsynch=0;
+ size_t Element_Offset_Unsynch=Element_Offset;
std::vector<size_t> Unsynch_List;
if (Unsynchronisation_Global || Unsynchronisation_Frame)
{
@@ -550,9 +564,10 @@ void File_Id3v2::Data_Parse()
if (!Unsynch_List.empty())
{
//We must change the buffer for keeping out
- Element_Size=Save_Element_Size-Unsynch_List.size();
+ Element_Offset=0;
+ Element_Size=Save_Element_Size-Save_Element_Offset-Unsynch_List.size();
Buffer_Offset=0;
- Buffer_Unsynch=new int8u[(size_t)Element_Size];
+ Buffer_Unsynch=new int8u[(size_t)(Element_Size-Save_Element_Offset)];
for (size_t Pos=0; Pos<=Unsynch_List.size(); Pos++)
{
size_t Pos0=(Pos==Unsynch_List.size())?(size_t)Save_Element_Size:(Unsynch_List[Pos]);
@@ -560,7 +575,7 @@ void File_Id3v2::Data_Parse()
size_t Buffer_Unsynch_Begin=Pos1-Pos;
size_t Save_Buffer_Begin =Pos1;
size_t Size= Pos0-Pos1;
- std::memcpy(Buffer_Unsynch+Buffer_Unsynch_Begin, Save_Buffer+Save_Buffer_Offset+Save_Buffer_Begin, Size);
+ std::memcpy(Buffer_Unsynch+Buffer_Unsynch_Begin, Save_Buffer+Save_Element_Offset+Save_Buffer_Offset+Save_Buffer_Begin, Size);
}
Buffer=Buffer_Unsynch;
}
diff --git a/src/thirdparty/MediaInfo/Tag/File_Id3v2.h b/src/thirdparty/MediaInfo/Tag/File_Id3v2.h
index 3eb0efb9c..7b5987512 100644
--- a/src/thirdparty/MediaInfo/Tag/File_Id3v2.h
+++ b/src/thirdparty/MediaInfo/Tag/File_Id3v2.h
@@ -235,6 +235,7 @@ private :
int8u Id3v2_Version;
bool Unsynchronisation_Global;
bool Unsynchronisation_Frame;
+ bool DataLengthIndicator;
//Helpers
void Fill_Name();
diff --git a/src/thirdparty/MediaInfo/Tag/File_VorbisCom.cpp b/src/thirdparty/MediaInfo/Tag/File_VorbisCom.cpp
index ff899080e..fb5d3aa0c 100644
--- a/src/thirdparty/MediaInfo/Tag/File_VorbisCom.cpp
+++ b/src/thirdparty/MediaInfo/Tag/File_VorbisCom.cpp
@@ -235,6 +235,7 @@ void File_VorbisCom::Data_Parse()
else if (Key==_T("TRACK_COMMENT")) Fill(StreamKind_Multiple, 0, "Comment", Value);
else if (Key==_T("TRACKNUMBER")) Fill(StreamKind_Multiple, 0, "Track/Position", Value);
else if (Key==_T("VERSION")) Fill(StreamKind_Common, 0, "Track/More", Value);
+ else if (Key==_T("BPM")) Fill(StreamKind_Common, 0, "BPM", Value);
else if (Key==_T("WAVEFORMATEXTENSIBLE_CHANNEL_MASK"))
{
//This is an hexadecimal value
diff --git a/src/thirdparty/MediaInfo/Text/File_OtherText.cpp b/src/thirdparty/MediaInfo/Text/File_OtherText.cpp
index 9ace0c43d..c30f3eee6 100644
--- a/src/thirdparty/MediaInfo/Text/File_OtherText.cpp
+++ b/src/thirdparty/MediaInfo/Text/File_OtherText.cpp
@@ -186,10 +186,6 @@ void File_OtherText::Read_Buffer_Continue()
Format=_T("CPC Captioning");
Codec=_T("CPC Captioning");
}
- else if (false
- )
- {
- }
else
return;
diff --git a/src/thirdparty/MediaInfo/Video/File_Avc.cpp b/src/thirdparty/MediaInfo/Video/File_Avc.cpp
index 86f77332d..674e00fc8 100644
--- a/src/thirdparty/MediaInfo/Video/File_Avc.cpp
+++ b/src/thirdparty/MediaInfo/Video/File_Avc.cpp
@@ -1266,11 +1266,11 @@ void File_Avc::sei_message()
Element_Size=Element_Offset_Save;
switch (payloadType)
{
- case 0 : sei_message_buffering_period(payloadSize); break;
+ case 0 : sei_message_buffering_period(); break;
case 1 : sei_message_pic_timing(payloadSize); break;
- case 4 : sei_message_user_data_registered_itu_t_t35(payloadSize); break;
+ case 4 : sei_message_user_data_registered_itu_t_t35(); break;
case 5 : sei_message_user_data_unregistered(payloadSize); break;
- case 6 : sei_message_recovery_point(payloadSize); break;
+ case 6 : sei_message_recovery_point(); break;
case 32 : sei_message_mainconcept(payloadSize); break;
default :
Element_Info("unknown");
@@ -1282,7 +1282,7 @@ void File_Avc::sei_message()
//---------------------------------------------------------------------------
// SEI - 0
-void File_Avc::sei_message_buffering_period(int32u payloadSize)
+void File_Avc::sei_message_buffering_period()
{
Element_Info("buffering_period");
@@ -1399,7 +1399,7 @@ void File_Avc::sei_message_pic_timing(int32u payloadSize)
//---------------------------------------------------------------------------
// SEI - 5
-void File_Avc::sei_message_user_data_registered_itu_t_t35(int32u payloadSize)
+void File_Avc::sei_message_user_data_registered_itu_t_t35()
{
Element_Info("user_data_registered_itu_t_t35");
@@ -1805,7 +1805,7 @@ void File_Avc::sei_message_user_data_unregistered_x264(int32u payloadSize)
//---------------------------------------------------------------------------
// SEI - 6
-void File_Avc::sei_message_recovery_point(int32u payloadSize)
+void File_Avc::sei_message_recovery_point()
{
Element_Info("recovery_point");
diff --git a/src/thirdparty/MediaInfo/Video/File_Avc.h b/src/thirdparty/MediaInfo/Video/File_Avc.h
index ff87678ea..5e27da3dd 100644
--- a/src/thirdparty/MediaInfo/Video/File_Avc.h
+++ b/src/thirdparty/MediaInfo/Video/File_Avc.h
@@ -86,16 +86,16 @@ private :
void pic_parameter_set();
void sei();
void sei_message();
- void sei_message_buffering_period(int32u payloadSize);
+ void sei_message_buffering_period();
void sei_message_pic_timing(int32u payloadSize);
- void sei_message_user_data_registered_itu_t_t35(int32u payloadSize);
+ void sei_message_user_data_registered_itu_t_t35();
void sei_message_user_data_registered_itu_t_t35_DTG1();
void sei_message_user_data_registered_itu_t_t35_GA94();
void sei_message_user_data_registered_itu_t_t35_GA94_03();
void sei_message_user_data_registered_itu_t_t35_GA94_06();
void sei_message_user_data_unregistered(int32u payloadSize);
void sei_message_user_data_unregistered_x264(int32u payloadSize);
- void sei_message_recovery_point(int32u payloadSize);
+ void sei_message_recovery_point();
void sei_message_mainconcept(int32u payloadSize);
void access_unit_delimiter();
void filler_data();
diff --git a/src/thirdparty/MediaInfo/Video/File_Mpegv.h b/src/thirdparty/MediaInfo/Video/File_Mpegv.h
index a888b4d83..ed36d4d01 100644
--- a/src/thirdparty/MediaInfo/Video/File_Mpegv.h
+++ b/src/thirdparty/MediaInfo/Video/File_Mpegv.h
@@ -256,8 +256,8 @@ private :
bool Parsing_End_ForDTS;
bool bit_rate_value_IsValid;
bool profile_and_level_indication_escape;
- size_t RefFramesCount;
- size_t BVOPsSinceLastRefFrames;
+ int8u RefFramesCount;
+ int8u BVOPsSinceLastRefFrames;
bool Field_Count_AfterLastCompleFrame;
};