Deps: hexdump.php
#!/usr/bin/env php <?php require_once 'hexdump.php'; $seektable=""; while(!feof(STDIN)) { $sz = fread(STDIN, 4); $count = unpack('V', $sz); $count = $count[1]; // printf("0x%08x => %u\n", $count, $count); $seektable.= $sz; $frame = fread(STDIN, $count); $crc32 = unpack('V', substr($frame, -4, 4)); $crc32 = $crc32[1]; $frame = substr($frame, 0, strlen($frame) - 4); // if ($crc32 != ($framecrc = crc32($frame))) { // fwrite(STDERR, "Frame CRC mismatch! "); // fwrite(STDERR, sprintf("0x%08x != 0x%08x\n", $crc32, $framecrc)); // fwrite(STDERR, hexdump($frame, false, false, true)); // } if (!(strlen($seektable) / 1024)) fwrite(STDERR, '.'); } $seektable.= pack('V', crc32($seektable)); fwrite(STDERR, hexdump($seektable, false, false, true)); echo $seektable; ?>