GStreamer build for Visual Studio 10 Dependencies ============ GLib Flex/Bison for Windows ( http://sourceforge.net/projects/winflexbison/ ) Sample Directory layout ======================= build (contains source for each project) glib gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad gst-ffmpeg vs10 (contains built products) Win32 bin flex include lib GLib and its dependencies need to be installed in \vs10\Win32 folder, which is default behavior when you put the source to \build\glib and build it. The gstreamer projects follow similar pattern. After build the result files will be placed in \vs10\Win32\bin, include, and lib folders. The entire flex distribution (including data folder) needs to be placed in the \vs10\Win32\bin folder. If you put the data folder elsewhere you will need to modify BISON_PKGDATADIR variable in Common.props (see the next seciton) Modifying Build Settings ======================== This build makes use of Visual Studio Property sheets. All projects include the Common.props property sheet preset in gstreamer\win32\vs10 IMPORTANT: You will need to modify at least one property - GstAbsPluginPath. This property should contains escaped path to default GStreamer plugin folder, i.e. C:\\gstreamer\\vs10\\Win32\\lib\\gstreamer-1.0 when your is C:\\gstreamer All projects include common property files from the gstreamer project so it must be present when building gst-plugins-base,good,ugly,bad and gst-ffmpeg. Creating Project for New Library or Plugin ========================================== 1. Create empty project in the Solution. Note that project name is improtant. For plugin the project name should be in form of "gstmypluigin" and the resulting plugin dll will have same name as the project (i.e. "gstmyplugin.dll") For library the project name should be same as the library folder. I.e. for gst-libs\gst\pbutils library in gst-plugins-base the project name is "pbutils" 2. Add gstreamer\win32\vs10\Common.props and either gstreamer\win32\vs10\Library.props or gstreamer\Win32\vs10\Plugin.props depending on whether the project is for library or plugin. 3. Set the project type to Shared Library in project preferences 4. If the project contains any generated gst-enums or needs to generate marshallers add the appropriate entries to solution "generate" project. See the generate project in gst-plugins-base solution for example 5. Add source files to project 6. If necessary modify the project settings. Usually the only modification necessary should be adding dependency libraries in linker input settings or specfying project dependencies if the new project depends on another project within the solution 7. If the project is a library it must have a def file in win32\common with name libgst.def . I.e. pbutils project needs to have libgstpbutils.def file in gst-plugins-base\win32\common