# File gstreamer/sample/media-type2.rb, line 204
  def read(location, flags)
    reset
    find_type location
    return nil if @type == nil
    stream = MediaInfoStream.new
    mime = @type.mime
    stream.mime = mime if flags & INFO_MIME
    stream.path = location
    decoder = get_decoder mime
    return nil if decoder == nil
    set_decoder decoder
    stream = get_stream stream
    stream.length_tracks.times do |i|
      track = MediaInfoTrack.new
      track.metadata = find_metadata if flags & INFO_METADATA
      track.streaminfo = find_streaminfo if flags & INFO_STREAMINFO
      track.format = find_format if flags & INFO_FORMAT
      stream.tracks << track
    end
    clear_decoder
    return stream
  end