[vlc-devel] commit: Media meta data support ( Rémi Denis-Courmont )
git version control
git at videolan.org
Mon Feb 23 20:13:40 CET 2009
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Mon Feb 23 21:12:22 2009 +0200| [fec4fde41014892402d3ce3fa9139f5d58a15d63] | committer: Rémi Denis-Courmont
Media meta data support
This seems to trigger a pseudo-random native failure. Most likely a
critical bug in the VLC meta support.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fec4fde41014892402d3ce3fa9139f5d58a15d63
---
bindings/cil/src/libvlc.cs | 6 +++---
bindings/cil/src/media.cs | 19 +++++++++++++++++++
bindings/cil/tests/testvlc.cs | 7 +++++++
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/bindings/cil/src/libvlc.cs b/bindings/cil/src/libvlc.cs
index 4cf488e..bacaf78 100644
--- a/bindings/cil/src/libvlc.cs
+++ b/bindings/cil/src/libvlc.cs
@@ -118,10 +118,10 @@ namespace VideoLAN.LibVLC
public static extern
MediaHandle MediaDuplicate (MediaHandle media);
- /*[DllImport (lib, EntryPoint="libvlc_media_read_meta")]
+ [DllImport (lib, EntryPoint="libvlc_media_get_meta")]
public static extern
- MediaHandle MediaDuplicate (MediaHandle media, int type,
- NativeException ex);*/
+ StringHandle MediaGetMeta (MediaHandle media, MetaType type,
+ NativeException ex);
[DllImport (lib, EntryPoint="libvlc_media_get_state")]
public static extern
diff --git a/bindings/cil/src/media.cs b/bindings/cil/src/media.cs
index 1edf093..a18a936 100644
--- a/bindings/cil/src/media.cs
+++ b/bindings/cil/src/media.cs
@@ -226,6 +226,25 @@ namespace VideoLAN.LibVLC
}
/**
+ * @param type meta data type
+ * @return the meta data value, or @a null if unknown
+ */
+ public string GetMeta (MetaType type)
+ {
+ StringHandle str = LibVLC.MediaGetMeta (Handle, type, ex);
+ Raise ();
+ return str.Transform ();
+ }
+
+ public delegate void MetaChange (Media media, MetaType type);
+ public event MetaChange MetaChanged;
+ private void MetaCallback (MediaMetaEvent ev, IntPtr data)
+ {
+ if (MetaChanged != null)
+ MetaChanged (this, ev.metaType);
+ }
+
+ /**
* Current state of the media.
*/
public State State
diff --git a/bindings/cil/tests/testvlc.cs b/bindings/cil/tests/testvlc.cs
index 1d4786c..9ea8a31 100644
--- a/bindings/cil/tests/testvlc.cs
+++ b/bindings/cil/tests/testvlc.cs
@@ -75,6 +75,13 @@ namespace VideoLAN.LibVLC.Test
DumpMedia ((Media)media.Clone ());
media.StateChanged += WriteMediaState;
+ /*foreach (MetaType type in Enum.GetValues (typeof (MetaType)))
+ {
+ string meta = media.GetMeta (type);
+ if (meta != null)
+ Console.WriteLine (" {0}: {1}", type, meta);
+ }*/
+
player.Play ();
do
{
More information about the vlc-devel
mailing list