private RenderViewData getFreeRender() {
   RenderViewData rd = null;
   LogSdk.i(Utils.getOoVooTag(), "RENDERS Size = " + _renders.size());
   for (int i = 0; i < _renders.size(); i++) {
     RenderViewData d = _renders.valueAt(i);
     //			if (!d._video_on && d._user == null) {
     if (TextUtils.isEmpty(d._user) && !d.isPreview()) {
       rd = d;
       break;
     }
   }
   return rd;
 }
  public void updateGLViews(SessionUIPresenter presenter) {
    //		_on_pause = false;
    for (int i = 0; i < _renders.size(); i++) {
      RenderViewData d = _renders.valueAt(i);
      LogSdk.d(TAG, "updating GLview " + d._view_id + " for user " + d._user);

      GLSurfaceView glview = (GLSurfaceView) presenter.findViewById(d._view_id);
      if (glview == null) {
        LogSdk.e(TAG, "NULL GL view!!! " + d._view_id);
        continue;
      }
      try {
        glview.setEGLContextClientVersion(2);
        if (d.isPreview()) d._render = new PreviewVideoRenderer(glview);
        else d._render = new VideoRenderer(glview);
        glview.setRenderer(d._render);
        glview.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); // .RENDERMODE_CONTINUOUSLY);
      } catch (IllegalStateException e) {
      }
    }
  }