[[TableOfContents]] == °³¿ä == º» ¹®¼­´Â VLC¸¦ Windows Cygwin ȯ°æ¿¡¼­ ÄÄÆÄÀÏ ÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¼³¸íÇÑ´Ù. º» ¹®¼­¿¡¼­´Â H.264°¡ Àç»ýµÇ´Â ÃÖ¼Ò »çÀÌÁî·Î VLC°¡ ÄÄÆÄÀϵǵµ·Ï µÇµµ·Ï ¼³Á¤Çß´Ù. == how to compile vlc 1.0.2 == === getting a lastest source tarball === * http://download.videolan.org/pub/videolan/vlc/1.0.2/vlc-1.0.2.tar.bz2 * ftp://ftp.videolan.org/pub/vlc/1.0.0/win32/contrib-1.0.0.tar.bz2 * http://download.videolan.org/pub/testing/win32/contrib-20090922-win32-bin-gcc-4.2.1-sjlj-runtime-3.15.2-only.tar.bz2 === cygwin prepare === * compile environment : cygwin * install all package catagorized in devel of cygwin * Set default file type to unix / bin ==== select following packages ==== {{{#!vim sh Archive unzip zip Devel autoconf automake binutils cvs (optional: for building extras/contrib) gcc gcc-core gcc-g++ gcc-mingw gcc-mingw-core gcc-mingw-g++ gdb gettext gettext-devel git libgcrypt-devel libiconv libtool make mingw-runtime nasm patchutils pkg-config subversion (optional: for building extras/contrib) Editor vim Libs expat libgcrypt Utils ncurses Web curl (optional: for building extras/contrib) wget (optional: for building extras/contrib) }}} * Apply Trouble Shoot 3.7 (install p7zip util) === nsis install === It will require nsis to make self-extract install file. http://nsis.sourceforge.net/Download (current lastest version 2.4.5) === extract library === {{{#!vim sh $> tar xf contrib-20090922-win32-bin-gcc-4.2.1-sjlj-runtime-3.15.2-only.tar.bz2 -C / $> tar xf contrib-1.0.0.tar.gz2 -C / }}} and remove moc, uic and rcc to let only uic.exe moc.exe and rcc.exe in /usr/win32/bin folder === extract source code === {{{#!vim sh $> tar jxvf vlc-1.0.2.tar.bz2 $> cd vlc-1.0.2 }}} === configure === Execute following bootstrap and configure command. {{{#!vim c $> ./bootstrap <== this will make configure file using autotools. $> PATH=/usr/win32/bin:$PATH \ PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \ CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \ LDFLAGS=-L/usr/win32/lib \ CC="ccache gcc -mno-cygwin" CXX="ccache g++ -mno-cygwin" \ ./configure \ --host=i686-pc-mingw32 \ --disable-gtk \ --disable-fluidsynth \ --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin \ --enable-avcodec --enable-avformat --enable-swscale \ --enable-faad --enable-flac --enable-theora \ --with-wx-config-path=/usr/win32/bin \ --with-freetype-config-path=/usr/win32/bin \ --with-fribidi-config-path=/usr/win32/bin \ --enable-live555 --with-live555-tree=/usr/win32/live.com \ --enable-caca --with-caca-config-path=/usr/win32/bin \ --with-xml2-config-path=/usr/win32/bin \ --with-dvdnav-config-path=/usr/win32/bin \ --disable-cddax --disable-vcdx --enable-goom \ --disable-twolame --enable-dvdread \ --enable-debug --enable-dca \ --disable-mkv --disable-taglib --disable-zvbi }}} === compile === $> make -j 4 -j4 means 4 files compile parellal. $> make package-win32-base If you want to create auto installer, it require 7z util (refer TroubleShoot 3.7) $> make package-win32 === test === {{{#!vim sh $> cd vlc-1.0.2 $> chmod 755 vlc.exe vlc.exe.manifest <- if you don't set execute permission, It will display permission error. $> ./vlc.exe -I "dummy" "rtsp://192.168.1.2:7070/h264" $> or execute vlc.exe }}} == Trouble Shoot == === GCC select version 4 === You should use GCC version 3.xx to compile vlc. gcc-mingw doe's not support gcc-4.x.x === C Compiler cannot create executables === {{{#!vim sh i686-pc-mingw32-strip... no checking for strip... strip checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking how to create a ustar tar archive... gnutar checking whether to enable maintainer-specific portions of Makefiles... yes checking for style of include used by make... GNU checking for i686-pc-mingw32-gcc... gcc -mno-cygwin checking for C compiler default output file name... configure: error: in `/home/sosuri/vlc-1.0.2': configure: error: C compiler cannot create executables }}} === cygwin Dos or Unix mode change === * if you know, current setting just type mount, the following mode is binmode {{{#!vim sh [sosuri@h ~]$ mount C:\cygwin\bin on /usr/bin type system (binmode) C:\cygwin\lib on /usr/lib type system (binmode) C:\cygwin on / type system (binmode) }}} * if you change current mode, just execute setup.exe and change Default Text File Type to your prefered mode. === /home/sosuri/vlc-1.0.2/modules/codec/fluidsynth.c:120: undefined reference to `_ _imp__fluid_synth_sfunload' === add configure --disable-fluidsynth === compile speed up === CC="ccache gcc -mno-cygwin" CXX="ccache g++ -mno-cygwin" \ using ccache === can't use dialog base vlc === --disable-qt4, --disable-skins ¿É¼Ç ¼³Á¤ÇÏ¸é ¾ÈµÊ. === 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on vlc-1.0.2-win32.7z vlc-1.0.2 === if you do a command like this "make package-win32", this display" install p7zip using cygwin setup === /usr/win32/bin/moc: /usr/win32/bin/moc: cannot execute binary file === and remove moc, uic and rcc to let only uic.exe moc.exe and rcc.exe http://forum.videolan.org/viewtopic.php?f=14&t=41246 == vlc optimize == || OPTION || DESC. || DEFAULT || CHANGED || || --enable-lua || lua playlist, metafetcher and interface plugins (default enabled) || enabled || disabled || || --enable-httpd || HTTP daemon (default enabled) || enabled || || || --enable-libproxy || libproxy support (default auto) || auto || || || --enable-vlm || VideoLAN manager (default enabled) || enabled || enabled || || --enable-growl || growl notification plugin (default disabled) || disabled || || || --enable-notify || libnotify notification plugin (default enabled) || enabled || || || --disable-audioscrobbler || Last.fm submission plugin (default enabled) || enabled || || || --disable-taglib || Taglib support (default enabled) || enabled || disabled || || --enable-live555 || live555 RTSP input plugin (default enabled) || enabled || || || --enable-dc1394 || dc1394 access module (default disabled) || disabled || || || --enable-dv || dv input module (default disabled) || disabled || || || --enable-dvdread || dvdread input module (default disabled) || disabled || || || --enable-dvdnav || dvdnav input module (default enabled) || enabled || || || --enable-dshow || Win32 DirectShow support (default enabled on Win32) || enabled || || || --enable-bda || Win32 DirectShow BDA support (default enabled on Win32) || enabled || || || --enable-opencv || OpenCV (computer vision) filter (default disabled) || disabled || || || --enable-smb || smb input module (default enabled) || enabled || disabled || || --enable-dvbpsi || dvbpsi ts mux and demux module (default enabled) || enabled || disabled || || --enable-v4l || Video4Linux input support (default disabled) || disabled || || || --enable-v4l2 || Video4Linux2 input support (default enabled) || enabled || disabled || || --enable-libv4l2 || Libv4l2 Video4Linux2 support (default enabled) || enabled || disabled || || --enable-pvr || PVR cards access module (default disabled) || disabled || || || --enable-gnomevfs || GnomeVFS access module (default disabled) || disabled || || || --enable-libcdio || CD input and control library support (default enabled) || enabled || disabled || || --enable-libvcdinfo || VCD information library support (default enabled) || enabled || || || --enable-cddax || audio CD plugin with CD Text and CD paranoia via libcdio (default disabled) || disabled || || || --enable-libcddb || CDDB support for libcdio audio CD (default enabled) || enabled || disabled || || --enable-vcdx || VCD with navigation via libvcdinfo (default disabled) || disabled || || || --enable-cdda || audio CD via built-in VCD (default enabled) || enabled || disabled || || --enable-vcd || built-in VCD (default enabled) || enabled || disabled || || --enable-dvb || DVB-S/T/C card support (default enabled) || enabled || disabled || || --enable-screen || Screen capture support (default enabled) || enabled || enabled || || --enable-ogg || Ogg demux support (default enabled) || enabled || disabled || || --enable-mkv || Matroska demux support (default enabled) || enabled || disabled || || --enable-mod || Mod demux support (default enabled) || enabled || disabled || || --enable-mpc || Mpc demux support (default enabled) || enabled || disabled || || --enable-gme || Game Music Emu demux support (default enabled) || enabled || disabled || || --enable-wma-fixed || libwma-fixed module (default disabled) || disabled || || || --enable-shine || shine mp3 encoding module (default disabled) || disabled || || || --enable-mad || libmad module (default enabled) || enabled || disabled || || --disable-id3tag || id3tag metadata reader plugin (default disabled) || disabled || || || --enable-avcodec || libavcodec codec (default enabled) || enabled || enabled || || --enable-avformat || libavformat containers (default enabled) || enabled || enabled || || --enable-swscale || libswscale image scaling and conversion (default enabled) || enabled || || || --enable-postproc || libpostproc image post-processing (default enabled) || enabled || enabled || || --enable-faad || faad codec (default disabled) || disabled || disabled|| || --enable-twolame || twolame codec (default disabled) || disabled || disabled || || --enable-quicktime || QuickTime module (deprecated) || deprecated || || || --enable-real || Real media module (default disabled) || disabled || || || --enable-realrtsp || Real RTSP module (default disabled) || disabled || || || --enable-libsysfs || Get user key from firewire connected iPod via libsysfs (default enabled) || enabled || disabled || || --enable-libtar || libtar support for skins2 (default enabled) || enabled || enabled || || --enable-a52 || A/52 support with liba52 (default enabled) || enabled || disabled || || --enable-dca || DTS Coherent Acoustics support with libdca (default enabled) || enabled || disabled || || --enable-flac || libflac decoder/encoder support (default disabled) || disabled || disabled || || --enable-libmpeg2 || libmpeg2 decoder support (default enabled) || enabled || enabled || || --enable-vorbis || Vorbis decoder support (default enabled) || enabled || disabled || || --enable-tremor || Tremor decoder support (default disabled) || disabled || || || --enable-speex || Speex decoder support (default enabled) || enabled || disabled || || --enable-tarkin || experimental tarkin codec (default disabled) || disabled || || || --enable-theora || experimental theora codec (default disabled) || disabled || || || --enable-dirac || experimental dirac codec (default disabled) || disabled || || || --disable-schroedinger || high performance dirac codec (default enabled) || enabled || disable || || --enable-png || PNG support (default enabled) || enabled || enabled || || --enable-x264 || H264 encoding support with libx264 (default enabled) || enabled || enabled || || --enable-fluidsynth || MIDI synthesisr with libfluidsynth (default enabled) || enabled || disable|| || --enable-zvbi || VBI (inc. Teletext) decoding support with libzvbi (default enabled) || enabled || disable || || --enable-telx || Teletext decoding module (conflicting with zvbi) (default enabled if zvbi is absent) || disabled || || || --enable-csri || Subtitle support using CSRI / asa (default disabled) || disabled || || || --enable-libass || Subtitle support using libass (default disabled) || disabled || || || --enable-asademux || asa subtitle demuxing (default disabled) || disabled || || || --enable-cmml || CMML support (default enabled) || enabled || disabled || || --enable-kate || kate codec (default enabled) || enabled || || || --enable-tiger || Tiger rendering library for Kate streams (default enabled) || enabled || disabled || || --enable-x11 || X11 support (default enabled) || enabled || disabled || || --enable-xvideo || XVideo support (default enabled) || enabled || disabled || || --enable-glx || X11 OpenGL (GLX) support (default enabled) || enabled || disabled || || --enable-xvmc || XVMC support (default disabled) || disabled || || || --enable-xinerama || Xinerama support (default enabled) || enabled || disabled || || --enable-xcb || X C Bindings work-in-progress (default disabled) || disabled || || || --enable-opengl || OpenGL support (default enabled) || enabled || disabled || || --enable-sdl || SDL support (default enabled) || enabled || disabled || || --enable-sdl-image || SDL image support (default enabled) || enabled || disabled || || --enable-freetype || freetype support (default enabled) || enabled || enabled || || --enable-fribidi || fribidi support (default enabled) || enabled || disabled || || --enable-fontconfig, || fontconfig support (default enabled) || enabled || disabled || || --enable-libxml2 || libxml2 support (default enabled) || enabled || disabled || || --enable-svg || SVG support (default disabled) || disabled || || || --enable-snapshot || snapshot module (default disabled) || disabled || || || --enable-qte || QT Embedded support (default disabled) || disabled || || || --enable-hd1000v || HD1000 Video Output module (default enabled on HD1000) || disabled || || || --enable-directx || Win32 DirectX support (default enabled on Win32) || enabled || enabled || || --enable-fb || Linux framebuffer support (default enabled on Linux) || Linux || || || --enable-mga || Linux kernel Matrox support (default disabled) || disabled || || || --enable-omapfb || OMAP framebuffer support (default disabled) || disabled || || || --enable-svgalib || SVGAlib support (default disabled) || disabled || || || --enable-directfb || DirectFB support (default disabled) || disabled || || || --enable-ggi || GGI support (default disabled) || disabled || || || --enable-aa || aalib output (default disabled) || disabled || || || --enable-caca || libcaca output (default disabled) || disabled || || || --enable-wingdi || Win32 GDI module (default enabled on Win32) || enabled || enabled || || --enable-oss || Linux OSS /dev/dsp support (enabled on Linux) || disabled|| || || --enable-pulse || Pulseaudio support (default enabled) || enabled || || || --enable-portaudio || Portaudio library support (default disabled) || disabled || || || --enable-alsa || ALSA sound support for Linux (default enabled) || enabled || || || --enable-waveout || Win32 waveOut module (default enabled on Win32) || enabled|| || || --enable-macosx-audio || Mac OS X audio module (default enabled on MacOS X) || disabled || || || --enable-hd1000a || HD1000 audio module (default enabled on HD1000) || disabled|| || || --enable-jack || JACK audio I/O modules (default disabled) || disabled || || || --enable-cyberlink || CyberLink for C++ UPnP stack (default disabled) || disabled || || || --enable-upnp || Intel UPnP SDK (default enabled) || enabled || || || --enable-skins2 || Skins2 interface module (default enabled except on MacOSX, BeOS and WinCE) || enabled || || || --enable-pda || PDA interface needs Gtk2 support (default disabled) || disabled || || || --enable-maemo || Internet tablets based on Maemo SDK (default disabled) || disabled || || || --enable-qt4 || QT 4 support (default enabled) || enabled || enabled || || --enable-wince || Windows CE interface (default enabled with MinGW) || disabled|| || || --enable-opie || Qt embedded interface support (default disabled) || disabled || || || --enable-macosx || MacOS X support (default enabled on MacOS X) || disabled || || || --enable-qnx || QNX RTOS support (default enabled on QNX RTOS) || disabled|| || || --disable-ncurses || ncurses interface support (default enabled) || enabled || || || --enable-xosd || xosd interface support (default disabled) || disabled || || || --enable-fbosd || fbosd interface support (default disabled) || disabled || || || --enable-visual || visualisation plugin (default enabled) || enabled || || || --enable-galaktos || OpenGL visualisation plugin (default disabled) || disabled || || || --enable-goom || goom visualisation plugin (default disabled) || disabled || || || --disable-atmo || AtmoLight (homebrew philips ambilight) (default enabled ) || enabled || disable || || --enable-bonjour || Bonjour services discovery (default enabled) || enabled || disable || || --enable-lirc || lirc support (default disabled) || disabled || || || --disable-libgcrypt || libgcrypts support (default enabled) || enabled || disable || || --enable-gnutls || gnutls TLS/SSL support (default enabled) || enabled || enabled || || --disable-remoteosd || RemoteOSD plugin (default enabled) || enabled || disable || || --enable-update-check || update checking system (default disabled) || disabled || disabled || || --enable-loader || build DLL loader for ELF i386 platforms (default disabled) || disabled || || || --enable-vlc || build the VLC media player (default enabled) || enabled || || || --enable-activex || build a vlc-based ActiveX control (default enabled on Win32) || Win32 || || || --enable-mozilla || build a vlc-based Firefox/Mozilla plugin (default disabled) || disabled || || || --enable-testsuite || build test modules (default disabled) || disabled || || Enabled modules: {{{ a52tospdif access_smb adjust alphamask aout_directx aout_file audio_format audioscrobbler avcodec avformat bandlimited_resampler bda blend blendbench bluescreen canvas chain clone colorthres converter_float crop croppadd deinterlace direct3d dmo dolby_surround_decoder dshow dtstospdif dvdnav equalizer erase extract fake float32_mixer folder freetype gaussianblur gestures globalhotkeys glwin32 gnutls gradient grain headphone_channel_mixer hotkeys http i420_rgb_mmx i420_rgb_sse2 i420_ymga i420_ymga_mmx i420_yuy2 i420_yuy2_mmx i420_yuy2_sse2 i422_i420 i422_yuy2 i422_yuy2_mmx i422_yuy2_sse2 invert libmpeg2 linear_resampler live555 logo magnify marq memcpy3dn memcpymmx memcpymmxext mosaic motionblur motiondetect msn noise normvol ntservice osd_parser osdmenu panoramix param_eq png podcast postproc psychedelic puzzle qt4 rc ripple rotate rss rv32 sap scale scaletempo scene screen sharpen shout showintf simple_channel_mixer skins2 spatializer spdif_mixer swscale telnet telx transform unzip vmem vout_directx wall wave waveout wingdi x264 yuv yuvp yuy2_i420 yuy2_i422 zip }}} == debugging == $> gdb --args vlc.exe --fast-mutex --reset-config --reset-plugins-cache or $> libtool --mode=execute gdb --args vlc --reset-config --reset-plugins-cache In the debugger mode run the program and make sure you reset the preferences! (gdb) run To backtrace all the running threads use: (gdb) thread apply all bt == related documents == * INSTALL.win32 * http://wiki.videolan.org/Win32CompileCygwin * http://download.videolan.org/pub/testing/win32/ == vlc analysis == * http://wiki.videolan.org/Documentation:Hacker%27s_Guide/Core * http://wiki.videolan.org/Documentation:Hacker%27s_Guide/VLM_Internals == vlc with webpage == * http://wiki.videolan.org/Documentation:WebPlugin == °ü·Ã¹®¼­ == * http://wiki.videolan.org/Documentation:Play_HowTo/Advanced_Use_of_VLC * http://wiki.videolan.org/Documentation:Streaming_HowTo * http://wiki.videolan.org/Documentation:Play_HowTo/Introduction_to_VLC * http://wiki.videolan.org/Documentation:Modules * http://wiki.videolan.org/Documentation:Hacker%27s_Guide