@Override public boolean sniff(ExtractorInput input) throws IOException, InterruptedException { byte[] scratch = new byte[1]; for (int i = 0; i < 5; i++) { input.peekFully(scratch, 0, 1); if ((scratch[0] & 0xFF) != 0x47) { return false; } input.advancePeekPosition(TS_PACKET_SIZE - 1); } return true; }
break; input.advancePeekPosition(3); input.peekFully(scratch.data, 0, 4); int headerLength = ((scratch.data[0] & 0x7F) << 21) | ((scratch.data[1] & 0x7F) << 14) | ((scratch.data[2] & 0x7F) << 7) | (scratch.data[3] & 0x7F); input.advancePeekPosition(headerLength); startPosition += 3 + 3 + 4 + headerLength; input.advancePeekPosition(startPosition); input.advancePeekPosition(++headerPosition); continue; input.advancePeekPosition(frameSize - 4);
@Override public boolean sniff(ExtractorInput input) throws IOException, InterruptedException { ParsableByteArray scratch = new ParsableByteArray(10); input.peekFully(scratch.data, 0, 10); int value = scratch.readUnsignedInt24(); if (value != Util.getIntegerCodeForString("ID3")) { value = value >> 8; } else { int length = (scratch.data[6] & 0x7F) << 21 | ((scratch.data[7] & 0x7F) << 14) | ((scratch.data[8] & 0x7F) << 7) | (scratch.data[9] & 0x7F); input.advancePeekPosition(length); input.peekFully(scratch.data, 0, 2); scratch.setPosition(0); value = scratch.readUnsignedShort(); } return (value & 0xFFF6) == 0xFFF0; }
input.advancePeekPosition((int) size); peekLength += size;
break; input.advancePeekPosition(atomDataSize);