Page 4 of 7

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 23 Oct 2008 18:18
by surf_uk
First thanks Marx for a great wrapper.

I'm not sure wich version I have of the wrapper and are unable to register any events, have these been implememted? if so where are the new versions?
I've spent the last few days building a C# wrapper to the new API. Anything that has been depreciated has been removed. So far, I've implemented most of the API and I'm able to play media files and attach the process to a
The following are yet to be implemented. If I get some time this weekend, I should get the bulk of it done.

libvlc_event
All I want to do is get a ibvlc_MediaPlayerEndReached

Thanks

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 24 Oct 2008 06:01
by publicENEMY
is this library compatible with the latest vlc(0.9.4)? is it actively developed? approximately, when can we expect an update?

thanks.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 24 Oct 2008 11:30
by surf_uk
All I want to do is get a ibvlc_MediaPlayerEndReached
I made a rubbish work-around:

Code: Select all

//declare timer timer = new Timer(); timer.Interval = 500; timer.Tick += new EventHandler(TimerOnTick); timer.Enabled = true; //do something when ended void TimerOnTick(object obj, EventArgs ea) { Console.WriteLine("Media position : " + Math.Ceiling(libvlc_media_player.get_position(ref ex)*100) + "%"); if (Math.Ceiling(libvlc_media_player.get_position(ref ex) * 100) > 99) { //do something useful } }
Are there any fully functional alternatives, such as (although I haven't tested them):

C#
http://meedios.svn.sourceforge.net/view ... Auxiliary/

Java:
http://mailman.videolan.org/pipermail/v ... 46719.html

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 24 Oct 2008 22:14
by Flow
Hello,

I've worked on libvlc with C++
I would like to know how to use the wrapper to use libvlc with C#

Thank you.
Flo.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 27 Oct 2008 09:58
by win32nipuh
How can I play FLV files (local and remote) using wrapper?

Regards

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 28 Oct 2008 20:38
by arogan
All I want to do is get a ibvlc_MediaPlayerEndReached
I made a rubbish work-around:

Code: Select all

//declare timer timer = new Timer(); timer.Interval = 500; timer.Tick += new EventHandler(TimerOnTick); timer.Enabled = true; //do something when ended void TimerOnTick(object obj, EventArgs ea) { Console.WriteLine("Media position : " + Math.Ceiling(libvlc_media_player.get_position(ref ex)*100) + "%"); if (Math.Ceiling(libvlc_media_player.get_position(ref ex) * 100) > 99) { //do something useful } }
Are there any fully functional alternatives, such as (although I haven't tested them):

C#
http://meedios.svn.sourceforge.net/view ... Auxiliary/

Java:
http://mailman.videolan.org/pipermail/v ... 46719.html

I tried the meedios one and it worked fine. I'm having trouble finding some missing functionality. Specifically, I'm looking for the setVariable functions of old so I can send the hotkey presses to vlc (I used it for dvd navigation and other things).

basically I'm looking for something equivalent to:
enmErr = VLC_VariableSet(m_iVlcHandle, "key-pressed", valKey);

[DllImport("libvlc")]
static extern VlcError __var_Set(IntPtr p_vlc, String name, vlc_value_t value);

static extern Error VLC_VariableSet(int iVLC, string Name, vlc_value_t value);


Getting the meedios stuff running was quite easy:
Grab the gnu tarball for videolan.interop:
http://meedios.svn.sourceforge.net/view ... n.Interop/
add the project to your solution, add a project reference, add using VideoLan for the namespace.

Code: Select all

private VideoLan.VideoLanClient vlc; private VideoLan.VlcMediaPlayer video; //init stuff: vlc = new VideoLan.VideoLanClient(@"C:\Program Files\VideoLAN\VLC"); owner = yourcontrol; // (I used a picturebox) video = vlc.NewMediaPlayer(owner.Handle); //play a file: VideoLan.VlcMedia desc = vlc.NewMedia(aFile); video.Load(desc); desc.Dispose(); //cleanup when you are done playing the video: video.Dispose(); vlc.Dispose();

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 28 Oct 2008 23:11
by Kairos
I tried the meedios one and it worked fine. I'm having trouble finding some missing functionality. Specifically, I'm looking for the setVariable functions of old so I can send the hotkey presses to vlc (I used it for dvd navigation and other things).

basically I'm looking for something equivalent to:
enmErr = VLC_VariableSet(m_iVlcHandle, "key-pressed", valKey);

[DllImport("libvlc")]
static extern VlcError __var_Set(IntPtr p_vlc, String name, vlc_value_t value);

static extern Error VLC_VariableSet(int iVLC, string Name, vlc_value_t value);
arogan, I'm glad you like the MeediOS wrapper. I wrote it to fit my needs, that's why I never got around to support the MediaList or vlm stuff. Unfortunately, the functionality your looking for no longer exists in libvlc. If you look at my source code you will see the '__var_Set' stuff is all there inside the VlcObject class under the folder obsolete. If you try to call any of those functions you will get an error saying 'the entry point could not be found'. I too miss those function because now there is no way to do on the fly adjustments of the basic filter settings like brightness, contrast, hue, gamma, and saturation.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 28 Oct 2008 23:26
by arogan
I tried the meedios one and it worked fine. I'm having trouble finding some missing functionality. Specifically, I'm looking for the setVariable functions of old so I can send the hotkey presses to vlc (I used it for dvd navigation and other things).

basically I'm looking for something equivalent to:
enmErr = VLC_VariableSet(m_iVlcHandle, "key-pressed", valKey);

[DllImport("libvlc")]
static extern VlcError __var_Set(IntPtr p_vlc, String name, vlc_value_t value);

static extern Error VLC_VariableSet(int iVLC, string Name, vlc_value_t value);
arogan, I'm glad you like the MeediOS wrapper. I wrote it to fit my needs, that's why I never got around to support the MediaList or vlm stuff. Unfortunately, the functionality your looking for no longer exists in libvlc. If you look at my source code you will see the '__var_Set' stuff is all there inside the VlcObject class under the folder obsolete. If you try to call any of those functions you will get an error saying 'the entry point could not be found'. I too miss those function because now there is no way to do on the fly adjustments of the basic filter settings like brightness, contrast, hue, gamma, and saturation.
LOL, I had just found your little \obsolete folder and hooked it all in getting all excited and boom got the 'the entry point could not be found'. Doh! Oh well. Thanks Karios for all the hard work. It was an incredibly clean and easy to follow/use wrapper. I will miss __var_set. I was using it to do all sorts of things like toggle audio tracks, cycle deinterlacing modes, aspect ratios, dvd menu navigation (arrow keys, enter), cycle subtitles, etc. Some things I see you can sort of duplicate through libvlc_audio and libvlc_video but not every thing. I don't see a way to set deinterlacing mode on the fly. Anyways, if anybody has any ideas how to duplicate some of the functionality I listed in this post 0.9.0 world please share.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 29 Oct 2008 05:27
by publicENEMY
Kairos

Thank you for sharing your interop with us. Maybe you can start a new thread so that anyone can focus on developing or enhancing your interop. By the way, did you get to render vlc in wpf(i mean, full wpf features support)?

Thanks. Im gonna download it and test it.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 29 Oct 2008 06:07
by publicENEMY
Kairos

I tried VideoLanPlayer.UI. Is there any particular reason that you choose panel as the video container? just curious.

thanks.

overall, i would say great effort.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 29 Oct 2008 06:17
by publicENEMY

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 29 Oct 2008 19:06
by Kairos
publicENEMY, I started a new thread for my responses in order not to derail this one.

viewtopic.php?f=14&t=52021&p=169063#p169063

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 30 Oct 2008 12:45
by Jeremiah
is this library compatible with the latest vlc(0.9.4)? is it actively developed? approximately, when can we expect an update?

thanks.
It works very with latest vlc lib(0.9.4).

i have a question guys.

Do anyone use the funciton video_get_height(ref libvlc_exception_struct ex)?

why my return value is 0?

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 03 Nov 2008 12:28
by Prakash
Hi all,
can anybody help me in solving this exception " 'System.AccessViolationException' occurred in Marx_libvlc_wrapper.dll"
while running the wrapper i got this exception. One more query is it useful for http streaming??


Thanks in Advance

Regards,
Prakash.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 03 Nov 2008 20:23
by buhochileno
Hi guys:

First post to the forum, so Hi to all and keep the good work..!!!

Sorry if is not the correct forum, but I'm very interesting in use and help with the .NET interface for VLC, so my question is where can I get a fresh copy of the source or where can a check out the last version (svn repo?).

And also make some questions:

1) I'm a c#/mono programmer so I wonder if someone test this libvlc wrapper in c# on linux?
2) the current wrapper is not a wrapper arround a ActiveX control right?
3) the native function wrappers are also in C# not VS.NET C++ right?
and finally...
4) what is the current status of the vlc streaming capabilities of LibVlc and/or the .NET wrapper?

Thanks in advance, and any help direction it would be very appreciated.

Cheers,

Mauricio

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 07 Nov 2008 12:33
by jshort86
Hi

I was wondering if this .NET wrapper is available for download, as I am trying to find a .NET wrapper which will allow me to stream video from my VB.NET application through the libvlc class?

Any feedback would be greatly appreciated?

Best Regards
Jack

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 07 Nov 2008 15:02
by corvusvideo

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 07 Nov 2008 16:11
by jshort86
Hi

Thanks thats great I have the file now.

I was wondering if I could get some help in setting this up from my VB.NET application.

Am I able to use imports or do I need to use DLLIMPORT to set this up.

And can someone confirm that this library will allow me to stream video over UDP, from my VB.NET application?

Thanks
Jack

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 08 Nov 2008 13:25
by Zeussy
thanks for the great wrapper, been very useful so far. Building a touch screen interface for my media box.

We watch a lot of anime in this house :) So being able to list and set the subtitle track is important. Currently I am just using the arguments for libvlc_core to specify my preference, but that does not help if the subtitle track has been named something obscure like "Styled Subs". Setting the sub track ID is not preferable just in case there are other language subs and English is not the first in the list. Is there a way to get the subtitles listed. I cannot see any way in the libvlc documentation, or in the wrapper. Perhaps I overlooked something?

Thanks in advance.

Changing Media

Posted: 13 Nov 2008 19:13
by benshole
Hey Guys,

Using the C# wrapper in an application and i need to rapidly change from one piece of media to another.

I *assumed* this could be done by re-initiating a libvlc_media object with a new file path. Then assign the libvlc_media_player the changed media object.

When i do this i get an exception about the libvlc_core handle being invalid on the media object the 2nd time it is called.
I havn't disposed of the core object or modified it in any way. So its a little perplexing!

Also hopefully just a small one that i have missed in the thread somewhere.
In the wrapper the get_time and get_length calls were missing. If anyone needs these calls i have built a modified dll containing them.

Thanks a lot!

Ben

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 14 Nov 2008 08:35
by sun_yiqin
Thanks for the wrapper, It is really nice. Sorry for my poor English...
Now I am trying to play a kind of TS stream from a TV usb device. The stream contain 3 channels at the same time.
I can switch by using the VLC player, just need to change the Playback-->Programm on the navigater.

How can I do the same thing by using the wrapper? I want to separate the 3 channels.
Any one can help me? Thanks very much!

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 17 Nov 2008 14:48
by BexX
You are setting up the frequency and the other stuff, by adding mrl-options to your mediadiscriptor, right? Then you just have to add ":programs=[SID]" as option to your mediadiscriptor objekt.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 20 Nov 2008 03:10
by sun_yiqin
You are setting up the frequency and the other stuff, by adding mrl-options to your mediadiscriptor, right? Then you just have to add ":programs=[SID]" as option to your mediadiscriptor objekt.
You mean "libvlc_media.add_option(options, ref ex);"? I tried setting the options as you said, but it doesn't work. What does the "SID" mean? Is it the program ID of the TS stream? But the program ID is always changing.

VB.net samples

Posted: 20 Nov 2008 08:15
by drainey
I am after a VB.net sample using the wrapper. Does anyone have such a beast? A working example of would be greatly appreciated. Even if it in C# i will port to VB and post for others to use.

Re: C# Wrapper for libvlc 0.9.0 - Testers Required

Posted: 22 Nov 2008 14:04
by BexX
Hi guys:
Sorry if is not the correct forum, but I'm very interesting in use and help with the .NET interface for VLC, so my question is where can I get a fresh copy of the source or where can a check out the last version (svn repo?).
I would suggest using this wrapper instead:
viewtopic.php?f=14&t=52021&start=15
1) I'm a c#/mono programmer so I wonder if someone test this libvlc wrapper in c# on linux?
both wrappers work, with some few modifications. i am going to post my changes to the meedios wrapper in the corresponding thread.
2) the current wrapper is not a wrapper arround a ActiveX control right?
no
3) the native function wrappers are also in C# not VS.NET C++ right?
and finally...
no
4) what is the current status of the vlc streaming capabilities of LibVlc and/or the .NET wrapper?
does work, by adding stream output options to the mrl.
You are setting up the frequency and the other stuff, by adding mrl-options to your mediadiscriptor, right? Then you just have to add ":programs=[SID]" as option to your mediadiscriptor objekt.
You mean "libvlc_media.add_option(options, ref ex);"? I tried setting the options as you said, but it doesn't work. What does the "SID" mean? Is it the program ID of the TS stream? But the program ID is always changing.
SID is the service identifier that should be in any DVB stream. Imho it describes the Video and Audio PIDs belonging to a channel.
Here is some Code i wrote for the meedios Wrapper mentioned above:

Code: Select all

// Main.cs created with MonoDevelop // User: bexx at 1:15 AMĀ 11/20/2008 // // To change standard headers go to Edit->Preferences->Coding->Standard Headers // using System; using VideoLan; using System.Threading; namespace DVBsharp { public interface VlcDvbChannel { String[] mrlOptions { get; } } public class SChannel : VlcDvbChannel { private readonly String name; private readonly int frequency; private readonly int symbolrate; private readonly int sid; private readonly bool horizontal; public SChannel(String name, int frequency, int symbolrate, int sid, bool horizontal) { this.name = name; this.frequency = frequency; this.symbolrate = symbolrate; this.sid = sid; this.horizontal = horizontal; } public String Name { get { return name; } } public int Frequency { get { return frequency; } } public int Symbolrate { get { return symbolrate; } } public int Sid { get { return sid; } } public bool isHorizontal { get { return horizontal; } } public String[] mrlOptions { get { return new String[] {":dvb-frequency="+frequency, ":dvb-srate="+symbolrate, ":dvb-voltage="+(horizontal?"18":"13"), ":program="+sid}; } // program does work for streaming, but does not for playing } } class MainClass { public static void Main(string[] args) { // init libvlc VideoLanClient vlc = new VideoLanClient(new String[]{}); // mrl VlcMedia media = vlc.NewMedia("dvb://"); SChannel chan1 = new SChannel("Das Erste", 11836000, 27500000, 28106, true); foreach (string option in chan1.mrlOptions) media.AddOption(option); //player VlcMediaPlayer player = vlc.NewMediaPlayer(IntPtr.Zero, media); player.StateChanged += new EventHandler<StateChangedEventArgs>(StateChanged); // Thread.Sleep(10000); player.Play(); Thread.Sleep(10000); player.Video.FullScreen = true; Thread.Sleep(30000); player.Stop(); } private static void StateChanged(object sender, StateChangedEventArgs e) { Console.WriteLine("State: " + e.NewState); } } }
This is working on ubuntu with an new VideoLanClient Constructor, and should work on windows, when you adjust the "mrlOptions" property to your needs.