diff --git a/ChangeLog b/ChangeLog index dc30423354..844ada34dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,38 @@ +2006-08-15 Tim-Philipp Müller + + * docs/plugins/gst-plugins-base-plugins-docs.sgml: + * docs/plugins/gst-plugins-base-plugins-sections.txt: + * docs/plugins/gst-plugins-base-plugins.args: + * gst/playback/gstplaybin.c: + Document playbin. + + * docs/plugins/inspect/plugin-adder.xml: + * docs/plugins/inspect/plugin-alsa.xml: + * docs/plugins/inspect/plugin-audioconvert.xml: + * docs/plugins/inspect/plugin-audiorate.xml: + * docs/plugins/inspect/plugin-audioresample.xml: + * docs/plugins/inspect/plugin-audiotestsrc.xml: + * docs/plugins/inspect/plugin-cdparanoia.xml: + * docs/plugins/inspect/plugin-decodebin.xml: + * docs/plugins/inspect/plugin-ffmpegcolorspace.xml: + * docs/plugins/inspect/plugin-gnomevfs.xml: + * docs/plugins/inspect/plugin-ogg.xml: + * docs/plugins/inspect/plugin-pango.xml: + * docs/plugins/inspect/plugin-playbin.xml: + * docs/plugins/inspect/plugin-subparse.xml: + * docs/plugins/inspect/plugin-tcp.xml: + * docs/plugins/inspect/plugin-theora.xml: + * docs/plugins/inspect/plugin-typefindfunctions.xml: + * docs/plugins/inspect/plugin-video4linux.xml: + * docs/plugins/inspect/plugin-videorate.xml: + * docs/plugins/inspect/plugin-videoscale.xml: + * docs/plugins/inspect/plugin-videotestsrc.xml: + * docs/plugins/inspect/plugin-volume.xml: + * docs/plugins/inspect/plugin-vorbis.xml: + * docs/plugins/inspect/plugin-ximagesink.xml: + * docs/plugins/inspect/plugin-xvimagesink.xml: + Update to CVS version. + 2006-08-14 Tim-Philipp Müller * gst/playback/gstplaybin.c: (gst_play_bin_class_init), diff --git a/docs/plugins/gst-plugins-base-plugins-docs.sgml b/docs/plugins/gst-plugins-base-plugins-docs.sgml index 199e7264b2..dda9ba1ce0 100644 --- a/docs/plugins/gst-plugins-base-plugins-docs.sgml +++ b/docs/plugins/gst-plugins-base-plugins-docs.sgml @@ -25,6 +25,7 @@ + diff --git a/docs/plugins/gst-plugins-base-plugins-sections.txt b/docs/plugins/gst-plugins-base-plugins-sections.txt index e86dbc3d56..9d21498c3e 100644 --- a/docs/plugins/gst-plugins-base-plugins-sections.txt +++ b/docs/plugins/gst-plugins-base-plugins-sections.txt @@ -199,6 +199,20 @@ GstGnomeVFSSrcClass gst_gnome_vfs_src_get_type +
+element-playbin +playbin +GstPlayBin + +GST_PLAY_BIN +GST_PLAY_BIN_CLASS +GST_IS_GST_PLAY_BIN +GST_IS_GST_PLAY_BIN_CLASS +GST_TYPE_GST_PLAY_BIN +GstPlayBinClass +gst_play_bin_get_type +
+
element-tcpserversink tcpserversink diff --git a/docs/plugins/gst-plugins-base-plugins.args b/docs/plugins/gst-plugins-base-plugins.args index 9e3faa31bb..cfb535cac9 100644 --- a/docs/plugins/gst-plugins-base-plugins.args +++ b/docs/plugins/gst-plugins-base-plugins.args @@ -621,13 +621,23 @@ GstPlayBin::volume gdouble -[0,4] +[0,10] rw volume volume. 1 + +GstPlayBin::connection-speed +guint + +rw +Connection Speed +Network connection speed in kbps (0 = unknown). +0 + + GstAudiorate::add guint64 @@ -1528,3 +1538,13 @@ NULL + +GstTheoraParse::synchronization-points +GValueArray + +rw +Synchronization points +An array of (granuletime, buffertime) pairs. + + + diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml index faf05647b9..d5d47cbace 100644 --- a/docs/plugins/inspect/plugin-adder.xml +++ b/docs/plugins/inspect/plugin-adder.xml @@ -3,10 +3,10 @@ Adds multiple streams ../../gst/adder/.libs/libgstadder.so libgstadder.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-alsa.xml b/docs/plugins/inspect/plugin-alsa.xml index 51602e619b..533a226e29 100644 --- a/docs/plugins/inspect/plugin-alsa.xml +++ b/docs/plugins/inspect/plugin-alsa.xml @@ -3,10 +3,10 @@ ALSA plugin library ../../ext/alsa/.libs/libgstalsa.so libgstalsa.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-audioconvert.xml b/docs/plugins/inspect/plugin-audioconvert.xml index 2e3dad8abf..db324689e2 100644 --- a/docs/plugins/inspect/plugin-audioconvert.xml +++ b/docs/plugins/inspect/plugin-audioconvert.xml @@ -3,10 +3,10 @@ Convert audio to different formats ../../gst/audioconvert/.libs/libgstaudioconvert.so libgstaudioconvert.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-audiorate.xml b/docs/plugins/inspect/plugin-audiorate.xml index d2483ea4a4..93f3cad614 100644 --- a/docs/plugins/inspect/plugin-audiorate.xml +++ b/docs/plugins/inspect/plugin-audiorate.xml @@ -3,10 +3,10 @@ Adjusts audio frames ../../gst/audiorate/.libs/libgstaudiorate.so libgstaudiorate.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-audioresample.xml b/docs/plugins/inspect/plugin-audioresample.xml index fc3ade1354..ab0f440f6b 100644 --- a/docs/plugins/inspect/plugin-audioresample.xml +++ b/docs/plugins/inspect/plugin-audioresample.xml @@ -3,10 +3,10 @@ Resamples audio ../../gst/audioresample/.libs/libgstaudioresample.so libgstaudioresample.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-audiotestsrc.xml b/docs/plugins/inspect/plugin-audiotestsrc.xml index ddae94d27b..af302fd56f 100644 --- a/docs/plugins/inspect/plugin-audiotestsrc.xml +++ b/docs/plugins/inspect/plugin-audiotestsrc.xml @@ -3,10 +3,10 @@ Creates audio test signals of given frequency and volume ../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so libgstaudiotestsrc.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml index 747c0a2e60..f5c7eb1d57 100644 --- a/docs/plugins/inspect/plugin-cdparanoia.xml +++ b/docs/plugins/inspect/plugin-cdparanoia.xml @@ -3,10 +3,10 @@ Read audio from CD in paranoid mode ../../ext/cdparanoia/.libs/libgstcdparanoia.so libgstcdparanoia.so - 0.10.9 + 0.10.9.1 GPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-decodebin.xml b/docs/plugins/inspect/plugin-decodebin.xml index ee8c811303..4a003f7424 100644 --- a/docs/plugins/inspect/plugin-decodebin.xml +++ b/docs/plugins/inspect/plugin-decodebin.xml @@ -3,10 +3,10 @@ decoder bin ../../gst/playback/.libs/libgstdecodebin.so libgstdecodebin.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-ffmpegcolorspace.xml b/docs/plugins/inspect/plugin-ffmpegcolorspace.xml index 02d7962aa8..321dcab3ee 100644 --- a/docs/plugins/inspect/plugin-ffmpegcolorspace.xml +++ b/docs/plugins/inspect/plugin-ffmpegcolorspace.xml @@ -3,7 +3,7 @@ colorspace conversion copied from FFMpeg 0.4.9-pre1 ../../gst/ffmpegcolorspace/.libs/libgstffmpegcolorspace.so libgstffmpegcolorspace.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base FFMpeg diff --git a/docs/plugins/inspect/plugin-gnomevfs.xml b/docs/plugins/inspect/plugin-gnomevfs.xml index f2b12ddb2b..509d116d42 100644 --- a/docs/plugins/inspect/plugin-gnomevfs.xml +++ b/docs/plugins/inspect/plugin-gnomevfs.xml @@ -3,10 +3,10 @@ elements to read from and write to Gnome-VFS uri's ../../ext/gnomevfs/.libs/libgstgnomevfs.so libgstgnomevfs.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-ogg.xml b/docs/plugins/inspect/plugin-ogg.xml index 5e5337bd36..92d792c0df 100644 --- a/docs/plugins/inspect/plugin-ogg.xml +++ b/docs/plugins/inspect/plugin-ogg.xml @@ -3,10 +3,10 @@ ogg stream manipulation (info about ogg: http://xiph.org) ../../ext/ogg/.libs/libgstogg.so libgstogg.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml index 74eaf968a8..6e387631e5 100644 --- a/docs/plugins/inspect/plugin-pango.xml +++ b/docs/plugins/inspect/plugin-pango.xml @@ -3,10 +3,10 @@ Pango-based text rendering and overlay ../../ext/pango/.libs/libgstpango.so libgstpango.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-playbin.xml b/docs/plugins/inspect/plugin-playbin.xml index 0411b163a3..116812ce87 100644 --- a/docs/plugins/inspect/plugin-playbin.xml +++ b/docs/plugins/inspect/plugin-playbin.xml @@ -3,10 +3,10 @@ player bin ../../gst/playback/.libs/libgstplaybin.so libgstplaybin.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-subparse.xml b/docs/plugins/inspect/plugin-subparse.xml index 18d35f2491..bf77a8cad5 100644 --- a/docs/plugins/inspect/plugin-subparse.xml +++ b/docs/plugins/inspect/plugin-subparse.xml @@ -3,10 +3,10 @@ Subtitle parsing ../../gst/subparse/.libs/libgstsubparse.so libgstsubparse.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-tcp.xml b/docs/plugins/inspect/plugin-tcp.xml index 91f941f646..199ff4b019 100644 --- a/docs/plugins/inspect/plugin-tcp.xml +++ b/docs/plugins/inspect/plugin-tcp.xml @@ -3,10 +3,10 @@ transfer data over the network via TCP ../../gst/tcp/.libs/libgsttcp.so libgsttcp.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-theora.xml b/docs/plugins/inspect/plugin-theora.xml index 2191f329e3..694ac9eb9f 100644 --- a/docs/plugins/inspect/plugin-theora.xml +++ b/docs/plugins/inspect/plugin-theora.xml @@ -3,10 +3,10 @@ Theora plugin library ../../ext/theora/.libs/libgsttheora.so libgsttheora.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-typefindfunctions.xml b/docs/plugins/inspect/plugin-typefindfunctions.xml index ae04cbbfac..c4e40c5b61 100644 --- a/docs/plugins/inspect/plugin-typefindfunctions.xml +++ b/docs/plugins/inspect/plugin-typefindfunctions.xml @@ -3,10 +3,10 @@ default typefind functions ../../gst/typefind/.libs/libgsttypefindfunctions.so libgsttypefindfunctions.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-video4linux.xml b/docs/plugins/inspect/plugin-video4linux.xml index ee34cb7951..26a4efeabb 100644 --- a/docs/plugins/inspect/plugin-video4linux.xml +++ b/docs/plugins/inspect/plugin-video4linux.xml @@ -3,10 +3,10 @@ elements for Video 4 Linux ../../sys/v4l/.libs/libgstvideo4linux.so libgstvideo4linux.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml index 4c63a236f3..4d4b21a383 100644 --- a/docs/plugins/inspect/plugin-videorate.xml +++ b/docs/plugins/inspect/plugin-videorate.xml @@ -3,10 +3,10 @@ Adjusts video frames ../../gst/videorate/.libs/libgstvideorate.so libgstvideorate.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-videoscale.xml b/docs/plugins/inspect/plugin-videoscale.xml index 2117c480ff..a4d70c785e 100644 --- a/docs/plugins/inspect/plugin-videoscale.xml +++ b/docs/plugins/inspect/plugin-videoscale.xml @@ -3,10 +3,10 @@ Resizes video ../../gst/videoscale/.libs/libgstvideoscale.so libgstvideoscale.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml index a831279760..8c51bc4fb9 100644 --- a/docs/plugins/inspect/plugin-videotestsrc.xml +++ b/docs/plugins/inspect/plugin-videotestsrc.xml @@ -3,10 +3,10 @@ Creates a test video stream ../../gst/videotestsrc/.libs/libgstvideotestsrc.so libgstvideotestsrc.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-volume.xml b/docs/plugins/inspect/plugin-volume.xml index 843f58e0ea..424dea59b2 100644 --- a/docs/plugins/inspect/plugin-volume.xml +++ b/docs/plugins/inspect/plugin-volume.xml @@ -3,10 +3,10 @@ plugin for controlling audio volume ../../gst/volume/.libs/libgstvolume.so libgstvolume.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-vorbis.xml b/docs/plugins/inspect/plugin-vorbis.xml index a0138b7db7..c74053b984 100644 --- a/docs/plugins/inspect/plugin-vorbis.xml +++ b/docs/plugins/inspect/plugin-vorbis.xml @@ -3,10 +3,10 @@ Vorbis plugin library ../../ext/vorbis/.libs/libgstvorbis.so libgstvorbis.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-ximagesink.xml b/docs/plugins/inspect/plugin-ximagesink.xml index 268a56339e..70b4fb6c25 100644 --- a/docs/plugins/inspect/plugin-ximagesink.xml +++ b/docs/plugins/inspect/plugin-ximagesink.xml @@ -3,10 +3,10 @@ X11 video output element based on standard Xlib calls ../../sys/ximage/.libs/libgstximagesink.so libgstximagesink.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/docs/plugins/inspect/plugin-xvimagesink.xml b/docs/plugins/inspect/plugin-xvimagesink.xml index 3f70cdcd1f..882b7c47fb 100644 --- a/docs/plugins/inspect/plugin-xvimagesink.xml +++ b/docs/plugins/inspect/plugin-xvimagesink.xml @@ -3,10 +3,10 @@ XFree86 video output plugin using Xv extension ../../sys/xvimage/.libs/libgstxvimagesink.so libgstxvimagesink.so - 0.10.9 + 0.10.9.1 LGPL gst-plugins-base - GStreamer Base Plug-ins source release + GStreamer Base Plug-ins CVS/prerelease Unknown package origin diff --git a/gst/playback/gstplaybin.c b/gst/playback/gstplaybin.c index c80c092f76..a4af2ad6ac 100644 --- a/gst/playback/gstplaybin.c +++ b/gst/playback/gstplaybin.c @@ -17,6 +17,199 @@ * Boston, MA 02111-1307, USA. */ +/** + * SECTION:element-playbin + * + * + * + * Playbin provides a stand-alone everything-in-one abstraction for an + * audio and/or video player. + * + * + * It can handle both audio and video files and features + * + * + * automatic file type recognition and based on that automatic + * selection and usage of the right audio/video/subtitle demuxers/decoders + * + * + * visualisations for audio files + * + * + * subtitle support for video files + * + * + * stream selection between different audio/subtitles streams + * + * + * meta info (tag) extraction + * + * + * easy access to the last video frame + * + * + * buffering when playing streams over a network + * + * + * volume control + * + * + * + * Usage + * + * A playbin element can be created just like any other element using + * gst_element_factory_make(). The file/URI to play should be set via the "uri" + * property. This must be an absolute URI, relative file paths are not allowed. + * Example URIs are file:///home/joe/movie.avi or http://www.joedoe.com/foo.ogg + * + * + * Playbin is a #GstPipeline. It will notify the application of everything + * that's happening (errors, end of stream, tags found, state changes, etc.) + * by posting messages on its #GstBus. The application needs to watch the + * bus. + * + * + * Playback can be initiated by setting the element to PLAYING state using + * gst_element_set_state(). Note that the state change will take place in + * the background in a separate thread, when the function returns playback + * is probably not happening yet and any errors might not have occured yet. + * Applications using playbin should ideally be written to deal with things + * completely asynchroneous. + * + * + * When playback has finished (an EOS message has been received on the bus) + * or an error has occured (an ERROR message has been received on the bus) or + * the user wants to play a different track, playbin should be set back to + * READY or NULL state, then the "uri" property should be set to the new + * location and then playbin be set to PLAYING state again. + * + * + * Seeking can be done using gst_element_seek_simple() or gst_element_seek() + * on the playbin element. Again, the seek will not be executed + * instantaneously, but will be done in a background thread. When the seek + * call returns the seek will most likely still be in process. An application + * may wait for the seek to finish (or fail) using gst_element_get_state() with + * -1 as the timeout, but this will block the user interface and is not + * recommended at all. + * + * + * Applications may query the current position and duration of the stream + * via gst_element_query_position() and gst_element_query_duration() and + * setting the format passed to GST_FORMAT_TIME. If the query was successful, + * the duration or position will have been returned in units of nanoseconds. + * + * Advanced Usage: specifying the audio and video sink + * + * By default, if no audio sink or video sink has been specified via the + * "audio-sink" or "video-sink" property, playbin will use the autoaudiosink + * and autovideosink elements to find the first-best available output method. + * This should work in most cases, but is not always desirable. Often either + * the user or application might want to specify more explicitly what to use + * for audio and video output. + * + * + * If the application wants more control over how audio or video should be + * output, it may create the audio/video sink elements itself (for example + * using gst_element_factory_make()) and provide them to playbin using the + * "audio-sink" or "video-sink" property. + * + * + * GNOME-based applications, for example, will usually want to create + * gconfaudiosink and gconfvideosink elements and make playbin use those, + * so that output happens to whatever the user has configured in the GNOME + * Multimedia System Selector confinguration dialog. + * + * + * The sink elements do not necessarily need to be ready-made sinks. It is + * possible to create container elements that look like a sink to playbin, + * but in reality contain a number of custom elements linked together. This + * can be achieved by creating a #GstBin and putting elements in there and + * linking them, and then creating a sink #GstGhostPad for the bin and pointing + * it to the sink pad of the first element within the bin. This can be used + * for a number of purposes, for example to force output to a particular + * format or to modify or observe the data before it is output. + * + * + * It is also possible to 'suppress' audio and/or video output by using + * 'fakesink' elements (or capture it from there using the fakesink element's + * "handoff" signal, which, nota bene, is fired from the streaming thread!). + * + * Retrieving Tags and Other Meta Data + * + * Most of the common meta data (artist, title, etc.) can be retrieved by + * watching for TAG messages on the pipeline's bus (see above). + * + * + * Other more specific meta information like width/height/framerate of video + * streams or samplerate/number of channels of audio streams can be obtained + * using the "stream-info" property, which will return a GList of stream info + * objects, one for each stream. These are opaque objects that can only be + * accessed via the standard GObject property interface, ie. g_object_get(). + * Each stream info object has the following properties: + * + * "object" (GstObject) (the decoder source pad usually) + * "type" (enum) (if this is an audio/video/subtitle stream) + * "decoder" (string) (name of decoder used to decode this stream) + * "mute" (boolean) (to mute or unmute this stream) + * "caps" (GstCaps) (caps of the decoded stream) + * "language-code" (string) (ISO-639 language code for this stream, mostly used for audio/subtitle streams) + * "codec" (string) (format this stream was encoded in) + * + * Stream information from the stream-info properties is best queried once + * playbin has changed into PAUSED or PLAYING state (which can be detected + * via a state-changed message on the bus where old_state=READY and + * new_state=PAUSED), since before that the list might not be complete yet or + * not contain all available information (like language-codes). + * + * Embedding the video window in your application + * + * By default, playbin (or rather the video sinks used) will create their own + * window. Applications will usually want to force output to a window of their + * own, however. This can be done using the GstXOverlay interface, which most + * video sinks implement. See the documentation there for more details. + * + * Specifying which CD/DVD device to use + * + * The device to use for CDs/DVDs needs to be set on the source element + * playbin creates before it is opened. The only way to do this at the moment + * is to connect to playbin's "notify::source" signal, which will be emitted + * by playbin when it has created the source element for a particular URI. + * In the signal callback you can check if the source element has a "device" + * property and set it appropriately. In future ways might be added to specify + * the device as part of the URI, but at the time of writing this is not + * possible yet. + * + * Examples + * + * Here is a simple pipeline to play back a video or audio file: + * + * gst-launch -v playbin uri=file:///path/to/somefile.avi + * + * This will play back the given AVI video file, given that the video and + * audio decoders required to decode the content are installed. Since no + * special audio sink or video sink is supplied (not possible via gst-launch), + * playbin will try to find a suitable audio and video sink automatically + * using the autoaudiosink and autovideosink elements. + * + * + * Here is a another pipeline to play track 4 of an audio CD: + * + * gst-launch -v playbin uri=cdda://4 + * + * This will play back track 4 on an audio CD in your disc drive (assuming + * the drive is detected automatically by the plugin). + * + * + * Here is a another pipeline to play title 1 of a DVD: + * + * gst-launch -v playbin uri=dvd://1 + * + * This will play back title 1 of a DVD in your disc drive (assuming + * the drive is detected automatically by the plugin). + * + * + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif