[vlc-devel] WINCE support

Geoffroy Couprie geo.couprie at gmail.com
Sun Mar 8 02:45:32 CET 2009

On Sun, Mar 8, 2009 at 2:00 AM, xxcv <xxcv07 at gmail.com> wrote:
> Geoffroy Couprie wrote:
>> When I test vlc, I build custom executables asking for specific
>> functions in libvlc. So, I don't use vlc.exe (yet). If you feel like
>> fixing it, do it.
>> There are over bugs that I need to fix before I look at this one.
> Care to implement that custom executable of yours in the source code of
> vlc.git or post it here?
> So that I can test it ?
Guess what? I just tested the vlc.exe built in my tree, and it works!
It starts the wince interface. Its size is 25k. If you want to try
some test executables, you can use files like this:

#include <stdio.h>
#include <vlc/vlc.h>
#include <windef.h>
#include <wtypes.h>
#include <winbase.h>

static void raise(libvlc_exception_t * ex)
    if (libvlc_exception_raised (ex))
         fprintf (stderr, "error: %s\n", libvlc_exception_get_message(ex));
         exit (-1);
int main(int argc, char* argv[])
    const char * const vlc_args[] = {
              "-I", "dummy", /* Don't use any interface */
              "--ignore-config", /* Don't use VLC's config */
    libvlc_exception_t ex;
    libvlc_instance_t * inst;
    libvlc_media_player_t *mp;
    libvlc_media_t *m;

    libvlc_exception_init (&ex);
    /* init vlc modules, should be done only once */
    inst = libvlc_new (sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args, &ex);
    raise (&ex);

    /* Create a new item */
    m = libvlc_media_new (inst, "file/wav://\\gdb\\sample.wav", &ex);
    raise (&ex);

    /* XXX: demo art and meta information fetching */

    /* Create a media player playing environement */
    mp = libvlc_media_player_new_from_media(m, &ex);
    raise (&ex);

    /* No need to keep the media now */
    libvlc_media_release (m);

    /* play the media_player */
    libvlc_media_player_play (mp, &ex);
    raise (&ex);

    Sleep (20000); /* Let it play a bit */

    /* Stop playing */
    libvlc_media_player_stop (mp, &ex);

    /* Free the media_player */
    libvlc_media_player_release ( mp );

    libvlc_release (inst);
    raise (&ex);

    return 0;

Yes, I use exactly the same code as
http://wiki.videolan.org/LibVLC_Tutorial. That's mostly because I'm
testing different samples, to see if there are no issues with the libs
I built. I also insert some functions found in the vlc headers.

If you want to test the wince interface, you can use vlc.exe, or the
sample code I use, replacing dummy by wince, libvlc_release by
libvlc_wait, and removing all the media related stuff. I warn you: the
wince interface doesn't work. Don't come and tell me it doesn't work,
because I already know.

More information about the vlc-devel mailing list