//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
            //ORIGINAL LINE: public void addRenderCallback(@NonNull IRenderCallback callback)
            public void addRenderCallback(IRenderView_IRenderCallback callback)
            {
                mRenderCallbackMap[callback] = callback;

                IRenderView_ISurfaceHolder surfaceHolder = null;

                if (mSurfaceTexture != null)
                {
                    if (surfaceHolder == null)
                    {
                        TextureRenderView texture = null;
                        mWeakRenderView.TryGetTarget(out texture);
                        surfaceHolder = new InternalSurfaceHolder(texture, mSurfaceTexture, this);
                    }
                    callback.onSurfaceCreated(surfaceHolder, mWidth, mHeight);
                }

                if (mIsFormatChanged)
                {
                    if (surfaceHolder == null)
                    {
                        TextureRenderView texture = null;
                        mWeakRenderView.TryGetTarget(out texture);
                        surfaceHolder = new InternalSurfaceHolder(texture, mSurfaceTexture, this);
                    }
                    callback.onSurfaceChanged(surfaceHolder, 0, mWidth, mHeight);
                }
            }
            public void OnSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height)
            {
                mSurfaceTexture  = surface;
                mIsFormatChanged = true;
                mWidth           = width;
                mHeight          = height;
                TextureRenderView texture = null;

                mWeakRenderView.TryGetTarget(out texture);
                IRenderView_ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(texture, surface, this);

                foreach (IRenderView_IRenderCallback renderCallback in mRenderCallbackMap.Keys)
                {
                    renderCallback.onSurfaceChanged(surfaceHolder, 0, width, height);
                }
            }
            public void OnSurfaceTextureAvailable(SurfaceTexture surface, int width, int height)
            {
                mSurfaceTexture  = surface;
                mIsFormatChanged = false;
                mWidth           = 0;
                mHeight          = 0;
                TextureRenderView texture = null;

                mWeakRenderView.TryGetTarget(out texture);
                IRenderView_ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(texture, surface, this);

                foreach (IRenderView_IRenderCallback renderCallback in mRenderCallbackMap.Keys)
                {
                    renderCallback.onSurfaceCreated(surfaceHolder, 0, 0);
                }
            }
            public bool OnSurfaceTextureDestroyed(SurfaceTexture surface)
            {
                mSurfaceTexture  = surface;
                mIsFormatChanged = false;
                mWidth           = 0;
                mHeight          = 0;
                TextureRenderView texture = null;

                mWeakRenderView.TryGetTarget(out texture);
                IRenderView_ISurfaceHolder surfaceHolder = new InternalSurfaceHolder(texture, surface, this);

                foreach (IRenderView_IRenderCallback renderCallback in mRenderCallbackMap.Keys)
                {
                    renderCallback.onSurfaceDestroyed(surfaceHolder);
                }

                Log.Debug(TAG, "onSurfaceTextureDestroyed: destroy: " + mOwnSurfaceTexture);
                return(mOwnSurfaceTexture);
            }
 //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
 //ORIGINAL LINE: public SurfaceCallback(@NonNull TextureRenderView renderView)
 public SurfaceCallback(TextureRenderView renderView)
 {
     mWeakRenderView = new WeakReference <TextureRenderView>(renderView);
 }
 //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
 //ORIGINAL LINE: public InternalSurfaceHolder(@NonNull TextureRenderView textureView, @Nullable android.graphics.SurfaceTexture surfaceTexture, @NonNull tv.danmaku.ijk.media.player.ISurfaceTextureHost surfaceTextureHost)
 public InternalSurfaceHolder(TextureRenderView textureView, SurfaceTexture surfaceTexture, ISurfaceTextureHost surfaceTextureHost)
 {
     mTextureView        = textureView;
     mSurfaceTexture     = surfaceTexture;
     mSurfaceTextureHost = surfaceTextureHost;
 }