idea on struct

* should be able to handle an ogg file that has two logical streams
  - first stream is an audio file, with tags
  - second file is a video stream, with one video stream and two
    audio streams

* struct for the whole file  :
  - number of logical streams
  - list of logical streams
  - total playing time for whole physical stream
  - average bitrate

  struct for one logical stream
  - struct of tags (ie changeable without re-encoding)
    - artist, title, album, comment, ...
  - number of concurrent streams
  - struct of properties for whole logical stream
    - average bitrate, length in time
  - list of concurrent streams or channels in logical stream

  struct for one concurrent channel
    - mime type
    - average bitrate, length
    - properties like 


structure of code and how it works

gst_media_info_read
  - gmi_reset: reset structs
  - gmi_find_type: find type
  - gmi_get_decoder: get a decoder GstElement for this type
  - gmi_set_decoder: sets the decoder on the pipeline
  - gmi_get_stream: gets a total stream properties struct
  - loop over streams and get data
  - clear decoder

structure when using idler
  - gmi_read_with_idler call
  - call gmi_read_idler until it returns TRUE (which indicates it has
                                               everything)
      - gmi_read_idler has a state machine
      - depending on status, it checks for a state transition condition
        - if state transition:
          - run current post handler
          - if next, run current next handler
        - else
          - iterate
  
