Advertisement
PiToLoKo

MediaInfo.dll implementation for VBNET

Nov 19th, 2013
767
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 79.82 KB | None | 0 0
  1. #Region " MediaInfo Helper "
  2.  
  3. ' [ MediaInfo Helper ]
  4. '
  5. ' // By Elektro H@cker
  6. '
  7. ' Instructions :
  8. ' 1. Add the "MediaInfo.dll" into the project dir.
  9.  
  10. #Region " Usage Examples "
  11.  
  12. 'Private Sub Test()
  13.  
  14. '    ' Track position
  15. '    Dim MI_Track As Integer = 0
  16.  
  17. '    ' MediaInfo Object
  18. '    Dim MI As New MediaInfo
  19.  
  20. '    ' MediaInfo Version
  21. '    MsgBox(MI.LibraryInfo(MediaInfo.MediaInfoLibInfo.Info_Version))
  22.  
  23. '    ' MediaInfo Parameters
  24. '    MsgBox(MI.LibraryInfo(MediaInfo.MediaInfoLibInfo.Info_Parameters_CSV))
  25.  
  26. '    ' Open a file
  27. '    MI.Open("C:\File.mp3")
  28.  
  29. '    ' Full Inform of file
  30. '    MsgBox(MI.Inform())
  31.  
  32. '    ' File full Name
  33. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.CompleteName))
  34.  
  35. '    ' File folder name
  36. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.FolderName))
  37.  
  38. '    ' File File name
  39. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.FileName))
  40.  
  41. '    ' File file extension
  42. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.FileExtension).ToLower)
  43.  
  44. '    ' File format
  45. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.Format))
  46.  
  47. '    ' File size (In bytes)
  48. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.FileSize))
  49.  
  50. '    ' Metadata (Title)
  51. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.General, MediaInfo.MediaInfoOption.Title))
  52.  
  53. '    ' Audio-Track format
  54. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Audio, MediaInfo.MediaInfoOption.Format))
  55.  
  56. '    ' Audio-Track BitRate (In bps)
  57. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Audio, MediaInfo.MediaInfoOption.BitRate))
  58.  
  59. '    ' Audio-Track duration (In HH:MM:SS)
  60. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Audio, MediaInfo.MediaInfoOption.Duration__String3).Split(".")(0))
  61.  
  62. '    ' Video-Track format
  63. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Video, MI_Track, MediaInfo.MediaInfoOption.Format))
  64.  
  65. '    ' Video-Track BitRate (In bps)
  66. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Video, MI_Track, MediaInfo.MediaInfoOption.BitRate))
  67.  
  68. '    ' Video-Track duration (In HH:MM:SS)
  69. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Video, MI_Track, MediaInfo.MediaInfoOption.Duration__String3).Split(".")(0))
  70.  
  71. '    ' Video-Track Framecount (Total frames)
  72. '    MsgBox(MI.GetInfo(MediaInfo.StreamKind.Video, MI_Track, MediaInfo.MediaInfoOption.FrameCount))
  73.  
  74. '    ' Get the number of total audio tracks (For video files)
  75. '    MsgBox(MI.Count_Get(MediaInfo.StreamKind.Audio, 2))
  76.  
  77. '    ' Processes all the audio tracks of a video file
  78. '    While Not MI_Track = MI.Count_Get(MediaInfo.StreamKind.Audio)
  79. '        MsgBox(MI.GetInfo(MediaInfo.StreamKind.Audio, MI_Track, MediaInfo.MediaInfoOption.Format))
  80. '        MI_Track += 1
  81. '    End While
  82.  
  83. '    ' Close the file
  84. '    MI.Close()
  85.  
  86. '    ' DEBUG: Generates the MediaInfoOption Enumeration
  87. '    MediaInfo.MakeMediaInfoEnum()
  88.  
  89. 'End Sub
  90.  
  91. #End Region
  92.  
  93. Public Class MediaInfo : Implements IDisposable
  94.  
  95.     Private Handle As IntPtr = IntPtr.Zero
  96.  
  97. #Region " API "
  98.  
  99.     Private Class SafeNativeMethods
  100.  
  101.         Friend Declare Unicode _
  102.         Function MediaInfo_New Lib "MediaInfo.DLL" (
  103.         ) As IntPtr
  104.  
  105.         Friend Declare Unicode _
  106.         Function MediaInfo_Open Lib "MediaInfo.DLL" (
  107.                  ByVal Handle As IntPtr,
  108.                  ByVal FileName As String
  109.         ) As IntPtr
  110.  
  111.         Friend Declare Unicode _
  112.         Function MediaInfo_Get Lib "MediaInfo.dll" (
  113.                  ByVal Handle As IntPtr,
  114.                  ByVal StreamKind As IntPtr,
  115.                  ByVal StreamNumber As IntPtr,
  116.                  ByVal Parameter As String,
  117.                  ByVal KindOfInfo As IntPtr,
  118.                  ByVal KindOfSearch As IntPtr
  119.          ) As IntPtr
  120.  
  121.         Friend Declare Unicode _
  122.         Function MediaInfo_Inform Lib "MediaInfo.DLL" (
  123.                  ByVal Handle As IntPtr,
  124.                  ByVal Reserved As IntPtr
  125.         ) As IntPtr
  126.  
  127.         Friend Declare Unicode _
  128.         Function MediaInfo_Count_Get Lib "MediaInfo.DLL" (
  129.                  ByVal Handle As IntPtr,
  130.                  ByVal StreamKind As IntPtr,
  131.                  ByVal StreamNumber As IntPtr
  132.         ) As IntPtr
  133.  
  134.         Friend Declare Unicode _
  135.         Function MediaInfo_Option Lib "MediaInfo.DLL" (
  136.                  ByVal Handle As IntPtr,
  137.                  ByVal Option_ As String,
  138.                  ByVal Value As String
  139.         ) As IntPtr
  140.  
  141.         Friend Declare Unicode _
  142.         Sub MediaInfo_Close Lib "MediaInfo.DLL" (ByVal Handle As IntPtr)
  143.  
  144.         Friend Declare Unicode _
  145.         Sub MediaInfo_Delete Lib "MediaInfo.DLL" (ByVal Handle As IntPtr)
  146.  
  147.     End Class
  148.  
  149. #End Region
  150.  
  151. #Region " Enumerations "
  152.  
  153.     ''' <summary>
  154.     ''' Specifies the kind of information.
  155.     ''' </summary>
  156.     Public Enum MediaInfoLibInfo As Integer
  157.  
  158.         ''' <summary>
  159.         ''' Information about what are known unique names for parameters.
  160.         ''' </summary>
  161.         Info_Parameters = 0
  162.  
  163.         ''' <summary>
  164.         ''' Information about what are known unique names for parameters,
  165.         ''' in CSV format .
  166.         ''' </summary>
  167.         Info_Parameters_CSV = 1
  168.  
  169.         ''' <summary>
  170.         ''' Information about which codec is known .
  171.         ''' </summary>
  172.         Info_Codecs = 2
  173.  
  174.         ''' <summary>
  175.         ''' Information about the version of MediaInfoLib.
  176.         ''' </summary>
  177.         Info_Version = 3
  178.  
  179.         ''' <summary>
  180.         ''' Information about where to find the last version.
  181.         ''' </summary>
  182.         Info_Url = 4
  183.  
  184.     End Enum
  185.  
  186.     ''' <summary>
  187.     ''' Specifies the kind of Stream.
  188.     ''' </summary>
  189.     Public Enum StreamKind As Integer
  190.  
  191.         ''' <summary>
  192.         ''' General file.
  193.         ''' </summary>
  194.         General = 0
  195.  
  196.         ''' <summary>
  197.         ''' Video file.
  198.         ''' </summary>
  199.         Video = 1
  200.  
  201.         ''' <summary>
  202.         ''' Audio file.
  203.         ''' </summary>
  204.         Audio = 2
  205.  
  206.         ''' <summary>
  207.         ''' Text file.
  208.         ''' </summary>
  209.         Text = 3
  210.  
  211.         ''' <summary>
  212.         ''' Image file.
  213.         ''' </summary>
  214.         Image = 5
  215.  
  216.     End Enum
  217.  
  218.     Public Enum InfoKind As Integer
  219.         Name = 0
  220.         Text = 1
  221.         Measure = 2
  222.         Options = 3
  223.         NameText = 4
  224.         MeasureText = 5
  225.         Info = 6
  226.         HowTo = 7
  227.     End Enum
  228.  
  229.     Public Enum InfoOptions As Integer
  230.         ShowInInform = 0
  231.         Reserved = 1
  232.         ShowInSupported = 2
  233.         TypeOfValue = 3
  234.     End Enum
  235.  
  236.     ''' <summary>
  237.     ''' The info to retrieve from file.
  238.     ''' </summary>
  239.     Public Enum MediaInfoOption
  240.  
  241.         ''' <summary>
  242.         ''' Band/orchestra/accompaniment/musician.
  243.         ''' </summary>
  244.         Accompaniment
  245.  
  246.         ''' <summary>
  247.         ''' Active Format Description (text)
  248.         ''' </summary>
  249.         ActiveFormatDescription__String
  250.  
  251.         ''' <summary>
  252.         ''' Active Format Description (AFD value)
  253.         ''' </summary>
  254.         ActiveFormatDescription
  255.  
  256.         ''' <summary>
  257.         ''' Active Format Description (AFD value) muxing mode (Ancillary or Raw stream)
  258.         ''' </summary>
  259.         ActiveFormatDescription_MuxingMode
  260.  
  261.         ''' <summary>
  262.         ''' Real name of an actor or actress playing a role in the movie.
  263.         ''' </summary>
  264.         Actor
  265.  
  266.         ''' <summary>
  267.         ''' Name of the character an actor or actress plays in this movie.
  268.         ''' </summary>
  269.         Actor_Character
  270.  
  271.         ''' <summary>
  272.         ''' Date/year the item was added to the owners collection
  273.         ''' </summary>
  274.         Added_Date
  275.  
  276.         ''' <summary>
  277.         ''' More infos about the album
  278.         ''' </summary>
  279.         Album__More
  280.  
  281.         ''' <summary>
  282.         ''' ( UNDOCUMENTED PARAMETER )
  283.         ''' </summary>
  284.         Album__Performer__Sort
  285.  
  286.         ''' <summary>
  287.         ''' Homepage of the album performer/artist
  288.         ''' </summary>
  289.         Album__Performer__Url
  290.  
  291.         ''' <summary>
  292.         ''' Album performer/artist of this file
  293.         ''' </summary>
  294.         Album__Performer
  295.  
  296.         ''' <summary>
  297.         ''' ( UNDOCUMENTED PARAMETER )
  298.         ''' </summary>
  299.         Album__Sort
  300.  
  301.         ''' <summary>
  302.         ''' Name of an audio-album. Eg : The joshua tree
  303.         ''' </summary>
  304.         Album
  305.  
  306.         ''' <summary>
  307.         ''' ( UNDOCUMENTED PARAMETER )
  308.         ''' </summary>
  309.         Album_ReplayGain_Gain__String
  310.  
  311.         ''' <summary>
  312.         ''' The gain to apply to reach 89dB SPL on playback
  313.         ''' </summary>
  314.         Album_ReplayGain_Gain
  315.  
  316.         ''' <summary>
  317.         ''' The maximum absolute peak value of the item
  318.         ''' </summary>
  319.         Album_ReplayGain_Peak
  320.  
  321.         ''' <summary>
  322.         ''' Where this stream file is aligned in the container
  323.         ''' </summary>
  324.         Alignment__String
  325.  
  326.         ''' <summary>
  327.         ''' How this stream file is aligned in the container
  328.         ''' </summary>
  329.         Alignment
  330.  
  331.         ''' <summary>
  332.         ''' Location, where an item is archived, e.eg. Louvre,Paris,France
  333.         ''' </summary>
  334.         Archival_Location
  335.  
  336.         ''' <summary>
  337.         ''' The person who arranged the piece. e.g. Ravel.
  338.         ''' </summary>
  339.         Arranger
  340.  
  341.         ''' <summary>
  342.         ''' The person who oversees the artists and craftspeople who build the sets.
  343.         ''' </summary>
  344.         ArtDirector
  345.  
  346.         ''' <summary>
  347.         ''' Name of the assistant director.
  348.         ''' </summary>
  349.         AssistantDirector
  350.  
  351.         ''' <summary>
  352.         ''' Audio Codecs in this file,separated by /
  353.         ''' </summary>
  354.         Audio_Format_List
  355.  
  356.         ''' <summary>
  357.         ''' Audio Codecs in this file with popular name (hint), separated by /
  358.         ''' </summary>
  359.         Audio_Format_WithHint_List
  360.  
  361.         ''' <summary>
  362.         ''' Audio languages in this file separated by /
  363.         ''' </summary>
  364.         Audio_Language_List
  365.  
  366.         ''' <summary>
  367.         ''' Number of audio streams
  368.         ''' </summary>
  369.         AudioCount
  370.  
  371.         ''' <summary>
  372.         ''' EAN-13 (13-digit European Article Numbering) or UPC-A (12-digit Universal Product Code) bar code identifier.
  373.         ''' </summary>
  374.         BarCode
  375.  
  376.         ''' <summary>
  377.         ''' Resolution in bits (8, 16, 20, 24)
  378.         ''' </summary>
  379.         BitDepth__String
  380.  
  381.         ''' <summary>
  382.         ''' Resolution in bits (8, 16, 20, 24)
  383.         ''' </summary>
  384.         BitDepth
  385.  
  386.         ''' <summary>
  387.         ''' Bit rate (with measurement)
  388.         ''' </summary>
  389.         BitRate__String
  390.  
  391.         ''' <summary>
  392.         ''' Bit rate in bps
  393.         ''' </summary>
  394.         BitRate
  395.  
  396.         ''' <summary>
  397.         ''' Encoded (with forced padding) bit rate (with measurement), if some container padding is present
  398.         ''' </summary>
  399.         BitRate_Encoded__String
  400.  
  401.         ''' <summary>
  402.         ''' Encoded (with forced padding) bit rate in bps, if some container padding is present
  403.         ''' </summary>
  404.         BitRate_Encoded
  405.  
  406.         ''' <summary>
  407.         ''' Maximum Bit rate (with measurement)
  408.         ''' </summary>
  409.         BitRate_Maximum__String
  410.  
  411.         ''' <summary>
  412.         ''' Maximum Bit rate in bps
  413.         ''' </summary>
  414.         BitRate_Maximum
  415.  
  416.         ''' <summary>
  417.         ''' Minimum Bit rate (with measurement)
  418.         ''' </summary>
  419.         BitRate_Minimum__String
  420.  
  421.         ''' <summary>
  422.         ''' Minimum Bit rate in bps
  423.         ''' </summary>
  424.         BitRate_Minimum
  425.  
  426.         ''' <summary>
  427.         ''' Bit rate mode (Constant, Variable)
  428.         ''' </summary>
  429.         BitRate_Mode__String
  430.  
  431.         ''' <summary>
  432.         ''' Bit rate mode (VBR, CBR)
  433.         ''' </summary>
  434.         BitRate_Mode
  435.  
  436.         ''' <summary>
  437.         ''' Nominal Bit rate (with measurement)
  438.         ''' </summary>
  439.         BitRate_Nominal__String
  440.  
  441.         ''' <summary>
  442.         ''' Nominal Bit rate in bps
  443.         ''' </summary>
  444.         BitRate_Nominal
  445.  
  446.         ''' <summary>
  447.         ''' Average number of beats per minute
  448.         ''' </summary>
  449.         BPM
  450.  
  451.         ''' <summary>
  452.         ''' Defines the size of the buffer needed to decode the sequence.
  453.         ''' </summary>
  454.         BufferSize
  455.  
  456.         ''' <summary>
  457.         ''' A label-specific catalogue number used to identify the release. e.g. TIC 01.
  458.         ''' </summary>
  459.         CatalogNumber
  460.  
  461.         ''' <summary>
  462.         ''' Number of channels (with measurement)
  463.         ''' </summary>
  464.         Channel_s___String
  465.  
  466.         ''' <summary>
  467.         ''' Number of channels
  468.         ''' </summary>
  469.         Channel_s_
  470.  
  471.         ''' <summary>
  472.         ''' Number of channels (with measurement)
  473.         ''' </summary>
  474.         Channel_s__Original__String
  475.  
  476.         ''' <summary>
  477.         ''' Number of channels
  478.         ''' </summary>
  479.         Channel_s__Original
  480.  
  481.         ''' <summary>
  482.         ''' Layout of channels (in the stream)
  483.         ''' </summary>
  484.         ChannelLayout
  485.  
  486.         ''' <summary>
  487.         ''' Position of channels (x/y.z format)
  488.         ''' </summary>
  489.         ChannelPositions__String2
  490.  
  491.         ''' <summary>
  492.         ''' Position of channels
  493.         ''' </summary>
  494.         ChannelPositions
  495.  
  496.         ''' <summary>
  497.         ''' Name of the chapter.
  498.         ''' </summary>
  499.         Chapter
  500.  
  501.         ''' <summary>
  502.         ''' Used by third-party developers to know about the beginning of the chapters list, to be used by Get(Stream_Menu, x, Pos), where Pos is an Integer between Chapters_Pos_Begin and Chapters_Pos_End
  503.         ''' </summary>
  504.         Chapters_Pos_Begin
  505.  
  506.         ''' <summary>
  507.         ''' Used by third-party developers to know about the end of the chapters list (this position excluded)
  508.         ''' </summary>
  509.         Chapters_Pos_End
  510.  
  511.         ''' <summary>
  512.         ''' The name of the choregrapher.
  513.         ''' </summary>
  514.         Choregrapher
  515.  
  516.         ''' <summary>
  517.         ''' ( UNDOCUMENTED PARAMETER )
  518.         ''' </summary>
  519.         ChromaSubsampling
  520.  
  521.         ''' <summary>
  522.         ''' A hint/popular name for this codec
  523.         ''' </summary>
  524.         CodecID__Hint
  525.  
  526.         ''' <summary>
  527.         ''' Info about this codec
  528.         ''' </summary>
  529.         CodecID__Info
  530.  
  531.         ''' <summary>
  532.         ''' Codec ID (found in some containers)
  533.         ''' </summary>
  534.         CodecID__String
  535.  
  536.         ''' <summary>
  537.         ''' Homepage for more details about this codec
  538.         ''' </summary>
  539.         CodecID__Url
  540.  
  541.         ''' <summary>
  542.         ''' Codec ID (found in some containers)
  543.         ''' </summary>
  544.         CodecID
  545.  
  546.         ''' <summary>
  547.         ''' Manual description given by the container
  548.         ''' </summary>
  549.         CodecID_Description
  550.  
  551.         ''' <summary>
  552.         ''' Name of the series, e.g. Starwars movies, Stargate SG-1, Stargate Atlantis, Buffy, Angel
  553.         ''' </summary>
  554.         Collection
  555.  
  556.         ''' <summary>
  557.         ''' ( UNDOCUMENTED PARAMETER )
  558.         ''' </summary>
  559.         ColorSpace
  560.  
  561.         ''' <summary>
  562.         ''' ( UNDOCUMENTED PARAMETER )
  563.         ''' </summary>
  564.         Comic__More
  565.  
  566.         ''' <summary>
  567.         ''' ( UNDOCUMENTED PARAMETER )
  568.         ''' </summary>
  569.         Comic__Position_Total
  570.  
  571.         ''' <summary>
  572.         ''' Name of the comic.
  573.         ''' </summary>
  574.         Comic
  575.  
  576.         ''' <summary>
  577.         ''' Any comment related to the content.
  578.         ''' </summary>
  579.         Comment
  580.  
  581.         ''' <summary>
  582.         ''' name of the person or organization that commissioned the subject of the file
  583.         ''' </summary>
  584.         CommissionedBy
  585.  
  586.         ''' <summary>
  587.         ''' iTunes compilation
  588.         ''' </summary>
  589.         Compilation__String
  590.  
  591.         ''' <summary>
  592.         ''' iTunes compilation
  593.         ''' </summary>
  594.         Compilation
  595.  
  596.         ''' <summary>
  597.         ''' Complete name (Folder+Name+Extension)
  598.         ''' </summary>
  599.         CompleteName
  600.  
  601.         ''' <summary>
  602.         ''' Complete name (Folder+Name+Extension) of the last file (in the case of a sequence of files)
  603.         ''' </summary>
  604.         CompleteName_Last
  605.  
  606.         ''' <summary>
  607.         ''' Nationality of the main composer of the item, mostly for classical music.
  608.         ''' </summary>
  609.         Composer__Nationality
  610.  
  611.         ''' <summary>
  612.         ''' Name of the original composer.
  613.         ''' </summary>
  614.         Composer
  615.  
  616.         ''' <summary>
  617.         ''' Compression mode (Lossy or Lossless)
  618.         ''' </summary>
  619.         Compression_Mode__String
  620.  
  621.         ''' <summary>
  622.         ''' Compression mode (Lossy or Lossless)
  623.         ''' </summary>
  624.         Compression_Mode
  625.  
  626.         ''' <summary>
  627.         ''' Current stream size divided by uncompressed stream size
  628.         ''' </summary>
  629.         Compression_Ratio
  630.  
  631.         ''' <summary>
  632.         ''' The artist(s) who performed the work. In classical music this would be the conductor, orchestra, soloists.
  633.         ''' </summary>
  634.         Conductor
  635.  
  636.         ''' <summary>
  637.         ''' The type of the item. e.g. Documentary, Feature Film, Cartoon, Music Video, Music, Sound FX, etc.
  638.         ''' </summary>
  639.         ContentType
  640.  
  641.         ''' <summary>
  642.         ''' The name of a co-producer.
  643.         ''' </summary>
  644.         CoProducer
  645.  
  646.         ''' <summary>
  647.         ''' Link to a site with copyright/legal information.
  648.         ''' </summary>
  649.         Copyright__Url
  650.  
  651.         ''' <summary>
  652.         ''' Copyright attribution.
  653.         ''' </summary>
  654.         Copyright
  655.  
  656.         ''' <summary>
  657.         ''' The name of the costume designer.
  658.         ''' </summary>
  659.         CostumeDesigner
  660.  
  661.         ''' <summary>
  662.         ''' Count of objects available in this stream
  663.         ''' </summary>
  664.         Count
  665.  
  666.         ''' <summary>
  667.         ''' ( UNDOCUMENTED PARAMETER )
  668.         ''' </summary>
  669.         Countries
  670.  
  671.         ''' <summary>
  672.         ''' ( UNDOCUMENTED PARAMETER )
  673.         ''' </summary>
  674.         Country
  675.  
  676.         ''' <summary>
  677.         ''' Is there a cover
  678.         ''' </summary>
  679.         Cover
  680.  
  681.         ''' <summary>
  682.         ''' Cover, in binary format encoded BASE64
  683.         ''' </summary>
  684.         Cover_Data
  685.  
  686.         ''' <summary>
  687.         ''' short descriptio, e.g. Earth in space
  688.         ''' </summary>
  689.         Cover_Description
  690.  
  691.         ''' <summary>
  692.         ''' ( UNDOCUMENTED PARAMETER )
  693.         ''' </summary>
  694.         Cover_Mime
  695.  
  696.         ''' <summary>
  697.         ''' ( UNDOCUMENTED PARAMETER )
  698.         ''' </summary>
  699.         Cover_Type
  700.  
  701.         ''' <summary>
  702.         ''' Describes whether an image has been cropped and, if so, how it was cropped.
  703.         ''' </summary>
  704.         Cropped
  705.  
  706.         ''' <summary>
  707.         ''' ( UNDOCUMENTED PARAMETER )
  708.         ''' </summary>
  709.         DataSize
  710.  
  711.         ''' <summary>
  712.         ''' Delay with measurement
  713.         ''' </summary>
  714.         Delay__String
  715.  
  716.         ''' <summary>
  717.         ''' Delay with measurement
  718.         ''' </summary>
  719.         Delay__String1
  720.  
  721.         ''' <summary>
  722.         ''' Delay with measurement
  723.         ''' </summary>
  724.         Delay__String2
  725.  
  726.         ''' <summary>
  727.         ''' Delay in format : HH:MM:SS.MMM
  728.         ''' </summary>
  729.         Delay__String3
  730.  
  731.         ''' <summary>
  732.         ''' Delay in format : HH:MM:SS:FF (HH:MM:SS
  733.         ''' </summary>
  734.         Delay__String4
  735.  
  736.         ''' <summary>
  737.         ''' Delay fixed in the stream (relative) IN MS
  738.         ''' </summary>
  739.         Delay
  740.  
  741.         ''' <summary>
  742.         ''' Delay drop frame
  743.         ''' </summary>
  744.         Delay_DropFrame
  745.  
  746.         ''' <summary>
  747.         ''' Delay with measurement
  748.         ''' </summary>
  749.         Delay_Original__String
  750.  
  751.         ''' <summary>
  752.         ''' Delay with measurement
  753.         ''' </summary>
  754.         Delay_Original__String1
  755.  
  756.         ''' <summary>
  757.         ''' Delay with measurement
  758.         ''' </summary>
  759.         Delay_Original__String2
  760.  
  761.         ''' <summary>
  762.         ''' Delay in format: HH:MM:SS.MMM
  763.         ''' </summary>
  764.         Delay_Original__String3
  765.  
  766.         ''' <summary>
  767.         ''' Delay in format: HH:MM:SS:FF (HH:MM:SS
  768.         ''' </summary>
  769.         Delay_Original__String4
  770.  
  771.         ''' <summary>
  772.         ''' Delay fixed in the raw stream (relative) IN MS
  773.         ''' </summary>
  774.         Delay_Original
  775.  
  776.         ''' <summary>
  777.         ''' Delay drop frame info
  778.         ''' </summary>
  779.         Delay_Original_DropFrame
  780.  
  781.         ''' <summary>
  782.         ''' Delay settings (in case of timecode for example)
  783.         ''' </summary>
  784.         Delay_Original_Settings
  785.  
  786.         ''' <summary>
  787.         ''' Delay source (Stream or empty)
  788.         ''' </summary>
  789.         Delay_Original_Source
  790.  
  791.         ''' <summary>
  792.         ''' Delay settings (in case of timecode for example)
  793.         ''' </summary>
  794.         Delay_Settings
  795.  
  796.         ''' <summary>
  797.         ''' Delay source (Container or Stream or empty)
  798.         ''' </summary>
  799.         Delay_Source__String
  800.  
  801.         ''' <summary>
  802.         ''' Delay source (Container or Stream or empty)
  803.         ''' </summary>
  804.         Delay_Source
  805.  
  806.         ''' <summary>
  807.         ''' A short description of the contents, such as Two birds flying.
  808.         ''' </summary>
  809.         Description
  810.  
  811.         ''' <summary>
  812.         ''' Specifies the size of the original subject of the file. eg 8.5 in h, 11 in w
  813.         ''' </summary>
  814.         Dimensions
  815.  
  816.         ''' <summary>
  817.         ''' Name of the director.
  818.         ''' </summary>
  819.         Director
  820.  
  821.         ''' <summary>
  822.         ''' The name of the director of photography, also known as cinematographer.
  823.         ''' </summary>
  824.         DirectorOfPhotography
  825.  
  826.         ''' <summary>
  827.         ''' Display Aspect ratio
  828.         ''' </summary>
  829.         DisplayAspectRatio__String
  830.  
  831.         ''' <summary>
  832.         ''' Display Aspect ratio
  833.         ''' </summary>
  834.         DisplayAspectRatio
  835.  
  836.         ''' <summary>
  837.         ''' Original (in the raw stream) Display Aspect ratio
  838.         ''' </summary>
  839.         DisplayAspectRatio_Original__String
  840.  
  841.         ''' <summary>
  842.         ''' Original (in the raw stream) Display Aspect ratio
  843.         ''' </summary>
  844.         DisplayAspectRatio_Original
  845.  
  846.         ''' <summary>
  847.         ''' Company the item is mainly distributed by
  848.         ''' </summary>
  849.         DistributedBy
  850.  
  851.         ''' <summary>
  852.         ''' Univers movies belong to, e.g. Starwars, Stargate, Buffy, Dragonballs
  853.         ''' </summary>
  854.         Domain
  855.  
  856.         ''' <summary>
  857.         ''' Stores dots per inch setting of the digitizer used to produce the file
  858.         ''' </summary>
  859.         DotsPerInch
  860.  
  861.         ''' <summary>
  862.         ''' Play time (formated)
  863.         ''' </summary>
  864.         Duration__String
  865.  
  866.         ''' <summary>
  867.         ''' Play time in format : HHh MMmn SSs MMMms, XX omited if zero
  868.         ''' </summary>
  869.         Duration__String1
  870.  
  871.         ''' <summary>
  872.         ''' Play time in format : XXx YYy only, YYy omited if zero
  873.         ''' </summary>
  874.         Duration__String2
  875.  
  876.         ''' <summary>
  877.         ''' Play time in format : HH:MM:SS.MMM
  878.         ''' </summary>
  879.         Duration__String3
  880.  
  881.         ''' <summary>
  882.         ''' Play time in format : HH:MM:SS:FF (HH:MM:SS
  883.         ''' </summary>
  884.         Duration__String4
  885.  
  886.         ''' <summary>
  887.         ''' Play time of the stream in ms
  888.         ''' </summary>
  889.         Duration
  890.  
  891.         ''' <summary>
  892.         ''' ( UNDOCUMENTED PARAMETER )
  893.         ''' </summary>
  894.         Duration_End
  895.  
  896.         ''' <summary>
  897.         ''' Duration of the first frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  898.         ''' </summary>
  899.         Duration_FirstFrame__String
  900.  
  901.         ''' <summary>
  902.         ''' Duration of the first frame if it is longer than others, in format : HHh MMmn SSs MMMms, XX omited if zero
  903.         ''' </summary>
  904.         Duration_FirstFrame__String1
  905.  
  906.         ''' <summary>
  907.         ''' Duration of the first frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  908.         ''' </summary>
  909.         Duration_FirstFrame__String2
  910.  
  911.         ''' <summary>
  912.         ''' Duration of the first frame if it is longer than others, in format : HH:MM:SS.MMM
  913.         ''' </summary>
  914.         Duration_FirstFrame__String3
  915.  
  916.         ''' <summary>
  917.         ''' Duration of the first frame if it is longer than others, in ms
  918.         ''' </summary>
  919.         Duration_FirstFrame
  920.  
  921.         ''' <summary>
  922.         ''' Duration of the last frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  923.         ''' </summary>
  924.         Duration_LastFrame__String
  925.  
  926.         ''' <summary>
  927.         ''' Duration of the last frame if it is longer than others, in format : HHh MMmn SSs MMMms, XX omited if zero
  928.         ''' </summary>
  929.         Duration_LastFrame__String1
  930.  
  931.         ''' <summary>
  932.         ''' Duration of the last frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  933.         ''' </summary>
  934.         Duration_LastFrame__String2
  935.  
  936.         ''' <summary>
  937.         ''' Duration of the last frame if it is longer than others, in format : HH:MM:SS.MMM
  938.         ''' </summary>
  939.         Duration_LastFrame__String3
  940.  
  941.         ''' <summary>
  942.         ''' Duration of the last frame if it is longer than others, in ms
  943.         ''' </summary>
  944.         Duration_LastFrame
  945.  
  946.         ''' <summary>
  947.         ''' ( UNDOCUMENTED PARAMETER )
  948.         ''' </summary>
  949.         Duration_Start
  950.  
  951.         ''' <summary>
  952.         ''' Editors name
  953.         ''' </summary>
  954.         EditedBy
  955.  
  956.         ''' <summary>
  957.         ''' Name of the software package used to create the file, such as Microsoft WaveEdit.
  958.         ''' </summary>
  959.         Encoded_Application__Url
  960.  
  961.         ''' <summary>
  962.         ''' Name of the software package used to create the file, such as Microsoft WaveEdit.
  963.         ''' </summary>
  964.         Encoded_Application
  965.  
  966.         ''' <summary>
  967.         ''' The time that the encoding of this item was completed began.
  968.         ''' </summary>
  969.         Encoded_Date
  970.  
  971.         ''' <summary>
  972.         ''' Release date of software
  973.         ''' </summary>
  974.         Encoded_Library__Date
  975.  
  976.         ''' <summary>
  977.         ''' Name of the the encoding-software
  978.         ''' </summary>
  979.         Encoded_Library__Name
  980.  
  981.         ''' <summary>
  982.         ''' Software used to create the file
  983.         ''' </summary>
  984.         Encoded_Library__String
  985.  
  986.         ''' <summary>
  987.         ''' Version of encoding-software
  988.         ''' </summary>
  989.         Encoded_Library__Version
  990.  
  991.         ''' <summary>
  992.         ''' Software used to create the file
  993.         ''' </summary>
  994.         Encoded_Library
  995.  
  996.         ''' <summary>
  997.         ''' Parameters used by the software
  998.         ''' </summary>
  999.         Encoded_Library_Settings
  1000.  
  1001.         ''' <summary>
  1002.         ''' Name of the person or organisation that encoded/ripped the audio file.
  1003.         ''' </summary>
  1004.         EncodedBy
  1005.  
  1006.         ''' <summary>
  1007.         ''' ( UNDOCUMENTED PARAMETER )
  1008.         ''' </summary>
  1009.         Encryption
  1010.  
  1011.         ''' <summary>
  1012.         ''' ( UNDOCUMENTED PARAMETER )
  1013.         ''' </summary>
  1014.         EPG_Positions_Begin
  1015.  
  1016.         ''' <summary>
  1017.         ''' ( UNDOCUMENTED PARAMETER )
  1018.         ''' </summary>
  1019.         EPG_Positions_End
  1020.  
  1021.         ''' <summary>
  1022.         ''' The name of an executive producer.
  1023.         ''' </summary>
  1024.         ExecutiveProducer
  1025.  
  1026.         ''' <summary>
  1027.         ''' The time that the file was created on the file system
  1028.         ''' </summary>
  1029.         File_Created_Date
  1030.  
  1031.         ''' <summary>
  1032.         ''' The time that the file was created on the file system (Warning: this field depends of local configuration, do not use it in an international database)
  1033.         ''' </summary>
  1034.         File_Created_Date_Local
  1035.  
  1036.         ''' <summary>
  1037.         ''' The time that the file was modified on the file system
  1038.         ''' </summary>
  1039.         File_Modified_Date
  1040.  
  1041.         ''' <summary>
  1042.         ''' The time that the file was modified on the file system (Warning: this field depends of local configuration, do not use it in an international database)
  1043.         ''' </summary>
  1044.         File_Modified_Date_Local
  1045.  
  1046.         ''' <summary>
  1047.         ''' File extension only
  1048.         ''' </summary>
  1049.         FileExtension
  1050.  
  1051.         ''' <summary>
  1052.         ''' File extension only of the last file (in the case of a sequence of files)
  1053.         ''' </summary>
  1054.         FileExtension_Last
  1055.  
  1056.         ''' <summary>
  1057.         ''' File name only
  1058.         ''' </summary>
  1059.         FileName
  1060.  
  1061.         ''' <summary>
  1062.         ''' File name only of the last file (in the case of a sequence of files)
  1063.         ''' </summary>
  1064.         FileName_Last
  1065.  
  1066.         ''' <summary>
  1067.         ''' File size (with measure)
  1068.         ''' </summary>
  1069.         FileSize__String
  1070.  
  1071.         ''' <summary>
  1072.         ''' File size (with measure, 1 digit mini)
  1073.         ''' </summary>
  1074.         FileSize__String1
  1075.  
  1076.         ''' <summary>
  1077.         ''' File size (with measure, 2 digit mini)
  1078.         ''' </summary>
  1079.         FileSize__String2
  1080.  
  1081.         ''' <summary>
  1082.         ''' File size (with measure, 3 digit mini)
  1083.         ''' </summary>
  1084.         FileSize__String3
  1085.  
  1086.         ''' <summary>
  1087.         ''' File size (with measure, 4 digit mini)
  1088.         ''' </summary>
  1089.         FileSize__String4
  1090.  
  1091.         ''' <summary>
  1092.         ''' File size in bytes
  1093.         ''' </summary>
  1094.         FileSize
  1095.  
  1096.         ''' <summary>
  1097.         ''' Order of the first fully decodable packet met in the file, whatever is the kind of stream (base=0)
  1098.         ''' </summary>
  1099.         FirstPacketOrder
  1100.  
  1101.         ''' <summary>
  1102.         ''' Folder name only
  1103.         ''' </summary>
  1104.         FolderName
  1105.  
  1106.         ''' <summary>
  1107.         ''' Folder name only of the last file (in the case of a sequence of files)
  1108.         ''' </summary>
  1109.         FolderName_Last
  1110.  
  1111.         ''' <summary>
  1112.         ''' ( UNDOCUMENTED PARAMETER )
  1113.         ''' </summary>
  1114.         FooterSize
  1115.  
  1116.         ''' <summary>
  1117.         ''' Known extensions of this format
  1118.         ''' </summary>
  1119.         Format__Extensions
  1120.  
  1121.         ''' <summary>
  1122.         ''' Homepage of this format
  1123.         ''' </summary>
  1124.         Format__Url
  1125.  
  1126.         ''' <summary>
  1127.         ''' Format used
  1128.         ''' </summary>
  1129.         Format
  1130.  
  1131.         ''' <summary>
  1132.         ''' Commercial name used by vendor for theses setings or Format field if there is no difference
  1133.         ''' </summary>
  1134.         Format_Commercial
  1135.  
  1136.         ''' <summary>
  1137.         ''' Commercial name used by vendor for theses setings if there is one
  1138.         ''' </summary>
  1139.         Format_Commercial_IfAny
  1140.  
  1141.         ''' <summary>
  1142.         ''' Compression method used
  1143.         ''' </summary>
  1144.         Format_Compression
  1145.  
  1146.         ''' <summary>
  1147.         ''' Profile of this Format
  1148.         ''' </summary>
  1149.         Format_Profile
  1150.  
  1151.         ''' <summary>
  1152.         ''' Settings needed for decoder used
  1153.         ''' </summary>
  1154.         Format_Settings
  1155.  
  1156.         ''' <summary>
  1157.         ''' Settings needed for decoder used, detailled
  1158.         ''' </summary>
  1159.         Format_Settings_BVOP__String
  1160.  
  1161.         ''' <summary>
  1162.         ''' Settings needed for decoder used, detailled
  1163.         ''' </summary>
  1164.         Format_Settings_BVOP
  1165.  
  1166.         ''' <summary>
  1167.         ''' Settings needed for decoder used, detailled
  1168.         ''' </summary>
  1169.         Format_Settings_CABAC__String
  1170.  
  1171.         ''' <summary>
  1172.         ''' Settings needed for decoder used, detailled
  1173.         ''' </summary>
  1174.         Format_Settings_CABAC
  1175.  
  1176.         ''' <summary>
  1177.         ''' ( UNDOCUMENTED PARAMETER )
  1178.         ''' </summary>
  1179.         Format_Settings_Emphasis
  1180.  
  1181.         ''' <summary>
  1182.         ''' ( UNDOCUMENTED PARAMETER )
  1183.         ''' </summary>
  1184.         Format_Settings_Endianness
  1185.  
  1186.         ''' <summary>
  1187.         ''' ( UNDOCUMENTED PARAMETER )
  1188.         ''' </summary>
  1189.         Format_Settings_Firm
  1190.  
  1191.         ''' <summary>
  1192.         ''' ( UNDOCUMENTED PARAMETER )
  1193.         ''' </summary>
  1194.         Format_Settings_Floor
  1195.  
  1196.         ''' <summary>
  1197.         ''' Settings needed for decoder used, detailled
  1198.         ''' </summary>
  1199.         Format_Settings_FrameMode
  1200.  
  1201.         ''' <summary>
  1202.         ''' Settings needed for decoder used, detailled (Type of frame, and field/frame info)
  1203.         ''' </summary>
  1204.         Format_Settings_FrameStructures
  1205.  
  1206.         ''' <summary>
  1207.         ''' ( UNDOCUMENTED PARAMETER )
  1208.         ''' </summary>
  1209.         Format_Settings_GMC__String
  1210.  
  1211.         ''' <summary>
  1212.         ''' Settings needed for decoder used, detailled
  1213.         ''' </summary>
  1214.         Format_Settings_GMC
  1215.  
  1216.         ''' <summary>
  1217.         ''' Settings needed for decoder used, detailled (M=x N=y)
  1218.         ''' </summary>
  1219.         Format_Settings_GOP
  1220.  
  1221.         ''' <summary>
  1222.         ''' ( UNDOCUMENTED PARAMETER )
  1223.         ''' </summary>
  1224.         Format_Settings_ITU
  1225.  
  1226.         ''' <summary>
  1227.         ''' ( UNDOCUMENTED PARAMETER )
  1228.         ''' </summary>
  1229.         Format_Settings_Law
  1230.  
  1231.         ''' <summary>
  1232.         ''' Settings needed for decoder used, detailled
  1233.         ''' </summary>
  1234.         Format_Settings_Matrix__String
  1235.  
  1236.         ''' <summary>
  1237.         ''' Settings needed for decoder used, detailled
  1238.         ''' </summary>
  1239.         Format_Settings_Matrix
  1240.  
  1241.         ''' <summary>
  1242.         ''' Matrix, in binary format encoded BASE64. Order = intra, non-intra, gray intra, gray non-intra
  1243.         ''' </summary>
  1244.         Format_Settings_Matrix_Data
  1245.  
  1246.         ''' <summary>
  1247.         ''' ( UNDOCUMENTED PARAMETER )
  1248.         ''' </summary>
  1249.         Format_Settings_Mode
  1250.  
  1251.         ''' <summary>
  1252.         ''' ( UNDOCUMENTED PARAMETER )
  1253.         ''' </summary>
  1254.         Format_Settings_ModeExtension
  1255.  
  1256.         ''' <summary>
  1257.         ''' ( UNDOCUMENTED PARAMETER )
  1258.         ''' </summary>
  1259.         Format_Settings_PS__String
  1260.  
  1261.         ''' <summary>
  1262.         ''' ( UNDOCUMENTED PARAMETER )
  1263.         ''' </summary>
  1264.         Format_Settings_PS
  1265.  
  1266.         ''' <summary>
  1267.         ''' Settings needed for decoder used, detailled
  1268.         ''' </summary>
  1269.         Format_Settings_Pulldown
  1270.  
  1271.         ''' <summary>
  1272.         ''' Settings needed for decoder used, detailled
  1273.         ''' </summary>
  1274.         Format_Settings_QPel__String
  1275.  
  1276.         ''' <summary>
  1277.         ''' Settings needed for decoder used, detailled
  1278.         ''' </summary>
  1279.         Format_Settings_QPel
  1280.  
  1281.         ''' <summary>
  1282.         ''' Settings needed for decoder used, detailled
  1283.         ''' </summary>
  1284.         Format_Settings_RefFrames__String
  1285.  
  1286.         ''' <summary>
  1287.         ''' Settings needed for decoder used, detailled
  1288.         ''' </summary>
  1289.         Format_Settings_RefFrames
  1290.  
  1291.         ''' <summary>
  1292.         ''' ( UNDOCUMENTED PARAMETER )
  1293.         ''' </summary>
  1294.         Format_Settings_SBR__String
  1295.  
  1296.         ''' <summary>
  1297.         ''' ( UNDOCUMENTED PARAMETER )
  1298.         ''' </summary>
  1299.         Format_Settings_SBR
  1300.  
  1301.         ''' <summary>
  1302.         ''' ( UNDOCUMENTED PARAMETER )
  1303.         ''' </summary>
  1304.         Format_Settings_Sign
  1305.  
  1306.         ''' <summary>
  1307.         ''' Wrapping mode (Frame wrapped or Clip wrapped)
  1308.         ''' </summary>
  1309.         Format_Settings_Wrapping
  1310.  
  1311.         ''' <summary>
  1312.         ''' Version of this format
  1313.         ''' </summary>
  1314.         Format_Version
  1315.  
  1316.         ''' <summary>
  1317.         ''' Number of frames
  1318.         ''' </summary>
  1319.         FrameCount
  1320.  
  1321.         ''' <summary>
  1322.         ''' Frames per second (with measurement)
  1323.         ''' </summary>
  1324.         FrameRate__String
  1325.  
  1326.         ''' <summary>
  1327.         ''' Frames per second
  1328.         ''' </summary>
  1329.         FrameRate
  1330.  
  1331.         ''' <summary>
  1332.         ''' Maximum Frames per second (with measurement)
  1333.         ''' </summary>
  1334.         FrameRate_Maximum__String
  1335.  
  1336.         ''' <summary>
  1337.         ''' Maximum Frames per second
  1338.         ''' </summary>
  1339.         FrameRate_Maximum
  1340.  
  1341.         ''' <summary>
  1342.         ''' Minimum Frames per second (with measurement)
  1343.         ''' </summary>
  1344.         FrameRate_Minimum__String
  1345.  
  1346.         ''' <summary>
  1347.         ''' Minimum Frames per second
  1348.         ''' </summary>
  1349.         FrameRate_Minimum
  1350.  
  1351.         ''' <summary>
  1352.         ''' Frame rate mode (Constant, Variable)
  1353.         ''' </summary>
  1354.         FrameRate_Mode__String
  1355.  
  1356.         ''' <summary>
  1357.         ''' Frame rate mode (CFR, VFR)
  1358.         ''' </summary>
  1359.         FrameRate_Mode
  1360.  
  1361.         ''' <summary>
  1362.         ''' Original frame rate mode (Constant, Variable)
  1363.         ''' </summary>
  1364.         FrameRate_Mode_Original__String
  1365.  
  1366.         ''' <summary>
  1367.         ''' Original frame rate mode (CFR, VFR)
  1368.         ''' </summary>
  1369.         FrameRate_Mode_Original
  1370.  
  1371.         ''' <summary>
  1372.         ''' Nominal Frames per second (with measurement)
  1373.         ''' </summary>
  1374.         FrameRate_Nominal__String
  1375.  
  1376.         ''' <summary>
  1377.         ''' Nominal Frames per second
  1378.         ''' </summary>
  1379.         FrameRate_Nominal
  1380.  
  1381.         ''' <summary>
  1382.         ''' Original (in the raw stream) frames per second (with measurement)
  1383.         ''' </summary>
  1384.         FrameRate_Original__String
  1385.  
  1386.         ''' <summary>
  1387.         ''' Original (in the raw stream) frames per second
  1388.         ''' </summary>
  1389.         FrameRate_Original
  1390.  
  1391.         ''' <summary>
  1392.         ''' Number of general streams
  1393.         ''' </summary>
  1394.         GeneralCount
  1395.  
  1396.         ''' <summary>
  1397.         ''' The main genre of the audio or video. e.g. classical, ambient-house, synthpop, sci-fi, drama, etc.
  1398.         ''' </summary>
  1399.         Genre
  1400.  
  1401.         ''' <summary>
  1402.         ''' iTunes grouping
  1403.         ''' </summary>
  1404.         Grouping
  1405.  
  1406.         ''' <summary>
  1407.         ''' ( UNDOCUMENTED PARAMETER )
  1408.         ''' </summary>
  1409.         HeaderSize
  1410.  
  1411.         ''' <summary>
  1412.         ''' Height (aperture size if present) with measurement (pixel)
  1413.         ''' </summary>
  1414.         Height__String
  1415.  
  1416.         ''' <summary>
  1417.         ''' Height (aperture size if present) in pixel
  1418.         ''' </summary>
  1419.         Height
  1420.  
  1421.         ''' <summary>
  1422.         ''' Offset between original height and displayed height (aperture size)  in pixel
  1423.         ''' </summary>
  1424.         Height_Offset__String
  1425.  
  1426.         ''' <summary>
  1427.         ''' Offset between original height and displayed height (aperture size) in pixel
  1428.         ''' </summary>
  1429.         Height_Offset
  1430.  
  1431.         ''' <summary>
  1432.         ''' Original (in the raw stream) height with measurement (pixel)
  1433.         ''' </summary>
  1434.         Height_Original__String
  1435.  
  1436.         ''' <summary>
  1437.         ''' Original (in the raw stream) height in pixel
  1438.         ''' </summary>
  1439.         Height_Original
  1440.  
  1441.         ''' <summary>
  1442.         ''' The ICRA rating. (Previously RSACi)
  1443.         ''' </summary>
  1444.         ICRA
  1445.  
  1446.         ''' <summary>
  1447.         ''' The ID for this stream in this file
  1448.         ''' </summary>
  1449.         ID__String
  1450.  
  1451.         ''' <summary>
  1452.         ''' The ID for this stream in this file
  1453.         ''' </summary>
  1454.         ID
  1455.  
  1456.         ''' <summary>
  1457.         ''' Image Codecs in this file, separated by /
  1458.         ''' </summary>
  1459.         Image_Format_List
  1460.  
  1461.         ''' <summary>
  1462.         ''' Image Codecs in this file with popular name (hint), separated by /
  1463.         ''' </summary>
  1464.         Image_Format_WithHint_List
  1465.  
  1466.         ''' <summary>
  1467.         ''' Image languages in this file, separated by /
  1468.         ''' </summary>
  1469.         Image_Language_List
  1470.  
  1471.         ''' <summary>
  1472.         ''' Number of image streams
  1473.         ''' </summary>
  1474.         ImageCount
  1475.  
  1476.         ''' <summary>
  1477.         ''' Last **Inform** call
  1478.         ''' </summary>
  1479.         Inform
  1480.  
  1481.         ''' <summary>
  1482.         ''' Between how much time and video frames the stream is inserted (with measurement)
  1483.         ''' </summary>
  1484.         Interleave_Duration__String
  1485.  
  1486.         ''' <summary>
  1487.         ''' Between how much time (ms) the stream is inserted
  1488.         ''' </summary>
  1489.         Interleave_Duration
  1490.  
  1491.         ''' <summary>
  1492.         ''' How much time is buffered before the first video frame (with measurement)
  1493.         ''' </summary>
  1494.         Interleave_Preload__String
  1495.  
  1496.         ''' <summary>
  1497.         ''' How much time is buffered before the first video frame
  1498.         ''' </summary>
  1499.         Interleave_Preload
  1500.  
  1501.         ''' <summary>
  1502.         ''' Between how many video frames the stream is inserted
  1503.         ''' </summary>
  1504.         Interleave_VideoFrames
  1505.  
  1506.         ''' <summary>
  1507.         ''' If Audio and video are muxed
  1508.         ''' </summary>
  1509.         Interleaved
  1510.  
  1511.         ''' <summary>
  1512.         ''' Internet Media Type (aka MIME Type, Content-Type)
  1513.         ''' </summary>
  1514.         InternetMediaType
  1515.  
  1516.         ''' <summary>
  1517.         ''' International Standard Book Number.
  1518.         ''' </summary>
  1519.         ISBN
  1520.  
  1521.         ''' <summary>
  1522.         ''' International Standard Recording Code, excluding the ISRC prefix and including hyphens.
  1523.         ''' </summary>
  1524.         ISRC
  1525.  
  1526.         ''' <summary>
  1527.         ''' ( UNDOCUMENTED PARAMETER )
  1528.         ''' </summary>
  1529.         IsStreamable
  1530.  
  1531.         ''' <summary>
  1532.         ''' Keywords to the item separated by a comma, used for searching.
  1533.         ''' </summary>
  1534.         Keywords
  1535.  
  1536.         ''' <summary>
  1537.         ''' Brand or trademark associated with the marketing of music recordings and music videos.
  1538.         ''' </summary>
  1539.         Label
  1540.  
  1541.         ''' <summary>
  1542.         ''' A 4-digit or 5-digit number to identify the record label, typically printed as (LC) xxxx or (LC) 0xxxx on CDs medias or covers, with only the number being stored.
  1543.         ''' </summary>
  1544.         LabelCode
  1545.  
  1546.         ''' <summary>
  1547.         ''' Language (full)
  1548.         ''' </summary>
  1549.         Language__String
  1550.  
  1551.         ''' <summary>
  1552.         ''' Language (full)
  1553.         ''' </summary>
  1554.         Language__String1
  1555.  
  1556.         ''' <summary>
  1557.         ''' Language (2-letter ISO 639-1 if exists, else empty)
  1558.         ''' </summary>
  1559.         Language__String2
  1560.  
  1561.         ''' <summary>
  1562.         ''' Language (3-letter ISO 639-2 if exists, else empty)
  1563.         ''' </summary>
  1564.         Language__String3
  1565.  
  1566.         ''' <summary>
  1567.         ''' Language (2-letter ISO 639-1 if exists with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn, else empty)
  1568.         ''' </summary>
  1569.         Language__String4
  1570.  
  1571.         ''' <summary>
  1572.         ''' Language (2-letter ISO 639-1 if exists, else 3-letter ISO 639-2, and with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn)
  1573.         ''' </summary>
  1574.         Language
  1575.  
  1576.         ''' <summary>
  1577.         ''' More info about Language (e.g. Director's Comment)
  1578.         ''' </summary>
  1579.         Language_More
  1580.  
  1581.         ''' <summary>
  1582.         ''' Depending on the country it's the format of the rating of a movie (P, R, X in the USA, an age in other countries or a URI defining a logo).
  1583.         ''' </summary>
  1584.         LawRating
  1585.  
  1586.         ''' <summary>
  1587.         ''' Reason for the law rating
  1588.         ''' </summary>
  1589.         LawRating_Reason
  1590.  
  1591.         ''' <summary>
  1592.         ''' Library of Congress Control Number.
  1593.         ''' </summary>
  1594.         LCCN
  1595.  
  1596.         ''' <summary>
  1597.         ''' Describes the changes in lightness settings on the digitizer required to produce the file
  1598.         ''' </summary>
  1599.         Lightness
  1600.  
  1601.         ''' <summary>
  1602.         ''' List of programs available
  1603.         ''' </summary>
  1604.         List__String
  1605.  
  1606.         ''' <summary>
  1607.         ''' List of programs available
  1608.         ''' </summary>
  1609.         List
  1610.  
  1611.         ''' <summary>
  1612.         ''' List of programs available
  1613.         ''' </summary>
  1614.         List_StreamKind
  1615.  
  1616.         ''' <summary>
  1617.         ''' List of programs available
  1618.         ''' </summary>
  1619.         List_StreamPos
  1620.  
  1621.         ''' <summary>
  1622.         ''' The person who wrote the lyrics for a musical item.
  1623.         ''' </summary>
  1624.         Lyricist
  1625.  
  1626.         ''' <summary>
  1627.         ''' Text of a song
  1628.         ''' </summary>
  1629.         Lyrics
  1630.  
  1631.         ''' <summary>
  1632.         ''' The time/date/year that the item was tranfered to a digitalmedium.
  1633.         ''' </summary>
  1634.         Mastered_Date
  1635.  
  1636.         ''' <summary>
  1637.         ''' The engineer who mastered the content for a physical medium or for digital distribution.
  1638.         ''' </summary>
  1639.         MasteredBy
  1640.  
  1641.         ''' <summary>
  1642.         ''' Menu Codecsin this file, separated by /
  1643.         ''' </summary>
  1644.         Menu_Format_List
  1645.  
  1646.         ''' <summary>
  1647.         ''' Menu Codecs in this file with popular name (hint),separated by /
  1648.         ''' </summary>
  1649.         Menu_Format_WithHint_List
  1650.  
  1651.         ''' <summary>
  1652.         ''' Menu languages in this file, separated by /
  1653.         ''' </summary>
  1654.         Menu_Language_List
  1655.  
  1656.         ''' <summary>
  1657.         ''' Number of menu streams
  1658.         ''' </summary>
  1659.         MenuCount
  1660.  
  1661.         ''' <summary>
  1662.         ''' The menu ID for this stream in this file
  1663.         ''' </summary>
  1664.         MenuID__String
  1665.  
  1666.         ''' <summary>
  1667.         ''' The menu ID for this stream in this file
  1668.         ''' </summary>
  1669.         MenuID
  1670.  
  1671.         ''' <summary>
  1672.         ''' Intended to reflect the mood of the item with a few keywords, e.g. Romantic, Sad, Uplifting, etc.
  1673.         ''' </summary>
  1674.         Mood
  1675.  
  1676.         ''' <summary>
  1677.         ''' Country, where the movie was procuced
  1678.         ''' </summary>
  1679.         Movie__Country
  1680.  
  1681.         ''' <summary>
  1682.         ''' More infos about the movie
  1683.         ''' </summary>
  1684.         Movie__More
  1685.  
  1686.         ''' <summary>
  1687.         ''' Homepage for the movie
  1688.         ''' </summary>
  1689.         Movie__Url
  1690.  
  1691.         ''' <summary>
  1692.         ''' Name of the movie. Eg : Starwars, a new hope
  1693.         ''' </summary>
  1694.         Movie
  1695.  
  1696.         ''' <summary>
  1697.         ''' Multiview, profile of the base stream
  1698.         ''' </summary>
  1699.         MultiView_BaseProfile
  1700.  
  1701.         ''' <summary>
  1702.         ''' Multiview, count of views
  1703.         ''' </summary>
  1704.         MultiView_Count
  1705.  
  1706.         ''' <summary>
  1707.         ''' Multiview, how views are muxed in the container in case of it is not muxing in the stream
  1708.         ''' </summary>
  1709.         MultiView_Layout
  1710.  
  1711.         ''' <summary>
  1712.         ''' Main music-artist for a movie
  1713.         ''' </summary>
  1714.         MusicBy
  1715.  
  1716.         ''' <summary>
  1717.         ''' How this stream is muxed in the container
  1718.         ''' </summary>
  1719.         MuxingMode
  1720.  
  1721.         ''' <summary>
  1722.         ''' More info (text) about the muxing mode
  1723.         ''' </summary>
  1724.         MuxingMode_MoreInfo
  1725.  
  1726.         ''' <summary>
  1727.         ''' ( UNDOCUMENTED PARAMETER )
  1728.         ''' </summary>
  1729.         NetworkName
  1730.  
  1731.         ''' <summary>
  1732.         ''' Original name of album, serie...
  1733.         ''' </summary>
  1734.         Original__Album
  1735.  
  1736.         ''' <summary>
  1737.         ''' Original lyricist(s)/text writer(s).
  1738.         ''' </summary>
  1739.         Original__Lyricist
  1740.  
  1741.         ''' <summary>
  1742.         ''' Original name of the movie
  1743.         ''' </summary>
  1744.         Original__Movie
  1745.  
  1746.         ''' <summary>
  1747.         ''' ( UNDOCUMENTED PARAMETER )
  1748.         ''' </summary>
  1749.         Original__NetworkName
  1750.  
  1751.         ''' <summary>
  1752.         ''' Original name of the part in the original support
  1753.         ''' </summary>
  1754.         Original__Part
  1755.  
  1756.         ''' <summary>
  1757.         ''' Original artist(s)/performer(s).
  1758.         ''' </summary>
  1759.         Original__Performer
  1760.  
  1761.         ''' <summary>
  1762.         ''' The date/year that the item was originaly released.
  1763.         ''' </summary>
  1764.         Original__Released_Date
  1765.  
  1766.         ''' <summary>
  1767.         ''' Original name of the track in the original support
  1768.         ''' </summary>
  1769.         Original__Track
  1770.  
  1771.         ''' <summary>
  1772.         ''' ( UNDOCUMENTED PARAMETER )
  1773.         ''' </summary>
  1774.         OriginalNetworkName
  1775.  
  1776.         ''' <summary>
  1777.         ''' Describes whether an image has been cropped and, if so, how it was cropped. e.g. 16:9 to 4:3, top and bottom
  1778.         ''' </summary>
  1779.         OriginalSourceForm__Cropped
  1780.  
  1781.         ''' <summary>
  1782.         ''' Name of the person or organization who supplied the original subject
  1783.         ''' </summary>
  1784.         OriginalSourceForm__DistributedBy
  1785.  
  1786.         ''' <summary>
  1787.         ''' Name of the product the file was originally intended for
  1788.         ''' </summary>
  1789.         OriginalSourceForm__Name
  1790.  
  1791.         ''' <summary>
  1792.         ''' Number of colors requested when digitizing, e.g. 256 for images or 32 bit RGB for video
  1793.         ''' </summary>
  1794.         OriginalSourceForm__NumColors
  1795.  
  1796.         ''' <summary>
  1797.         ''' Identifies the changes in sharpness for the digitizer requiered to produce the file
  1798.         ''' </summary>
  1799.         OriginalSourceForm__Sharpness
  1800.  
  1801.         ''' <summary>
  1802.         ''' Original form of the material, e.g. slide, paper, map
  1803.         ''' </summary>
  1804.         OriginalSourceForm
  1805.  
  1806.         ''' <summary>
  1807.         ''' Original medium of the material, e.g. vinyl, Audio-CD, Super8 or BetaMax
  1808.         ''' </summary>
  1809.         OriginalSourceMedium
  1810.  
  1811.         ''' <summary>
  1812.         ''' Other formats in this file, separated by /
  1813.         ''' </summary>
  1814.         Other_Format_List
  1815.  
  1816.         ''' <summary>
  1817.         ''' Other formats in this file with popular name (hint), separated by /
  1818.         ''' </summary>
  1819.         Other_Format_WithHint_List
  1820.  
  1821.         ''' <summary>
  1822.         ''' Chapters languages in this file, separated by /
  1823.         ''' </summary>
  1824.         Other_Language_List
  1825.  
  1826.         ''' <summary>
  1827.         ''' Number of other streams
  1828.         ''' </summary>
  1829.         OtherCount
  1830.  
  1831.         ''' <summary>
  1832.         ''' Bit rate of all streams (with measure)
  1833.         ''' </summary>
  1834.         OverallBitRate__String
  1835.  
  1836.         ''' <summary>
  1837.         ''' Bit rate of all streams in bps
  1838.         ''' </summary>
  1839.         OverallBitRate
  1840.  
  1841.         ''' <summary>
  1842.         ''' Maximum Bit rate (with measurement)
  1843.         ''' </summary>
  1844.         OverallBitRate_Maximum__String
  1845.  
  1846.         ''' <summary>
  1847.         ''' Maximum Bit rate in bps
  1848.         ''' </summary>
  1849.         OverallBitRate_Maximum
  1850.  
  1851.         ''' <summary>
  1852.         ''' Minimum Bit rate (with measurement)
  1853.         ''' </summary>
  1854.         OverallBitRate_Minimum__String
  1855.  
  1856.         ''' <summary>
  1857.         ''' Minimum Bit rate in bps
  1858.         ''' </summary>
  1859.         OverallBitRate_Minimum
  1860.  
  1861.         ''' <summary>
  1862.         ''' Bit rate mode of all streams (Variable, Constant)
  1863.         ''' </summary>
  1864.         OverallBitRate_Mode__String
  1865.  
  1866.         ''' <summary>
  1867.         ''' Bit rate mode of all streams (VBR, CBR)
  1868.         ''' </summary>
  1869.         OverallBitRate_Mode
  1870.  
  1871.         ''' <summary>
  1872.         ''' Nominal Bit rate (with measurement)
  1873.         ''' </summary>
  1874.         OverallBitRate_Nominal__String
  1875.  
  1876.         ''' <summary>
  1877.         ''' Nominal Bit rate in bps
  1878.         ''' </summary>
  1879.         OverallBitRate_Nominal
  1880.  
  1881.         ''' <summary>
  1882.         ''' Owner of the file
  1883.         ''' </summary>
  1884.         Owner
  1885.  
  1886.         ''' <summary>
  1887.         ''' Number of the part
  1888.         ''' </summary>
  1889.         Part__Position
  1890.  
  1891.         ''' <summary>
  1892.         ''' Place of the part e.g. 2 of 3
  1893.         ''' </summary>
  1894.         Part__Position_Total
  1895.  
  1896.         ''' <summary>
  1897.         ''' Name of the part. e.g. CD1, CD2
  1898.         ''' </summary>
  1899.         Part
  1900.  
  1901.         ''' <summary>
  1902.         ''' ( UNDOCUMENTED PARAMETER )
  1903.         ''' </summary>
  1904.         Performer__Sort
  1905.  
  1906.         ''' <summary>
  1907.         ''' Homepage of the performer/artist
  1908.         ''' </summary>
  1909.         Performer__Url
  1910.  
  1911.         ''' <summary>
  1912.         ''' Main performer/artist of this file
  1913.         ''' </summary>
  1914.         Performer
  1915.  
  1916.         ''' <summary>
  1917.         ''' Describes the period that the piece is from or about. e.g. Renaissance.
  1918.         ''' </summary>
  1919.         Period
  1920.  
  1921.         ''' <summary>
  1922.         ''' Pixel Aspect ratio
  1923.         ''' </summary>
  1924.         PixelAspectRatio__String
  1925.  
  1926.         ''' <summary>
  1927.         ''' Pixel Aspect ratio
  1928.         ''' </summary>
  1929.         PixelAspectRatio
  1930.  
  1931.         ''' <summary>
  1932.         ''' Original (in the raw stream) Pixel Aspect ratio
  1933.         ''' </summary>
  1934.         PixelAspectRatio_Original__String
  1935.  
  1936.         ''' <summary>
  1937.         ''' Original (in the raw stream) Pixel Aspect ratio
  1938.         ''' </summary>
  1939.         PixelAspectRatio_Original
  1940.  
  1941.         ''' <summary>
  1942.         ''' Number of times an item was played
  1943.         ''' </summary>
  1944.         Played_Count
  1945.  
  1946.         ''' <summary>
  1947.         ''' The date, the owner first played an item
  1948.         ''' </summary>
  1949.         Played_First_Date
  1950.  
  1951.         ''' <summary>
  1952.         ''' The date, the owner last played an item
  1953.         ''' </summary>
  1954.         Played_Last_Date
  1955.  
  1956.         ''' <summary>
  1957.         ''' Name of the producer of the movie.
  1958.         ''' </summary>
  1959.         Producer
  1960.  
  1961.         ''' <summary>
  1962.         ''' The copyright information as per the productioncopyright holder.
  1963.         ''' </summary>
  1964.         Producer_Copyright
  1965.  
  1966.         ''' <summary>
  1967.         ''' The person responsible for designing the Overall visual appearance of a movie.
  1968.         ''' </summary>
  1969.         ProductionDesigner
  1970.  
  1971.         ''' <summary>
  1972.         ''' Main production studio
  1973.         ''' </summary>
  1974.         ProductionStudio
  1975.  
  1976.         ''' <summary>
  1977.         ''' Publishers official webpage.
  1978.         ''' </summary>
  1979.         Publisher__URL
  1980.  
  1981.         ''' <summary>
  1982.         ''' Name of the organization publishing the album (i.e. the 'record label') or movie.
  1983.         ''' </summary>
  1984.         Publisher
  1985.  
  1986.         ''' <summary>
  1987.         ''' A numeric value defining how much a person likes the song/movie. The number is between 0 and 5 with decimal values possible (e.g. 2.7), 5(.0) being the highest possible rating.
  1988.         ''' </summary>
  1989.         Rating
  1990.  
  1991.         ''' <summary>
  1992.         ''' The time/date/year that the recording began.
  1993.         ''' </summary>
  1994.         Recorded_Date
  1995.  
  1996.         ''' <summary>
  1997.         ''' Location where track was recorded. (See COMPOSITION_LOCATION for format)
  1998.         ''' </summary>
  1999.         Recorded_Location
  2000.  
  2001.         ''' <summary>
  2002.         ''' The date/year that the item was released.
  2003.         ''' </summary>
  2004.         Released_Date
  2005.  
  2006.         ''' <summary>
  2007.         ''' Name of the artist(s), that interpreted, remixed, or otherwise modified the item.
  2008.         ''' </summary>
  2009.         RemixedBy
  2010.  
  2011.         ''' <summary>
  2012.         ''' ( UNDOCUMENTED PARAMETER )
  2013.         ''' </summary>
  2014.         ReplayGain_Gain__String
  2015.  
  2016.         ''' <summary>
  2017.         ''' The gain to apply to reach 89dB SPL on playback
  2018.         ''' </summary>
  2019.         ReplayGain_Gain
  2020.  
  2021.         ''' <summary>
  2022.         ''' The maximum absolute peak value of the item
  2023.         ''' </summary>
  2024.         ReplayGain_Peak
  2025.  
  2026.         ''' <summary>
  2027.         ''' Rotation (if not horizontal)
  2028.         ''' </summary>
  2029.         Rotation__String
  2030.  
  2031.         ''' <summary>
  2032.         ''' Rotation
  2033.         ''' </summary>
  2034.         Rotation
  2035.  
  2036.         ''' <summary>
  2037.         ''' Sample count (based on sampling rate)
  2038.         ''' </summary>
  2039.         SamplingCount
  2040.  
  2041.         ''' <summary>
  2042.         ''' in KHz
  2043.         ''' </summary>
  2044.         SamplingRate__String
  2045.  
  2046.         ''' <summary>
  2047.         ''' Sampling rate
  2048.         ''' </summary>
  2049.         SamplingRate
  2050.  
  2051.         ''' <summary>
  2052.         ''' ( UNDOCUMENTED PARAMETER )
  2053.         ''' </summary>
  2054.         ScanOrder__String
  2055.  
  2056.         ''' <summary>
  2057.         ''' ( UNDOCUMENTED PARAMETER )
  2058.         ''' </summary>
  2059.         ScanOrder
  2060.  
  2061.         ''' <summary>
  2062.         ''' ( UNDOCUMENTED PARAMETER )
  2063.         ''' </summary>
  2064.         ScanOrder_Original__String
  2065.  
  2066.         ''' <summary>
  2067.         ''' ( UNDOCUMENTED PARAMETER )
  2068.         ''' </summary>
  2069.         ScanOrder_Original
  2070.  
  2071.         ''' <summary>
  2072.         ''' ( UNDOCUMENTED PARAMETER )
  2073.         ''' </summary>
  2074.         ScanType__String
  2075.  
  2076.         ''' <summary>
  2077.         ''' ( UNDOCUMENTED PARAMETER )
  2078.         ''' </summary>
  2079.         ScanType
  2080.  
  2081.         ''' <summary>
  2082.         ''' ( UNDOCUMENTED PARAMETER )
  2083.         ''' </summary>
  2084.         ScanType_Original__String
  2085.  
  2086.         ''' <summary>
  2087.         ''' ( UNDOCUMENTED PARAMETER )
  2088.         ''' </summary>
  2089.         ScanType_Original
  2090.  
  2091.         ''' <summary>
  2092.         ''' The author of the screenplay or scenario (used for movies and TV shows).
  2093.         ''' </summary>
  2094.         ScreenplayBy
  2095.  
  2096.         ''' <summary>
  2097.         ''' Name of the season, e.g. Strawars first Trilogy, Season 1
  2098.         ''' </summary>
  2099.         Season
  2100.  
  2101.         ''' <summary>
  2102.         ''' Number of the Season
  2103.         ''' </summary>
  2104.         Season_Position
  2105.  
  2106.         ''' <summary>
  2107.         ''' Place of the season e.g. 2 of 7
  2108.         ''' </summary>
  2109.         Season_Position_Total
  2110.  
  2111.         ''' <summary>
  2112.         ''' ( UNDOCUMENTED PARAMETER )
  2113.         ''' </summary>
  2114.         Service__Url
  2115.  
  2116.         ''' <summary>
  2117.         ''' ( UNDOCUMENTED PARAMETER )
  2118.         ''' </summary>
  2119.         ServiceChannel
  2120.  
  2121.         ''' <summary>
  2122.         ''' ( UNDOCUMENTED PARAMETER )
  2123.         ''' </summary>
  2124.         ServiceName
  2125.  
  2126.         ''' <summary>
  2127.         ''' ( UNDOCUMENTED PARAMETER )
  2128.         ''' </summary>
  2129.         ServiceProvider
  2130.  
  2131.         ''' <summary>
  2132.         ''' ( UNDOCUMENTED PARAMETER )
  2133.         ''' </summary>
  2134.         ServiceProviderr__Url
  2135.  
  2136.         ''' <summary>
  2137.         ''' ( UNDOCUMENTED PARAMETER )
  2138.         ''' </summary>
  2139.         ServiceType
  2140.  
  2141.         ''' <summary>
  2142.         ''' The name of the sound engineer or sound recordist.
  2143.         ''' </summary>
  2144.         SoundEngineer
  2145.  
  2146.         ''' <summary>
  2147.         ''' Source Play time in format : XXx YYy only, YYy omited if zero
  2148.         ''' </summary>
  2149.         Source_Duration__String
  2150.  
  2151.         ''' <summary>
  2152.         ''' Source Play time in format : HHh MMmn SSs MMMms, XX omited if zero
  2153.         ''' </summary>
  2154.         Source_Duration__String1
  2155.  
  2156.         ''' <summary>
  2157.         ''' Source Play time in format : XXx YYy only, YYy omited if zero
  2158.         ''' </summary>
  2159.         Source_Duration__String2
  2160.  
  2161.         ''' <summary>
  2162.         ''' Source Play time in format : HH:MM:SS.MMM
  2163.         ''' </summary>
  2164.         Source_Duration__String3
  2165.  
  2166.         ''' <summary>
  2167.         ''' Source Play time of the stream
  2168.         ''' </summary>
  2169.         Source_Duration
  2170.  
  2171.         ''' <summary>
  2172.         ''' Source Duration of the first frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  2173.         ''' </summary>
  2174.         Source_Duration_FirstFrame__String
  2175.  
  2176.         ''' <summary>
  2177.         ''' Source Duration of the first frame if it is longer than others, in format : HHh MMmn SSs MMMms, XX omited if zero
  2178.         ''' </summary>
  2179.         Source_Duration_FirstFrame__String1
  2180.  
  2181.         ''' <summary>
  2182.         ''' Source Duration of the first frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  2183.         ''' </summary>
  2184.         Source_Duration_FirstFrame__String2
  2185.  
  2186.         ''' <summary>
  2187.         ''' Source Duration of the first frame if it is longer than others, in format : HH:MM:SS.MMM
  2188.         ''' </summary>
  2189.         Source_Duration_FirstFrame__String3
  2190.  
  2191.         ''' <summary>
  2192.         ''' Source Duration of the first frame if it is longer than others, in ms
  2193.         ''' </summary>
  2194.         Source_Duration_FirstFrame
  2195.  
  2196.         ''' <summary>
  2197.         ''' Source Duration of the last frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  2198.         ''' </summary>
  2199.         Source_Duration_LastFrame__String
  2200.  
  2201.         ''' <summary>
  2202.         ''' Source Duration of the last frame if it is longer than others, in format : HHh MMmn SSs MMMms, XX omited if zero
  2203.         ''' </summary>
  2204.         Source_Duration_LastFrame__String1
  2205.  
  2206.         ''' <summary>
  2207.         ''' Source Duration of the last frame if it is longer than others, in format : XXx YYy only, YYy omited if zero
  2208.         ''' </summary>
  2209.         Source_Duration_LastFrame__String2
  2210.  
  2211.         ''' <summary>
  2212.         ''' Source Duration of the last frame if it is longer than others, in format : HH:MM:SS.MMM
  2213.         ''' </summary>
  2214.         Source_Duration_LastFrame__String3
  2215.  
  2216.         ''' <summary>
  2217.         ''' Source Duration of the last frame if it is longer than others, in ms
  2218.         ''' </summary>
  2219.         Source_Duration_LastFrame
  2220.  
  2221.         ''' <summary>
  2222.         ''' Source Number of frames
  2223.         ''' </summary>
  2224.         Source_FrameCount
  2225.  
  2226.         ''' <summary>
  2227.         ''' Source Sample count (based on sampling rate)
  2228.         ''' </summary>
  2229.         Source_SamplingCount
  2230.  
  2231.         ''' <summary>
  2232.         ''' Source Streamsize in with percentage value
  2233.         ''' </summary>
  2234.         Source_StreamSize__String
  2235.  
  2236.         ''' <summary>
  2237.         ''' ( UNDOCUMENTED PARAMETER )
  2238.         ''' </summary>
  2239.         Source_StreamSize__String1
  2240.  
  2241.         ''' <summary>
  2242.         ''' ( UNDOCUMENTED PARAMETER )
  2243.         ''' </summary>
  2244.         Source_StreamSize__String2
  2245.  
  2246.         ''' <summary>
  2247.         ''' ( UNDOCUMENTED PARAMETER )
  2248.         ''' </summary>
  2249.         Source_StreamSize__String3
  2250.  
  2251.         ''' <summary>
  2252.         ''' ( UNDOCUMENTED PARAMETER )
  2253.         ''' </summary>
  2254.         Source_StreamSize__String4
  2255.  
  2256.         ''' <summary>
  2257.         ''' Source Streamsize in with percentage value
  2258.         ''' </summary>
  2259.         Source_StreamSize__String5
  2260.  
  2261.         ''' <summary>
  2262.         ''' Source Streamsize in bytes
  2263.         ''' </summary>
  2264.         Source_StreamSize
  2265.  
  2266.         ''' <summary>
  2267.         ''' Source Encoded Streamsize in with percentage value
  2268.         ''' </summary>
  2269.         Source_StreamSize_Encoded__String
  2270.  
  2271.         ''' <summary>
  2272.         ''' ( UNDOCUMENTED PARAMETER )
  2273.         ''' </summary>
  2274.         Source_StreamSize_Encoded__String1
  2275.  
  2276.         ''' <summary>
  2277.         ''' ( UNDOCUMENTED PARAMETER )
  2278.         ''' </summary>
  2279.         Source_StreamSize_Encoded__String2
  2280.  
  2281.         ''' <summary>
  2282.         ''' ( UNDOCUMENTED PARAMETER )
  2283.         ''' </summary>
  2284.         Source_StreamSize_Encoded__String3
  2285.  
  2286.         ''' <summary>
  2287.         ''' ( UNDOCUMENTED PARAMETER )
  2288.         ''' </summary>
  2289.         Source_StreamSize_Encoded__String4
  2290.  
  2291.         ''' <summary>
  2292.         ''' Source Encoded Streamsize in with percentage value
  2293.         ''' </summary>
  2294.         Source_StreamSize_Encoded__String5
  2295.  
  2296.         ''' <summary>
  2297.         ''' Source Encoded Streamsize in bytes
  2298.         ''' </summary>
  2299.         Source_StreamSize_Encoded
  2300.  
  2301.         ''' <summary>
  2302.         ''' Source Encoded Stream size divided by file size
  2303.         ''' </summary>
  2304.         Source_StreamSize_Encoded_Proportion
  2305.  
  2306.         ''' <summary>
  2307.         ''' Source Stream size divided by file size
  2308.         ''' </summary>
  2309.         Source_StreamSize_Proportion
  2310.  
  2311.         ''' <summary>
  2312.         ''' NTSC or PAL
  2313.         ''' </summary>
  2314.         Standard
  2315.  
  2316.         ''' <summary>
  2317.         ''' bit field (0=IsAccepted, 1=IsFilled, 2=IsUpdated, 3=IsFinished)
  2318.         ''' </summary>
  2319.         Status
  2320.  
  2321.         ''' <summary>
  2322.         ''' Count of streams of that kind available
  2323.         ''' </summary>
  2324.         StreamCount
  2325.  
  2326.         ''' <summary>
  2327.         ''' Stream type name
  2328.         ''' </summary>
  2329.         StreamKind__String
  2330.  
  2331.         ''' <summary>
  2332.         ''' Stream type name
  2333.         ''' </summary>
  2334.         StreamKind
  2335.  
  2336.         ''' <summary>
  2337.         ''' Number of the stream (base=0)
  2338.         ''' </summary>
  2339.         StreamKindID
  2340.  
  2341.         ''' <summary>
  2342.         ''' When multiple streams, number of the stream (base=1)
  2343.         ''' </summary>
  2344.         StreamKindPos
  2345.  
  2346.         ''' <summary>
  2347.         ''' Stream order in the file, whatever is the kind of stream (base=0)
  2348.         ''' </summary>
  2349.         StreamOrder
  2350.  
  2351.         ''' <summary>
  2352.         ''' Streamsize in with percentage value
  2353.         ''' </summary>
  2354.         StreamSize__String
  2355.  
  2356.         ''' <summary>
  2357.         ''' ( UNDOCUMENTED PARAMETER )
  2358.         ''' </summary>
  2359.         StreamSize__String1
  2360.  
  2361.         ''' <summary>
  2362.         ''' ( UNDOCUMENTED PARAMETER )
  2363.         ''' </summary>
  2364.         StreamSize__String2
  2365.  
  2366.         ''' <summary>
  2367.         ''' ( UNDOCUMENTED PARAMETER )
  2368.         ''' </summary>
  2369.         StreamSize__String3
  2370.  
  2371.         ''' <summary>
  2372.         ''' ( UNDOCUMENTED PARAMETER )
  2373.         ''' </summary>
  2374.         StreamSize__String4
  2375.  
  2376.         ''' <summary>
  2377.         ''' Streamsize in with percentage value
  2378.         ''' </summary>
  2379.         StreamSize__String5
  2380.  
  2381.         ''' <summary>
  2382.         ''' Stream size in bytes
  2383.         ''' </summary>
  2384.         StreamSize
  2385.  
  2386.         ''' <summary>
  2387.         ''' Encoded Streamsize in with percentage value
  2388.         ''' </summary>
  2389.         StreamSize_Encoded__String
  2390.  
  2391.         ''' <summary>
  2392.         ''' ( UNDOCUMENTED PARAMETER )
  2393.         ''' </summary>
  2394.         StreamSize_Encoded__String1
  2395.  
  2396.         ''' <summary>
  2397.         ''' ( UNDOCUMENTED PARAMETER )
  2398.         ''' </summary>
  2399.         StreamSize_Encoded__String2
  2400.  
  2401.         ''' <summary>
  2402.         ''' ( UNDOCUMENTED PARAMETER )
  2403.         ''' </summary>
  2404.         StreamSize_Encoded__String3
  2405.  
  2406.         ''' <summary>
  2407.         ''' ( UNDOCUMENTED PARAMETER )
  2408.         ''' </summary>
  2409.         StreamSize_Encoded__String4
  2410.  
  2411.         ''' <summary>
  2412.         ''' Encoded Streamsize in with percentage value
  2413.         ''' </summary>
  2414.         StreamSize_Encoded__String5
  2415.  
  2416.         ''' <summary>
  2417.         ''' Encoded Streamsize in bytes
  2418.         ''' </summary>
  2419.         StreamSize_Encoded
  2420.  
  2421.         ''' <summary>
  2422.         ''' Encoded Stream size divided by file size
  2423.         ''' </summary>
  2424.         StreamSize_Encoded_Proportion
  2425.  
  2426.         ''' <summary>
  2427.         ''' Stream size divided by file size
  2428.         ''' </summary>
  2429.         StreamSize_Proportion
  2430.  
  2431.         ''' <summary>
  2432.         ''' Describes the topic of the file, such as Aerial view of Seattle..
  2433.         ''' </summary>
  2434.         Subject
  2435.  
  2436.         ''' <summary>
  2437.         ''' Name of the subtrack.
  2438.         ''' </summary>
  2439.         SubTrack
  2440.  
  2441.         ''' <summary>
  2442.         ''' A plot outline or a summary of the story.
  2443.         ''' </summary>
  2444.         Summary
  2445.  
  2446.         ''' <summary>
  2447.         ''' A description of the story line of the item.
  2448.         ''' </summary>
  2449.         Synopsis
  2450.  
  2451.         ''' <summary>
  2452.         ''' Software used to tag this file
  2453.         ''' </summary>
  2454.         Tagged_Application
  2455.  
  2456.         ''' <summary>
  2457.         ''' The time that the tags were done for this item.
  2458.         ''' </summary>
  2459.         Tagged_Date
  2460.  
  2461.         ''' <summary>
  2462.         ''' License information, e.g., All Rights Reserved,Any Use Permitted.
  2463.         ''' </summary>
  2464.         TermsOfUse
  2465.  
  2466.         ''' <summary>
  2467.         ''' Text Codecs in this file, separated by /
  2468.         ''' </summary>
  2469.         Text_Format_List
  2470.  
  2471.         ''' <summary>
  2472.         ''' Text Codecs in this file with popular name (hint),separated by /
  2473.         ''' </summary>
  2474.         Text_Format_WithHint_List
  2475.  
  2476.         ''' <summary>
  2477.         ''' Text languages in this file, separated by /
  2478.         ''' </summary>
  2479.         Text_Language_List
  2480.  
  2481.         ''' <summary>
  2482.         ''' Number of text streams
  2483.         ''' </summary>
  2484.         TextCount
  2485.  
  2486.         ''' <summary>
  2487.         ''' A very general tag for everyone else that wants to be listed.
  2488.         ''' </summary>
  2489.         ThanksTo
  2490.  
  2491.         ''' <summary>
  2492.         ''' Time code in HH:MM:SS:FF (HH:MM:SS
  2493.         ''' </summary>
  2494.         TimeCode_FirstFrame
  2495.  
  2496.         ''' <summary>
  2497.         ''' Time code settings
  2498.         ''' </summary>
  2499.         TimeCode_Settings
  2500.  
  2501.         ''' <summary>
  2502.         ''' Time code source (Container, Stream, SystemScheme1, SDTI, ANC...)
  2503.         ''' </summary>
  2504.         TimeCode_Source
  2505.  
  2506.         ''' <summary>
  2507.         ''' TimeStamp with measurement
  2508.         ''' </summary>
  2509.         TimeStamp_FirstFrame__String
  2510.  
  2511.         ''' <summary>
  2512.         ''' TimeStamp with measurement
  2513.         ''' </summary>
  2514.         TimeStamp_FirstFrame__String1
  2515.  
  2516.         ''' <summary>
  2517.         ''' TimeStamp with measurement
  2518.         ''' </summary>
  2519.         TimeStamp_FirstFrame__String2
  2520.  
  2521.         ''' <summary>
  2522.         ''' TimeStamp in format : HH:MM:SS.MMM
  2523.         ''' </summary>
  2524.         TimeStamp_FirstFrame__String3
  2525.  
  2526.         ''' <summary>
  2527.         ''' TimeStamp fixed in the stream (relative) IN MS
  2528.         ''' </summary>
  2529.         TimeStamp_FirstFrame
  2530.  
  2531.         ''' <summary>
  2532.         ''' ( UNDOCUMENTED PARAMETER )
  2533.         ''' </summary>
  2534.         TimeZone
  2535.  
  2536.         ''' <summary>
  2537.         ''' ( UNDOCUMENTED PARAMETER )
  2538.         ''' </summary>
  2539.         TimeZones
  2540.  
  2541.         ''' <summary>
  2542.         ''' (Generic)More info about the title of file
  2543.         ''' </summary>
  2544.         Title__More
  2545.  
  2546.         ''' <summary>
  2547.         ''' (Generic)Url
  2548.         ''' </summary>
  2549.         Title__Url
  2550.  
  2551.         ''' <summary>
  2552.         ''' (Generic)Title of file
  2553.         ''' </summary>
  2554.         Title
  2555.  
  2556.         ''' <summary>
  2557.         ''' More infos about the track
  2558.         ''' </summary>
  2559.         Track__More
  2560.  
  2561.         ''' <summary>
  2562.         ''' Number of this track
  2563.         ''' </summary>
  2564.         Track__Position
  2565.  
  2566.         ''' <summary>
  2567.         ''' Place of this track, e.g. 3 of 15
  2568.         ''' </summary>
  2569.         Track__Position_Total
  2570.  
  2571.         ''' <summary>
  2572.         ''' ( UNDOCUMENTED PARAMETER )
  2573.         ''' </summary>
  2574.         Track__Sort
  2575.  
  2576.         ''' <summary>
  2577.         ''' Link to a site about this track
  2578.         ''' </summary>
  2579.         Track__Url
  2580.  
  2581.         ''' <summary>
  2582.         ''' Name of the track. e.g. track1, track 2
  2583.         ''' </summary>
  2584.         Track
  2585.  
  2586.         ''' <summary>
  2587.         ''' Type
  2588.         ''' </summary>
  2589.         Type
  2590.  
  2591.         ''' <summary>
  2592.         ''' The unique ID for this stream, should be copied with stream copy
  2593.         ''' </summary>
  2594.         UniqueID__String
  2595.  
  2596.         ''' <summary>
  2597.         ''' The unique ID for this stream, should be copied with stream copy
  2598.         ''' </summary>
  2599.         UniqueID
  2600.  
  2601.         ''' <summary>
  2602.         ''' ( UNDOCUMENTED PARAMETER )
  2603.         ''' </summary>
  2604.         Video_Delay__String
  2605.  
  2606.         ''' <summary>
  2607.         ''' ( UNDOCUMENTED PARAMETER )
  2608.         ''' </summary>
  2609.         Video_Delay__String1
  2610.  
  2611.         ''' <summary>
  2612.         ''' ( UNDOCUMENTED PARAMETER )
  2613.         ''' </summary>
  2614.         Video_Delay__String2
  2615.  
  2616.         ''' <summary>
  2617.         ''' ( UNDOCUMENTED PARAMETER )
  2618.         ''' </summary>
  2619.         Video_Delay__String3
  2620.  
  2621.         ''' <summary>
  2622.         ''' ( UNDOCUMENTED PARAMETER )
  2623.         ''' </summary>
  2624.         Video_Delay__String4
  2625.  
  2626.         ''' <summary>
  2627.         ''' Delay fixed in the stream (absolute / video)
  2628.         ''' </summary>
  2629.         Video_Delay
  2630.  
  2631.         ''' <summary>
  2632.         ''' Video Codecs in this file, separated by /
  2633.         ''' </summary>
  2634.         Video_Format_List
  2635.  
  2636.         ''' <summary>
  2637.         ''' Video Codecs in this file with popular name (hint), separated by /
  2638.         ''' </summary>
  2639.         Video_Format_WithHint_List
  2640.  
  2641.         ''' <summary>
  2642.         ''' Video languagesin this file, full names, separated by /
  2643.         ''' </summary>
  2644.         Video_Language_List
  2645.  
  2646.         ''' <summary>
  2647.         ''' Number of video streams
  2648.         ''' </summary>
  2649.         VideoCount
  2650.  
  2651.         ''' <summary>
  2652.         ''' Width (aperture size if present) with measurement (pixel)
  2653.         ''' </summary>
  2654.         Width__String
  2655.  
  2656.         ''' <summary>
  2657.         ''' Width (aperture size if present) in pixel
  2658.         ''' </summary>
  2659.         Width
  2660.  
  2661.         ''' <summary>
  2662.         ''' Offset between original width and displayed width (aperture size)  in pixel
  2663.         ''' </summary>
  2664.         Width_Offset__String
  2665.  
  2666.         ''' <summary>
  2667.         ''' Offset between original width and displayed width (aperture size) in pixel
  2668.         ''' </summary>
  2669.         Width_Offset
  2670.  
  2671.         ''' <summary>
  2672.         ''' Original (in the raw stream) width with measurement (pixel)
  2673.         ''' </summary>
  2674.         Width_Original__String
  2675.  
  2676.         ''' <summary>
  2677.         ''' Original (in the raw stream) width in pixel
  2678.         ''' </summary>
  2679.         Width_Original
  2680.  
  2681.         ''' <summary>
  2682.         ''' The time/date/year that the composition of the music/script began.
  2683.         ''' </summary>
  2684.         Written_Date
  2685.  
  2686.         ''' <summary>
  2687.         ''' Location that the item was originaly designed/written. Information should be stored in the following format: country code, state/province, city where the coutry code is the same 2 octets as in Internet domains, or possibly ISO-3166. e.g. US, Texas, Austin or US, , Austin.
  2688.         ''' </summary>
  2689.         Written_Location
  2690.  
  2691.         ''' <summary>
  2692.         ''' The author of the story or script.
  2693.         ''' </summary>
  2694.         WrittenBy
  2695.  
  2696.     End Enum
  2697.  
  2698. #End Region
  2699.  
  2700. #Region " New constructor "
  2701.  
  2702.     Public Sub New()
  2703.         Handle = SafeNativeMethods.MediaInfo_New()
  2704.     End Sub
  2705.  
  2706. #End Region
  2707.  
  2708. #Region " Methods "
  2709.  
  2710.     ''' <summary>
  2711.     ''' Opens a file to retrieve info.
  2712.     ''' </summary>
  2713.     ''' <param name="File">
  2714.     ''' The file to open.
  2715.     ''' </param>
  2716.     Public Function Open(ByVal File As String) As IntPtr
  2717.         Return SafeNativeMethods.MediaInfo_Open(Handle, File)
  2718.     End Function
  2719.  
  2720.     ''' <summary>
  2721.     ''' Opens a file to retrieve info.
  2722.     ''' </summary>
  2723.     ''' <param name="File">
  2724.     ''' The file to open.
  2725.     ''' </param>
  2726.     Public Function Open(ByVal File As IO.FileInfo) As IntPtr
  2727.         Return SafeNativeMethods.MediaInfo_Open(Handle, File.FullName)
  2728.     End Function
  2729.  
  2730.     ''' <summary>
  2731.     ''' Closes the file.
  2732.     ''' </summary>
  2733.     Public Sub Close()
  2734.         SafeNativeMethods.MediaInfo_Close(Handle)
  2735.     End Sub
  2736.  
  2737.     ''' <summary>
  2738.     ''' Gets all details about a file.
  2739.     ''' </summary>
  2740.     Public Function Inform() As String
  2741.         Return System.Runtime.InteropServices.
  2742.                Marshal.PtrToStringUni(SafeNativeMethods.MediaInfo_Inform(Handle, IntPtr.Zero))
  2743.     End Function
  2744.  
  2745.     ''' <summary>
  2746.     ''' Gets the count of streams of a file,
  2747.     ''' or count of piece of information in this stream.
  2748.     ''' </summary>
  2749.     ''' <param name="StreamKind">
  2750.     ''' Kind of stream (general, video, audio...)
  2751.     ''' </param>
  2752.     ''' <param name="StreamNumber">
  2753.     ''' Stream number in this kind of stream (first, second...)
  2754.     ''' </param>
  2755.     Public Function Count_Get(ByVal StreamKind As StreamKind,
  2756.                               Optional ByVal StreamNumber As Integer = -1) As Integer
  2757.  
  2758.         Return CInt(SafeNativeMethods.
  2759.                     MediaInfo_Count_Get(Handle,
  2760.                                         New IntPtr(StreamKind),
  2761.                                         If(StreamNumber = -1,
  2762.                                            New IntPtr(-1),
  2763.                                            New IntPtr(StreamNumber))))
  2764.  
  2765.     End Function
  2766.  
  2767.     ''' <summary>
  2768.     ''' Gets information about the MediaInfoLib.
  2769.     ''' </summary>
  2770.     ''' <param name="Info">
  2771.     ''' Kind of information.
  2772.     ''' </param>
  2773.     Public Function LibraryInfo(ByVal Info As MediaInfoLibInfo) As String
  2774.  
  2775.         Return System.Runtime.InteropServices.
  2776.                Marshal.PtrToStringUni(SafeNativeMethods.
  2777.                                       MediaInfo_Option(Handle,
  2778.                                                        Info.ToString, ""))
  2779.  
  2780.     End Function
  2781.  
  2782.     ''' <summary>
  2783.     ''' Gets a piece of information about a file.
  2784.     ''' </summary>
  2785.     ''' <param name="StreamKind">
  2786.     ''' Kind of stream (general, video, audio...).
  2787.     ''' </param>
  2788.     ''' <param name="StreamNumber">
  2789.     ''' Stream number in this kind of stream (first, second...).
  2790.     ''' </param>
  2791.     ''' <param name="Info">
  2792.     ''' The information to retrieve.
  2793.     ''' </param>
  2794.     ''' <param name="KindOfInfo">
  2795.     ''' Kind of information you want about the parameter (the text, the measure, the help...).
  2796.     ''' </param>
  2797.     ''' <param name="KindOfSearch">
  2798.     ''' Where to look for the parameter .
  2799.     ''' </param>
  2800.     Public Function GetInfo(ByVal StreamKind As StreamKind,
  2801.                             ByVal StreamNumber As Integer,
  2802.                             ByVal Info As MediaInfoOption,
  2803.                             Optional ByVal KindOfInfo As InfoKind = InfoKind.Text,
  2804.                             Optional ByVal KindOfSearch As InfoKind = InfoKind.Name) As String
  2805.  
  2806.         Return System.Runtime.InteropServices.
  2807.                Marshal.PtrToStringUni(SafeNativeMethods.
  2808.                                       MediaInfo_Get(Handle,
  2809.                                                     New IntPtr(StreamKind),
  2810.                                                     New IntPtr(StreamNumber),
  2811.                                                     Info.ToString.Replace("_s_", "(s)").Replace("__", "/"),
  2812.                                                     New IntPtr(KindOfInfo),
  2813.                                                     New IntPtr(KindOfSearch)))
  2814.  
  2815.     End Function
  2816.  
  2817.     ''' <summary>
  2818.     ''' Gets a piece of information about a file.
  2819.     ''' </summary>
  2820.     ''' <param name="StreamKind">
  2821.     ''' Kind of stream (general, video, audio...).
  2822.     ''' </param>
  2823.     ''' <param name="Info">
  2824.     ''' The information to retrieve.
  2825.     ''' </param>
  2826.     ''' <param name="KindOfInfo">
  2827.     ''' Kind of information you want about the parameter (the text, the measure, the help...).
  2828.     ''' </param>
  2829.     ''' <param name="KindOfSearch">
  2830.     ''' Where to look for the parameter .
  2831.     ''' </param>
  2832.     Public Function GetInfo(ByVal StreamKind As StreamKind,
  2833.                             ByVal Info As MediaInfoOption,
  2834.                             Optional ByVal KindOfInfo As InfoKind = InfoKind.Text,
  2835.                             Optional ByVal KindOfSearch As InfoKind = InfoKind.Name) As String
  2836.  
  2837.         Return System.Runtime.InteropServices.
  2838.                Marshal.PtrToStringUni(SafeNativeMethods.
  2839.                                       MediaInfo_Get(Handle,
  2840.                                                     New IntPtr(StreamKind),
  2841.                                                     New IntPtr(0),
  2842.                                                     Info.ToString.Replace("_s_", "(s)").Replace("__", "/"),
  2843.                                                     New IntPtr(KindOfInfo),
  2844.                                                     New IntPtr(KindOfSearch)))
  2845.  
  2846.     End Function
  2847.  
  2848. #End Region
  2849.  
  2850. #Region " Debug "
  2851.  
  2852. #If DEBUG Then
  2853.  
  2854.     Public Shared Sub MakeMediaInfoEnum()
  2855.  
  2856.         Dim TempFile As String = IO.Path.GetTempFileName
  2857.         Dim OutFile As String = "C:\MediaInfo Enum.vb"
  2858.         Dim ReplaceChar1 As String = "__" ' Replacement for "/" char.
  2859.         Dim ReplaceChar2 As String = "_s_" ' Replacement for "(s)" chars.
  2860.         Dim sb As New System.Text.StringBuilder
  2861.  
  2862.         IO.File.WriteAllText(TempFile,
  2863.                              New MediaInfo().LibraryInfo(MediaInfo.MediaInfoLibInfo.Info_Parameters_CSV),
  2864.                              System.Text.Encoding.Default)
  2865.  
  2866.         sb.AppendLine("Public Enum MediaInfoOption")
  2867.         sb.AppendLine("")
  2868.  
  2869.         For Each line As String In IO.File.ReadLines(TempFile,
  2870.                                                      System.Text.Encoding.Default).
  2871.                                                      Where(Function(l) _
  2872.                                                            l.Contains(";") _
  2873.                                                            AndAlso Not l.ToLower.Contains("deprecated") _
  2874.                                                            AndAlso Not l.ToLower.StartsWith("default") _
  2875.                                                            AndAlso Not l.ToLower.StartsWith("forced") _
  2876.                                                            AndAlso Not l.ToLower.StartsWith("bits-(iixel*frame)")).
  2877.                                                      OrderBy(Function(l) l).
  2878.                                                      Distinct()
  2879.  
  2880.             sb.AppendLine("''' <summary>")
  2881.  
  2882.             sb.AppendLine("''' " & If(Not String.IsNullOrEmpty(line.Substring(line.IndexOf(";") + 1)),
  2883.                                       line.Substring(line.IndexOf(";") + 1),
  2884.                                   "( UNDOCUMENTED PARAMETER )"))
  2885.  
  2886.             sb.AppendLine("''' </summary>")
  2887.             sb.AppendLine(line.Substring(0, line.IndexOf(";")).
  2888.                           Replace("/", ReplaceChar1).
  2889.                           Replace("(s)", ReplaceChar2))
  2890.  
  2891.             sb.AppendLine("")
  2892.  
  2893.         Next
  2894.  
  2895.         sb.AppendLine("End Enum")
  2896.  
  2897.         IO.File.WriteAllText(OutFile, sb.ToString, System.Text.Encoding.Default)
  2898.         Process.Start(OutFile)
  2899.  
  2900.     End Sub
  2901.  
  2902. #End If
  2903.  
  2904. #End Region
  2905.  
  2906. #Region "IDisposable "
  2907.  
  2908.     Private disposedValue As Boolean ' To detect redundant calls
  2909.  
  2910.     ' IDisposable
  2911.     Protected Overridable Sub Dispose(disposing As Boolean)
  2912.  
  2913.         If Not Me.disposedValue Then
  2914.  
  2915.             If disposing Then
  2916.                 SafeNativeMethods.MediaInfo_Close(Handle)
  2917.                 SafeNativeMethods.MediaInfo_Delete(Handle)
  2918.                 Handle = IntPtr.Zero
  2919.             End If
  2920.  
  2921.         End If
  2922.  
  2923.         Me.disposedValue = True
  2924.  
  2925.     End Sub
  2926.  
  2927.     Protected Overrides Sub Finalize()
  2928.         Dispose(False)
  2929.         MyBase.Finalize()
  2930.     End Sub
  2931.  
  2932.     Public Sub Dispose() Implements IDisposable.Dispose
  2933.         Dispose(True)
  2934.         GC.SuppressFinalize(Me)
  2935.     End Sub
  2936.  
  2937. #End Region
  2938.  
  2939. End Class
  2940.  
  2941. #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement