Functional but HEAVY

2010-10-13
2013-05-13
  • Rickey Ward
    Rickey Ward
    2010-10-13

    First off I would like to say thanks, because out of the 10+ libvlc.net wrappers, only this and one more actual work at all, and the other doesn't support anything but play/pause and stop.

    This is some intense code. I can see that it works, and actually requires very little code to start playing a video. But since there is no documentation and the sample app is feature rich. It took a good 20 minutes reading the code before I really got the idea.

    The .zip file with the vlc libs and codecs that auto unzip if necessary is a nice touch. and checking if the codecs are recognized prior to attempting to play is a nice feature too. I am sure that the logging helps to see what goes wrong with the program and the libraries, but native logging dlls interloped with a wrapper dll is kinda a heavy way to go with a simple task like logging.

    there are 13 required dll files (not counting the codecs) just to get started playing a video. I think that's a little heavy. I feel there should be a "light" version with all the logging removed (or a simple logging event that you can choose not to implement) and remove the check for libvlc and dependencies. and the 3 vlc-mediaplayer dlls to be combined into one dll.

    not complaining. I really appreciate the work you have done here. Its just very complicated, sometimes wrappers can become more complicated then the libs they are wrapping.

    kudos.

     
  • Rinat Zaripov
    Rinat Zaripov
    2010-10-13

    Thank you for covering your opinion. That important information can help us make library better.

    This is some intense code. I can see that it works, and actually requires very little code to start playing a video. But since there is no documentation and the sample app is feature rich. It took a good 20 minutes reading the code before I really got the idea.

    Well, we started developing simple example. As you can see it is called "SimplePlayer". But now it is not so simple as it should be) I'm thinking to add more really simple examples and documentation with quick start guide. Just need time.

    The .zip file with the vlc libs and codecs that auto unzip if necessary is a nice touch. and checking if the codecs are recognized prior to attempting to play is a nice feature too. I am sure that the logging helps to see what goes wrong with the program and the libraries, but native logging dlls interloped with a wrapper dll is kinda a heavy way to go with a simple task like logging.

    But that allows us to configure logs in the same way as nlog or log4net for example. Sure portion of code which creates log pulling thread should be configurable so you can disable or enable it.

    there are 13 required dll files (not counting the codecs) just to get started playing a video. I think that's a little heavy. I feel there should be a "light" version with all the logging removed (or a simple logging event that you can choose not to implement) and remove the check for libvlc and dependencies. and the 3 vlc-mediaplayer dlls to be combined into one dll.

    Vlc itself is a small library but without plugins it won't be able to play anything. Some of libraries are not mandatory and they can be removed. I was thinking to do that sometime.

    You always can remove dependency checking.

    I won't combine assemblies with different UI library dependencies. For example if we have a project which doesn't depend on Windows.Forms. In the case if we combine all our libraries you probably won't be able to compile that project without adding Windows.Forms to references. If you want to increase load time of your application by combining libraries you can use another team member project called NBox. http://nbox.codeplex.com/

    Thanks,
    rz

     
  • Rickey Ward
    Rickey Ward
    2010-10-18

    I would also like to ask, why does the video appear blocky? I can't seem to work out why, But when using VLC player, and simple player side by side, VLC player looks noticeably crisper. playing the same video.

     
  • you might want to have a look at the interlacing options…

     
  • Rickey Ward
    Rickey Ward
    2010-10-23

    It was actually easier to just write a wrapper for the newest version of vlc player than to try and figure out all the layers and classes in this wrapper and figure out its quirks.

    Turns out there are only 5 simple steps to getting a video playing with libvlc and after reading the doxygen documentation on libvlc 1.1.4 it was no big deal to wrap a full featured player around it. I'll be posting it on my blog soon. But for now, I am still refining it to make it as simple and useful as possible. But the VLC team keeps changing it and breaking compatibility so I doubt I will ever pretend to maintain the code.

     
  • Rinat Zaripov
    Rinat Zaripov
    2010-10-23

    Hi diamonddrake,
    Did you have any luck getting rid of blocky video?

    It was actually easier to just write a wrapper for the newest version of vlc player than to try and figure out all the layers and classes in this wrapper and figure out its quirks.

    I bet it was. What exactly do you call a quirk? Probably you should not look inside of the library. It should be easy to use without dealing with internals. What exactly do you want to do?

    That library perfectly fits for some of our projects. Mono support is coming up. We going to support it for upcoming VLC versions. There are some other wrappers around, probably with better user support. Also try to ask people on VLC forums. There was at least three different wrappers. Some of them were trying only to wrap (interop code), some of them was designed like ours.

    Turns out there are only 5 simple steps to getting a video playing with libvlc and after reading the doxygen documentation on libvlc 1.1.4 it was no big deal to wrap a full featured player around it. I'll be posting it on my blog soon. But for now, I am still refining it to make it as simple and useful as possible. But the VLC team keeps changing it and breaking compatibility so I doubt I will ever pretend to maintain the code.

    Good luck with that. If you need just "interop" plain library (C style with only static methods) you still can use our code with respect of license.

    Best regards,
    rz