Release 1.16.2
[platform/upstream/gstreamer.git] / docs / README
index d330a07..a7b46fe 100644 (file)
@@ -6,12 +6,16 @@ IMPORTANT
 Please make sure you've read and understood everything in this file
 before you try changing documentation.
 
+Some of the docbook-related bits in this README might be out of date now that
+quite a bit of the documentation has moved into the gst-docs repository.
+
 OVERVIEW
 ========
 
 GStreamer has two sets of documentation that we maintain:
 * API references, using gtk-doc (gstreamer, gstreamer-libs)
-* "books", using DocBook/XML (faq, manual, pwg)
+* FAQ / Application Development Manual / Plugin Writer's Guide / Tutorials -
+  these are maintained in markdown format and live in the gst-docs repository.
 
 DOCBOOK NOTES
 =============
@@ -26,7 +30,7 @@ OVERVIEW
 * The source for the documentation is:
   - one or more .xml files, with the main one being gstreamer-(whatever).xml
   - image files
-    - in .fig
+    - in .svg
     - in .png (and maybe others)
 * We want to generate docs in HTML, PS and PDF
 * We want to use xml to to generate these
@@ -40,9 +44,6 @@ We stick to some simple conventions for writing docbook documentation.
   - sections should also include the chapter name;
     for example in a chapter called chapter-example, a section would be
     called section-example-hello-world
-* there are currently comments of the form <!-- synchronize with PWG -->
-  in the docbook file. Please check the relevant section of the other manual
-  when updating.
 
 HOW IMAGES ARE HANDLED
 ----------------------
@@ -99,7 +100,7 @@ SPELL CHECKING
 GTK-DOC NOTES
 =============
 
-* files under CVS control:
+* files under revision control:
   - Makefile.am
   - gstreamer-sections.txt
     describes which symbols later appear on one api-doc page
@@ -120,7 +121,7 @@ GTK-DOC NOTES
   - add all documented symbols to gstreamer-sections.txt in the proper section
     (default),<SUBSECTION Standard>,<SUBSECTION Private>
   - document at least the Short_Description in tmpl/.sgml
-  - document symbols where they are definied, so that when one changes the
+  - document symbols where they are defined, so that when one changes the
     definition, the chaces are good that docs are updated.
     - document functions, signals in the .c files
     - document structs, typedefs, enums in the .h files
@@ -202,9 +203,6 @@ STYLE GUIDE FOR GTK-DOC
     about threadsafety and related issues
 - link to signals from the description like this:
   * The <link linkend="GstBin-element-added">element-added</link> signal
-- the bottom of the description should say when the doc was last reviewed
-  (version and date)
-   * Last reviewed on 2005-10-28 (0.9.4)
 
 WEBSITE DOCUMENTATION
 =====================
@@ -242,6 +240,14 @@ in the various plugin packages.
       cvs add *-plugins-docs.sgml *-plugins.args *-plugins.hierarchy *-plugins.interfaces *-plugins.prerequisites *-plugins.signals *-plugins.types inspect-build.stamp inspect.stamp scanobj-build.stamp
       cvs add inspect
       cvs add inspect/*.xml
+    - Additional types can be added to the documentation by placing them in
+      the .types file like this:
+        type:GstPlayBaseBin
+      This is useful for documenting plugin-private types that implement
+      signals or properties. The GType is looked up by name after all the
+      element classes have been printed - so this is only useful for types
+      that are created as a consequence of loading plugins and registering
+      the element(s).
 
 - to add a plugin to be documented:
   - make sure inspect/ has generated a inspect/plugin-xxx.xml file for it.
@@ -287,6 +293,8 @@ in the various plugin packages.
     (FIXME: are we sure we can both do the xinclude from the tmpl/ sgml,
      as well as an override from the source itself ? maybe we should just
      make sure the xinclude is in the source itself instead ?)
+  - if the plugin has no public header, don't add the c-file, add entries to the
+    -overrides.txt file (see playbin docs in plugins-base).
   - to rebuild the docs, do:
     make clean
     make update
@@ -294,14 +302,28 @@ in the various plugin packages.
   - examples will only show up using gtk-doc 1.4 or later - it relies on
     merging stuff from .sgml with inline docs.  We might want to change
     this to only get stuff from the source.
-  - you need to commit resulting files to CVS:
+  - you need to commit resulting files to git:
     - changes to *.signals and *.args
     - new files for your plugin created in inspect/
+  - if you get this warning:
+    " Documentation in template xxx for ./tmpl/element-yyy:Short_Description
+      being overridden by inline comments"
+    per-default the description from the GST_ELEMENT_DETAILS is put to the
+    Short_Description. This warning mean you have a different one in the section
+    docs as "@short_description:".
 
 - the plugin-doc-list on the gstreamer homepage is updated along with other
   web site updates.
 
 - maintainer tricks:
+  - in gst-plugins-foo/docs/plugins/, run
+        make check-inspected-versions
+    to show plugins whose inspect information is not up-to-date (which is
+    usually either because they have been moved to a different module or
+    because they are not built on the maintainer's machine for some reason).
+    Whether it really makes sense to update the version number is debatable
+    (after all, the inspected information may be outdated and things may have
+    changed, in which case it would be bad to change the version number)
   - find files that have docs
     for file in `find . -name "*.c" -exec grep -l " * SECTION:element-" {} \; | sort`; do if [ -e ${file/.c/.h} ]; then echo ${file/.c/.h}; else echo "no header for $file"; fi; done
     for file in `find . -name "*.cc" -exec grep -l " * SECTION:element-" {} \; | sort`; do if [ -e ${file/.cc/.h} ]; then echo ${file/.cc/.h}; else echo "no header for $file"; fi; done
@@ -318,7 +340,7 @@ in the various plugin packages.
     check if each section in -sections.txt actually starts and ends with
     <SECTION> and </SECTION>
   - if a plugin does not show up:
-    - check inspect/plugin-xxx.xml and inspect/elements-
+    - check inspect/plugin-xxx.xml and tmpl/elements-
 
 RANDOM THINGS I'VE LEARNED
 ==========================
@@ -331,44 +353,9 @@ RANDOM THINGS I'VE LEARNED
   For now, we need to hack around it by copying xml to the build dir.
 
 
-(old) DOCUMENTATION BUILDING NOTES
-----------------------------------
-
-To build the GStreamer documentation you need the following installed (based on
-Red Hat packages).  These packages comes from rawhide and are the ones that
-will be in Red Hat 7.3/8.0
-
-Docbook stuff:
-sgml-common 
-xml-common 
-openjade (needs to be rebuilt from SRPM for Red Hat 7.2)
-tetex-dvips
-jadetex
-docbook-dtds      
-docbook-style-dsssl 
-docbook-style-xsl
-docbook-utils
-
-XML stuff:
-libxml2
-libxml2-python
-libxml2-devel
-libxslt
-libxslt-devel
-libxslt-python
-
-
-
-Gtkdoc:
-gtk-doc
-
-Other stuff:
-transfig
-pdftops
-
 DEVHELP INTEGRATION
 -------------------
-Check http://www.imendio.com/projects/devhelp/
+Check https://wiki.gnome.org/Apps/Devhelp
 It's a really nice development app allowing you to look up API stuff
 from various gtk-doc'd libraries.  GStreamer is one of these ;)