Symbian3/SDK/Source/GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-60B9404B-5102-4FBB-A32F-55F2ACFD1481" xml:lang="en"><title>GStreamer
       
    13 Overview</title><shortdesc>GStreamer is a development framework for creating applications
       
    14 like media players, streaming media broadcasters and video editors.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <p>GStreamer is designed to make it easier to write applications easily that
       
    16 handle audio, video, or both. Pluggable components can be mixed and matched
       
    17 into arbitrary pipelines, which consist of a chain of processing elements.</p>
       
    18 <section id="GUID-4576F23A-638C-447D-80C1-7DCE99A513B3">       <title>Purpose</title><p><xref href="http://www.gstreamer.net" scope="external">GStreamer</xref> is an open
       
    19 source multimedia framework that allows you to write any streaming multimedia
       
    20 application, not just audio or video. GStreamer can handle any data flow. </p><p>GStreamer
       
    21 core provides the following features:<ul>
       
    22 <li><p>Plug-in handling</p></li>
       
    23 <li><p>Media type negotiation</p></li>
       
    24 <li><p>Clocking and data flow</p></li>
       
    25 </ul>GStreamer also provides <xref href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" scope="external">APIs</xref> to write applications using various plug-ins
       
    26 such as source plug-in, transform plug-in and sink plug-in. The framework
       
    27 uses these plug-ins to perform various roles such as encoding, decoding and
       
    28 media processing. </p> <p/>    <p><fig id="GUID-DB713A5A-4628-40EB-994C-267759BB906F">
       
    29 <title>GStreamer plug-ins</title>
       
    30 <image href="GUID-63BA04BD-2242-4365-95A1-717569207E92_d0e313051_href.png" placement="inline"/>
       
    31 </fig></p>    </section>
       
    32 <section id="GUID-2EC5760E-D208-4071-A032-91B72904782A"><title>Description</title><p>Some
       
    33 GStreamer concepts are as follows:<ul>
       
    34 <li><p><b>Element</b> </p><p>An element is an object that performs some action
       
    35 on a multimedia stream. Examples of such actions are reading a file, decoding
       
    36 or encoding data and capturing data from a hardware device.</p></li>
       
    37 <li><p><b>Bin</b></p><p>A bin is a subclass of element. A bin acts as a container
       
    38 for other elements, so multiple elements combine into one logical unit.</p></li>
       
    39 <li><p><b>Pipeline</b></p><p>A pipeline is a set of data processing elements
       
    40 connected in series, so the output from one element is the input for the next
       
    41 element.</p><p>In GStreamer the pipeline is a specialized bin subclass that
       
    42 provides execution of all contained elements. Normally, applications create
       
    43 one pipeline that will manage all the elements contained within it.</p></li>
       
    44 </ul></p><p><b>Note:</b> Elements can be added to and removed from pipelines
       
    45 based on the use-case being handled. For example a use-case such as playing
       
    46 an <i>MP3</i> file using GStreamer.</p><p>An element can provide a number
       
    47 of pads, which can be either source or sink pads. A pad is a plug or port
       
    48 on an element to link with other elements. The pads are responsible for data
       
    49 flow between the elements. Source pads supply data, and sink pads consume
       
    50 data. Basically, pads are used to negotiate compatibility and allow data flow
       
    51 between elements.</p><p>An element can be in one of four different states
       
    52 during the application request: <ul>
       
    53 <li><p>Null</p></li>
       
    54 <li><p> Ready</p></li>
       
    55 <li><p>Pause</p></li>
       
    56 <li><p>Play</p></li>
       
    57 </ul> In the <i>Null</i> and<i> Ready</i> states, the element is not processing
       
    58 any data. The processing of data happens only in the <i>Play</i> state. The <i>Pause</i> state
       
    59 is used to fill all connected elements in the data pipeline so the <i>Play</i> state
       
    60 change happens quickly.</p><p>GStreamer also provides higher level utilities
       
    61 and components to detect automatically the media type of an application, and
       
    62 to create the best possible pipeline for a use-case. This process is called
       
    63 auto plugging.</p></section>
       
    64 <section id="GUID-BC06C918-9763-4374-B263-0BE28D2637B0"><title>GStreamer applications</title><p>GStreamer
       
    65 is used in many types of applications including:</p><ol>
       
    66 <li id="GUID-D6663533-F4AD-4D58-8ED6-8AE1160D22FB"><p>Media playback and streaming</p></li>
       
    67 <li id="GUID-4EE3C5D4-04EA-4888-B425-1DEFAACF4C09"><p>Media recording</p></li>
       
    68 <li id="GUID-FB1D14E9-F9CC-4303-8C73-D710A9AFCF7D"><p>Media transcoding</p></li>
       
    69 <li id="GUID-10171E9B-0E09-45F0-8564-19B00252CCA1"><p>Video editing</p></li>
       
    70 </ol><p>For example the diagram below shows how a Media Player uses GStreamer:</p><p><fig id="GUID-7127CC7D-14D5-4652-87A1-DB5BC3AE9663">
       
    71 <title>Media playback using GStreamer</title>
       
    72 <image href="GUID-DD39680E-C0CB-4D97-A921-25FACC30FBE3_d0e313165_href.jpg" placement="inline"/>
       
    73 </fig></p><p><draft-comment time="2010-02-17T10:06" translate="no">Sound device is a framework
       
    74 to perform hardware accelerated audio functionality. Audio Policy manages
       
    75 the requests to access the audio hardware. Digital Signal Processing converts
       
    76 the digital audio signal to the analog audio signal.</draft-comment></p> </section>
       
    77 <section id="GUID-59D1352D-208F-4E01-B62C-9BF7385E0A9F"><title>See also</title><ul>
       
    78 <li><p><xref href="http://wiki.forum.nokia.com/index.php/GStreamer" scope="external">GStreamer</xref> documentation
       
    79 published on Forum Nokia.</p></li>
       
    80 <li><p><xref href="GUID-DDE1A8A9-1D67-53BF-8A65-340F139AD4AB.dita">Multimedia Framework
       
    81 Component</xref></p></li>
       
    82 </ul></section>
       
    83 </conbody></concept>