basesrc: use segment start if DTS for first buffer is unset
[platform/upstream/gstreamer.git] / win32 / vs10 / ReadMe.txt
1 GStreamer build for Visual Studio 10
2
3 Dependencies
4 ============
5
6 GLib
7 Flex/Bison for Windows ( http://sourceforge.net/projects/winflexbison/ )
8
9 Sample Directory layout
10 =======================
11
12 <root>
13         build                                    (contains source for each project)
14                 glib
15                 gstreamer
16                 gst-plugins-base
17                 gst-plugins-good
18                 gst-plugins-ugly
19                 gst-plugins-bad
20                 gst-ffmpeg
21         vs10                                    (contains built products)
22                 Win32
23                         bin
24                                 flex
25                         include
26                         lib
27
28 GLib and its dependencies need to be installed in <root>\vs10\Win32 folder,
29 which is default behavior when you put the source to <root>\build\glib and
30 build it.
31
32 The gstreamer projects follow similar pattern. After build the result files
33 will be placed in <root>\vs10\Win32\bin, include, and lib folders.
34
35 The entire flex distribution (including data folder) needs to be placed in the
36 <root>\vs10\Win32\bin folder. If you put the data folder elsewhere you will need
37 to modify BISON_PKGDATADIR variable in Common.props (see the next seciton)
38
39 Modifying Build Settings
40 ========================
41
42 This build makes use of Visual Studio Property sheets. All projects include the
43 Common.props property sheet preset in gstreamer\win32\vs10
44
45 IMPORTANT:
46 You will need to modify at least one property - GstAbsPluginPath. This property
47 should contains escaped path to default GStreamer plugin folder, i.e.
48 C:\\gstreamer\\vs10\\Win32\\lib\\gstreamer-1.0 when your <root> is C:\\gstreamer
49
50 All projects include common property files from the gstreamer project so it must
51 be present when building gst-plugins-base,good,ugly,bad and gst-ffmpeg.
52
53 Creating Project for New Library or Plugin
54 ==========================================
55
56 1. Create empty project in the Solution. Note that project name is improtant.
57
58    For plugin the project name should be in form of "gstmypluigin" and the resulting
59    plugin dll will have same name as the project (i.e. "gstmyplugin.dll")
60
61    For library the project name should be same as the library folder. I.e. for
62    gst-libs\gst\pbutils library in gst-plugins-base the project name is "pbutils"
63
64 2. Add gstreamer\win32\vs10\Common.props and either gstreamer\win32\vs10\Library.props
65    or gstreamer\Win32\vs10\Plugin.props depending on whether the project is for library
66    or plugin.
67
68 3. Set the project type to Shared Library in project preferences
69
70 4. If the project contains any generated gst-enums or needs to generate marshallers add
71    the appropriate entries to solution "generate" project. See the generate project in
72    gst-plugins-base solution for example
73
74 5. Add source files to project
75
76 6. If necessary modify the project settings. Usually the only modification necessary
77    should be adding dependency libraries in linker input settings or specfying project
78    dependencies if the new project depends on another project within the solution
79
80 7. If the project is a library it must have a def file in win32\common with name
81    libgst<projectname>.def . I.e. pbutils project needs to have libgstpbutils.def
82    file in gst-plugins-base\win32\common