SDL Error with VLC 0.9.0

This forum is about all development around libVLC.
coder_gate
Blank Cone
Blank Cone
Posts: 24
Joined: 12 Mar 2010 07:34

SDL Error with VLC 0.9.0

Postby coder_gate » 26 Apr 2010 12:20

Hello, I want to recompile the source code here: http://wiki.videolan.org/LibVLC_SampleCode_SDL

but when I build the program with the 0.9.0 sdk lib vlc error occurred, I have never encountered problems like this,

please help me fix
i:\ProgramFiles\QtCreator4_62\qt\lib/libqtmaind.a(qtmain_win.o): In function `WinMain@16':
C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.6\qt\src\winmain/qtmain_win.cpp:131: undefined reference to `qMain(int, char**)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\QTMedia.exe] Error 1

mingw32-make: *** [debug] Error 2

Code: Select all

/* libSDL and libVLC sample code * Copyright © 2008 Sam Hocevar <sam@zoy.org> * license: [http://en.wikipedia.org/wiki/WTFPL WTFPL] */ #include <stdio.h> #include <stdint.h> #include <math.h> #include <stdlib.h> #include <SDL/SDL.h> #include <SDL/SDL_mutex.h> #include <vlc/vlc.h> #define WIDTH 640 #define HEIGHT 480 #define VIDEOWIDTH 320 #define VIDEOHEIGHT 240 struct ctx { SDL_Surface *surf; SDL_mutex *mutex; }; static void myCatch (libvlc_exception_t *ex) { if(libvlc_exception_raised(ex)) { fprintf(stderr, "exception: %s\n", libvlc_exception_get_message(ex)); exit(1); } libvlc_exception_clear(ex); } #ifdef VLC09X static void * lock(struct ctx *ctx) { SDL_LockMutex(ctx->mutex); SDL_LockSurface(ctx->surf); return ctx->surf->pixels; } #else static void lock(struct ctx *ctx, void **pp_ret) { SDL_LockMutex(ctx->mutex); SDL_LockSurface(ctx->surf); *pp_ret = ctx->surf->pixels; } #endif static void unlock(struct ctx *ctx) { /* VLC just rendered the video, but we can also render stuff */ uint16_t *pixels = (uint16_t *)ctx->surf->pixels; int x, y; for(y = 10; y < 40; y++) for(x = 10; x < 40; x++) if(x < 13 || y < 13 || x > 36 || y > 36) pixels[y * VIDEOWIDTH + x] = 0xffff; else pixels[y * VIDEOWIDTH + x] = 0x0; SDL_UnlockSurface(ctx->surf); SDL_UnlockMutex(ctx->mutex); } int main(int argc, char *argv[]) { char clock[64], cunlock[64], cdata[64]; char width[32], height[32], pitch[32]; libvlc_exception_t ex; libvlc_instance_t *libvlc; libvlc_media_t *m; libvlc_media_player_t *mp; char const *vlc_argv[] = { "-q", //"-vvvvv", "--plugin-path", "/modules", "--ignore-config", /* Don't use VLC's config files */ "--noaudio", "--vout", "vmem", "--vmem-width", width, "--vmem-height", height, "--vmem-pitch", pitch, "--vmem-chroma", "RV16", "--vmem-lock", clock, "--vmem-unlock", cunlock, "--vmem-data", cdata, }; int vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); SDL_Surface *screen, *empty; SDL_Event event; SDL_Rect rect; int done = 0, action = 0, pause = 0, n = 0; struct ctx ctx; /* * Initialise libSDL */ if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTTHREAD) == -1) { printf("cannot initialize SDL\n"); return EXIT_FAILURE; } empty = SDL_CreateRGBSurface(SDL_SWSURFACE, VIDEOWIDTH, VIDEOHEIGHT, 32, 0, 0, 0, 0); ctx.surf = SDL_CreateRGBSurface(SDL_SWSURFACE, VIDEOWIDTH, VIDEOHEIGHT, 16, 0x001f, 0x07e0, 0xf800, 0); ctx.mutex = SDL_CreateMutex(); int options = SDL_ANYFORMAT | SDL_HWSURFACE | SDL_DOUBLEBUF; screen = SDL_SetVideoMode(WIDTH, HEIGHT, 0, options); if(!screen) { printf("cannot set video mode\n"); return EXIT_FAILURE; } /* * Initialise libVLC */ sprintf(clock, "%lld", (long long int)(intptr_t)lock); sprintf(cunlock, "%lld", (long long int)(intptr_t)unlock); sprintf(cdata, "%lld", (long long int)(intptr_t)&ctx); sprintf(width, "%i", VIDEOWIDTH); sprintf(height, "%i", VIDEOHEIGHT); sprintf(pitch, "%i", VIDEOWIDTH * 2); if(argc < 2) { printf("too few arguments (MRL needed)\n"); return EXIT_FAILURE; } libvlc_exception_init(&ex); libvlc = libvlc_new(vlc_argc, vlc_argv, &ex); myCatch(&ex); m = libvlc_media_new(libvlc, argv[1], &ex); myCatch(&ex); mp = libvlc_media_player_new_from_media(m, &ex); myCatch(&ex); libvlc_media_release(m); libvlc_media_player_play(mp, &ex); myCatch(&ex); /* * Main loop */ rect.w = 0; rect.h = 0; while(!done) { action = 0; /* Keys: enter (fullscreen), space (pause), escape (quit) */ while( SDL_PollEvent( &event ) ) { switch(event.type) { case SDL_QUIT: done = 1; break; case SDL_KEYDOWN: action = event.key.keysym.sym; break; } } switch(action) { case SDLK_ESCAPE: done = 1; break; case SDLK_RETURN: options ^= SDL_FULLSCREEN; screen = SDL_SetVideoMode(WIDTH, HEIGHT, 0, options); break; case ' ': pause = !pause; break; } rect.x = (int)((1. + .5 * sin(0.03 * n)) * (WIDTH - VIDEOWIDTH) / 2); rect.y = (int)((1. + .5 * cos(0.03 * n)) * (HEIGHT - VIDEOHEIGHT) / 2); if(!pause) n++; /* Blitting the surface does not prevent it from being locked and * written to by another thread, so we use this additional mutex. */ SDL_LockMutex(ctx.mutex); SDL_BlitSurface(ctx.surf, NULL, screen, &rect); SDL_UnlockMutex(ctx.mutex); SDL_Flip(screen); SDL_Delay(10); SDL_BlitSurface(empty, NULL, screen, &rect); } /* * Stop stream and clean up libVLC */ libvlc_media_player_stop(mp, &ex); myCatch(&ex); libvlc_media_player_release(mp); libvlc_release(libvlc); /* * Close window and clean up libSDL */ SDL_DestroyMutex(ctx.mutex); SDL_FreeSurface(ctx.surf); SDL_FreeSurface(empty); SDL_Quit(); return 0; }

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: SDL Error with VLC 0.9.0

Postby Jean-Baptiste Kempf » 26 Apr 2010 13:20

Use VLC 1.1.0
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

coder_gate
Blank Cone
Blank Cone
Posts: 24
Joined: 12 Mar 2010 07:34

Re: SDL Error with VLC 0.9.0

Postby coder_gate » 26 Apr 2010 20:06


coder_gate
Blank Cone
Blank Cone
Posts: 24
Joined: 12 Mar 2010 07:34

Re: SDL Error with VLC 0.9.0

Postby coder_gate » 27 Apr 2010 04:29

Use VLC 1.1.0
main.cpp:23: error: variable or field 'myCatch' declared void
main.cpp:23: error: 'libvlc_exception_t' was not declared in this scope
main.cpp:23: error: 'ex' was not declared in this scope
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make: *** [debug] Error 2
in LibVLC 1.1.0 i run source was add vlc/libvlc_structures.h but it still error

Image

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: SDL Error with VLC 0.9.0

Postby Jean-Baptiste Kempf » 27 Apr 2010 14:39

You don't use exceptions in VLC 1.1.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

coder_gate
Blank Cone
Blank Cone
Posts: 24
Joined: 12 Mar 2010 07:34

Re: SDL Error with VLC 0.9.0

Postby coder_gate » 28 Apr 2010 03:25

You don't use exceptions in VLC 1.1.
i dont found link vlc lib 1.1.0

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: SDL Error with VLC 0.9.0

Postby Jean-Baptiste Kempf » 28 Apr 2010 11:43

You don't use exceptions in VLC 1.1.
i dont found link vlc lib 1.1.0
What?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.


Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 28 guests