                 throw new Error("called dequeueFrame when no frame ready");
             }
         }
-        
+
+        /**
+         * @param yCbCrBuffer dequeued frame info structure
+         * @return ByteArray full of ARGB pixels ready to be drawn
+         *
+         * Warning: the buffer will be reused.
+         */
         public function convertYCbCr(yCbCrBuffer:Object):ByteArray {
             var bufferARGB:int = OgvSwfConvertYCbCr(
                 yCbCrBuffer.bufferY, yCbCrBuffer.bufferCb, yCbCrBuffer.bufferCr,

                yCbCrBuffer.width, yCbCrBuffer.height,
                yCbCrBuffer.hdec, yCbCrBuffer.vdec
            );
            var bytesARGB:ByteArray = extractBuffer(bufferARGB, yCbCrBuffer.width * yCbCrBuffer.height * 4);
            bytesARGB.endian = Endian.BIG_ENDIAN; // Switch the endian back or it'll get byte-swapped later
            return bytesARGB;
        }

        /**

        private var _videoInfo:Object = null;
        private var _frameReady:Boolean = false;
        private var _queuedFrame:Object = null;
        private var _bytesARGB:ByteArray = null;

        // Public callbacks
        // @todo clean up this interface
