@Override
 public void onDestroy() {
   Log.d(TAG, "VideoEngine onDestroy()");
   super.onDestroy();
   if (renderer != null) {
     renderer.release();
   }
   renderer = null;
 }
 @Override
 public void onVisibilityChanged(boolean visible) {
   Log.d(TAG, "VideoEngine onVisibilityChanged()");
   super.onVisibilityChanged(visible);
 }
 @Override
 public void onSurfaceDestroyed(SurfaceHolder holder) {
   Log.d(TAG, "VideoEngine onSurfaceDestroyed");
   super.onSurfaceDestroyed(holder);
 }
 @Override
 public void onSurfaceCreated(SurfaceHolder holder) {
   Log.d(TAG, "VideoEngine onSurfaceCreated()");
   super.onSurfaceCreated(holder);
 }
 @Override
 public void onSurfaceChanged(SurfaceHolder holder, int format, int w, int h) {
   Log.d(TAG, "VideoEngine onSurfaceChanged()");
   super.onSurfaceChanged(holder, format, w, h);
 }
 @Override
 public void onCreate(SurfaceHolder surfaceHolder) {
   Log.d(TAG, "VideoEngine onCreate()");
   super.onCreate(surfaceHolder);
 }