X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=README;h=0cd7af2c579d3d6cfab828a6aace04fbd472e822;hb=29f924643cd9730210ac05b083514fd6d6bde465;hp=f60e0d7713838adfbc0d80626fb3dc91198f4f78;hpb=5ad2296efd646d0e59cf8502e4c513172e058939;p=platform%2Fupstream%2Fgst-plugins-good.git diff --git a/README b/README index f60e0d7..0cd7af2 100644 --- a/README +++ b/README @@ -1,91 +1,217 @@ +GStreamer 1.16.x stable series + WHAT IT IS ---------- -This is gst-plugins, a set of plug-ins for GStreamer. -COMPILING FROM SOURCE ---------------------- -- make sure you compiled and at least did a test-run of GStreamer (core) +This is GStreamer, a framework for streaming media. + +WHERE TO START +-------------- + +We have a website at +http://gstreamer.freedesktop.org/ + +You should start by going through our FAQ at +http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/ + +There is more documentation; go to +http://gstreamer.freedesktop.org/documentation + +You can subscribe to our mailing lists; see the website for details. + +We track bugs in GNOME's bugzilla; see the website for details. + +You can join us on IRC - #gstreamer on irc.freenode.org + +GStreamer 1.0 series +-------------------- + +Starring + + GSTREAMER + +The core around which all other modules revolve. Base functionality and +libraries, some essential elements, documentation, and testing. + + BASE + +A well-groomed and well-maintained collection of GStreamer plug-ins and +elements, spanning the range of possible types of elements one would want +to write for GStreamer. + +And introducing, for the first time ever, on the development screen ... + + THE GOOD + + --- "Such ingratitude. After all the times I've saved your life." + +A collection of plug-ins you'd want to have right next to you on the +battlefield. Shooting sharp and making no mistakes, these plug-ins have it +all: good looks, good code, and good licensing. Documented and dressed up +in tests. If you're looking for a role model to base your own plug-in on, +here it is. + +If you find a plot hole or a badly lip-synced line of code in them, +let us know - it is a matter of honour for us to ensure Blondie doesn't look +like he's been walking 100 miles through the desert without water. + + THE UGLY + + --- "When you have to shoot, shoot. Don't talk." + +There are times when the world needs a color between black and white. +Quality code to match the good's, but two-timing, backstabbing and ready to +sell your freedom down the river. These plug-ins might have a patent noose +around their neck, or a lock-up license, or any other problem that makes you +think twice about shipping them. + +We don't call them ugly because we like them less. Does a mother love her +son less because he's not as pretty as the other ones ? No - she commends +him on his great personality. These plug-ins are the life of the party. +And we'll still step in and set them straight if you report any unacceptable +behaviour - because there are two kinds of people in the world, my friend: +those with a rope around their neck and the people who do the cutting. + + THE BAD + + --- "That an accusation?" + +No perfectly groomed moustache or any amount of fine clothing is going to +cover up the truth - these plug-ins are Bad with a capital B. +They look fine on the outside, and might even appear to get the job done, but +at the end of the day they're a black sheep. Without a golden-haired angel +to watch over them, they'll probably land in an unmarked grave at the final +showdown. + +Don't bug us about their quality - exercise your Free Software rights, +patch up the offender and send us the patch on the fastest steed you can +steal from the Confederates. Because you see, in this world, there's two +kinds of people, my friend: those with loaded guns and those who dig. +You dig. + +The Lowdown +----------- + + --- "I've never seen so many plug-ins wasted so badly." + +GStreamer Plug-ins has grown so big that it's hard to separate the wheat from +the chaff. Also, distributors have brought up issues about the legal status +of some of the plug-ins we ship. To remedy this, we've divided the previous +set of available plug-ins into four modules: + +- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range + of possible types of elements; these are continuously kept up-to-date + with any core changes during the development series. + + - We believe distributors can safely ship these plug-ins. + - People writing elements should base their code on these elements. + - These elements come with examples, documentation, and regression tests. + +- gst-plugins-good: a set of plug-ins that we consider to have good quality + code, correct functionality, our preferred license (LGPL for the plug-in + code, LGPL or LGPL-compatible for the supporting library). + + - We believe distributors can safely ship these plug-ins. + - People writing elements should base their code on these elements. + +- gst-plugins-ugly: a set of plug-ins that have good quality and correct + functionality, but distributing them might pose problems. The license + on either the plug-ins or the supporting libraries might not be how we'd + like. The code might be widely known to present patent problems. + + - Distributors should check if they want/can ship these plug-ins. + - People writing elements should base their code on these elements. + +- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the + rest. They might be close to being good quality, but they're missing + something - be it a good code review, some documentation, a set of tests, + a real live maintainer, or some actual wide use. + If the blanks are filled in they might be upgraded to become part of + either gst-plugins-good or gst-plugins-ugly, depending on the other factors. + + - If the plug-ins break, you can't complain - instead, you can fix the + problem and send us a patch, or bribe someone into fixing them for you. + - New contributors can start here for things to work on. + +PLATFORMS +--------- + +- Linux is of course fully supported +- FreeBSD is reported to work; other BSDs should work too +- Solaris is reported to work; a specific sunaudiosink plugin has been written +- MacOSX works, binary 1.x packages can be built using the cerbero build tool +- Windows works; binary 1.x packages can be built using the cerbero build tool + - MSys/MinGW builds + - Microsoft Visual Studio builds are not yet available or supported +- Android works, binary 1.x packages can be built using the cerbero build tool +- iOS works + +INSTALLING FROM PACKAGES +------------------------ + +You should always prefer installing from packages first. GStreamer is +well-maintained for a number of distributions, including Fedora, Debian, +Ubuntu, Mandrake, Gentoo, ... + +Only in cases where you: +- want to hack on GStreamer +- want to verify that a bug has been fixed +- do not have a sane distribution +should you choose to build from source tarballs or git. + +Find more information about the various packages at +http://gstreamer.freedesktop.org/download/ + +COMPILING FROM SOURCE TARBALLS +------------------------------ + +- again, make sure that you really need to install from source ! + If GStreamer is one of your first projects ever that you build from source, + consider taking on an easier project. + - check output of ./configure --help to see if any options apply to you -- configure the source tree: - - if you installed GStreamer, then do: - ./configure - If configure complains about missing GStreamer, you should try - ./configure --with-pkg-config-path=prefix/lib/pkgconfig - where prefix should be replaced by the prefix you used to configure - GStreamer. (Be mindful NOT to ADD a trailing / to that option !) - If this doesn't fix it, you have other issues ;) - - - if you didn't install GStreamer, you can still compile the plug-ins. - Add the path to gstreamer-uninstalled.pc (which lives in the gstreamer - source tree) to PKG_CONFIG_PATH - or run configure --with-pkg-config-path=(path to gstreamer uninstalled) - - - the output of configure will give you a list of plug-ins with external - dependencies (ie, depending on other libs, see below). By no means - should you try to get them all built on your first run. This is hard - enough as it is ;) Resist the urge to get the most features for now. - It doesn't list all of the non-depending plug-ins, which get built - regardless (unless you explicitly asked it not to). - -- build the tree: +- run + ./configure make - If any plug-in causes a problem at this stage, you should re-configure - with --disable-(dependency) - and doublecheck if configure reports this plug-in as being disabled. - Then re-run make. - -- install: - - if you installed GStreamer, and want to install the plug-ins as well, run - make install - and, as root, run - gst-register - - if you installed GStreamer, but don't want to install the plug-ins, run - gst-register --gst-plugin-path=. - - if you didn't install GStreamer, then do - path/to/gstreamer/tools/gst-register --gst-plugin-path=. - (Replace path/to/gstreamer obviously) - -- test: - - run - gst-launch sinesrc ! fakesink - and prefix gst-launch with the path to gstreamer/tools if you didn't install - GStreamer. - If this doesn't give any errors, you can abort it. - - - try replacing fakesink with your choice of - osssink/esdsink/artsdsink/alsasink/jacksink (depending on what output - method you have available) and see if you hear a C tone. - -- After this, you should look into installing an application, like - gst-player, gst-editor or monkey-media with rhythmbox. - -COMPILING FROM CVS ------------------- -When building from CVS sources, you will need to run autogen.sh to generate -the build system files. -GStreamer is cutting-edge stuff. To be a CVS developer, you need -what used to be considered cutting-edge tools. + to build GStreamer. +- if you want to install it (not required, but what you usually want to do), run + make install + +- try out a simple test: + gst-launch -v fakesrc num_buffers=5 ! fakesink + (If you didn't install GStreamer, prefix gst-launch with tools/) + + If it outputs a bunch of messages from fakesrc and fakesink, everything is + ok. -ATM, most of us have at least these versions : + If it did not work, keep in mind that you might need to adjust the + PATH and/or LD_LIBRARY_PATH environment variables to make the system + find GStreamer in the prefix where you installed (by default that is /usr/local). -* autoconf 2.52 (NOT 2.52d) -* automake 1.5 -* libtool 1.4 (NOT Gentoo's genetic failure 1.4.2) -* pkg-config 0.8.0 +- After this, you're ready to install gst-plugins, which will provide the + functionality you're probably looking for by now, so go on and read + that README. -autogen.sh will check for these versions and complain if you don't have +COMPILING FROM GIT +------------------ + +When building from git sources, you will need to run autogen.sh to generate +the build system files. + +You will need a set of additional tools typical for building from git, +including: +- autoconf +- automake +- libtool + +autogen.sh will check for recent enough versions and complain if you don't have them. You can also specify specific versions of automake and autoconf with --with-automake and --with-autoconf Check autogen.sh options by running autogen.sh --help -autogen.sh can pass on arguments to configure - you just need to separate them -from autogen.sh with -- between the two. -prefix has been added to autogen.sh but will be passed on to configure because -some build scripts like that. -You will probably have to pass at least --with-pkg-config-path to autogen.sh -to point to the CVS version of GStreamer. +autogen.sh can pass on arguments to configure When you have done this once, you can use autoregen.sh to re-autogen with the last passed options as a handy shortcut. Use it. @@ -93,46 +219,37 @@ the last passed options as a handy shortcut. Use it. After the autogen.sh stage, you can follow the directions listed in "COMPILING FROM SOURCE" +You can also run your whole git stack uninstalled in your home directory, +so that you can quickly test changes without affecting your system setup or +interfering with GStreamer installed from packages. Many GStreamer developers +use an uninstalled setup for their work. + +There is a 'create-uninstalled-setup.sh' script in + + http://cgit.freedesktop.org/gstreamer/gstreamer/tree/scripts/ + +to easily create an uninstalled setup from scratch. + PLUG-IN DEPENDENCIES AND LICENSES --------------------------------- -GStreamer is developed under the terms of the LGPL (see LICENSE file for -details). Some of our plug-ins however rely on libraries which are available -under other licenses. This means that if you are using an application which -has a non-GPL compatible license (for instance a closed-source application) -with GStreamer, you have to make sure not to use GPL-linked plug-ins. -When using GPL-linked plug-ins, GStreamer is for all practical reasons -under the GPL itself. - -The plug-ins which use a GPL library are as follows: -cdparanoia libcdparanoia (http://www.xiph.org/paranoia/) -aasink aalib (http://aa-project.sourceforge.net/aalib/) -xmms libxmms (http://www.xmms.org) -decdvd ac3dec,mpeg2dec (http://linuxvideo.org/mpeg2dec/,http://linuxvideo.org/ac3dec/)a - -Plug-ins which use an LGPL library are as follows: -colorspace Hermes (http://www.clanlib.org/hermes/) -httpsrc libghttp (ftp.gnome.org/pub/GNOME/stable/sources/libghttp/) -alsasink alsa (http://alsa-project.org) -arts aRts (http://arts-project.org) -sdlsink libsdl (http://www.libsdl.org) -gnomevfssource gnome-vfs (ftp.gnome.org//pub/GNOME/stable/sources/gnome-vfs) -gnomevfssink gnome-vfs -esdsink libesd (ftp.gnome.org/pub/GNOME/stable/sources/esound) -icastsend libshout (http://www.icecast.org) -lame libmp3lame (http://www.mp3dev.org/mp3/) -gst1394 libraw1394 (http://linux1394.sourceforge.net) -flac libFLAC (http://flac.sourceforge.net) -RTP ortp (http://www.linphone.org/ortp/) - -Plug-ins which use a BSD covered library are as follows: -vorbisenc libogg/libvorbis (http://www.xiph.org/ogg/vorbis) -vorbisdec libogg/libvorbis - -Plug-ins based on libraries with other free licenses: -xvideosink libXv (MIT X11 / X Consortium license) -gsm libgsm (MIT license http://kbs.cs.tu-berlin.de/~jutta/toast.html) - -Plug-ins using non-free libraries: -wincodec win32ddl (http://divx.euro.ru/) +GStreamer is developed under the terms of the LGPL (see LICENSE file for +details). Some of our plug-ins however rely on libraries which are available +under other licenses. This means that if you are distributing an application +which has a non-GPL compatible license (for instance a closed-source +application) with GStreamer, you have to make sure not to distribute GPL-linked +plug-ins. + +When using GPL-linked plug-ins, GStreamer is for all practical reasons +under the GPL itself. + +HISTORY +------- + +The fundamental design comes from the video pipeline at Oregon Graduate +Institute, as well as some ideas from DirectMedia. It's based on plug-ins that +will provide the various codec and other functionality. The interface +hopefully is generic enough for various companies (ahem, Apple) to release +binary codecs for Linux, until such time as they get a clue and release the +source.