         private function initVideoCallback(info:Object):void {
             _hasVideo = true;
             _videoInfo = info;
+            _bytesARGB = new ByteArray();
+            _bytesARGB.length = info.width * info.height * 4;
             if (oninitvideo != null) {
                 oninitvideo(_videoInfo);
             }

                throw new Error("called dequeueFrame when no frame ready");
            }
        }
        
        public function convertYCbCr(yCbCrBuffer:Object):ByteArray {
            var bufferARGB:int = OgvSwfConvertYCbCr(
                yCbCrBuffer.bufferY, yCbCrBuffer.bufferCb, yCbCrBuffer.bufferCr,

                yCbCrBuffer.width, yCbCrBuffer.height,
                yCbCrBuffer.hdec, yCbCrBuffer.vdec
            );

            _bytesARGB.position = 0;
            CModule.readBytes(bufferARGB, yCbCrBuffer.width * yCbCrBuffer.height * 4, _bytesARGB);
            _bytesARGB.position = 0;

            return _bytesARGB;
        }

        /**
