Another answer is buried in the GStreamer docs. Elements are connected by pads. Pads have caps (capabilities). Those caps describe the stream, all of the relevant information is there. That is how decodebin works - it examines the caps and then 'does the right thing'. If you write code to parse the caps and then switch to use the right elements, you will be duplicating decodebin, though it is a good learning exercise.<br>
<br>You also really need to learn about caps to understand how to build encode pipelines also. Many of the elements are very restrictive in what they accept. If you don't follow what they need it won't work and it may not be obvious why, until you turn on detailed logging.<br>
<br>The short answer is: caps.<br><br><div class="gmail_quote">On Tue, Mar 12, 2013 at 5:53 AM, Ian Davidson <span dir="ltr"><<a href="mailto:id012c3076@blueyonder.co.uk" target="_blank">id012c3076@blueyonder.co.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    
    <p style="margin-bottom:0cm">There are sounds that
      we hear and things that we see. In order to be able to record
      these
      things, they need to be converted to some digital format – and
      there are many choices for these. For example, a sound could be
      stored as a WAV file, a WMA file, an OGG file (and many more). The
      sound could have been recorded at 44100 samples per second (quite
      typical) or perhaps 1100 samples per second (very poor quality).</p>
    <p style="margin-bottom:0cm">Many of the elements
      in
      a Gstreamer pipeline are used to manipulate the data from one
      format
      to another. A typical element will have a 'sink' (where you can
      'pour in some data') and a 'src' (which will supply data to the
      next
      element in the sequence).</p>
    <p style="margin-bottom:0cm">Obviously, the data
      will need to come from somewhere – so if you are reading a file,
      you will have a 'filesrc' which will pick up the data from a file
      and
      pass it on to the next element; such an element will have a
      'location' parameter to tell it where to find the file.</p>
    <p style="margin-bottom:0cm">At the other end of
      the
      pipeline you will want to do something with this data you have
      been
      manipulating, so you will choose a 'sink' such as 'alsasink' to
      play
      the sound.</p>
    <p style="margin-bottom:0cm">In between, you will
      need to manipulate the data that you read from disk such that it
      can
      be played – so if your input is a WAV file, you will need
      'wavparse' to convert the data.</p>
    <p style="margin-bottom:0cm">It may be that
      'wavparse' is not always ready to accept data when your source
      wants
      to give it, so it is a good idea to include a 'queue' between
      elements to handle such problems.</p>
    <p style="margin-bottom:0cm">I don't know exactly
      what you want to do. Go to
      <a href="http://gstreamer.freedesktop.org/documentation/" target="_blank">http://gstreamer.freedesktop.org/documentation/</a>
      and follow the link to “Overview of all Plug-ins ” to see what
      plug-ins are available. Many of the descriptions give an example
      of
      how you might use them.</p>
    <p style="margin-bottom:0cm">Start by building a
      test pipeline using gst-launch. When you have got that working,
      then
      look to writing a program to replicate what you have tested using
      gst-launch.<br>
      <br>
    </p><div class="im">
    
    
    
    <div>On 12/03/2013 02:06, aero wrote:<br>
    </div>
    <blockquote type="cite">
      <pre>in brief my question is what are the elements required to play an audio and
video. how to connect them.
if elements depends on format of the flie (ogg,mp3,avi etc)  how to know
what  to use for what type.

i just want to get some basic idea of properties of elements before i do any
programming.







--
View this message in context: <a href="http://gstreamer-devel.966125.n4.nabble.com/gstreamer-video-playback-cannot-play-tp4659024p4659054.html" target="_blank">http://gstreamer-devel.966125.n4.nabble.com/gstreamer-video-playback-cannot-play-tp4659024p4659054.html</a>
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>

</pre>
    </blockquote>
    <br>
  </div></div>

<br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br>