         private var _tags : Vector.<FLVTag>;
         /* Vector of buffer */
         private var _dataVector : Vector.<ByteArray>;
+        private var _dataOffset : uint;
         /* callback functions for audio selection, and parsing progress/complete */
         private var _callback_audioselect : Function;
         private var _callback_progress : Function;

        /* last AVCC byte Array */
        private var _avcc : ByteArray;
        private var _timer : Timer;

        public static function probe(data : ByteArray) : Boolean {
            var pos : uint = data.position;
            var len : uint = Math.min(data.bytesAvailable, 188 * 2);
            for (var i : int = 0; i < len; i++) {
                if (data.readByte() == SYNCBYTE) {
                    // ensure that at least two consecutive TS start offset are found
                    if (data.bytesAvailable > 188) {
                        data.position = pos + i + 188;
                        if (data.readByte() == SYNCBYTE) {
                            data.position = pos + i;
                            return true;

                _callback_progress(_tags);
                _tags = new Vector.<FLVTag>();
            }
            // check if we have finished with reading this TS fragment
            if (_data_complete && _read_position == _totalBytes) {
                // free ByteArray
                _dataVector = null;
                // first check if TS parsing was successful
