Appspotdemo.Mono.Droid.FramePool.validateDimensions C# (CSharp) Method

validateDimensions() public static method

Validate that |frame| can be managed by the pool.
public static validateDimensions ( VideoRenderer frame ) : bool
frame VideoRenderer
return bool
        public static bool validateDimensions(VideoRenderer.I420Frame frame)
        {
            return frame.Width < MAX_DIMENSION && frame.Height < MAX_DIMENSION && frame.YuvStrides[0] < MAX_DIMENSION && frame.YuvStrides[1] < MAX_DIMENSION && frame.YuvStrides[2] < MAX_DIMENSION;
        }

Usage Example

コード例 #1
0
        /// <summary>
        /// Queue |frame| to be uploaded. </summary>
        public virtual void queueFrame(Endpoint stream, Org.Webrtc.VideoRenderer.I420Frame frame)
        {
            // Paying for the copy of the YUV data here allows CSC and painting time
            // to get spent on the render thread instead of the UI thread.
            abortUnless(FramePool.validateDimensions(frame), "Frame too large!");
            VideoRenderer.I420Frame frameCopy = framePool.takeFrame(frame).CopyFrom(frame);
            bool needToScheduleRender;

            lock (framesToRender)
            {
                // A new render needs to be scheduled (via updateFrames()) iff there isn't
                // already a render scheduled, which is true iff framesToRender is empty.
                needToScheduleRender = framesToRender.Count == 0;
                VideoRenderer.I420Frame frameToDrop;
                framesToRender.TryGetValue(stream, out frameToDrop);
                framesToRender[stream] = frameCopy;
                if (frameToDrop != null)
                {
                    framePool.returnFrame(frameToDrop);
                }
            }
            if (needToScheduleRender)
            {
                QueueEvent(updateFrames);
            }
        }