All pastes #821096 Raw Edit

OMA Convert

public php v1 · immutable
·published 2007-12-17 22:21 UTC
rendered paste body
<?php  require_once('./getid3/getid3.php');  function fakeUnicode($str) {    $retstr = '';    for ($i = 0; $i < strlen($str); $i++)      $retstr .= chr(0x00).substr($str, $i, 1);    return $retstr;  }  function sizeHex($hexString, $len) {    $size = dechex(strlen($hexString)+1);    $size = (strlen($size)%2 != 0) ? '0'.$size : $size;    for ($i = strlen($size); $i < $len*2; $i++)      $size .= '0';    return '0x'.$size;  }  function writeHex($hexString, $filePointer) {    $end = (substr($hexString, 0, 2) == '0x') ? 2 : 0;    for ($i = strlen($hexString)-2; $i >= $end; $i-=2)      fwrite($filePointer, chr(hexdec(substr($hexString, $i, 2))));  }    function getHex($hexString) {    $end = (substr($hexString, 0, 2) == '0x') ? 2 : 0;    $retstr = '';    for ($i = strlen($hexString)-2; $i >= $end; $i-=2)      $retstr .= chr(hexdec(substr($hexString, $i, 2)));    return $retstr;  }    function getPlaySec($playString) {    $spl = explode(':', $playString);    $playSec = $spl[0]*60 + $spl[1];    for ($i = strlen($playSec); $i < 6; $i++)      $playSec .= '0';    return $playSec;  }  $getID3 = new getID3;  $filename = "Editors - Blood.mp3";  $id3info = $getID3->analyze($filename);  $omaFile = fopen('test.oma', 'wb');  fwrite($omaFile, 'ea3');                  // 'ea3' header  writeHex('0x170000000003', $omaFile);     // Unknown    fwrite($omaFile, 'vTIT2');                // Starting title  $string = fakeunicode($id3info['tags']['id3v1']['title'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TPE1');  $string = fakeunicode($id3info['tags']['id3v1']['artist'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TALB');  $string = fakeunicode($id3info['tags']['id3v1']['album'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TCON');  $string = '';  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TXXX');  $string = fakeunicode('OMG_TPE1S').getHex('0x0000').fakeunicode($id3info['tags']['id3v1']['artist'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TXXX');  $string = fakeunicode('OMG_TRACK').getHex('0x0000').fakeunicode($id3info['tags']['id3v1']['track'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TYER');  $string = fakeunicode($id3info['tags']['id3v1']['year'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TXXX');  $string = fakeunicode('OMG_ALBMS').getHex('0x0000').fakeunicode($id3info['tags']['id3v1']['album'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TXXX');  $string = fakeunicode('OMG_TIT2S').getHex('0x0000').fakeunicode($id3info['tags']['id3v1']['title'][0]);  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TXXX');  $string = fakeunicode('OMG_TRLDA').getHex('0x0000').fakeunicode($id3info['tags']['id3v1']['year'][0].'/01/01 00:00:00');  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    fwrite($omaFile, 'TLEN');  $string = fakeUnicode(getPlaySec($id3info['playtime_string']));  writeHex(sizeHex($string, 4), $omaFile);  writeHex('0x020000', $omaFile);  fwrite($omaFile, $string);    $cur = ftell($omaFile);  for (;$cur < 0x0c00; $cur++)    writeHex('0x00', $omaFile);      fwrite($omaFile, 'EA3');  writeHex('0x1b220000eb7a030000dd90035b6fc14b1a7410eed81778000000040000500f0100000000ffff600002', $omaFile);      $cur = ftell($omaFile);  for (;$cur < 0x0c60; $cur++)    writeHex('0x00', $omaFile);    $mp3File = fopen($filename, 'rb');  fseek($mp3File, $id3info['avdataoffset'], SEEK_SET);  //while (!feof($mp3File) && ftell($mp3File) < $id3info['avdataend'])  //  fwrite($omaFile, fread($mp3File, 1));  fwrite($omaFile, fread($mp3File, $id3info['avdataend'] - $id3info['avdataoffset']));  fclose($mp3File);  fclose($omaFile);?>