                 }
             }
             // if both SPS and PPS have been found, build AVCC and push tag if needed
-            if (sps_found && pps_found && sps.length >= 4) {
+            if (sps_found && pps_found) {
                 var avcc : ByteArray = AVCC.getAVCC(sps, ppsvect);
                 // only push AVCC tag if never pushed or avcc different from previous one
                 if (_avcc == null || !compareByteArray(_avcc, avcc)) {

                    ppsvect.push(pps);
                } else if (frame.type == 6) {

					//unescape Emulation Prevention bytes
					Nalu.unescapeStream(pes.data,frame.start,frame.start + frame.length);

					// We already know it's 6, so skip first byte
					pes.data.position = frame.start + 1;

					// we need at least 12 bytes to retrieve Caption length
					if(pes.data.bytesAvailable > 12) {

						// get the SEI payload type
						var payload_type : uint = 0;
						var payload_size : uint = 0;
						while (pes.data.position < frame.start + frame.length) {
							// Parse payload type.
							payload_type= 0;
							do {
								payload_type += pes.data.readUnsignedByte();
							} while (payload_type == 0xFF);
							// Parse payload size.
							payload_size = 0;
							do {
								payload_size += pes.data.readUnsignedByte();
							} while (pes.data.bytesAvailable!=0 && payload_size == 0xFF);
							// Process the payload. We only support EIA-608 payloads currently.
							if (payload_type == 4) {
								readCC(pes);
							} else {
								pes.data.position+=payload_size;
							}
						}
					}
                } else if (frame.type == 0) {
                    // report parsing error
                    if(_callback_error != null) {

								sei.writeByte(otherByte);

								// write the cc_datas
								seiData.readBytes(sei, 6, 3*total);

								seiData.position -= total * 3;

								// onCaptionInfo expects Base64 data...
								var sei_data:String = Base64.encode(sei);
