diff --git a/Changelog.md b/Changelog.md index ac268fa..1eafe82 100644 --- a/Changelog.md +++ b/Changelog.md @@ -5,7 +5,7 @@ - update: youtube-dl - new: d3d11va-zero-copy setting added to conf editor -- new: hdr-compute-peak setting added to conf editor +- new: hdr-compute-peak setting added to conf editor - new: flag cli switches support now `--no-flag` in addition to `--flag=no` https://mpv.io/manual/master/#usage - new: cli switches can also start with single `-` instead of double `--` @@ -22,7 +22,8 @@ - new: config editor tab is now remembered - new: osd-duration setting added to config editor and default mpv.conf - new: external console replaced with internal console, in case mpv.conf is missing it's - generated with correct Hight DPI font settings: `script-opts=console-scale=` + generated with correct Hight DPI font size scale settings. + `script-opts=console-scale=` https://github.com/stax76/mpv.net/blob/master/mpv.net/Resources/input.conf.txt#L150 https://mpv.io/manual/master/#console - new: blue color in dark theme is now less intense diff --git a/README.md b/README.md index e2c2e5a..f4901ab 100644 --- a/README.md +++ b/README.md @@ -243,7 +243,7 @@ Before making a support request for a particular issue, please try if it was alr [Support thread in VideoHelp forum](https://forum.videohelp.com/threads/392514-mpv-net-a-extendable-media-player-for-windows) -[Issue tracker](https://github.com/stax76/mpv.net/issues), feel free to use for anything mpv.net related. +[Issue tracker](https://github.com/stax76/mpv.net/issues), feel free to use for anything mpv(.net) related. You can support the development of mpv.net with a PayPal donation: diff --git a/mpv.net/Native/MediaInfo.cs b/mpv.net/Native/MediaInfo.cs index 9243186..15673d3 100644 --- a/mpv.net/Native/MediaInfo.cs +++ b/mpv.net/Native/MediaInfo.cs @@ -1,45 +1,44 @@ -using System; + +using System; using System.Runtime.InteropServices; public class MediaInfo : IDisposable { IntPtr Handle; - static bool Loaded; - public MediaInfo(string sourcepath) + public MediaInfo(string file) { - if (!Loaded) - { - if (WinAPI.LoadLibrary("MediaInfo.dll") == IntPtr.Zero) - throw new Exception("Failed to load MediaInfo.dll."); + if ((Handle = MediaInfo_New()) == IntPtr.Zero) + throw new Exception("Failed to call MediaInfo_New"); - Loaded = true; - } - - Handle = MediaInfo_New(); - MediaInfo_Open(Handle, sourcepath); + if (MediaInfo_Open(Handle, file) == 0) + throw new Exception("Error MediaInfo_Open"); } - public string GetInfo(MediaInfoStreamKind streamKind, string parameter) + public string GetInfo(MediaInfoStreamKind kind, string parameter) { - return Marshal.PtrToStringUni(MediaInfo_Get(Handle, streamKind, 0, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name)); + return Marshal.PtrToStringUni(MediaInfo_Get(Handle, kind, 0, + parameter, MediaInfoKind.Text, MediaInfoKind.Name)); } - public int GetCount(MediaInfoStreamKind streamKind) => MediaInfo_Count_Get(Handle, streamKind, -1); + public int GetCount(MediaInfoStreamKind kind) => MediaInfo_Count_Get(Handle, kind, -1); - public string GetVideo(int streamNumber, string parameter) + public string GetVideo(int stream, string parameter) { - return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Video, streamNumber, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name)); + return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Video, + stream, parameter, MediaInfoKind.Text, MediaInfoKind.Name)); } - public string GetAudio(int streamNumber, string parameter) + public string GetAudio(int stream, string parameter) { - return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Audio, streamNumber, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name)); + return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Audio, + stream, parameter, MediaInfoKind.Text, MediaInfoKind.Name)); } - public string GetText(int streamNumber, string parameter) + public string GetText(int stream, string parameter) { - return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Text, streamNumber, parameter, MediaInfoInfoKind.Text, MediaInfoInfoKind.Name)); + return Marshal.PtrToStringUni(MediaInfo_Get(Handle, MediaInfoStreamKind.Text, + stream, parameter, MediaInfoKind.Text, MediaInfoKind.Name)); } bool Disposed; @@ -48,13 +47,20 @@ public class MediaInfo : IDisposable { if (!Disposed) { + if (Handle != IntPtr.Zero) + { + MediaInfo_Close(Handle); + MediaInfo_Delete(Handle); + } + Disposed = true; - MediaInfo_Close(Handle); - MediaInfo_Delete(Handle); } } - ~MediaInfo() { Dispose(); } + ~MediaInfo() + { + Dispose(); + } [DllImport("MediaInfo.dll")] static extern IntPtr MediaInfo_New(); @@ -63,7 +69,7 @@ public class MediaInfo : IDisposable static extern int MediaInfo_Open(IntPtr handle, string path); [DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)] - static extern IntPtr MediaInfo_Option(IntPtr handle, string optionString, string value); + static extern IntPtr MediaInfo_Option(IntPtr handle, string option, string value); [DllImport("MediaInfo.dll")] static extern IntPtr MediaInfo_Inform(IntPtr handle, int reserved); @@ -75,17 +81,11 @@ public class MediaInfo : IDisposable static extern void MediaInfo_Delete(IntPtr handle); [DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)] - static extern IntPtr MediaInfo_Get(IntPtr handle, - MediaInfoStreamKind streamKind, - int streamNumber, - string parameter, - MediaInfoInfoKind kindOfInfo, - MediaInfoInfoKind kindOfSearch); + static extern IntPtr MediaInfo_Get(IntPtr handle, MediaInfoStreamKind kind, + int stream, string parameter, MediaInfoKind infoKind, MediaInfoKind searchKind); [DllImport("MediaInfo.dll", CharSet = CharSet.Unicode)] - static extern int MediaInfo_Count_Get(IntPtr handle, - MediaInfoStreamKind streamKind, - int streamNumber); + static extern int MediaInfo_Count_Get(IntPtr handle, MediaInfoStreamKind streamKind, int stream); } public enum MediaInfoStreamKind @@ -100,7 +100,7 @@ public enum MediaInfoStreamKind Max, } -public enum MediaInfoInfoKind +public enum MediaInfoKind { Name, Text, @@ -110,4 +110,4 @@ public enum MediaInfoInfoKind MeasureText, Info, HowTo -} \ No newline at end of file +}